Added initial code for iot video player 31/235431/1 submit/tizen/20200605.152112
authoraman.jeph <aman.jeph@samsung.com>
Thu, 4 Jun 2020 11:18:24 +0000 (16:48 +0530)
committeraman.jeph <aman.jeph@samsung.com>
Thu, 4 Jun 2020 11:18:24 +0000 (16:48 +0530)
Change-Id: Id07c2b993389b1b6aea50bda541290df466237b9
Signed-off-by: aman.jeph <aman.jeph@samsung.com>
1268 files changed:
.cproject [new file with mode: 0755]
.exportMap [new file with mode: 0755]
.gitignore [new file with mode: 0755]
.project [new file with mode: 0755]
.tproject [new file with mode: 0755]
Build/appendix.mk [new file with mode: 0755]
Build/basedef.mk [new file with mode: 0755]
Build/build_c.mk [new file with mode: 0755]
Build/build_edc.mk [new file with mode: 0755]
Build/build_po.mk [new file with mode: 0755]
Build/flags.mk [new file with mode: 0755]
Build/funcs.mk [new file with mode: 0755]
Build/makefile [new file with mode: 0755]
Build/makefile.mk [new file with mode: 0755]
Build/platform.mk [new file with mode: 0755]
Build/tooldef.mk [new file with mode: 0755]
CMakeLists.txt [new file with mode: 0755]
LICENSE [new file with mode: 0755]
NOTICE [new file with mode: 0755]
WORKSPACE [new file with mode: 0755]
build_def.prop [new file with mode: 0755]
common/CMakeLists.txt [new file with mode: 0755]
common/include/vp-chapter-db.h [new file with mode: 0755]
common/include/vp-debug.h [new file with mode: 0755]
common/include/vp-file-util.h [new file with mode: 0755]
common/include/vp-macro.h [new file with mode: 0755]
common/include/vp-media-content-util.h [new file with mode: 0755]
common/include/vp-pinch-zoom.h [new file with mode: 0755]
common/include/vp-preview-db.h [new file with mode: 0755]
common/include/vp-thumb-db.h [new file with mode: 0755]
common/include/vp-util.h [new file with mode: 0755]
common/src/include/vp-db-common.h [new file with mode: 0755]
common/src/include/vp-db-util.h [new file with mode: 0755]
common/src/vp-chapter-db.c [new file with mode: 0755]
common/src/vp-db-util.c [new file with mode: 0755]
common/src/vp-file-util.c [new file with mode: 0755]
common/src/vp-media-content-util.c [new file with mode: 0755]
common/src/vp-pinch-zoom.c [new file with mode: 0755]
common/src/vp-preview-db.c [new file with mode: 0755]
common/src/vp-thumb-db.c [new file with mode: 0755]
common/src/vp-util.c [new file with mode: 0755]
core/CMakeLists.txt [new file with mode: 0755]
core/include/vp-drm.h [new file with mode: 0755]
core/src/include/vp-core-common.h [new file with mode: 0755]
core/src/vp-drm.c [new file with mode: 0755]
include/common/mp-drm-ctrl.h [new file with mode: 0755]
include/common/mp-rotate-ctrl.h [new file with mode: 0755]
include/common/mp-util-config.h [new file with mode: 0755]
include/common/mp-util-media-service.h [new file with mode: 0755]
include/common/mp-util-preference.h [new file with mode: 0755]
include/common/mp-util.h [new file with mode: 0755]
include/common/mp-video-info-ctrl.h [new file with mode: 0755]
include/common/mp-video-util-db-controller.h [new file with mode: 0755]
include/feature/mp-launching-video-displayer.h [new file with mode: 0755]
include/feature/mp-util-move.h [new file with mode: 0755]
include/mp-video-log.h [new file with mode: 0755]
include/mp-video-string-define.h [new file with mode: 0755]
include/mp-video-type-define.h [new file with mode: 0755]
include/mp-video-value-define.h [new file with mode: 0755]
include/video-player.h [new file with mode: 0755]
include/view/mp-library-view-mgr.h [new file with mode: 0755]
include/view/mp-video-detail-view.h [new file with mode: 0755]
include/view/mp-video-list-folder-share-via-view.h [new file with mode: 0755]
include/view/mp-video-list-personal-ctrl.h [new file with mode: 0755]
include/view/mp-video-list-personal-view.h [new file with mode: 0755]
include/view/mp-video-list-remove-ctrl.h [new file with mode: 0755]
include/view/mp-video-list-remove-view.h [new file with mode: 0755]
include/view/mp-video-list-share-via-view.h [new file with mode: 0755]
include/view/mp-video-list-view-common.h [new file with mode: 0755]
include/view/mp-video-list-view-folder.h [new file with mode: 0755]
include/view/mp-video-list-view-item-of-folder.h [new file with mode: 0755]
include/view/mp-video-list-view-main.h [new file with mode: 0755]
include/view/mp-video-list-view-normal.h [new file with mode: 0755]
include/view/mp-video-list-view-select.h [new file with mode: 0755]
include/view/mp-video-list-view-thumbnail.h [new file with mode: 0755]
include/view/mp-video-search-view.h [new file with mode: 0755]
include/viewMgr/videos-view-mgr.h [new file with mode: 0755]
include/widget/mp-external-ug.h [new file with mode: 0755]
include/widget/mp-footer-toolbar.h [new file with mode: 0755]
include/widget/mp-util-widget-ctrl.h [new file with mode: 0755]
include/widget/mp-video-list-auto-play-ctrl.h [new file with mode: 0755]
include/widget/mp-video-list-option-ctrl.h [new file with mode: 0755]
include/widget/mp-video-list-sort-ctrl.h [new file with mode: 0755]
include/widget/mp-video-list-view-as-ctrl.h [new file with mode: 0755]
include/widget/mp-video-nocontent-layout.h [new file with mode: 0755]
include/widget/mp-video-rename-ctrl.h [new file with mode: 0755]
include/widget/mp-video-view-popup-ctrl.h [new file with mode: 0755]
org.tizen.video-player.manifest [new file with mode: 0755]
org.tizen.videos.manifest [new file with mode: 0755]
org.tizen.videos.xml [new file with mode: 0755]
packaging/load_pkgs.sh [new file with mode: 0755]
packaging/org.tizen.videos.spec [new file with mode: 0755]
playview/CMakeLists.txt [new file with mode: 0755]
playview/include/vp-play-log.h [new file with mode: 0755]
playview/include/vp-play-type-define.h [new file with mode: 0755]
playview/include/vp-play-view.h [new file with mode: 0755]
playview/res/edje/custom/Tizen_Touch.wav [new file with mode: 0755]
playview/res/edje/custom/button-pressed.wav [new file with mode: 0755]
playview/res/edje/custom/pv-custom-button.edc [new file with mode: 0755]
playview/res/edje/custom/pv-custom-colorselector.edc [new file with mode: 0755]
playview/res/edje/custom/pv-custom-define.edc [new file with mode: 0755]
playview/res/edje/custom/pv-custom-gengrid-item.edc [new file with mode: 0755]
playview/res/edje/custom/pv-custom-genlist-item.edc [new file with mode: 0755]
playview/res/edje/custom/pv-custom-image.edc [new file with mode: 0755]
playview/res/edje/custom/pv-custom-layout.edc [new file with mode: 0755]
playview/res/edje/custom/pv-custom-naviframe.edc [new file with mode: 0755]
playview/res/edje/images/00_color_picker_palette_bg.png [new file with mode: 0755]
playview/res/edje/images/T01_2_video_thumbnail_default.png [new file with mode: 0755]
playview/res/edje/images/T01_no_video.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/120x120/U04_device_AC_Wall.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/120x120/U04_device_BD.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/120x120/U04_device_Camcorder.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/120x120/U04_device_Camera.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/120x120/U04_device_Dongle.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/120x120/U04_device_LFD.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/120x120/U04_device_Mobile.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/120x120/U04_device_None_DNS.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/120x120/U04_device_PC.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/120x120/U04_device_REF.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/120x120/U04_device_ROBOT_VC.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/120x120/U04_device_STB.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/120x120/U04_device_TV.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/120x120/U04_device_Tablet.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/120x120/U04_device_WM.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/81x81/U04_device_AC_Wall.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/81x81/U04_device_BD.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/81x81/U04_device_Camcorder.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/81x81/U04_device_Camera.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/81x81/U04_device_Dongle.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/81x81/U04_device_LFD.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/81x81/U04_device_Mobile.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/81x81/U04_device_None_DNS.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/81x81/U04_device_PC.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/81x81/U04_device_REF.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/81x81/U04_device_ROBOT_VC.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/81x81/U04_device_STB.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/81x81/U04_device_TV.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/81x81/U04_device_Tablet.png [new file with mode: 0755]
playview/res/edje/images/allshare/device/81x81/U04_device_WM.png [new file with mode: 0755]
playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_bg.png [new file with mode: 0755]
playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus.png [new file with mode: 0755]
playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus_dim.png [new file with mode: 0755]
playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus_press.png [new file with mode: 0755]
playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute.png [new file with mode: 0755]
playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute_dim.png [new file with mode: 0755]
playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute_press.png [new file with mode: 0755]
playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus.png [new file with mode: 0755]
playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus_dim.png [new file with mode: 0755]
playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus_press.png [new file with mode: 0755]
playview/res/edje/images/bookmark/T01_2_button_remove.png [new file with mode: 0755]
playview/res/edje/images/bookmark/T01_2_button_remove_press.png [new file with mode: 0755]
playview/res/edje/images/bookmark/T01_2_icon_bookmark_add.png [new file with mode: 0755]
playview/res/edje/images/bookmark/T01_2_icon_bookmark_add_press.png [new file with mode: 0755]
playview/res/edje/images/brightness/quick_icon_brightness_00.png [new file with mode: 0755]
playview/res/edje/images/brightness/quick_icon_brightness_01.png [new file with mode: 0755]
playview/res/edje/images/brightness/quick_icon_brightness_02.png [new file with mode: 0755]
playview/res/edje/images/brightness/quick_icon_brightness_03.png [new file with mode: 0755]
playview/res/edje/images/brightness/quick_icon_brightness_04.png [new file with mode: 0755]
playview/res/edje/images/brightness/quick_icon_brightness_05.png [new file with mode: 0755]
playview/res/edje/images/brightness/quick_icon_brightness_06.png [new file with mode: 0755]
playview/res/edje/images/brightness/quick_icon_brightness_07.png [new file with mode: 0755]
playview/res/edje/images/brightness/quick_icon_brightness_08.png [new file with mode: 0755]
playview/res/edje/images/brightness/quick_icon_brightness_09.png [new file with mode: 0755]
playview/res/edje/images/brightness/quick_icon_brightness_10.png [new file with mode: 0755]
playview/res/edje/images/brightness/quick_icon_brightness_11.png [new file with mode: 0755]
playview/res/edje/images/button/T01-2_control_circle_button_01.png [new file with mode: 0755]
playview/res/edje/images/button/T01-2_control_circle_button_01_focus.png [new file with mode: 0755]
playview/res/edje/images/button/T01-2_control_circle_button_01_press.png [new file with mode: 0755]
playview/res/edje/images/button/T01-2_control_circle_button_02.png [new file with mode: 0755]
playview/res/edje/images/button/T01-2_control_circle_button_02_focus.png [new file with mode: 0755]
playview/res/edje/images/button/T01-2_control_circle_button_02_press.png [new file with mode: 0755]
playview/res/edje/images/button/T01-2_control_circle_button_03.png [new file with mode: 0755]
playview/res/edje/images/button/T01-2_control_circle_button_03_focus.png [new file with mode: 0755]
playview/res/edje/images/button/T01-2_control_circle_button_03_press.png [new file with mode: 0755]
playview/res/edje/images/button/T01-2_play_popup_icon_minus.png [new file with mode: 0755]
playview/res/edje/images/button/T01-2_play_popup_icon_minus_press.png [new file with mode: 0755]
playview/res/edje/images/button/T01-2_play_popup_icon_plus.png [new file with mode: 0755]
playview/res/edje/images/button/T01-2_play_popup_icon_plus_press.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_Near_by_device.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_Near_by_device_dim.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_Near_by_device_press.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_back.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_bluetooth_headset.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_bluetooth_headset_press.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_check.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_check_dim.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_check_press.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_close.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_close_dim.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_close_press.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_lock.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_lock_dim.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_lock_press.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_more.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_more_dim_web.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_more_press_web.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_more_web.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_rotate.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_rotate_dim.png [new file with mode: 0755]
playview/res/edje/images/button/T01_2_icon_rotate_press.png [new file with mode: 0755]
playview/res/edje/images/button/T02_icon_soundPath.png [new file with mode: 0755]
playview/res/edje/images/button/T02_icon_speaker.png [new file with mode: 0755]
playview/res/edje/images/button/T02_icon_speaker_dim.png [new file with mode: 0755]
playview/res/edje/images/button/T02_icon_speaker_press.png [new file with mode: 0755]
playview/res/edje/images/button/core_icon_back.png [new file with mode: 0755]
playview/res/edje/images/capture/T01-2_icon_left.png [new file with mode: 0755]
playview/res/edje/images/capture/T01-2_icon_left_dim.png [new file with mode: 0755]
playview/res/edje/images/capture/T01-2_icon_left_press.png [new file with mode: 0755]
playview/res/edje/images/capture/T01-2_icon_right.png [new file with mode: 0755]
playview/res/edje/images/capture/T01-2_icon_right_dim.png [new file with mode: 0755]
playview/res/edje/images/capture/T01-2_icon_right_press.png [new file with mode: 0755]
playview/res/edje/images/capture/T01_2_icon_capture.png [new file with mode: 0755]
playview/res/edje/images/capture/T01_2_icon_capture_dim.png [new file with mode: 0755]
playview/res/edje/images/capture/T01_2_icon_capture_press.png [new file with mode: 0755]
playview/res/edje/images/chapter/T01_2_thumbnail_shadow.png [new file with mode: 0755]
playview/res/edje/images/chapter/T01_2_thumbnail_shadow_h.png [new file with mode: 0755]
playview/res/edje/images/control/T01-2_control_bg.png [new file with mode: 0755]
playview/res/edje/images/control/T01-2_control_bg_h.png [new file with mode: 0755]
playview/res/edje/images/control/T01-2_control_circle_icon_next.png [new file with mode: 0755]
playview/res/edje/images/control/T01-2_control_circle_icon_pause.png [new file with mode: 0755]
playview/res/edje/images/control/T01-2_control_circle_icon_play.png [new file with mode: 0755]
playview/res/edje/images/control/T01-2_control_circle_icon_reverse.png [new file with mode: 0755]
playview/res/edje/images/control/T01-2_control_circle_icon_rewind.png [new file with mode: 0755]
playview/res/edje/images/control/T01_2_control_circle_icon_forward.png [new file with mode: 0755]
playview/res/edje/images/control/T01_2_control_circle_icon_reverse.png [new file with mode: 0755]
playview/res/edje/images/dmc/T01_2_device_connect_arrow_01.png [new file with mode: 0755]
playview/res/edje/images/dmc/T01_2_device_connect_arrow_02.png [new file with mode: 0755]
playview/res/edje/images/dmc/T01_2_device_connect_arrow_03.png [new file with mode: 0755]
playview/res/edje/images/dmc/T01_2_device_connect_arrow_04.png [new file with mode: 0755]
playview/res/edje/images/dmc/T01_2_image_mydevice.png [new file with mode: 0755]
playview/res/edje/images/dmc/T01_2_image_tv.png [new file with mode: 0755]
playview/res/edje/images/dmc/T02_player_all_share.png [new file with mode: 0755]
playview/res/edje/images/function/T01-2_control_icon_mute.png [new file with mode: 0755]
playview/res/edje/images/function/T01-2_control_icon_mute_dim.png [new file with mode: 0755]
playview/res/edje/images/function/T01-2_control_icon_mute_press.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_bookmark.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_bookmark_dim.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_bookmark_press.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_detail.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_detail_dim.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_detail_press.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_multi_window.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_multi_window_dim.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_multi_window_press.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_repeat_all.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_repeat_all_dim.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_repeat_all_press.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_repeat_mode.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_repeat_mode_dim.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_repeat_mode_press.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_repeat_once.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_repeat_once_dim.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_repeat_once_press.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_screenmode.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_screenmode02.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_screenmode02_dim.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_screenmode02_press.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_screenmode03.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_screenmode03_dim.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_screenmode03_press.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_screenmode04.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_screenmode04_dim.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_screenmode04_press.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_screenmode_dim.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_screenmode_press.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_share.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_share_dim.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_share_press.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_soundalive.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_soundalive_dim.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_soundalive_press.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_trim.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_trim_dim.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_trim_press.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_volume.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_volume_dim.png [new file with mode: 0755]
playview/res/edje/images/function/T01_2_control_icon_volume_press.png [new file with mode: 0755]
playview/res/edje/images/function/player_popup_view_icon_nomal.png [new file with mode: 0755]
playview/res/edje/images/genlist/00_focus.png [new file with mode: 0755]
playview/res/edje/images/genlist/00_focus_dark.png [new file with mode: 0755]
playview/res/edje/images/genlist/00_list_group_bg.png [new file with mode: 0755]
playview/res/edje/images/genlist/00_list_group_bg_dark.png [new file with mode: 0755]
playview/res/edje/images/genlist/00_list_group_bg_press.png [new file with mode: 0755]
playview/res/edje/images/genlist/00_list_group_bg_press_dark.png [new file with mode: 0755]
playview/res/edje/images/genlist/00_popup_list_press.png [new file with mode: 0755]
playview/res/edje/images/genlist/00_popup_list_press_dark.png [new file with mode: 0755]
playview/res/edje/images/genlist/preview_settings_bg.png [new file with mode: 0755]
playview/res/edje/images/jump/T01_2_jump_L_01.png [new file with mode: 0755]
playview/res/edje/images/jump/T01_2_jump_L_02.png [new file with mode: 0755]
playview/res/edje/images/jump/T01_2_jump_L_03.png [new file with mode: 0755]
playview/res/edje/images/jump/T01_2_jump_R_01.png [new file with mode: 0755]
playview/res/edje/images/jump/T01_2_jump_R_02.png [new file with mode: 0755]
playview/res/edje/images/jump/T01_2_jump_R_03.png [new file with mode: 0755]
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/micro_control/T01-2_Control_detail_text_bg.png [new file with mode: 0755]
playview/res/edje/images/micro_control/T01_2_micro_control_up_01.png [new file with mode: 0755]
playview/res/edje/images/micro_control/T01_2_micro_control_up_02.png [new file with mode: 0755]
playview/res/edje/images/micro_control/T01_2_micro_control_up_03.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/A01_15_popup_No_device.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_close_dim.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/btn_close_nor.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/btn_close_press.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/btn_video_close_nor.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/btn_video_close_press.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/btn_video_next_nor.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/btn_video_next_press.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/btn_video_pause_nor.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/btn_video_pause_press.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/btn_video_play_nor.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/btn_video_play_press.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/btn_video_prev_nor.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/btn_video_prev_press.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/control_circle_icon_stop.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: 0755]
playview/res/edje/images/mini_controller/music_btn_player_pause_nor.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/music_btn_player_play_nor.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/music_btn_player_prev_nor.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/video_progress.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/video_progress_bg.png [new file with mode: 0755]
playview/res/edje/images/more/icon_add_to_home.png [new file with mode: 0755]
playview/res/edje/images/more/icon_chapter_preview.png [new file with mode: 0755]
playview/res/edje/images/more/icon_detail.png [new file with mode: 0755]
playview/res/edje/images/more/icon_download.png [new file with mode: 0755]
playview/res/edje/images/more/icon_nearbydevices.png [new file with mode: 0755]
playview/res/edje/images/more/icon_setting.png [new file with mode: 0755]
playview/res/edje/images/more/icon_share_via.png [new file with mode: 0755]
playview/res/edje/images/more/icon_trim.png [new file with mode: 0755]
playview/res/edje/images/multi/Mw_title_icon_press_bg.png [new file with mode: 0755]
playview/res/edje/images/multi/T01-2_multiscreen_player_bg.png [new file with mode: 0755]
playview/res/edje/images/multi/T01_2_mw_control_bg_center.png [new file with mode: 0755]
playview/res/edje/images/multi/T01_2_mw_control_bg_center_press.png [new file with mode: 0755]
playview/res/edje/images/multi/T01_2_mw_control_bg_left.png [new file with mode: 0755]
playview/res/edje/images/multi/T01_2_mw_control_bg_left_press.png [new file with mode: 0755]
playview/res/edje/images/multi/T01_2_mw_control_bg_right.png [new file with mode: 0755]
playview/res/edje/images/multi/T01_2_mw_control_bg_right_press.png [new file with mode: 0755]
playview/res/edje/images/multi/T01_2_mw_control_icon_ff.png [new file with mode: 0755]
playview/res/edje/images/multi/T01_2_mw_control_icon_ff_press.png [new file with mode: 0755]
playview/res/edje/images/multi/T01_2_mw_control_icon_pause.png [new file with mode: 0755]
playview/res/edje/images/multi/T01_2_mw_control_icon_pause_press.png [new file with mode: 0755]
playview/res/edje/images/multi/T01_2_mw_control_icon_play.png [new file with mode: 0755]
playview/res/edje/images/multi/T01_2_mw_control_icon_play_press.png [new file with mode: 0755]
playview/res/edje/images/multi/T01_2_mw_control_icon_rew.png [new file with mode: 0755]
playview/res/edje/images/multi/T01_2_mw_control_icon_rew_press.png [new file with mode: 0755]
playview/res/edje/images/multi/mw_frame.png [new file with mode: 0755]
playview/res/edje/images/multi/mw_frame_handler.png [new file with mode: 0755]
playview/res/edje/images/multi/mw_frame_handler_press.png [new file with mode: 0755]
playview/res/edje/images/multi/mw_title_bg.#.png [new file with mode: 0755]
playview/res/edje/images/multi/mw_title_bg_ef.#.png [new file with mode: 0755]
playview/res/edje/images/multi/mw_title_bg_focus.#.png [new file with mode: 0755]
playview/res/edje/images/multi/mw_title_bg_focus_ef.#.png [new file with mode: 0755]
playview/res/edje/images/multi/mw_title_bg_press.png [new file with mode: 0755]
playview/res/edje/images/multi/mw_title_divider.png [new file with mode: 0755]
playview/res/edje/images/multi/mw_title_focus.#.png [new file with mode: 0755]
playview/res/edje/images/multi/mw_title_focus_bg_press.#.png [new file with mode: 0755]
playview/res/edje/images/multi/my_title_icon_delete.png [new file with mode: 0755]
playview/res/edje/images/multi/my_title_icon_delete_ef_press.png [new file with mode: 0755]
playview/res/edje/images/multi/my_title_icon_delete_press.png [new file with mode: 0755]
playview/res/edje/images/multi/my_title_icon_maximize.png [new file with mode: 0755]
playview/res/edje/images/multi/my_title_icon_maximize_ef_press.png [new file with mode: 0755]
playview/res/edje/images/multi/my_title_icon_maximize_press.png [new file with mode: 0755]
playview/res/edje/images/multi/my_title_icon_mimimize.png [new file with mode: 0755]
playview/res/edje/images/multi/my_title_icon_mimimize_ef_press.png [new file with mode: 0755]
playview/res/edje/images/multi/my_title_icon_mimimize_press.png [new file with mode: 0755]
playview/res/edje/images/nearby_device/T02_Player_Nearby_device_01.png [new file with mode: 0755]
playview/res/edje/images/nearby_device/T02_Player_Nearby_device_02.png [new file with mode: 0755]
playview/res/edje/images/nearby_device/U04_connecting_ani_01.png [new file with mode: 0755]
playview/res/edje/images/nearby_device/U04_connecting_ani_02.png [new file with mode: 0755]
playview/res/edje/images/nearby_device/U04_connecting_ani_03.png [new file with mode: 0755]
playview/res/edje/images/nearby_device/U04_connecting_ani_04.png [new file with mode: 0755]
playview/res/edje/images/player_error_screen.png [new file with mode: 0755]
playview/res/edje/images/popup/T01-2_volume_popup_icon_brightness.png [new file with mode: 0755]
playview/res/edje/images/popup/T01-2_volume_popup_icon_volume01.png [new file with mode: 0755]
playview/res/edje/images/popup/T01-2_volume_popup_icon_volume02.png [new file with mode: 0755]
playview/res/edje/images/popup/U05_help_popup_sbeam.png [new file with mode: 0755]
playview/res/edje/images/progressbar/T01_2_control_progress_handle.png [new file with mode: 0755]
playview/res/edje/images/progressbar/T01_2_control_progress_handle_press.png [new file with mode: 0755]
playview/res/edje/images/progressbar/core_progress_bar.#.png [new file with mode: 0755]
playview/res/edje/images/sensor/B15_turn_over_01.png [new file with mode: 0755]
playview/res/edje/images/sensor/B15_turn_over_02.png [new file with mode: 0755]
playview/res/edje/images/sensor/B15_turn_over_03.png [new file with mode: 0755]
playview/res/edje/images/sound_only.png [new file with mode: 0755]
playview/res/edje/images/tag/T01-1_Tag_buddy_settings_bg.png [new file with mode: 0755]
playview/res/edje/images/tag/T01-1_logo_accuweather.png [new file with mode: 0755]
playview/res/edje/images/tag/T01_2_icon_tag_buddy_cplogo.PNG [new file with mode: 0755]
playview/res/edje/images/tag/U07_weather_logo.png [new file with mode: 0755]
playview/res/edje/images/trim/T01_2_trim_left.png [new file with mode: 0755]
playview/res/edje/images/trim/T01_2_trim_picker.png [new file with mode: 0755]
playview/res/edje/images/trim/T01_2_trim_right.png [new file with mode: 0755]
playview/res/edje/images/volume/T01_2_volume_popup_bg.png [new file with mode: 0755]
playview/res/edje/images/volume/T01_2_volume_popup_progress_bar.png [new file with mode: 0755]
playview/res/edje/images/volume/T01_2_volume_popup_progress_bg.png [new file with mode: 0755]
playview/res/edje/images/volume/T01_2_volume_popup_progress_handle.png [new file with mode: 0755]
playview/res/edje/images/volume/T01_2_volume_popup_progress_handle_press.png [new file with mode: 0755]
playview/res/edje/pv-bookmark-item.edc [new file with mode: 0755]
playview/res/edje/pv-bookmark.edc [new file with mode: 0755]
playview/res/edje/pv-brightness-popup.edc [new file with mode: 0755]
playview/res/edje/pv-chapter-main-new.edc [new file with mode: 0755]
playview/res/edje/pv-colorselector.edc [new file with mode: 0755]
playview/res/edje/pv-custom-winset.edc [new file with mode: 0755]
playview/res/edje/pv-gesture.edc [new file with mode: 0755]
playview/res/edje/pv-image.edc [new file with mode: 0755]
playview/res/edje/pv-lockscreenmini.edc [new file with mode: 0755]
playview/res/edje/pv-macro.edc [new file with mode: 0755]
playview/res/edje/pv-minicontroller.edc [new file with mode: 0755]
playview/res/edje/pv-multi-main.edc [new file with mode: 0755]
playview/res/edje/pv-normal-control.edc [new file with mode: 0755]
playview/res/edje/pv-normal-function.edc [new file with mode: 0755]
playview/res/edje/pv-normal-main.edc [new file with mode: 0755]
playview/res/edje/pv-normal-top-control.edc [new file with mode: 0755]
playview/res/edje/pv-popup.edc [new file with mode: 0755]
playview/res/edje/pv-progressbar.edc [new file with mode: 0755]
playview/res/edje/pv-resource.edc [new file with mode: 0755]
playview/res/edje/pv-sensor-popup.edc [new file with mode: 0755]
playview/res/edje/pv-speed-popup.edc [new file with mode: 0755]
playview/res/edje/pv-subtitle-color-popup.edc [new file with mode: 0755]
playview/res/edje/pv-subtitle.edc [new file with mode: 0755]
playview/res/edje/pv-tag-buddy.edc [new file with mode: 0755]
playview/res/edje/pv-tag-preview.edc [new file with mode: 0755]
playview/res/edje/pv-trim-control.edc [new file with mode: 0755]
playview/res/edje/pv-trim-item.edc [new file with mode: 0755]
playview/res/edje/pv-trim-main.edc [new file with mode: 0755]
playview/res/edje/pv-trim-top-control.edc [new file with mode: 0755]
playview/res/edje/pv-volume-popup.edc [new file with mode: 0755]
playview/res/edje/pv-volume.edc [new file with mode: 0755]
playview/res/edje/pv-zoom-guide.edc [new file with mode: 0755]
playview/src/common/include/vp-play-config.h [new file with mode: 0755]
playview/src/common/include/vp-play-preference.h [new file with mode: 0755]
playview/src/common/include/vp-play-ug.h [new file with mode: 0755]
playview/src/common/include/vp-play-util.h [new file with mode: 0755]
playview/src/common/vp-play-config.c [new file with mode: 0755]
playview/src/common/vp-play-preference.c [new file with mode: 0755]
playview/src/common/vp-play-ug.c [new file with mode: 0755]
playview/src/common/vp-play-util.c [new file with mode: 0755]
playview/src/core/include/vp-avrcp.h [new file with mode: 0755]
playview/src/core/include/vp-device-language.h [new file with mode: 0755]
playview/src/core/include/vp-device.h [new file with mode: 0755]
playview/src/core/include/vp-hollic.h [new file with mode: 0755]
playview/src/core/include/vp-image-util.h [new file with mode: 0755]
playview/src/core/include/vp-media-contents.h [new file with mode: 0755]
playview/src/core/include/vp-media-key.h [new file with mode: 0755]
playview/src/core/include/vp-mm-player.h [new file with mode: 0755]
playview/src/core/include/vp-multi-path.h [new file with mode: 0755]
playview/src/core/include/vp-sensor.h [new file with mode: 0755]
playview/src/core/include/vp-sound.h [new file with mode: 0755]
playview/src/core/vp-avrcp.c [new file with mode: 0755]
playview/src/core/vp-device-language.c [new file with mode: 0755]
playview/src/core/vp-device.c [new file with mode: 0755]
playview/src/core/vp-hollic.c [new file with mode: 0755]
playview/src/core/vp-image-util.c [new file with mode: 0755]
playview/src/core/vp-media-contents.c [new file with mode: 0755]
playview/src/core/vp-media-key.c [new file with mode: 0755]
playview/src/core/vp-mm-player.c [new file with mode: 0755]
playview/src/core/vp-multi-path.c [new file with mode: 0755]
playview/src/core/vp-sensor.c [new file with mode: 0755]
playview/src/core/vp-sound.c [new file with mode: 0755]
playview/src/feature/include/vp-audio-track.h [new file with mode: 0755]
playview/src/feature/include/vp-capture.h [new file with mode: 0755]
playview/src/feature/include/vp-detail.h [new file with mode: 0755]
playview/src/feature/include/vp-play-speed.h [new file with mode: 0755]
playview/src/feature/include/vp-repeat.h [new file with mode: 0755]
playview/src/feature/include/vp-setting.h [new file with mode: 0755]
playview/src/feature/include/vp-share.h [new file with mode: 0755]
playview/src/feature/include/vp-sound-alive.h [new file with mode: 0755]
playview/src/feature/include/vp-sound-path.h [new file with mode: 0755]
playview/src/feature/include/vp-subtitle-alignment.h [new file with mode: 0755]
playview/src/feature/include/vp-subtitle-bg-color.h [new file with mode: 0755]
playview/src/feature/include/vp-subtitle-color.h [new file with mode: 0755]
playview/src/feature/include/vp-subtitle-edge.h [new file with mode: 0755]
playview/src/feature/include/vp-subtitle-font.h [new file with mode: 0755]
playview/src/feature/include/vp-subtitle-select.h [new file with mode: 0755]
playview/src/feature/include/vp-subtitle-size.h [new file with mode: 0755]
playview/src/feature/include/vp-subtitle-sync.h [new file with mode: 0755]
playview/src/feature/include/vp-subtitle-track.h [new file with mode: 0755]
playview/src/feature/include/vp-subtitle.h [new file with mode: 0755]
playview/src/feature/include/vp-zoom-guide.h [new file with mode: 0755]
playview/src/feature/vp-audio-track.c [new file with mode: 0755]
playview/src/feature/vp-capture.c [new file with mode: 0755]
playview/src/feature/vp-detail.c [new file with mode: 0755]
playview/src/feature/vp-play-speed.c [new file with mode: 0755]
playview/src/feature/vp-repeat.c [new file with mode: 0755]
playview/src/feature/vp-setting.c [new file with mode: 0755]
playview/src/feature/vp-share.c [new file with mode: 0755]
playview/src/feature/vp-sound-alive.c [new file with mode: 0755]
playview/src/feature/vp-sound-path.c [new file with mode: 0755]
playview/src/feature/vp-subtitle-alignment.c [new file with mode: 0755]
playview/src/feature/vp-subtitle-bg-color.c [new file with mode: 0755]
playview/src/feature/vp-subtitle-color.c [new file with mode: 0755]
playview/src/feature/vp-subtitle-edge.c [new file with mode: 0755]
playview/src/feature/vp-subtitle-font.c [new file with mode: 0755]
playview/src/feature/vp-subtitle-select.c [new file with mode: 0755]
playview/src/feature/vp-subtitle-size.c [new file with mode: 0755]
playview/src/feature/vp-subtitle-sync.c [new file with mode: 0755]
playview/src/feature/vp-subtitle-track.c [new file with mode: 0755]
playview/src/feature/vp-subtitle.c [new file with mode: 0755]
playview/src/feature/vp-zoom-guide.c [new file with mode: 0755]
playview/src/include/vp-play-macro-define.h [new file with mode: 0755]
playview/src/include/vp-play-string-define.h [new file with mode: 0755]
playview/src/include/vp-play-value-define.h [new file with mode: 0755]
playview/src/view/include/vp-play-normal-view.h [new file with mode: 0755]
playview/src/view/include/vp-play-view-priv.h [new file with mode: 0755]
playview/src/view/vp-play-normal-view.c [new file with mode: 0755]
playview/src/vp-play-view.c [new file with mode: 0755]
playview/src/widget/include/vp-play-bookmark.h [new file with mode: 0755]
playview/src/widget/include/vp-play-brightness-popup.h [new file with mode: 0755]
playview/src/widget/include/vp-play-button.h [new file with mode: 0755]
playview/src/widget/include/vp-play-loading-ani.h [new file with mode: 0755]
playview/src/widget/include/vp-play-lockscreenmc.h [new file with mode: 0755]
playview/src/widget/include/vp-play-minicontroller.h [new file with mode: 0755]
playview/src/widget/include/vp-play-more.h [new file with mode: 0755]
playview/src/widget/include/vp-play-popup.h [new file with mode: 0755]
playview/src/widget/include/vp-play-progressbar.h [new file with mode: 0755]
playview/src/widget/include/vp-play-subtitle.h [new file with mode: 0755]
playview/src/widget/include/vp-play-volume-popup.h [new file with mode: 0755]
playview/src/widget/include/vp-play-volume.h [new file with mode: 0755]
playview/src/widget/vp-play-bookmark.c [new file with mode: 0755]
playview/src/widget/vp-play-brightness-popup.c [new file with mode: 0755]
playview/src/widget/vp-play-button.c [new file with mode: 0755]
playview/src/widget/vp-play-loading-ani.c [new file with mode: 0755]
playview/src/widget/vp-play-lockscreenmc.c [new file with mode: 0755]
playview/src/widget/vp-play-minicontroller.c [new file with mode: 0755]
playview/src/widget/vp-play-more.c [new file with mode: 0755]
playview/src/widget/vp-play-popup.c [new file with mode: 0755]
playview/src/widget/vp-play-progressbar.c [new file with mode: 0755]
playview/src/widget/vp-play-subtitle.c [new file with mode: 0755]
playview/src/widget/vp-play-volume-popup.c [new file with mode: 0755]
playview/src/widget/vp-play-volume.c [new file with mode: 0755]
project_def.prop [new file with mode: 0755]
res/edje/button-pressed.wav [new file with mode: 0755]
res/edje/edc_image_macro.edc [new file with mode: 0755]
res/edje/image_res.edc [new file with mode: 0755]
res/edje/landscape_thumbnail.edc [new file with mode: 0755]
res/edje/panel.edc [new file with mode: 0755]
res/edje/popup_progressbar.edc [new file with mode: 0755]
res/edje/vp-button-white.edc [new file with mode: 0755]
res/edje/vp-check.edc [new file with mode: 0755]
res/edje/vp-controlbar.edc [new file with mode: 0755]
res/edje/vp-ctxpopup-option.edc [new file with mode: 0755]
res/edje/vp-ctxpopup.edc [new file with mode: 0755]
res/edje/vp-custom-genlist-miltiline.edc [new file with mode: 0755]
res/edje/vp-custom-winset-style.edc [new file with mode: 0755]
res/edje/vp-detail-popup.edc [new file with mode: 0755]
res/edje/vp-device-list-internal.edc [new file with mode: 0755]
res/edje/vp-entry-popup.edc [new file with mode: 0755]
res/edje/vp-gengrid-custom.edc [new file with mode: 0755]
res/edje/vp-gengrid.edc [new file with mode: 0755]
res/edje/vp-genlist-custom.edc [new file with mode: 0755]
res/edje/vp-genlist-no-item.edc [new file with mode: 0755]
res/edje/vp-images.edc [new file with mode: 0755]
res/edje/vp-layout.edc [new file with mode: 0755]
res/edje/vp-main-layout.edc [new file with mode: 0755]
res/edje/vp-main-listview-internal.edc [new file with mode: 0755]
res/edje/vp-main-listview-preview.edc [new file with mode: 0755]
res/edje/vp-motion-popup.edc [new file with mode: 0755]
res/edje/vp-naviframe.edc [new file with mode: 0755]
res/edje/vp-nocontents.edc [new file with mode: 0755]
res/edje/vp-numberinfo.edc [new file with mode: 0755]
res/edje/vp-progressbar-list.edc [new file with mode: 0755]
res/edje/vp-remove-list-internal.edc [new file with mode: 0755]
res/edje/vp-scroller-custom.edc [new file with mode: 0755]
res/edje/vp-search-view-internal.edc [new file with mode: 0755]
res/edje/vp-speedbox-popup.edc [new file with mode: 0755]
res/edje/vp-thumbnail-view.edc [new file with mode: 0755]
res/edje/vp-toolbar.edc [new file with mode: 0755]
res/edje/vp_font.edc [new file with mode: 0755]
res/images/00_check_bg_dim.png [new file with mode: 0755]
res/images/00_focus.png [new file with mode: 0755]
res/images/00_grid_select_check.png [new file with mode: 0755]
res/images/00_list_group_bg.png [new file with mode: 0755]
res/images/00_list_group_bg_press.png [new file with mode: 0755]
res/images/00_popup_list_press.png [new file with mode: 0755]
res/images/00_scroll_bar.png [new file with mode: 0755]
res/images/00_scroll_bar_h.png [new file with mode: 0755]
res/images/00_scroll_bar_v.png [new file with mode: 0755]
res/images/00_sweep_list_bg.png [new file with mode: 0755]
res/images/00_thumbs_bg_focus.png [new file with mode: 0755]
res/images/00_thumbs_line_bg.png [new file with mode: 0755]
res/images/00_thumbs_loading_bg.png [new file with mode: 0755]
res/images/00_winset_list_progress_bg.png [new file with mode: 0755]
res/images/00_winset_thumbs_bg.png [new file with mode: 0755]
res/images/00_winset_thumbs_focus_bg.png [new file with mode: 0755]
res/images/T01-2_control_circle_icon_play.png [new file with mode: 0755]
res/images/T01-2_hold_icon_lock.png [new file with mode: 0755]
res/images/T01-2_icon_toolbar_cancel.png [new file with mode: 0755]
res/images/T01-2_progress_bar.png [new file with mode: 0755]
res/images/T01-2_progress_bg.png [new file with mode: 0755]
res/images/T01-2_progress_bg_02.png [new file with mode: 0755]
res/images/T01-2_video_noitem.png [new file with mode: 0755]
res/images/T01-2_video_thumbnail_view_bg.png [new file with mode: 0755]
res/images/T01_Nocontents_multimedia.png [new file with mode: 0755]
res/images/T01_check.png [new file with mode: 0755]
res/images/T01_checkbox.png [new file with mode: 0755]
res/images/T01_grid_select_check.png [new file with mode: 0755]
res/images/T01_icon_soft_back.png [new file with mode: 0755]
res/images/T01_icon_soft_back_blabk.png [new file with mode: 0755]
res/images/T01_toolbar_bg.png [new file with mode: 0755]
res/images/T01_toolbar_press.png [new file with mode: 0755]
res/images/T01_video_list_progress_bar.png [new file with mode: 0755]
res/images/core_theme_bg_01.png [new file with mode: 0755]
res/images/download/T01-2_video_thumbnail_view_default.png [new file with mode: 0755]
res/images/download/T01-2_video_thumbnail_view_default_h.png [new file with mode: 0755]
res/images/download/T01-2_video_thumbnail_view_hd.png [new file with mode: 0755]
res/images/download/T01-2_video_thumbnail_view_hd_press.png [new file with mode: 0755]
res/images/download/T01-2_video_thumbnail_view_sd.png [new file with mode: 0755]
res/images/download/T01-2_video_thumbnail_view_sd_press.png [new file with mode: 0755]
res/images/genlist/00_focus.png [new file with mode: 0755]
res/images/genlist/00_list_group_bg.png [new file with mode: 0755]
res/images/genlist/00_list_group_bg_press.png [new file with mode: 0755]
res/images/genlist/00_popup_list_press.png [new file with mode: 0755]
res/images/icon/T01-2_video_noitem.png [new file with mode: 0755]
res/images/icon/T01-2_video_thumbnail_default.png [new file with mode: 0755]
res/images/icon/T01_2_button_expand_cancel.png [new file with mode: 0755]
res/images/icon/T01_2_button_expand_cancel_press.png [new file with mode: 0755]
res/images/icon/T01_2_button_expand_download.png [new file with mode: 0755]
res/images/icon/T01_2_button_expand_download_press.png [new file with mode: 0755]
res/images/icon/T01_2_button_expand_play.png [new file with mode: 0755]
res/images/icon/T01_2_button_expand_stop.png [new file with mode: 0755]
res/images/icon/T01_2_icon_search.png [new file with mode: 0755]
res/images/icon/T01_2_icon_video.png [new file with mode: 0755]
res/images/icon/T01_2_list_icon_inner_usb.png [new file with mode: 0755]
res/images/icon/T01_2_list_icon_sd_card.png [new file with mode: 0755]
res/images/icon/T01_2_thumbnail_icon_drop_box.png [new file with mode: 0755]
res/images/icon/T01_2_video_lock_45x45.png [new file with mode: 0755]
res/images/icon/T01_Device_icon_index_refresh_bg.png [new file with mode: 0755]
res/images/icon/T01_Device_icon_index_refresh_focus_ef.png [new file with mode: 0755]
res/images/icon/T02_icon_edit.png [new file with mode: 0755]
res/images/icon/U04_device_Camcorder.png [new file with mode: 0755]
res/images/icon/U04_device_Camera.png [new file with mode: 0755]
res/images/icon/U04_device_Mobile.png [new file with mode: 0755]
res/images/icon/U04_device_None_DNS.png [new file with mode: 0755]
res/images/icon/U04_device_PC.png [new file with mode: 0755]
res/images/icon/U04_device_STB.png [new file with mode: 0755]
res/images/icon/U04_device_TV.png [new file with mode: 0755]
res/images/icon/player_folder_list_icon_dropbox.png [new file with mode: 0755]
res/images/icon/player_folder_list_icon_dropbox_ef.png [new file with mode: 0755]
res/images/icon/player_folder_list_icon_folder.png [new file with mode: 0755]
res/images/icon/player_folder_list_icon_folder_ef.png [new file with mode: 0755]
res/images/org.tizen.video-player.png [new file with mode: 0755]
res/images/org.tizen.videos.png [new file with mode: 0755]
res/images/player_library_list_thumbnail_default.png [new file with mode: 0755]
res/images/sound_only.png [new file with mode: 0755]
res/images/title_line_top_video.png [new file with mode: 0755]
res/images/toolbar/T01-2_btn_toolbar_back.png [new file with mode: 0755]
res/images/toolbar/T01-2_controlbar_icon_recorded.png [new file with mode: 0755]
res/images/toolbar/T01-2_controlbar_icon_video.png [new file with mode: 0755]
res/images/toolbar/T01-2_icon_toolbar_cancel.png [new file with mode: 0755]
res/images/toolbar/T01-2_icon_toolbar_done.png [new file with mode: 0755]
res/images/toolbar/icon_delete.png [new file with mode: 0755]
res/images/toolbar/icon_download.png [new file with mode: 0755]
res/images/toolbar/icon_nearbydevices.png [new file with mode: 0755]
res/images/toolbar/icon_refresh.png [new file with mode: 0755]
res/images/toolbar/icon_share_via.png [new file with mode: 0755]
res/images/toolbar/icon_signin.png [new file with mode: 0755]
res/images/toolbar/icon_sort_by.png [new file with mode: 0755]
res/images/toolbar/icon_view_as.png [new file with mode: 0755]
res/images/toolbar/more_button_icon_add_to_your_personal_storage.png [new file with mode: 0755]
res/images/toolbar/more_button_icon_remove_from_your_personal_storage.png [new file with mode: 0755]
res/images/turn_over/B15_turn_over_01.png [new file with mode: 0755]
res/images/turn_over/B15_turn_over_02.png [new file with mode: 0755]
res/images/turn_over/B15_turn_over_03.png [new file with mode: 0755]
res/images/video_preview.png [new file with mode: 0755]
res/images/video_preview_l.png [new file with mode: 0755]
res/images/white/common/00_button_01.png [new file with mode: 0755]
res/images/white/common/00_button_01_press.png [new file with mode: 0755]
res/images/white/common/00_popup_bubble_bg.png [new file with mode: 0755]
res/images/white/common/00_popup_scroll.9.png [new file with mode: 0755]
res/images/white/common/00_popup_tail_bottom.png [new file with mode: 0755]
res/images/white/common/00_popup_tail_left.png [new file with mode: 0755]
res/images/white/common/00_popup_tail_right.png [new file with mode: 0755]
res/images/white/common/00_popup_tail_top.png [new file with mode: 0755]
res/images/white/common/00_winset_control_toolbar_bg.png [new file with mode: 0755]
res/images/white/common/01_scroller.png [new file with mode: 0755]
res/images/white/common/T01-2_popup_arrow.png [new file with mode: 0755]
res/images/white/common/T01-2_popup_bg.png [new file with mode: 0755]
res/po/CMakeLists.txt [new file with mode: 0755]
res/po/ar.po [new file with mode: 0755]
res/po/az.po [new file with mode: 0755]
res/po/bg.po [new file with mode: 0755]
res/po/ca.po [new file with mode: 0755]
res/po/cs.po [new file with mode: 0755]
res/po/da.po [new file with mode: 0755]
res/po/de.po [new file with mode: 0755]
res/po/el_GR.po [new file with mode: 0755]
res/po/en.po [new file with mode: 0755]
res/po/en_PH.po [new file with mode: 0755]
res/po/en_US.po [new file with mode: 0755]
res/po/es_ES.po [new file with mode: 0755]
res/po/es_US.po [new file with mode: 0755]
res/po/et.po [new file with mode: 0755]
res/po/eu.po [new file with mode: 0755]
res/po/fi.po [new file with mode: 0755]
res/po/fr.po [new file with mode: 0755]
res/po/fr_CA.po [new file with mode: 0755]
res/po/ga.po [new file with mode: 0755]
res/po/gl.po [new file with mode: 0755]
res/po/hi.po [new file with mode: 0755]
res/po/hr.po [new file with mode: 0755]
res/po/hu.po [new file with mode: 0755]
res/po/hy.po [new file with mode: 0755]
res/po/is.po [new file with mode: 0755]
res/po/it_IT.po [new file with mode: 0755]
res/po/ja_JP.po [new file with mode: 0755]
res/po/ka.po [new file with mode: 0755]
res/po/kk.po [new file with mode: 0755]
res/po/ko_KR.po [new file with mode: 0755]
res/po/lt.po [new file with mode: 0755]
res/po/lv.po [new file with mode: 0755]
res/po/mk.po [new file with mode: 0755]
res/po/nb.po [new file with mode: 0755]
res/po/nl.po [new file with mode: 0755]
res/po/pl.po [new file with mode: 0755]
res/po/pt_BR.po [new file with mode: 0755]
res/po/pt_PT.po [new file with mode: 0755]
res/po/ro.po [new file with mode: 0755]
res/po/ru_RU.po [new file with mode: 0755]
res/po/sk.po [new file with mode: 0755]
res/po/sl.po [new file with mode: 0755]
res/po/sr.po [new file with mode: 0755]
res/po/sv.po [new file with mode: 0755]
res/po/tr_TR.po [new file with mode: 0755]
res/po/uk.po [new file with mode: 0755]
res/po/uz.po [new file with mode: 0755]
res/po/zh_CN.po [new file with mode: 0755]
res/po/zh_HK.po [new file with mode: 0755]
res/po/zh_TW.po [new file with mode: 0755]
res/shared/res/video.edc [new file with mode: 0755]
shared/res/org.tizen.videos.png [new file with mode: 0755]
src/common/mp-drm-ctrl.c [new file with mode: 0755]
src/common/mp-rotate-ctrl.c [new file with mode: 0755]
src/common/mp-util-config.c [new file with mode: 0755]
src/common/mp-util-media-service.c [new file with mode: 0755]
src/common/mp-util-preference.c [new file with mode: 0755]
src/common/mp-util.c [new file with mode: 0755]
src/common/mp-video-info-ctrl.c [new file with mode: 0755]
src/common/mp-video-util-db-controller.c [new file with mode: 0755]
src/feature/mp-launching-video-displayer.c [new file with mode: 0755]
src/feature/mp-util-move.c [new file with mode: 0755]
src/video-player.c [new file with mode: 0755]
src/view/mp-library-view-mgr.c [new file with mode: 0755]
src/view/mp-video-detail-view.c [new file with mode: 0755]
src/view/mp-video-list-folder-share-via-view.c [new file with mode: 0755]
src/view/mp-video-list-personal-ctrl.c [new file with mode: 0755]
src/view/mp-video-list-personal-view.c [new file with mode: 0755]
src/view/mp-video-list-remove-ctrl.c [new file with mode: 0755]
src/view/mp-video-list-remove-view.c [new file with mode: 0755]
src/view/mp-video-list-share-via-view.c [new file with mode: 0755]
src/view/mp-video-list-view-common.c [new file with mode: 0755]
src/view/mp-video-list-view-folder.c [new file with mode: 0755]
src/view/mp-video-list-view-item-of-folder.c [new file with mode: 0755]
src/view/mp-video-list-view-main.c [new file with mode: 0755]
src/view/mp-video-list-view-normal.c [new file with mode: 0755]
src/view/mp-video-list-view-select.c [new file with mode: 0755]
src/view/mp-video-list-view-thumbnail.c [new file with mode: 0755]
src/view/mp-video-search-view.c [new file with mode: 0755]
src/viewMgr/videos-view-mgr.c [new file with mode: 0755]
src/widget/mp-external-ug.c [new file with mode: 0755]
src/widget/mp-footer-toolbar.c [new file with mode: 0755]
src/widget/mp-util-widget-ctrl.c [new file with mode: 0755]
src/widget/mp-video-list-auto-play-ctrl.c [new file with mode: 0755]
src/widget/mp-video-list-option-ctrl.c [new file with mode: 0755]
src/widget/mp-video-list-sort-ctrl.c [new file with mode: 0755]
src/widget/mp-video-list-view-as-ctrl.c [new file with mode: 0755]
src/widget/mp-video-nocontent-layout.c [new file with mode: 0755]
src/widget/mp-video-rename-ctrl.c [new file with mode: 0755]
src/widget/mp-video-view-popup-ctrl.c [new file with mode: 0755]
tizen-manifest.xml [new file with mode: 0755]
video-downloader/CMakeLists.txt [new file with mode: 0755]
video-downloader/include/VppDownload.h [new file with mode: 0755]
video-downloader/src/VppDownload.c [new file with mode: 0755]
vp-main/.cproject [new file with mode: 0755]
vp-main/.exportMap [new file with mode: 0755]
vp-main/.project [new file with mode: 0755]
vp-main/.tproject [new file with mode: 0755]
vp-main/Build/appendix.mk [new file with mode: 0755]
vp-main/Build/basedef.mk [new file with mode: 0755]
vp-main/Build/build_c.mk [new file with mode: 0755]
vp-main/Build/build_edc.mk [new file with mode: 0755]
vp-main/Build/build_po.mk [new file with mode: 0755]
vp-main/Build/flags.mk [new file with mode: 0755]
vp-main/Build/funcs.mk [new file with mode: 0755]
vp-main/Build/makefile [new file with mode: 0755]
vp-main/Build/makefile.mk [new file with mode: 0755]
vp-main/Build/platform.mk [new file with mode: 0755]
vp-main/Build/tooldef.mk [new file with mode: 0755]
vp-main/CMakeLists.txt [new file with mode: 0755]
vp-main/build_def.prop [new file with mode: 0755]
vp-main/include/serviceParser/vp-service-parser.h [new file with mode: 0755]
vp-main/include/vp-main.h [new file with mode: 0755]
vp-main/org.tizen.video-player.xml [new file with mode: 0755]
vp-main/playview/res/edje/custom/pv-custom-define.edj [new file with mode: 0755]
vp-main/playview/res/edje/custom/pv-custom-image.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-bookmark-item.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-bookmark.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-brightness-popup.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-chapter-main-new.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-colorselector.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-custom-winset.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-gesture.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-image.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-macro.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-minicontroller.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-multi-main.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-normal-control.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-normal-function.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-normal-main.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-normal-top-control.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-popup.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-progressbar.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-resource.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-sensor-popup.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-speed-popup.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-subtitle-color-popup.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-subtitle.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-tag-buddy.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-tag-preview.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-trim-control.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-trim-item.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-trim-main.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-trim-top-control.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-volume-popup.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-volume.edj [new file with mode: 0755]
vp-main/playview/res/edje/pv-zoom-guide.edj [new file with mode: 0755]
vp-main/project_def.prop [new file with mode: 0755]
vp-main/res/edje/custom/Tizen_Touch.wav [new file with mode: 0755]
vp-main/res/edje/custom/button-pressed.wav [new file with mode: 0755]
vp-main/res/edje/custom/pv-custom-button.edc [new file with mode: 0755]
vp-main/res/edje/custom/pv-custom-colorselector.edc [new file with mode: 0755]
vp-main/res/edje/custom/pv-custom-define.edc [new file with mode: 0755]
vp-main/res/edje/custom/pv-custom-gengrid-item.edc [new file with mode: 0755]
vp-main/res/edje/custom/pv-custom-genlist-item.edc [new file with mode: 0755]
vp-main/res/edje/custom/pv-custom-image.edc [new file with mode: 0755]
vp-main/res/edje/custom/pv-custom-layout.edc [new file with mode: 0755]
vp-main/res/edje/custom/pv-custom-naviframe.edc [new file with mode: 0755]
vp-main/res/edje/images/00_color_picker_palette_bg.png [new file with mode: 0755]
vp-main/res/edje/images/T01_2_video_thumbnail_default.png [new file with mode: 0755]
vp-main/res/edje/images/T01_no_video.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/120x120/U04_device_AC_Wall.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/120x120/U04_device_BD.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/120x120/U04_device_Camcorder.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/120x120/U04_device_Camera.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/120x120/U04_device_Dongle.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/120x120/U04_device_LFD.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/120x120/U04_device_Mobile.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/120x120/U04_device_None_DNS.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/120x120/U04_device_PC.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/120x120/U04_device_REF.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/120x120/U04_device_ROBOT_VC.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/120x120/U04_device_STB.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/120x120/U04_device_TV.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/120x120/U04_device_Tablet.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/120x120/U04_device_WM.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/81x81/U04_device_AC_Wall.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/81x81/U04_device_BD.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/81x81/U04_device_Camcorder.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/81x81/U04_device_Camera.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/81x81/U04_device_Dongle.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/81x81/U04_device_LFD.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/81x81/U04_device_Mobile.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/81x81/U04_device_None_DNS.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/81x81/U04_device_PC.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/81x81/U04_device_REF.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/81x81/U04_device_ROBOT_VC.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/81x81/U04_device_STB.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/81x81/U04_device_TV.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/81x81/U04_device_Tablet.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/device/81x81/U04_device_WM.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_bg.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus_dim.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus_press.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute_dim.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute_press.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus_dim.png [new file with mode: 0755]
vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus_press.png [new file with mode: 0755]
vp-main/res/edje/images/bookmark/T01_2_button_remove.png [new file with mode: 0755]
vp-main/res/edje/images/bookmark/T01_2_button_remove_press.png [new file with mode: 0755]
vp-main/res/edje/images/bookmark/T01_2_icon_bookmark_add.png [new file with mode: 0755]
vp-main/res/edje/images/bookmark/T01_2_icon_bookmark_add_press.png [new file with mode: 0755]
vp-main/res/edje/images/brightness/quick_icon_brightness_00.png [new file with mode: 0755]
vp-main/res/edje/images/brightness/quick_icon_brightness_01.png [new file with mode: 0755]
vp-main/res/edje/images/brightness/quick_icon_brightness_02.png [new file with mode: 0755]
vp-main/res/edje/images/brightness/quick_icon_brightness_03.png [new file with mode: 0755]
vp-main/res/edje/images/brightness/quick_icon_brightness_04.png [new file with mode: 0755]
vp-main/res/edje/images/brightness/quick_icon_brightness_05.png [new file with mode: 0755]
vp-main/res/edje/images/brightness/quick_icon_brightness_06.png [new file with mode: 0755]
vp-main/res/edje/images/brightness/quick_icon_brightness_07.png [new file with mode: 0755]
vp-main/res/edje/images/brightness/quick_icon_brightness_08.png [new file with mode: 0755]
vp-main/res/edje/images/brightness/quick_icon_brightness_09.png [new file with mode: 0755]
vp-main/res/edje/images/brightness/quick_icon_brightness_10.png [new file with mode: 0755]
vp-main/res/edje/images/brightness/quick_icon_brightness_11.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01-2_control_circle_button_01.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01-2_control_circle_button_01_focus.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01-2_control_circle_button_01_press.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01-2_control_circle_button_02.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01-2_control_circle_button_02_focus.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01-2_control_circle_button_02_press.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01-2_control_circle_button_03.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01-2_control_circle_button_03_focus.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01-2_control_circle_button_03_press.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01-2_play_popup_icon_minus.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01-2_play_popup_icon_minus_press.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01-2_play_popup_icon_plus.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01-2_play_popup_icon_plus_press.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_Near_by_device.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_Near_by_device_dim.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_Near_by_device_press.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_back.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_bluetooth_headset.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_bluetooth_headset_press.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_check.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_check_dim.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_check_press.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_close.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_close_dim.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_close_press.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_lock.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_lock_dim.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_lock_press.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_more.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_more_dim_web.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_more_press_web.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_more_web.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_rotate.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_rotate_dim.png [new file with mode: 0755]
vp-main/res/edje/images/button/T01_2_icon_rotate_press.png [new file with mode: 0755]
vp-main/res/edje/images/button/T02_icon_soundPath.png [new file with mode: 0755]
vp-main/res/edje/images/button/T02_icon_speaker.png [new file with mode: 0755]
vp-main/res/edje/images/button/T02_icon_speaker_dim.png [new file with mode: 0755]
vp-main/res/edje/images/button/T02_icon_speaker_press.png [new file with mode: 0755]
vp-main/res/edje/images/button/core_icon_back.png [new file with mode: 0755]
vp-main/res/edje/images/capture/T01-2_icon_left.png [new file with mode: 0755]
vp-main/res/edje/images/capture/T01-2_icon_left_dim.png [new file with mode: 0755]
vp-main/res/edje/images/capture/T01-2_icon_left_press.png [new file with mode: 0755]
vp-main/res/edje/images/capture/T01-2_icon_right.png [new file with mode: 0755]
vp-main/res/edje/images/capture/T01-2_icon_right_dim.png [new file with mode: 0755]
vp-main/res/edje/images/capture/T01-2_icon_right_press.png [new file with mode: 0755]
vp-main/res/edje/images/capture/T01_2_icon_capture.png [new file with mode: 0755]
vp-main/res/edje/images/capture/T01_2_icon_capture_dim.png [new file with mode: 0755]
vp-main/res/edje/images/capture/T01_2_icon_capture_press.png [new file with mode: 0755]
vp-main/res/edje/images/chapter/T01_2_thumbnail_shadow.png [new file with mode: 0755]
vp-main/res/edje/images/chapter/T01_2_thumbnail_shadow_h.png [new file with mode: 0755]
vp-main/res/edje/images/control/T01-2_control_bg.png [new file with mode: 0755]
vp-main/res/edje/images/control/T01-2_control_bg_h.png [new file with mode: 0755]
vp-main/res/edje/images/control/T01-2_control_circle_icon_next.png [new file with mode: 0755]
vp-main/res/edje/images/control/T01-2_control_circle_icon_pause.png [new file with mode: 0755]
vp-main/res/edje/images/control/T01-2_control_circle_icon_play.png [new file with mode: 0755]
vp-main/res/edje/images/control/T01-2_control_circle_icon_reverse.png [new file with mode: 0755]
vp-main/res/edje/images/control/T01-2_control_circle_icon_rewind.png [new file with mode: 0755]
vp-main/res/edje/images/control/T01_2_control_circle_icon_forward.png [new file with mode: 0755]
vp-main/res/edje/images/control/T01_2_control_circle_icon_reverse.png [new file with mode: 0755]
vp-main/res/edje/images/dmc/T01_2_device_connect_arrow_01.png [new file with mode: 0755]
vp-main/res/edje/images/dmc/T01_2_device_connect_arrow_02.png [new file with mode: 0755]
vp-main/res/edje/images/dmc/T01_2_device_connect_arrow_03.png [new file with mode: 0755]
vp-main/res/edje/images/dmc/T01_2_device_connect_arrow_04.png [new file with mode: 0755]
vp-main/res/edje/images/dmc/T01_2_image_mydevice.png [new file with mode: 0755]
vp-main/res/edje/images/dmc/T01_2_image_tv.png [new file with mode: 0755]
vp-main/res/edje/images/dmc/T02_player_all_share.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01-2_control_icon_mute.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01-2_control_icon_mute_dim.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01-2_control_icon_mute_press.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_bookmark.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_bookmark_dim.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_bookmark_press.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_detail.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_detail_dim.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_detail_press.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_multi_window.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_multi_window_dim.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_multi_window_press.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_repeat_all.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_repeat_all_dim.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_repeat_all_press.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_repeat_mode.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_repeat_mode_dim.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_repeat_mode_press.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_repeat_once.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_repeat_once_dim.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_repeat_once_press.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_screenmode.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_screenmode02.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_screenmode02_dim.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_screenmode02_press.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_screenmode03.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_screenmode03_dim.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_screenmode03_press.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_screenmode04.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_screenmode04_dim.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_screenmode04_press.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_screenmode_dim.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_screenmode_press.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_share.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_share_dim.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_share_press.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_soundalive.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_soundalive_dim.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_soundalive_press.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_trim.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_trim_dim.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_trim_press.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_volume.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_volume_dim.png [new file with mode: 0755]
vp-main/res/edje/images/function/T01_2_control_icon_volume_press.png [new file with mode: 0755]
vp-main/res/edje/images/function/player_popup_view_icon_nomal.png [new file with mode: 0755]
vp-main/res/edje/images/genlist/00_focus.png [new file with mode: 0755]
vp-main/res/edje/images/genlist/00_focus_dark.png [new file with mode: 0755]
vp-main/res/edje/images/genlist/00_list_group_bg.png [new file with mode: 0755]
vp-main/res/edje/images/genlist/00_list_group_bg_dark.png [new file with mode: 0755]
vp-main/res/edje/images/genlist/00_list_group_bg_press.png [new file with mode: 0755]
vp-main/res/edje/images/genlist/00_list_group_bg_press_dark.png [new file with mode: 0755]
vp-main/res/edje/images/genlist/00_popup_list_press.png [new file with mode: 0755]
vp-main/res/edje/images/genlist/00_popup_list_press_dark.png [new file with mode: 0755]
vp-main/res/edje/images/genlist/preview_settings_bg.png [new file with mode: 0755]
vp-main/res/edje/images/jump/T01_2_jump_L_01.png [new file with mode: 0755]
vp-main/res/edje/images/jump/T01_2_jump_L_02.png [new file with mode: 0755]
vp-main/res/edje/images/jump/T01_2_jump_L_03.png [new file with mode: 0755]
vp-main/res/edje/images/jump/T01_2_jump_R_01.png [new file with mode: 0755]
vp-main/res/edje/images/jump/T01_2_jump_R_02.png [new file with mode: 0755]
vp-main/res/edje/images/jump/T01_2_jump_R_03.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/album_frame.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/control_circle_button_66.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/control_circle_button_66_focus.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/control_circle_button_66_press.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/control_circle_button_84.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/control_circle_button_84_focus.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/control_circle_button_84_press.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/control_circle_icon_ff.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/control_circle_icon_ff_dim.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/control_circle_icon_ff_press.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/control_circle_icon_pause.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/control_circle_icon_pause_dim.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/control_circle_icon_pause_press.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/control_circle_icon_play.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/control_circle_icon_play_dim.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/control_circle_icon_play_press.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/control_circle_icon_rewind.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/control_circle_icon_rewind_dim.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/control_circle_icon_rewind_press.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/control_circle_icon_stop.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/control_circle_icon_stop_dim.png [new file with mode: 0755]
vp-main/res/edje/images/lock_screen/control_circle_icon_stop_press.png [new file with mode: 0755]
vp-main/res/edje/images/micro_control/T01-2_Control_detail_text_bg.png [new file with mode: 0755]
vp-main/res/edje/images/micro_control/T01_2_micro_control_up_01.png [new file with mode: 0755]
vp-main/res/edje/images/micro_control/T01_2_micro_control_up_02.png [new file with mode: 0755]
vp-main/res/edje/images/micro_control/T01_2_micro_control_up_03.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/A01_15_popup_No_device.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/album_frame.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/bg_btn_player_01.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/bg_btn_player_01_ef.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/bg_btn_player_02.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/bg_btn_player_02_ef.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/btn_close_dim.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/btn_close_nor.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/btn_close_press.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/btn_controller_close.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/btn_video_close_nor.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/btn_video_close_press.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/btn_video_next_nor.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/btn_video_next_press.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/btn_video_pause_nor.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/btn_video_pause_press.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/btn_video_play_nor.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/btn_video_play_press.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/btn_video_prev_nor.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/btn_video_prev_press.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/control_circle_icon_stop.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/icon_player_next.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/icon_player_pause.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/icon_player_play.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/icon_player_prev.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/music_btn_player_next_nor.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/music_btn_player_pause_nor.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/music_btn_player_play_nor.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/music_btn_player_prev_nor.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/video_progress.png [new file with mode: 0755]
vp-main/res/edje/images/mini_controller/video_progress_bg.png [new file with mode: 0755]
vp-main/res/edje/images/more/icon_add_to_home.png [new file with mode: 0755]
vp-main/res/edje/images/more/icon_chapter_preview.png [new file with mode: 0755]
vp-main/res/edje/images/more/icon_detail.png [new file with mode: 0755]
vp-main/res/edje/images/more/icon_download.png [new file with mode: 0755]
vp-main/res/edje/images/more/icon_nearbydevices.png [new file with mode: 0755]
vp-main/res/edje/images/more/icon_setting.png [new file with mode: 0755]
vp-main/res/edje/images/more/icon_share_via.png [new file with mode: 0755]
vp-main/res/edje/images/more/icon_trim.png [new file with mode: 0755]
vp-main/res/edje/images/multi/Mw_title_icon_press_bg.png [new file with mode: 0755]
vp-main/res/edje/images/multi/T01-2_multiscreen_player_bg.png [new file with mode: 0755]
vp-main/res/edje/images/multi/T01_2_mw_control_bg_center.png [new file with mode: 0755]
vp-main/res/edje/images/multi/T01_2_mw_control_bg_center_press.png [new file with mode: 0755]
vp-main/res/edje/images/multi/T01_2_mw_control_bg_left.png [new file with mode: 0755]
vp-main/res/edje/images/multi/T01_2_mw_control_bg_left_press.png [new file with mode: 0755]
vp-main/res/edje/images/multi/T01_2_mw_control_bg_right.png [new file with mode: 0755]
vp-main/res/edje/images/multi/T01_2_mw_control_bg_right_press.png [new file with mode: 0755]
vp-main/res/edje/images/multi/T01_2_mw_control_icon_ff.png [new file with mode: 0755]
vp-main/res/edje/images/multi/T01_2_mw_control_icon_ff_press.png [new file with mode: 0755]
vp-main/res/edje/images/multi/T01_2_mw_control_icon_pause.png [new file with mode: 0755]
vp-main/res/edje/images/multi/T01_2_mw_control_icon_pause_press.png [new file with mode: 0755]
vp-main/res/edje/images/multi/T01_2_mw_control_icon_play.png [new file with mode: 0755]
vp-main/res/edje/images/multi/T01_2_mw_control_icon_play_press.png [new file with mode: 0755]
vp-main/res/edje/images/multi/T01_2_mw_control_icon_rew.png [new file with mode: 0755]
vp-main/res/edje/images/multi/T01_2_mw_control_icon_rew_press.png [new file with mode: 0755]
vp-main/res/edje/images/multi/mw_frame.png [new file with mode: 0755]
vp-main/res/edje/images/multi/mw_frame_handler.png [new file with mode: 0755]
vp-main/res/edje/images/multi/mw_frame_handler_press.png [new file with mode: 0755]
vp-main/res/edje/images/multi/mw_title_bg.#.png [new file with mode: 0755]
vp-main/res/edje/images/multi/mw_title_bg_ef.#.png [new file with mode: 0755]
vp-main/res/edje/images/multi/mw_title_bg_focus.#.png [new file with mode: 0755]
vp-main/res/edje/images/multi/mw_title_bg_focus_ef.#.png [new file with mode: 0755]
vp-main/res/edje/images/multi/mw_title_bg_press.png [new file with mode: 0755]
vp-main/res/edje/images/multi/mw_title_divider.png [new file with mode: 0755]
vp-main/res/edje/images/multi/mw_title_focus.#.png [new file with mode: 0755]
vp-main/res/edje/images/multi/mw_title_focus_bg_press.#.png [new file with mode: 0755]
vp-main/res/edje/images/multi/my_title_icon_delete.png [new file with mode: 0755]
vp-main/res/edje/images/multi/my_title_icon_delete_ef_press.png [new file with mode: 0755]
vp-main/res/edje/images/multi/my_title_icon_delete_press.png [new file with mode: 0755]
vp-main/res/edje/images/multi/my_title_icon_maximize.png [new file with mode: 0755]
vp-main/res/edje/images/multi/my_title_icon_maximize_ef_press.png [new file with mode: 0755]
vp-main/res/edje/images/multi/my_title_icon_maximize_press.png [new file with mode: 0755]
vp-main/res/edje/images/multi/my_title_icon_mimimize.png [new file with mode: 0755]
vp-main/res/edje/images/multi/my_title_icon_mimimize_ef_press.png [new file with mode: 0755]
vp-main/res/edje/images/multi/my_title_icon_mimimize_press.png [new file with mode: 0755]
vp-main/res/edje/images/nearby_device/T02_Player_Nearby_device_01.png [new file with mode: 0755]
vp-main/res/edje/images/nearby_device/T02_Player_Nearby_device_02.png [new file with mode: 0755]
vp-main/res/edje/images/nearby_device/U04_connecting_ani_01.png [new file with mode: 0755]
vp-main/res/edje/images/nearby_device/U04_connecting_ani_02.png [new file with mode: 0755]
vp-main/res/edje/images/nearby_device/U04_connecting_ani_03.png [new file with mode: 0755]
vp-main/res/edje/images/nearby_device/U04_connecting_ani_04.png [new file with mode: 0755]
vp-main/res/edje/images/player_error_screen.png [new file with mode: 0755]
vp-main/res/edje/images/popup/T01-2_volume_popup_icon_brightness.png [new file with mode: 0755]
vp-main/res/edje/images/popup/T01-2_volume_popup_icon_volume01.png [new file with mode: 0755]
vp-main/res/edje/images/popup/T01-2_volume_popup_icon_volume02.png [new file with mode: 0755]
vp-main/res/edje/images/popup/U05_help_popup_sbeam.png [new file with mode: 0755]
vp-main/res/edje/images/progressbar/T01_2_control_progress_handle.png [new file with mode: 0755]
vp-main/res/edje/images/progressbar/T01_2_control_progress_handle_press.png [new file with mode: 0755]
vp-main/res/edje/images/progressbar/core_progress_bar.#.png [new file with mode: 0755]
vp-main/res/edje/images/sensor/B15_turn_over_01.png [new file with mode: 0755]
vp-main/res/edje/images/sensor/B15_turn_over_02.png [new file with mode: 0755]
vp-main/res/edje/images/sensor/B15_turn_over_03.png [new file with mode: 0755]
vp-main/res/edje/images/sound_only.png [new file with mode: 0755]
vp-main/res/edje/images/tag/T01-1_Tag_buddy_settings_bg.png [new file with mode: 0755]
vp-main/res/edje/images/tag/T01-1_logo_accuweather.png [new file with mode: 0755]
vp-main/res/edje/images/tag/T01_2_icon_tag_buddy_cplogo.PNG [new file with mode: 0755]
vp-main/res/edje/images/tag/U07_weather_logo.png [new file with mode: 0755]
vp-main/res/edje/images/trim/T01_2_trim_left.png [new file with mode: 0755]
vp-main/res/edje/images/trim/T01_2_trim_picker.png [new file with mode: 0755]
vp-main/res/edje/images/trim/T01_2_trim_right.png [new file with mode: 0755]
vp-main/res/edje/images/volume/T01_2_volume_popup_bg.png [new file with mode: 0755]
vp-main/res/edje/images/volume/T01_2_volume_popup_progress_bar.png [new file with mode: 0755]
vp-main/res/edje/images/volume/T01_2_volume_popup_progress_bg.png [new file with mode: 0755]
vp-main/res/edje/images/volume/T01_2_volume_popup_progress_handle.png [new file with mode: 0755]
vp-main/res/edje/images/volume/T01_2_volume_popup_progress_handle_press.png [new file with mode: 0755]
vp-main/res/edje/pv-bookmark-item.edc [new file with mode: 0755]
vp-main/res/edje/pv-bookmark.edc [new file with mode: 0755]
vp-main/res/edje/pv-brightness-popup.edc [new file with mode: 0755]
vp-main/res/edje/pv-chapter-main-new.edc [new file with mode: 0755]
vp-main/res/edje/pv-colorselector.edc [new file with mode: 0755]
vp-main/res/edje/pv-custom-winset.edc [new file with mode: 0755]
vp-main/res/edje/pv-gesture.edc [new file with mode: 0755]
vp-main/res/edje/pv-image.edc [new file with mode: 0755]
vp-main/res/edje/pv-lockscreenmini.edc [new file with mode: 0755]
vp-main/res/edje/pv-macro.edc [new file with mode: 0755]
vp-main/res/edje/pv-minicontroller.edc [new file with mode: 0755]
vp-main/res/edje/pv-multi-main.edc [new file with mode: 0755]
vp-main/res/edje/pv-normal-control.edc [new file with mode: 0755]
vp-main/res/edje/pv-normal-function.edc [new file with mode: 0755]
vp-main/res/edje/pv-normal-main.edc [new file with mode: 0755]
vp-main/res/edje/pv-normal-top-control.edc [new file with mode: 0755]
vp-main/res/edje/pv-popup.edc [new file with mode: 0755]
vp-main/res/edje/pv-progressbar.edc [new file with mode: 0755]
vp-main/res/edje/pv-resource.edc [new file with mode: 0755]
vp-main/res/edje/pv-sensor-popup.edc [new file with mode: 0755]
vp-main/res/edje/pv-speed-popup.edc [new file with mode: 0755]
vp-main/res/edje/pv-subtitle-color-popup.edc [new file with mode: 0755]
vp-main/res/edje/pv-subtitle.edc [new file with mode: 0755]
vp-main/res/edje/pv-tag-buddy.edc [new file with mode: 0755]
vp-main/res/edje/pv-tag-preview.edc [new file with mode: 0755]
vp-main/res/edje/pv-trim-control.edc [new file with mode: 0755]
vp-main/res/edje/pv-trim-item.edc [new file with mode: 0755]
vp-main/res/edje/pv-trim-main.edc [new file with mode: 0755]
vp-main/res/edje/pv-trim-top-control.edc [new file with mode: 0755]
vp-main/res/edje/pv-volume-popup.edc [new file with mode: 0755]
vp-main/res/edje/pv-volume.edc [new file with mode: 0755]
vp-main/res/edje/pv-zoom-guide.edc [new file with mode: 0755]
vp-main/res/po/CMakeLists.txt [new file with mode: 0755]
vp-main/res/po/ar.po [new file with mode: 0755]
vp-main/res/po/az.po [new file with mode: 0755]
vp-main/res/po/bg.po [new file with mode: 0755]
vp-main/res/po/ca.po [new file with mode: 0755]
vp-main/res/po/cs.po [new file with mode: 0755]
vp-main/res/po/da.po [new file with mode: 0755]
vp-main/res/po/de.po [new file with mode: 0755]
vp-main/res/po/el_GR.po [new file with mode: 0755]
vp-main/res/po/en.po [new file with mode: 0755]
vp-main/res/po/en_PH.po [new file with mode: 0755]
vp-main/res/po/en_US.po [new file with mode: 0755]
vp-main/res/po/es_ES.po [new file with mode: 0755]
vp-main/res/po/es_US.po [new file with mode: 0755]
vp-main/res/po/et.po [new file with mode: 0755]
vp-main/res/po/eu.po [new file with mode: 0755]
vp-main/res/po/fi.po [new file with mode: 0755]
vp-main/res/po/fr.po [new file with mode: 0755]
vp-main/res/po/fr_CA.po [new file with mode: 0755]
vp-main/res/po/ga.po [new file with mode: 0755]
vp-main/res/po/gl.po [new file with mode: 0755]
vp-main/res/po/hi.po [new file with mode: 0755]
vp-main/res/po/hr.po [new file with mode: 0755]
vp-main/res/po/hu.po [new file with mode: 0755]
vp-main/res/po/hy.po [new file with mode: 0755]
vp-main/res/po/is.po [new file with mode: 0755]
vp-main/res/po/it_IT.po [new file with mode: 0755]
vp-main/res/po/ja_JP.po [new file with mode: 0755]
vp-main/res/po/ka.po [new file with mode: 0755]
vp-main/res/po/kk.po [new file with mode: 0755]
vp-main/res/po/ko_KR.po [new file with mode: 0755]
vp-main/res/po/lt.po [new file with mode: 0755]
vp-main/res/po/lv.po [new file with mode: 0755]
vp-main/res/po/mk.po [new file with mode: 0755]
vp-main/res/po/nb.po [new file with mode: 0755]
vp-main/res/po/nl.po [new file with mode: 0755]
vp-main/res/po/pl.po [new file with mode: 0755]
vp-main/res/po/pt_BR.po [new file with mode: 0755]
vp-main/res/po/pt_PT.po [new file with mode: 0755]
vp-main/res/po/ro.po [new file with mode: 0755]
vp-main/res/po/ru_RU.po [new file with mode: 0755]
vp-main/res/po/sk.po [new file with mode: 0755]
vp-main/res/po/sl.po [new file with mode: 0755]
vp-main/res/po/sr.po [new file with mode: 0755]
vp-main/res/po/sv.po [new file with mode: 0755]
vp-main/res/po/tr_TR.po [new file with mode: 0755]
vp-main/res/po/uk.po [new file with mode: 0755]
vp-main/res/po/uz.po [new file with mode: 0755]
vp-main/res/po/zh_CN.po [new file with mode: 0755]
vp-main/res/po/zh_HK.po [new file with mode: 0755]
vp-main/res/po/zh_TW.po [new file with mode: 0755]
vp-main/shared/res/org.tizen.video-player.png [new file with mode: 0755]
vp-main/src/serviceParser/vp-service-parser.c [new file with mode: 0755]
vp-main/src/vp-main.c [new file with mode: 0755]
vp-main/tizen-manifest.xml [new file with mode: 0755]

diff --git a/.cproject b/.cproject
new file mode 100755 (executable)
index 0000000..90c30bc
--- /dev/null
+++ b/.cproject
@@ -0,0 +1,904 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+       <storageModule moduleId="org.eclipse.cdt.core.settings">
+               <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.app.debug.794401490">
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.debug.794401490" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+                               <externalSettings/>
+                               <extensions>
+                                       <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+                                       <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                               </extensions>
+                       </storageModule>
+                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+                               <configuration artifactName="videos" buildArtefactType="org.tizen.nativecore.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.app,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.app.debug.794401490" name="Debug" parent="org.tizen.nativecore.config.sbi.gcc45.app.debug">
+                                       <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.debug.794401490." name="/" resourcePath="">
+                                               <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug.1778140973" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug">
+                                                       <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.813105786" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+                                                       <builder autoBuildTarget="all" buildPath="${workspace_loc:/EmptyApplicationVideo}/Debug" enableAutoBuild="true" id="org.tizen.nativecore.target.sbi.gnu.builder.1589695672" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecore.target.sbi.gnu.builder">
+                                                               <outputEntries>
+                                                                       <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Debug"/>
+                                                                       <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Release"/>
+                                                               </outputEntries>
+                                                       </builder>
+                                                       <tool command="i586-linux-gnueabi-ar" id="org.tizen.nativecore.tool.sbi.gnu.archiver.1480851794" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.1013008205" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+                                                               <option id="gnu.cpp.compiler.option.optimization.level.1309989376" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
+                                                               <option defaultValue="gnu.cpp.compiler.debugging.level.max" id="sbi.gnu.cpp.compiler.option.debugging.level.core.1317284915" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+                                                               <option id="sbi.gnu.cpp.compiler.option.487202842" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-4.0-emulator.core_llvm40.i386"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.1474561102" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/asp/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cbhm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/csr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/privacy-privilege-manager/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/SDL2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tef&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tzsh&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui-viewmgr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/vulkan&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/yaca&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.1332733846" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.compiler.option.include.paths.2014382998" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/vp-main/include/serviceParser}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/playview/src/widget/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/playview/src/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/common/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/common/src/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/include/feature}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/include/widget}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/vp-main/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/include/view}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/core/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/playview/src/view/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/playview/src/feature/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/playview/src/core/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/playview/src/common/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/playview/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/video-downloader/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/include/viewMgr}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/include/common}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/asp/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cbhm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/csr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/privacy-privilege-manager/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/SDL2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tef&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tzsh&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui-viewmgr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/vulkan&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/yaca&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks.core.1556939955" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.compiler.option.dialect.std.2017577179" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" value="gnu.cpp.compiler.dialect.default" valueType="enumerated"/>
+                                                               <option id="gnu.cpp.compiler.option.include.files.993445185" name="Include files (-include)" superClass="gnu.cpp.compiler.option.include.files"/>
+                                                               <option id="gnu.cpp.compiler.option.preprocessor.def.1351108041" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
+                                                                       <listOptionValue builtIn="false" value="url_download_h"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1660931316" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+                                                       </tool>
+                                                       <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.1434631769" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
+                                                               <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.1874308382" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+                                                               <option defaultValue="gnu.c.debugging.level.max" id="sbi.gnu.c.compiler.option.debugging.level.core.1538117391" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+                                                               <option id="sbi.gnu.c.compiler.option.770559758" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-4.0-emulator.core_llvm40.i386"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1785748868" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/asp/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cbhm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/csr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/privacy-privilege-manager/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/SDL2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tef&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tzsh&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui-viewmgr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/vulkan&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/yaca&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.1996540157" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </option>
+                                                               <option id="gnu.c.compiler.option.include.paths.1636425230" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/vp-main/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/playview/src/common/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/common/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/include/feature}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/include/widget}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/include/view}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/core/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/common/src/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/playview/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/video-downloader/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/vp-main/include/serviceParser}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/playview/src/widget/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/playview/src/view/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/playview/src/feature/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/playview/src/core/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/include/viewMgr}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/playview/src/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/include/common}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/asp/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cbhm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/csr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/privacy-privilege-manager/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/SDL2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tef&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tzsh&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui-viewmgr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/vulkan&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/yaca&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks.core.714320022" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <option id="gnu.c.compiler.option.dialect.std.103221605" name="Language standard" superClass="gnu.c.compiler.option.dialect.std" value="gnu.c.compiler.dialect.default" valueType="enumerated"/>
+                                                               <option id="gnu.c.compiler.option.preprocessor.def.symbols.1152268101" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
+                                                                       <listOptionValue builtIn="false" value="VS_FEATURE_THUMBNAIL_VIEW"/>
+                                                                       <listOptionValue builtIn="false" value="VS_FEATURE_FOLDER_VIEW"/>
+                                                                       <listOptionValue builtIn="false" value="SUBTITLE_K_FEATURE"/>
+                                                                       <listOptionValue builtIn="false" value="ENABLE_LANDSCAPE"/>
+                                                                       <listOptionValue builtIn="false" value="USE_SWITCH"/>
+                                                                       <listOptionValue builtIn="false" value="ENABLE_PERSONAL"/>
+                                                                       <listOptionValue builtIn="false" value="ENABLE_SUBTITLE"/>
+                                                                       <listOptionValue builtIn="false" value="ENABLE_VOLUME_BRIGHTNESS_POPUP"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.359547178" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1037564894" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.1807433761" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+                                                               <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.1164531992" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="-pie -lpthread "/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker -rpath=&quot;/home/developer/sdk_tools/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker --version-script=&quot;${PROJ_PATH}/.exportMap&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.link.option.paths.2072655144" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths"/>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.2015421244" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+                                                                       <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+                                                                       <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+                                                               </inputType>
+                                                       </tool>
+                                                       <tool command="i386-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.839822999" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+                                                               <option id="gnu.both.asm.option.include.paths.227858747" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/common/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/core/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/core/src/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/playview/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/video-downloader/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/include/common}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/include/feature}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/include/view}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/include/viewMgr}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/include/widget}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/playview/src/common/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/playview/src/common}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/playview/src/core/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/playview/src/feature/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/playview/src/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/playview/src/view/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/playview/src/widget/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/vp-main/include/serviceParser}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/vp-main/include}&quot;"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1846929239" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.387349296" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.40844714" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.1943887539" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.cpp.249629794" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.971472936" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.po.compiler.1826931387" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.563649007" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler">
+                                                               <option id="sbi.gnu.edc.compiler.option.misc.id.2105364854" name="Image Path (-id)" superClass="sbi.gnu.edc.compiler.option.misc.id" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}/edje/images&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/playview/res/edje/images}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/res/images}&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.edc.compiler.option.misc.sd.1432106389" name="Sound Path (-sd)" superClass="sbi.gnu.edc.compiler.option.misc.sd" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/res/edje}&quot;"/>
+                                                               </option>
+                                                       </tool>
+                                               </toolChain>
+                                       </folderInfo>
+                                       <fileInfo id="org.tizen.nativecore.config.sbi.gcc45.app.debug.794401490.1595288513" name="mp-video-streaming-ctrl.h" rcbsApplicability="disable" resourcePath="include/common/mp-video-streaming-ctrl.h" toolsToInvoke="">
+                                               <tool customBuildStep="true" id="org.eclipse.cdt.managedbuilder.ui.rcbs.1702264556" name="Resource Custom Build Step">
+                                                       <inputType id="org.eclipse.cdt.managedbuilder.ui.rcbs.inputtype.945557823" name="Resource Custom Build Step Input Type">
+                                                               <additionalInput kind="additionalinputdependency" paths=""/>
+                                                       </inputType>
+                                                       <outputType id="org.eclipse.cdt.managedbuilder.ui.rcbs.outputtype.1560228292" name="Resource Custom Build Step Output Type"/>
+                                               </tool>
+                                       </fileInfo>
+                                       <fileInfo id="org.tizen.nativecore.config.sbi.gcc45.app.debug.794401490.732771816" name="mp-video-url-downloader-ctrl.h" rcbsApplicability="disable" resourcePath="include/feature/mp-video-url-downloader-ctrl.h" toolsToInvoke="">
+                                               <tool customBuildStep="true" id="org.eclipse.cdt.managedbuilder.ui.rcbs.702841711" name="Resource Custom Build Step">
+                                                       <inputType id="org.eclipse.cdt.managedbuilder.ui.rcbs.inputtype.28487357" name="Resource Custom Build Step Input Type">
+                                                               <additionalInput kind="additionalinputdependency" paths=""/>
+                                                       </inputType>
+                                                       <outputType id="org.eclipse.cdt.managedbuilder.ui.rcbs.outputtype.374771922" name="Resource Custom Build Step Output Type"/>
+                                               </tool>
+                                       </fileInfo>
+                                       <sourceEntries>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="common"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="core"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="feature"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="include"/>
+                                               <entry excluding="res/edje/pv-macro.edc|res/edje/custom/pv-custom-button.edc|res/edje/custom/pv-custom-layout.edc|res/edje/custom/pv-custom-define.edc|res/edje/custom/pv-custom-image.edc|res/edje/custom/pv-custom-naviframe.edc|res/edje/pv-image.edc|res/edje/custom/pv-custom-gengrid-item.edc|res/edje/custom/pv-custom-genlist-item.edc|res/edje/custom/pv-custom-colorselector.edc|src/view/vp-play-multi-view.c" flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="playview"/>
+                                               <entry excluding="edje/vp_font.edc|edje/edje_image_macro.edc|edje/vp-detail-popup.edc|edje/vp-layout.edc|edje/vp-toolbar.edc|edje/vp-scroller-custom.edc|edje/vp-gengrid-custom.edc|edje/vp-button-white.edc|edje/vp-custom-genlist-miltiline.edc|edje/vp-nocontents.edc|edje/vp-numberinfo.edc|edje/vp-check.edc|edje/vp-ctxpopup.edc|edje/image_res.edc|edje/vp-entry-popup.edc|edje/vp-genlist-custom.edc|edje/vp-progressbar-list.edc|edje/vp-controlbar.edc|edje/vp-gengrid.edc" flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="res"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="shared"/>
+                                               <entry excluding="common/mp-video-streaming-ctrl.c|feature/mp-video-url-downloader-ctrl.c" flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="src"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="video-downloader"/>
+                                       </sourceEntries>
+                               </configuration>
+                       </storageModule>
+                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings">
+                               <externalSettings containerId="vp-main;" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
+                       </storageModule>
+               </cconfiguration>
+               <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.app.release.757821425">
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.release.757821425" moduleId="org.eclipse.cdt.core.settings" name="Release">
+                               <externalSettings/>
+                               <extensions>
+                                       <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+                                       <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                               </extensions>
+                       </storageModule>
+                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+                               <configuration artifactName="org.example.emptyapplicationvideo" buildArtefactType="org.tizen.nativecore.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.app,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.app.release.757821425" name="Release" parent="org.tizen.nativecore.config.sbi.gcc45.app.release">
+                                       <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.release.757821425." name="/" resourcePath="">
+                                               <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.release.46315082" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.app.release">
+                                                       <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.1193724915" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+                                                       <builder buildPath="${workspace_loc:/EmptyApplicationVideo}/Release" id="org.tizen.nativecore.target.sbi.gnu.builder.1664120366" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecore.target.sbi.gnu.builder"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.354389508" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.164121027" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+                                                               <option id="gnu.cpp.compiler.option.optimization.level.139843150" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
+                                                               <option defaultValue="gnu.cpp.compiler.debugging.level.default" id="sbi.gnu.cpp.compiler.option.debugging.level.core.642011071" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+                                                               <option id="sbi.gnu.cpp.compiler.option.1305952034" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-4.0-emulator.core_llvm40.i386"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.1890280358" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/asp/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cbhm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/csr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/privacy-privilege-manager/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/SDL2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tef&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tzsh&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui-viewmgr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/vulkan&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/yaca&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.1656086786" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.compiler.option.include.paths.894511737" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks.core.854425362" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.238294449" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+                                                       </tool>
+                                                       <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.561453928" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
+                                                               <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.option.optimization.level.1535734061" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+                                                               <option defaultValue="gnu.c.debugging.level.default" id="sbi.gnu.c.compiler.option.debugging.level.core.1840224540" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+                                                               <option id="sbi.gnu.c.compiler.option.823821768" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-4.0-emulator.core_llvm40.i386"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1052678929" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/asp/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cbhm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/csr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/privacy-privilege-manager/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/SDL2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tef&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tzsh&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui-viewmgr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/vulkan&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/yaca&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.491286643" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </option>
+                                                               <option id="gnu.c.compiler.option.include.paths.428573644" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks.core.157224826" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.167183975" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1420646843" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.990799314" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+                                                               <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.63760920" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="-pie -lpthread "/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker -rpath=&quot;/home/developer/sdk_tools/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker --version-script=&quot;${PROJ_PATH}/.exportMap&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.link.option.paths.1206011120" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib}&quot;"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1445765393" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+                                                                       <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+                                                                       <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+                                                               </inputType>
+                                                       </tool>
+                                                       <tool command="i386-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.833158527" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1975545154" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.384277850" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.233146425" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.1494595660" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.cpp.1333559599" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.324673152" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.po.compiler.543398286" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.1059753382" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler"/>
+                                               </toolChain>
+                                       </folderInfo>
+                                       <sourceEntries>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+                                       </sourceEntries>
+                               </configuration>
+                       </storageModule>
+                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+               </cconfiguration>
+       </storageModule>
+       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+               <project id="EmptyApplicationVideo.org.tizen.nativecore.target.sbi.gcc45.app.1170262511" name="Tizen Native Application" projectType="org.tizen.nativecore.target.sbi.gcc45.app"/>
+       </storageModule>
+       <storageModule moduleId="scannerConfiguration">
+               <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+               <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.app.debug.794401490">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+               </scannerConfigBuildInfo>
+               <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.app.release.757821425">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+               </scannerConfigBuildInfo>
+       </storageModule>
+       <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+       <storageModule moduleId="refreshScope" versionNumber="2">
+               <configuration configurationName="Release">
+                       <resource resourceType="PROJECT" workspacePath="/EmptyApplicationVideo"/>
+               </configuration>
+               <configuration configurationName="Debug">
+                       <resource resourceType="PROJECT" workspacePath="/EmptyApplicationVideo"/>
+               </configuration>
+       </storageModule>
+</cproject>
diff --git a/.exportMap b/.exportMap
new file mode 100755 (executable)
index 0000000..43e310e
--- /dev/null
@@ -0,0 +1,4 @@
+{
+       global: main;
+       local: *;
+};
diff --git a/.gitignore b/.gitignore
new file mode 100755 (executable)
index 0000000..65fa71e
--- /dev/null
@@ -0,0 +1,2 @@
+/Debug
+/SA_Report
diff --git a/.project b/.project
new file mode 100755 (executable)
index 0000000..2941eb1
--- /dev/null
+++ b/.project
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>video-player</name>
+       <comment></comment>
+       <projects>
+               <project>vp-main</project>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+                       <triggers>full,incremental,</triggers>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.cdt.core.cnature</nature>
+               <nature>org.eclipse.cdt.core.ccnature</nature>
+               <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+               <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+       </natures>
+       <filteredResources>
+               <filter>
+                       <id>1454059523477</id>
+                       <name></name>
+                       <type>26</type>
+                       <matcher>
+                               <id>org.eclipse.ui.ide.multiFilter</id>
+                               <arguments>1.0-projectRelativePath-matches-false-false-*/.tpk</arguments>
+                       </matcher>
+               </filter>
+               <filter>
+                       <id>1454059523500</id>
+                       <name></name>
+                       <type>6</type>
+                       <matcher>
+                               <id>org.eclipse.ui.ide.multiFilter</id>
+                               <arguments>1.0-name-matches-false-false-project_def.prop</arguments>
+                       </matcher>
+               </filter>
+       </filteredResources>
+</projectDescription>
diff --git a/.tproject b/.tproject
new file mode 100755 (executable)
index 0000000..c908cbe
--- /dev/null
+++ b/.tproject
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<tproject xmlns="http://www.tizen.org/tproject">
+    <platforms>
+        <platform>
+            <name>mobile-4.0</name>
+        </platform>
+    </platforms>
+    <package>
+        <blacklist/>
+        <resFallback autoGen="true"/>
+        <subProjects>
+            <tizenProject project="vp-main"/>
+        </subProjects>
+    </package>
+</tproject>
diff --git a/Build/appendix.mk b/Build/appendix.mk
new file mode 100755 (executable)
index 0000000..2e06c34
--- /dev/null
@@ -0,0 +1 @@
+# Appendix\r
diff --git a/Build/basedef.mk b/Build/basedef.mk
new file mode 100755 (executable)
index 0000000..a762983
--- /dev/null
@@ -0,0 +1,34 @@
+# Add inputs and outputs from these tool invocations to the build variables
+
+
+OS_NAME := $(shell $(UNAME))
+
+
+#ifeq ($(origin BUILD_CONFIG), undefined)
+BUILD_CONFIG ?= Debug
+#endif
+
+#ifeq ($(origin ARCH), undefined)
+ARCH ?= i386
+#endif
+
+#ifeq ($(origin PROJPATH), undefined)
+PROJPATH ?= .
+#endif
+
+
+#ifeq ($(origin PROJ_PATH), undefined)
+PROJ_PATH ?= $(PROJPATH)
+#endif
+
+#ifeq ($(strip $(OUTPUT_DIR)),)
+#OUTPUT_DIR ?= $(PROJ_PATH)/$(BUILD_CONFIG)
+#endif
+
+#ifeq ($(strip $(BUILD_ARCH)),)
+BUILD_ARCH ?= $(ARCH)
+#endif
+
+#ifeq ($(strip $(ENVENTOR_PATH)),)
+ENVENTOR_PATH ?= $(SDK_TOOLPATH)/enventor
+#endif
diff --git a/Build/build_c.mk b/Build/build_c.mk
new file mode 100755 (executable)
index 0000000..5fffeea
--- /dev/null
@@ -0,0 +1,113 @@
+# C/C++ build script
+
+
+_FUNC_EXT2O = $(patsubst %.$(3),$(1)/%.o,$(2))
+_FUNC_C2O = $(call _FUNC_EXT2O,$(1),$(2),c)
+_FUNC_CPP2O = $(call _FUNC_EXT2O,$(1),$(2),cpp)
+
+
+# parameter :
+#  $(1) - C/C++ soruce file
+#  $(2) - output path
+#  $(3) - .ext
+#  $(4) - unique id
+CONVERT_ESC_EXT_TO_O = $(addprefix $(2)/,$(notdir $(patsubst %.$(3),%-$(4).o,$(1))))
+
+#CONVERT_ESC_C_TO_O = $(call CONVERT_ESC_EXT_TO_O,$(1),$(2),c)
+#CONVERT_ESC_CPP_TO_O = $(call CONVERT_ESC_EXT_TO_O,$(1),$(2),cpp)
+
+
+# parameter :
+#  $(1) - encoded one C/C++ soruce file
+#  $(2) - output path
+#  $(3) - ext title (C/C++)
+#  $(4) - ext (c/cpp)
+#  $(5) - compiler ($(CC)/$(CXX))
+#  $(6) - build opt
+#  $(7) - build opt file
+# output :
+#  $(8) - output files list
+define C_BUILD_PROC_RAW
+$(call CONVERT_ESC_EXT_TO_O,$(1),$(2),$(4),$(8)) : $(call DECODE_4MAKE,$(1)) $(7)
+       @echo '  Building file: $$<'
+       @echo '  Invoking: $(3) Compiler'
+       $$(call MAKEDIRS,$$(@D))
+       $(5) -c "$$<" -o "$$@" $(6) -Wp,@$(7)
+       @echo '  Finished building: $$<'
+$(9) += $(call CONVERT_ESC_EXT_TO_O,$(1),$(2),$(4),$(8))
+endef
+
+
+# parameter :
+#  $(1) - output paths
+#  $(2) - src paths
+#  $(3) - inc paths
+#  $(4) - inc files
+#  $(5) - Defs
+#  $(6) - UnDefs
+#  $(7) - compiler opt
+#  $(8) - compiler opt file
+#  $(9) - ext title (C/C++)
+#  $(10) - ext (c/cpp)
+#  $(11) - compiler ($(CC)/$(CXX))
+# output :
+#  $(12) - OBJS
+# return :
+#  none
+define C_PROC_RAW
+
+_OUTPUT_DIR := $$(strip $(1))#
+_SRCS := $(2)#
+_INCS := $(3)#
+_INC_FILES := $(4)#
+_DEFS := $(5)#
+_UNDEFS := $(6)#
+
+_OPT := $(7)
+_OPT_FILE := $(8)
+
+_EXT_TITLE := $(9)
+_EXT := $(10)
+_COMPILER := $(11)
+
+#_OUTPUT_FILES := $(12)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_SRCS))
+_ENC_SRCS := $$(filter %.$$(_EXT),$$(_ENC_SRCS))
+
+ifneq ($$(strip $$(_SRCS)),)
+
+_NORMAL_SRCS := $$(filter-out %*.$$(_EXT),$$(_ENC_SRCS))
+_WIDLCARD_SRCS := $$(filter %*.$$(_EXT),$$(_ENC_SRCS))
+
+_ALL_SRCS := $$(call DECODE_4MAKE,$$(_NORMAL_SRCS)) \
+             $$(foreach var,$$(_WIDLCARD_SRCS),$$(call FIND_FILES_4MAKE,$$(call DECODE_4MAKE,$$(var))))
+
+ifneq ($$(strip $$(_ALL_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_ALL_SRCS))
+
+_CDEFS := $$(CDEFS)
+_CDEFS += $$(addprefix -D,$$(_DEFS))
+_CDEFS += $$(addprefix -U,$$(_UNDEFS))
+
+_ENC_C_INCS := $$(call ENCODE_4MAKE,$$(_INCS))
+_ENC_C_INCS := $$(addprefix -I,$$(_ENC_C_INCS))
+
+_ENC_INC_FILES := $$(call ENCODE_4MAKE,$$(_INC_FILES))
+_ENC_INC_FILES += $$(addprefix -include,$$(_ENC_INC_FILES))
+
+_C_INCS := $$(call DECODE_4MAKE,$$(_ENC_C_INCS) $$(_ENC_C_INC_FILES))
+
+_DEFS := $$(_CDEFS) $$(_C_INCS) -I"pch" $$(_OPT)
+
+_UNIQUE_ID = $$(firstword $$(shell echo $$(var) | $$(CKSUM)))
+
+$$(foreach var,$$(_ENC_SRCS),$$(eval $$(call C_BUILD_PROC_RAW,$$(var),$$(_OUTPUT_DIR),$$(_EXT_TITLE),$$(_EXT),$$(_COMPILER),$$(_DEFS),$$(_OPT_FILE),$$(_UNIQUE_ID),$(12))))
+
+endif  # (_(strip _(_ALL_SRCS)),)
+
+endif  # (_(strip _(_SRCS)),)
+
+
+endef
diff --git a/Build/build_edc.mk b/Build/build_edc.mk
new file mode 100755 (executable)
index 0000000..6f85fdd
--- /dev/null
@@ -0,0 +1,81 @@
+# EDC build script
+
+
+FUNC_EDC2EDJ = $(patsubst %.edc,$(2)/%.edj,$(1))
+
+# parameter :
+#  $(1) - C/C++ soruce file
+#  $(2) - output path
+CONVERT_ESC_EDC_TO_EDJ = $(call CONVERT_4MAKE_TO_OUT,$(call FUNC_EDC2EDJ,$(1),$(2)))
+
+
+# parameter :
+#  $(1) - encoded one C/C++ soruce file
+#  $(2) - output path
+#  $(3) - build opt
+# output :
+#  $(4) - output files list
+define EDJ_BUILD_PROC_RAW
+$(call CONVERT_ESC_EDC_TO_EDJ,$(1),$(2)) : $(call DECODE_4MAKE,$(1))
+       @echo '  Building file: $$<'
+       @echo '  Invoking: EDC Resource Compiler'
+       $$(call MAKEDIRS,$$(@D))
+       $$(EDJE_CC) $(3) "$$<" "$$@"
+       @echo '  Finished building: $$<'
+$(4) += $(call CONVERT_ESC_EDC_TO_EDJ,$(1),$(2))
+endef
+
+
+# parameter :
+#  $(1) - output paths
+#  $(2) - src paths
+#  $(3) - image inc paths
+#  $(4) - sound inc paths
+#  $(5) - font inc paths
+# output :
+#  $(6) - OBJS 
+# return :
+#  none
+define EDJ_PROC_RAW
+
+_OUTPUT_DIR := $$(strip $(1))#
+_SRCS := $(2)# 
+_IMAGE_DIRS := $(3)# 
+_SOUND_DIRS := $(4)# 
+_FONT_DIRS := $(5)# 
+
+ifneq ($$(strip $$(_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_SRCS)) 
+
+_NORMAL_SRCS := $$(filter-out %*.edc,$$(_ENC_SRCS))
+_WIDLCARD_SRCS := $$(filter %*.edc,$$(_ENC_SRCS))
+
+_ALL_SRCS := $$(call DECODE_4MAKE,$$(_NORMAL_SRCS)) \
+             $$(foreach var,$$(_WIDLCARD_SRCS),$$(call FIND_FILES_4MAKE,$$(call DECODE_4MAKE,$$(var))))
+
+ifneq ($$(strip $$(_ALL_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_ALL_SRCS)) 
+
+_COMPILER_FLAGS := -id "$$(ENVENTOR_SHARED_RES_PATH)/images"
+_COMPILER_FLAGS += -sd "$$(ENVENTOR_SHARED_RES_PATH)/sounds"
+_COMPILER_FLAGS += -fd "$$(ENVENTOR_SHARED_RES_PATH)/fonts"
+
+ifneq ($$(strip $$(_IMAGE_DIRS)),)
+_COMPILER_FLAGS += $$(addprefix -id ,$$(_IMAGE_DIRS))
+endif
+ifneq ($$(strip $$(_SOUND_DIRS)),)
+_COMPILER_FLAGS += $$(addprefix -sd ,$$(_SOUND_DIRS))
+endif
+ifneq ($$(strip $$(_FONT_DIRS)),)
+_COMPILER_FLAGS += $$(addprefix -fd ,$$(_FONT_DIRS))
+endif
+
+$$(foreach var,$$(_ENC_SRCS),$$(eval $$(call EDJ_BUILD_PROC_RAW,$$(var),$$(_OUTPUT_DIR),$$(_COMPILER_FLAGS),$(6))))
+
+endif  # (_(strip _(_ALL_SRCS)),)
+
+endif  # (_(strip _(_SRCS)),)
+
+endef
diff --git a/Build/build_po.mk b/Build/build_po.mk
new file mode 100755 (executable)
index 0000000..d88d71a
--- /dev/null
@@ -0,0 +1,64 @@
+# PO build script
+
+
+_FUNC_PO2MO = $(patsubst %.po,$(2)/res/locale/%/LC_MESSAGES/$(3).mo,$(notdir $(1)))
+
+
+# parameter :
+#  $(1) - C/C++ soruce file
+#  $(2) - output path
+#  $(3) - app name
+CONVERT_ESC_PO_TO_MO = $(call CONVERT_4MAKE_TO_OUT,$(call _FUNC_PO2MO,$(1),$(2),$(3)))
+
+
+# parameter :
+#  $(1) - encoded one C/C++ soruce file
+#  $(2) - output path
+#  $(3) - app name
+# output :
+#  $(4) - output files list
+define MO_BUILD_PROC_RAW
+$(call CONVERT_ESC_PO_TO_MO,$(1),$(2),$(3)) : $(call DECODE_4MAKE,$(1))
+       @echo '  Building file: $$<'
+       @echo '  Invoking: msgfmt String Formatter'
+       $$(call MAKEDIRS,$$(@D))
+       $$(MSGFMT) -o "$$@" "$$<"
+       @echo '  Finished building: $$<'
+$(4) += $(call CONVERT_ESC_PO_TO_MO,$(1),$(2),$(3))
+endef
+
+# parameter :
+#  $(1) - output dir
+#  $(2) - src paths
+#  $(3) - app name
+# output :
+#  $(4) - OBJS 
+
+define MO_PROC_RAW
+
+_OUTPUT_DIR := $(1)
+_SRCS := $(2)
+_APPNAME := $(3)
+
+ifneq ($$(strip $$(_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_SRCS)) 
+
+_NORMAL_SRCS := $$(filter-out %*.po,$$(_ENC_SRCS))
+_WIDLCARD_SRCS := $$(filter %*.po,$$(_ENC_SRCS))
+
+_ALL_SRCS := $$(call DECODE_4MAKE,$$(_NORMAL_SRCS)) \
+             $$(foreach var,$$(_WIDLCARD_SRCS),$$(call FIND_FILES_4MAKE,$$(call DECODE_4MAKE,$$(var))))
+
+ifneq ($$(strip $$(_ALL_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_ALL_SRCS)) 
+
+$$(foreach var,$$(_ENC_SRCS),$$(eval $$(call MO_BUILD_PROC_RAW,$$(var),$$(_OUTPUT_DIR),$$(_APPNAME),$(4))))
+
+endif  # (_(strip _(_ALL_SRCS)),)
+
+endif  # (_(strip _(_SRCS)),)
+
+endef
diff --git a/Build/flags.mk b/Build/flags.mk
new file mode 100755 (executable)
index 0000000..1f3c7f8
--- /dev/null
@@ -0,0 +1,16 @@
+
+DEBUG_OP = -g3 
+CPP_DEBUG_OP = 
+
+OPTIMIZATION_OP = -O0 
+CPP_OPTIMIZATION_OP = 
+
+COMPILE_FLAGS = $(DEBUG_OP) $(OPTIMIZATION_OP) -Wall -c -fmessage-length=0 -fPIC 
+
+CPP_COMPILE_FLAGS = $(CPP_DEBUG_OP) $(CPP_OPTIMIZATION_OP) 
+
+LINK_FLAGS = -shared -Wl,--no-undefined 
+
+AR_FLAGS = 
+
+EDC_COMPILE_FLAGS = 
\ No newline at end of file
diff --git a/Build/funcs.mk b/Build/funcs.mk
new file mode 100755 (executable)
index 0000000..3ba778b
--- /dev/null
@@ -0,0 +1,50 @@
+
+BSLASH := \\#
+NULL_CHAR := #
+SPACE := \ #
+COLON := :#
+DOTDOT := ..#
+SPACE_ESC := &sp;#
+COLON_ESC := &co;#
+SPACE_OUT := ~sp~#
+COLON_OUT := ~co~#
+DOTDOT_OUT := ~dtdt~#
+
+BSLASH2SLASH = $(subst $(BSLASH),/,$(1))
+
+REMOVE_TAIL = $(patsubst %/,%,$(1))
+
+#LOWER_CASE = $(shell echo translit($(1),[A-Z],[a-z])|$(M4))
+LOWER_CASE = $(shell echo $(1)|$(TR) [A-Z] [a-z])
+
+#ifneq ($(findstring Windows,$(OS)),)
+# ...
+#endif
+
+FIND_FILES = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///')
+FIND_FILES_ESC = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///' -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
+FIND_FILES_4MAKE = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///')
+
+FIND_FILES_ABS = $(shell $(FIND) $(1))
+FIND_FILES_ABS_4MAKE = $(shell $(FIND) $(1) -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
+FIND_FILES_ABS_ESC = $(shell $(FIND) $(1) -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
+
+FIND_FILES_4MAKE = $(shell $(FIND) $(1) | $(SED) 's/ /\\\ /g')
+
+#ENCODE_ESC = $(shell echo $(1) | $(SED) -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
+#DECODE_ESC = $(shell echo $(1) | $(SED) -e 's/$(BSLASH)&co;/:/g' -e 's/$(BSLASH)&sp;/$(BSLASH) / g')
+ENCODE_ESC = $(subst $(SPACE),$(SPACE_ESC),$(subst $(COLON),$(COLON_ESC),$(1)))
+DECODE_ESC = $(subst $(COLON_ESC),$(COLON),$(subst $(SPACE_ESC),$(SPACE),$(1)))
+ENCODE_4MAKE = $(subst $(SPACE),$(SPACE_ESC),$(1))
+DECODE_4MAKE = $(subst $(SPACE_ESC),$(SPACE),$(1))
+
+CONVERT_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON),$(COLON_OUT),$(subst $(SPACE),$(SPACE_OUT),$(1))))
+CONVERT_ESC_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON_ESC),$(COLON_OUT),$(subst $(SPACE_ESC),$(SPACE_OUT),$(1))))
+CONVERT_4MAKE_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON),$(COLON_OUT),$(subst $(SPACE_ESC),$(SPACE_OUT),$(1))))
+
+PROC_NO_EXIST = $(if $(wildcard $(1)),,$(call $(2),$(1)))
+define MAKEDIRS0
+       @echo '  Building directory: $(1)'
+       @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(1))
+endef
+MAKEDIRS = $(call PROC_NO_EXIST,$(1),MAKEDIRS0)
diff --git a/Build/makefile b/Build/makefile
new file mode 100755 (executable)
index 0000000..f491b50
--- /dev/null
@@ -0,0 +1,34 @@
+# 
+# Usege : make -f <proj_root>/Build/makefile -C <proj_root> 
+#
+BUILD_SCRIPT_VERSION := 1.1.0
+
+.PHONY : app_version app_build app_clean build_version
+
+
+all : app_build
+
+clean : app_clean
+
+version : build_version
+
+#PROJ_ROOT = .
+BUILD_ROOT := $(PROJ_PATH)/Build#
+
+ifeq ($(MAKE_NAME),mingw32-make)
+ifneq ($(SHELL),)
+OPTIONS += --eval="SHELL=$(SHELL)"
+endif
+endif
+
+app_build :
+       @echo $(MAKE) -f "$(BUILD_ROOT)/makefile.mk"
+       @$(MAKE_BIN) -f "$(BUILD_ROOT)/makefile.mk" -C "$(PROJ_PATH)" $(OPTIONS)
+
+app_clean :
+       @$(MAKE) -f "$(BUILD_ROOT)/makefile.mk" -C "$(PROJ_PATH)" $(OPTIONS) clean
+
+build_version :
+       @echo makefile : $(BUILD_SCRIPT_VERSION)
+       @$(MAKE) -f "$(BUILD_ROOT)/makefile.mk" -C "$(PROJ_PATH)" $(OPTIONS) version
diff --git a/Build/makefile.mk b/Build/makefile.mk
new file mode 100755 (executable)
index 0000000..205a3ad
--- /dev/null
@@ -0,0 +1,197 @@
+#
+# Usege : make -f <proj_root>/Build/makefile -C <proj_root>
+#
+
+BUILD_SCRIPT_VERSION := 1.2.3
+
+.PHONY : app_version app_clean build_version
+
+
+all : app_build
+
+clean : app_clean
+
+version : build_version
+
+
+#PROJ_ROOT := $(call BSLASH2SLASH,$(PROJ_PATH))
+PROJ_ROOT := .
+BUILD_ROOT := $(PROJ_ROOT)/Build
+
+include $(BUILD_ROOT)/basedef.mk
+
+include $(PROJ_ROOT)/project_def.prop
+-include $(PROJ_ROOT)/build_def.prop
+
+include $(BUILD_ROOT)/funcs.mk
+
+-include $(BUILD_ROOT)/tooldef.mk
+-include $(BUILD_ROOT)/flags.mk
+-include $(BUILD_ROOT)/platform.mk
+
+
+APPTYPE := $(type)
+
+OUTPUT_DIR := $(PROJ_ROOT)/$(BUILD_CONFIG)
+OBJ_OUTPUT := $(OUTPUT_DIR)/objs
+
+LOWER_APPNAME := $(call LOWER_CASE,$(APPNAME))
+APPID2 := $(subst $(basename $(APPID)).,,$(APPID))
+
+ifeq ($(strip $(APPTYPE)),app)
+APPFILE := $(OUTPUT_DIR)/$(LOWER_APPNAME)
+endif
+ifeq ($(strip $(APPTYPE)),staticLib)
+APPFILE := $(OUTPUT_DIR)/lib$(LOWER_APPNAME).a
+endif
+ifeq ($(strip $(APPTYPE)),sharedLib)
+APPFILE := $(OUTPUT_DIR)/lib$(LOWER_APPNAME).so
+endif
+
+ifneq ($(strip $(PLATFORM_INCS)),)
+PLATFORM_INCS_FILE := $(OBJ_OUTPUT)/platform_incs_file.inc
+endif
+
+include $(BUILD_ROOT)/build_c.mk
+
+
+ifeq ($(strip $(APPTYPE)),app)
+EXT_OP := -fPIE
+endif
+ifeq ($(strip $(APPTYPE)),staticLib)
+EXT_OP := -fPIE
+endif
+ifeq ($(strip $(APPTYPE)),sharedLib)
+EXT_OP := -fPIC
+endif
+
+C_OPT := $(COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) $(EXT_OP) --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) $(USER_C_OPTS)
+CPP_OPT := $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) $(EXT_OP) --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) $(USER_CPP_OPTS)
+C_OPT_FILE := $(PLATFORM_INCS_FILE)
+
+OBJS := #
+
+# Global C/C++
+ifeq ($(strip $(USER_ROOT)),)
+USER_ROOT := $(PROJ_ROOT)
+endif
+$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_SRCS),$(USER_INC_DIRS),$(USER_INC_FILES),$(USER_DEFS),$(USER_UNDEFS),$(C_OPT),$(C_OPT_FILE),C,c,$(CC),OBJS))
+$(foreach ext,cpp cxx cc c++ C,$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_SRCS),$(USER_INC_DIRS),$(USER_CPP_INC_FILES),$(USER_CPP_DEFS),$(USER_CPP_UNDEFS),$(CPP_OPT),$(C_OPT_FILE),C++,$(ext),$(CXX),OBJS)))
+
+# Individual C/C++
+ifneq ($(strip $(USER_EXT_C_KEYS)),)
+$(foreach var,$(USER_EXT_C_KEYS),$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_EXT_$(var)_SRCS),$(USER_EXT_$(var)_INC_DIRS),$(USER_EXT_$(var)_INC_FILES),$(USER_EXT_$(var)_DEFS),$(USER_EXT_$(var)_UNDEFS),$(C_OPT),$(C_OPT_FILE),C,c,$(CC),OBJS)))
+$(foreach ext,cpp cxx cc c++ C,$(foreach var,$(USER_EXT_C_KEYS),$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_EXT_$(var)_SRCS),$(USER_EXT_$(var)_INC_DIRS),$(USER_EXT_$(var)_CPP_INC_FILES),$(USER_EXT_$(var)_CPP_DEFS),$(USER_EXT_$(var)_CPP_UNDEFS),$(CPP_OPT),$(C_OPT_FILE),C++,$(ext),$(CXX),OBJS))))
+endif
+
+
+ifneq ($(strip $(USER_LIB_DIRS)),)
+_ENC_USER_LIB_DIRS := $(call ENCODE_4MAKE,$(USER_LIB_DIRS))
+_ENC_USER_LIB_DIRS := $(addprefix -L,$(_ENC_USER_LIB_DIRS))
+LIBPATHS := $(call DECODE_4MAKE,$(_ENC_USER_LIB_DIRS))
+endif
+
+LIBS += $(addprefix -l,$(USER_LIBS))
+
+UOBJS += $(USER_OBJS)
+
+M_OPT = -MMD -MP -MF"$(@:%.o=%.d)"
+
+DEPS := $(OBJS:.o=.d)
+
+ifneq ($(strip $(DEPS)),)
+-include $(PROJ_ROOT)/Build/$(DEPS)
+endif
+
+
+ifeq ($(strip $(APPTYPE)),app)
+$(APPFILE) : $(OBJS) $(UOBJS)
+       @echo '  Building target: $@'
+       @echo '  Invoking: C/C++ Linker'
+       $(call MAKEDIRS,$(@D))
+       $(CXX) -o $(APPFILE) $(OBJS) $(UOBJS) $(LIBPATHS) -Xlinker --as-needed $(LIBS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -pie -lpthread --sysroot="$(SYSROOT)" -Xlinker --version-script="$(PROJ_ROOT)/.exportMap" $(RS_LIB_PATHS) $(RS_LIBRARIES) -Xlinker -rpath="/opt/usr/apps/$(APPID)/lib" -Werror-implicit-function-declaration $(USER_LINK_OPTS)
+       @echo '  Finished building target: $@'
+endif
+ifeq ($(strip $(APPTYPE)),staticLib)
+$(APPFILE) : $(OBJS) $(UOBJS)
+       @echo '  Building target: $@'
+       @echo '  Invoking: Archive utility'
+       $(call MAKEDIRS,$(@D))
+       $(AR) -r $(APPFILE) $(OBJS) $(UOBJS) $(AR_FLAGS) $(USER_LINK_OPTS)
+       @echo '  Finished building target: $@'
+endif
+ifeq ($(strip $(APPTYPE)),sharedLib)
+$(APPFILE) : $(OBJS) $(UOBJS)
+       @echo '  Building target: $@'
+       @echo '  Invoking: C/C++ Linker'
+       $(call MAKEDIRS,$(@D))
+       $(CXX) -o $(APPFILE) $(OBJS) $(UOBJS) $(LIBPATHS) -Xlinker --as-needed $(LIBS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -shared -lpthread --sysroot="$(SYSROOT)" $(RS_LIB_PATHS) $(RS_LIBRARIES) $(USER_LINK_OPTS)
+       @echo '  Finished building target: $@'
+endif
+
+
+$(OBJ_OUTPUT) :
+       $(call MAKEDIRS,$@)
+
+$(OUTPUT_DIR) :
+       $(call MAKEDIRS,$@)
+
+
+ifneq ($(strip $(PLATFORM_INCS)),)
+$(PLATFORM_INCS_FILE) : $(OBJ_OUTPUT)
+       @echo '  Building inc file: $@'
+ifneq ($(findstring Windows,$(OS)),)
+ifneq ($(findstring 3.82,$(MAKE_VERSION)),)
+       $(file > $@,$(PLATFORM_INCS))
+else
+       @echo $(PLATFORM_INCS) > $@
+endif
+else
+       @echo $(PLATFORM_INCS) > $@
+endif
+endif
+
+
+include $(BUILD_ROOT)/build_edc.mk
+
+#ifeq ($(strip $(ENVENTOR_SHARED_RES_PATH)),)
+ENVENTOR_SHARED_RES_PATH ?= $(ENVENTOR_PATH)/share/enventor
+#endif
+
+EDJ_FILES :=
+
+# Global EDCs
+ifneq ($(strip $(USER_EDCS)),)
+$(eval $(call EDJ_PROC_RAW,$(OUTPUT_DIR),$(USER_EDCS),$(USER_EDCS_IMAGE_DIRS),$(USER_EDCS_SOUND_DIRS),$(USER_EDCS_FONT_DIRS),EDJ_FILES))
+endif
+
+# Individual EDCs
+ifneq ($(strip $(USER_EXT_EDC_KEYS)),)
+$(foreach var,$(USER_EXT_EDC_KEYS),$(eval $(call EDJ_PROC_RAW,$(OUTPUT_DIR),$(USER_EXT_$(var)_EDCS),$(USER_EXT_$(var)_EDCS_IMAGE_DIRS),$(USER_EXT_$(var)_EDCS_SOUND_DIRS),$(USER_EXT_$(var)_EDCS_FONT_DIRS),EDJ_FILES)))
+endif
+
+
+include $(BUILD_ROOT)/build_po.mk
+
+MO_FILES :=
+
+# Global POs
+ifneq ($(strip $(USER_POS)),)
+$(eval $(call MO_PROC_RAW,$(OUTPUT_DIR),$(USER_POS),$(APPID2),MO_FILES))
+endif
+
+
+secondary-outputs : $(EDJ_FILES) $(MO_FILES)
+
+-include appendix.mk
+
+app_build : $(OUTPUT_DIR) $(APPFILE) secondary-outputs
+       @echo ========= done =========
+
+
+app_clean :
+       rm -f $(APPFILE)
+       rm -rf $(OUTPUT_DIR)
+
+build_version :
+       @echo makefile.mk : $(BUILD_SCRIPT_VERSION)
diff --git a/Build/platform.mk b/Build/platform.mk
new file mode 100755 (executable)
index 0000000..294a38a
--- /dev/null
@@ -0,0 +1,15 @@
+# Add inputs and outputs from these tool invocations to the build variables
+
+SYSROOT = $(SBI_SYSROOT)
+
+USR_INCS := $(addprefix -I $(SYSROOT),$(PLATFORM_INCS_EX))
+
+ifeq ($(strip $(PLATFORM_LIB_PATHS)),)
+RS_LIB_PATHS := "$(SYSROOT)/usr/lib"
+else
+RS_LIB_PATHS := $(addprefix -L$(SYSROOT),$(PLATFORM_LIB_PATHS))
+endif
+
+RS_LIBRARIES := $(addprefix -l,$(RS_LIBRARIES_EX))
+
+PLATFORM_INCS = $(USR_INCS) -I"$(SDK_PATH)/library"
diff --git a/Build/tooldef.mk b/Build/tooldef.mk
new file mode 100755 (executable)
index 0000000..c62243c
--- /dev/null
@@ -0,0 +1,70 @@
+# Add inputs and outputs from these tool invocations to the build variables
+
+ifneq ($(strip $(SHELL_BIN)),)
+SHELL = $(SHELL_BIN)
+else
+SHELL = sh
+endif
+
+ifneq ($(strip $(MKDIR_BIN)),)
+MKDIR = $(MKDIR_BIN)
+MKDIR_OP = -p
+else
+MKDIR = mkdir
+MKDIR_OP = -p
+endif
+
+ifneq ($(strip $(UNAME_BIN)),)
+UNAME = $(UNAME_BIN)
+else
+UNAME = uname
+endif
+
+ifneq ($(strip $(M4_BIN)),)
+M4 = $(M4_BIN)
+else
+M4 = m4
+endif
+
+ifneq ($(strip $(TR_BIN)),)
+TR = $(TR_BIN)
+else
+TR = tr
+endif
+
+ifneq ($(strip $(FIND_BIN)),)
+FIND = $(FIND_BIN)
+else
+FIND = find
+endif
+
+ifneq ($(strip $(SED_BIN)),)
+SED = $(SED_BIN)
+else
+SED = sed
+endif
+
+ifneq ($(strip $(GREP_BIN)),)
+GREP = $(GREP_BIN)
+else
+GREP = grep
+endif
+
+ifneq ($(strip $(EDJE_CC_BIN)),)
+EDJE_CC = $(EDJE_CC_BIN)
+else
+EDJE_CC = edje_cc
+endif
+
+ifneq ($(strip $(MSGFMT_BIN)),)
+MSGFMT = $(MSGFMT_BIN)
+else
+MSGFMT = msgfmt
+endif
+
+ifneq ($(strip $(CKSUM_BIN)),)
+CKSUM = $(CKSUM_BIN)
+else
+CKSUM = cksum
+endif
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..5ace08a
--- /dev/null
@@ -0,0 +1,341 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(videos C CXX)
+
+EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE CMAKE_SYSTEM_VERSION)
+
+SET(SRCS
+src/video-player.c
+
+src/common/mp-util-media-service.c
+src/common/mp-video-info-ctrl.c
+src/common/mp-util.c
+src/common/mp-drm-ctrl.c
+src/common/mp-util-config.c
+src/common/mp-util-preference.c
+src/common/mp-video-util-db-controller.c
+src/common/mp-rotate-ctrl.c
+
+src/feature/mp-launching-video-displayer.c
+src/feature/mp-util-move.c
+
+src/widget/mp-external-ug.c
+src/widget/mp-video-list-option-ctrl.c
+src/widget/mp-video-view-popup-ctrl.c
+src/widget/mp-video-list-sort-ctrl.c
+src/widget/mp-util-widget-ctrl.c
+src/widget/mp-video-rename-ctrl.c
+src/widget/mp-video-list-view-as-ctrl.c
+src/widget/mp-video-list-auto-play-ctrl.c
+src/widget/mp-footer-toolbar.c
+src/widget/mp-video-nocontent-layout.c
+
+src/view/mp-library-view-mgr.c
+src/view/mp-video-list-view-main.c
+src/view/mp-video-list-view-common.c
+src/view/mp-video-list-view-normal.c
+src/view/mp-video-list-view-select.c
+src/view/mp-video-list-view-folder.c
+src/view/mp-video-list-view-item-of-folder.c
+src/view/mp-video-list-view-thumbnail.c
+src/view/mp-video-list-share-via-view.c
+src/view/mp-video-list-folder-share-via-view.c
+src/view/mp-video-list-remove-ctrl.c
+src/view/mp-video-search-view.c
+src/view/mp-video-detail-view.c
+src/view/mp-video-list-remove-view.c
+src/view/mp-video-list-personal-view.c
+src/view/mp-video-list-personal-ctrl.c
+src/viewMgr/videos-view-mgr.c
+)
+
+INCLUDE_DIRECTORIES(
+       ${CMAKE_SOURCE_DIR}/include
+       ${CMAKE_SOURCE_DIR}/include/common
+       ${CMAKE_SOURCE_DIR}/include/feature
+       ${CMAKE_SOURCE_DIR}/include/viewMgr
+       ${CMAKE_SOURCE_DIR}/include/widget
+       ${CMAKE_SOURCE_DIR}/include/view
+       ${CMAKE_SOURCE_DIR}/core/include
+       ${CMAKE_SOURCE_DIR}/videocam/include
+       ${CMAKE_SOURCE_DIR}/videocam/include
+
+       ${CMAKE_SOURCE_DIR}/video-downloader/include
+
+## [ MEDIA SERVICE] ###############################
+       ${CMAKE_SOURCE_DIR}/common/include
+       ${CMAKE_SOURCE_DIR}/core/include
+
+## [ Play View] ###############################
+       ${CMAKE_SOURCE_DIR}/playview/include
+)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs REQUIRED
+       elementary
+       capi-appfw-application
+       capi-system-system-settings
+       libxml-2.0
+       evas
+       edje
+       efreet-mime
+       capi-appfw-preference
+       capi-media-image-util
+       capi-media-metadata-extractor
+       capi-network-wifi-direct
+       capi-content-media-content
+       capi-web-url-download
+       capi-content-mime-type
+       capi-system-media-key
+       shortcut
+       storage
+       capi-system-sensor
+       notification
+       capi-system-runtime-info
+       capi-network-connection
+       appcore-efl
+       tapi
+       libcore-context-manager
+       capi-base-utils-i18n
+       efl-extension
+       capi-telephony
+       capi-appfw-preference
+       libtzplatform-config
+)
+
+FOREACH(flag ${pkgs_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -DMACHINE_$ENV{MACHINE}")
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC  -fvisibility=hidden")
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}  -fdata-sections -ffunction-sections -Wl,--gc-sections")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -Wall -g -fpie")
+SET(CMAKE_C_FLAGS_RELEASE "-O2 -Wall -g -fpie")
+SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Xassembler -W -fPIC")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie -Wl,-z,noexecstack")
+
+
+#SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+#SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -fvisibility=hidden")
+#SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fpie")
+#SET(CMAKE_C_FLAGS_RELEASE "-O2 -fpie")
+
+
+ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
+ADD_DEFINITIONS("-DFACTORYFS=\"$ENV{FACTORYFS}\"")
+ADD_DEFINITIONS("-D_LARGEFILE64_SOURCE")
+#ADD_DEFINITIONS("-D_FILE_OFFSET_BITS=\"\"64")
+
+IF(ENABLE_HW_BACK_KEY)
+ADD_DEFINITIONS("-D_ENABLE_HW_BACK_KEY")
+ENDIF(ENABLE_HW_BACK_KEY)
+
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(BINDIR "${PREFIX}/bin")
+SET(RESDIR "${PREFIX}/res")
+SET(LOCALEDIR "${RESDIR}/locale")
+SET(ICONDIR "${RESDIR}/icons/default/small")
+SET(EDJDIR "${RESDIR}/edje")
+SET(SHAREDRESDIR "${PREFIX}/shared/res")
+SET(SLP_LD_PATH_FLAGS -L${CMAKE_CURRENT_SOURCE_DIR}/src/ext)
+
+ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
+ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"")
+ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
+ADD_DEFINITIONS("-DICONDIR=\"${ICONDIR}\"")
+ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"")
+ADD_DEFINITIONS("-D_FILE_OFFSET_BITS=64")
+ADD_DEFINITIONS("-DUSE_SWITCH")
+#ADD_DEFINITIONS("-DUSE_DOWNLOAD_CODEC")
+ADD_DEFINITIONS("-DENABLE_LANDSCAPE")
+ADD_DEFINITIONS("-DENABLE_PERSONAL")
+ADD_DEFINITIONS("-DENABLE_SUBTITLE")
+ADD_DEFINITIONS("-DENABLE_NOTICE_POPUP")
+ADD_DEFINITIONS("-D_USE_OPENGL_BACKEND")
+ADD_DEFINITIONS("-DENABLE_EMBEDED_PROGRESS")
+ADD_DEFINITIONS("-DENABLE_S_BEAM")
+
+###    Define Features ###
+
+##     Videos  ##
+
+#      Video list view #
+#ADD_DEFINITIONS("-DVS_FEATURE_LIST_VIEW")
+ADD_DEFINITIONS("-DVS_FEATURE_THUMBNAIL_VIEW")
+ADD_DEFINITIONS("-DVS_FEATURE_FOLDER_VIEW")
+
+#      DRM FEATURE             #
+#ADD_DEFINITIONS("-DENABLE_DRM_FEATURE");
+
+IF("${ARCH}" STREQUAL "arm")
+       ADD_DEFINITIONS("-DTARGET")
+ENDIF("${ARCH}" STREQUAL "arm")
+
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
+SET(CMAKE_LDFLAGS "-Wl,-zdefs" )
+
+ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} ${gles_pkg_LDFLAGS} common playview core video-downloader -ldl)
+
+ADD_CUSTOM_TARGET(vp_font.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp_font.edc
+${CMAKE_BINARY_DIR}/res/edje/vp_font.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp_font.edc)
+
+ADD_CUSTOM_TARGET(image_res.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/image_res.edc
+${CMAKE_BINARY_DIR}/res/edje/image_res.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/image_res.edc)
+
+ADD_CUSTOM_TARGET(panel.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/panel.edc
+${CMAKE_BINARY_DIR}/res/edje/panel.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/panel.edc)
+
+ADD_CUSTOM_TARGET(vp-custom-winset-style.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images -sd ${CMAKE_SOURCE_DIR}/res/edje
+${CMAKE_SOURCE_DIR}/res/edje/vp-custom-winset-style.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-custom-winset-style.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-custom-winset-style.edc)
+
+ADD_CUSTOM_TARGET(popup_progressbar.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/popup_progressbar.edc
+${CMAKE_BINARY_DIR}/res/edje/popup_progressbar.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/popup_progressbar.edc)
+
+ADD_CUSTOM_TARGET(landscape_thumbnail.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/landscape_thumbnail.edc
+${CMAKE_BINARY_DIR}/res/edje/landscape_thumbnail.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/landscape_thumbnail.edc)
+
+ADD_CUSTOM_TARGET(vp-speedbox-popup.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-speedbox-popup.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-speedbox-popup.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-speedbox-popup.edc)
+
+ADD_CUSTOM_TARGET(vp-remove-list-internal.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-remove-list-internal.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-remove-list-internal.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-remove-list-internal.edc)
+
+ADD_CUSTOM_TARGET(vp-main-listview-internal.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-main-listview-internal.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-main-listview-internal.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-main-listview-internal.edc)
+
+ADD_CUSTOM_TARGET(vp-genlist-no-item.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-genlist-no-item.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-genlist-no-item.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-genlist-no-item.edc)
+
+ADD_CUSTOM_TARGET(vp-device-list-internal.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-device-list-internal.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-device-list-internal.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-device-list-internal.edc)
+
+ADD_CUSTOM_TARGET(vp-main-listview-preview.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images -sd ${CMAKE_SOURCE_DIR}/res/edje
+${CMAKE_SOURCE_DIR}/res/edje/vp-main-listview-preview.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-main-listview-preview.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-main-listview-preview.edc)
+
+ADD_CUSTOM_TARGET(vp-search-view-internal.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-search-view-internal.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-search-view-internal.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-search-view-internal.edc)
+
+ADD_CUSTOM_TARGET(vp-images.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-images.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-images.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-images.edc)
+
+ADD_CUSTOM_TARGET(vp-motion-popup.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-motion-popup.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-motion-popup.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-motion-popup.edc)
+
+ADD_CUSTOM_TARGET(vp-ctxpopup-option.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-ctxpopup-option.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-ctxpopup-option.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-ctxpopup-option.edc)
+
+ADD_CUSTOM_TARGET(vp-thumbnail-view.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images -sd ${CMAKE_SOURCE_DIR}/res/edje
+${CMAKE_SOURCE_DIR}/res/edje/vp-thumbnail-view.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-thumbnail-view.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-thumbnail-view.edc)
+
+ADD_CUSTOM_TARGET(vp-main-layout.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-main-layout.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-main-layout.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-main-layout.edc)
+
+ADD_CUSTOM_TARGET(vp-naviframe.edj COMMAND edje_cc -no-save -id ${CMAKE_SOURCE_DIR}/res/images
+${CMAKE_SOURCE_DIR}/res/edje/vp-naviframe.edc
+${CMAKE_BINARY_DIR}/res/edje/vp-naviframe.edj DEPENDS
+${CMAKE_SOURCE_DIR}/res/edje/vp-naviframe.edc)
+
+ADD_DEPENDENCIES(${PROJECT_NAME} vp_font.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} image_res.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} panel.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-custom-winset-style.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} popup_progressbar.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} landscape_thumbnail.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-speedbox-popup.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-remove-list-internal.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-main-listview-internal.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-genlist-no-item.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-device-list-internal.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-main-listview-preview.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-search-view-internal.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-images.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-motion-popup.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-ctxpopup-option.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-thumbnail-view.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-main-layout.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} vp-naviframe.edj)
+
+######################################
+# install desktop file & icon, edje  #
+######################################
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp_font.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/image_res.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/panel.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-custom-winset-style.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/popup_progressbar.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/landscape_thumbnail.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-speedbox-popup.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-remove-list-internal.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-main-listview-internal.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-genlist-no-item.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-device-list-internal.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-main-listview-preview.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-search-view-internal.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-images.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-motion-popup.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-ctxpopup-option.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-thumbnail-view.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-main-layout.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/edje/vp-naviframe.edj DESTINATION ${EDJDIR})
+
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/org.tizen.videos.xml DESTINATION ${CMAKE_APP_SHARE_PACKAGES_DIR})
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/res/shared/res/video.edc DESTINATION ${SHAREDRESDIR})
+
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/res/images/org.tizen.videos.png DESTINATION ${CMAKE_DESKTOP_ICON_DIR})
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/res/images/core_theme_bg_01.png DESTINATION ${RESDIR}/images)
+
+#video-downloader
+ADD_SUBDIRECTORY(video-downloader)
+
+ADD_SUBDIRECTORY(res/po)
+ADD_SUBDIRECTORY(common)
+ADD_SUBDIRECTORY(core)
+ADD_SUBDIRECTORY(playview)
+
+#chapter-svc
+#ADD_SUBDIRECTORY(chapter-svc)
+
+#video-player
+ADD_SUBDIRECTORY(vp-main)
diff --git a/LICENSE b/LICENSE
new file mode 100755 (executable)
index 0000000..47680a4
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,203 @@
+Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   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.
\ No newline at end of file
diff --git a/NOTICE b/NOTICE
new file mode 100755 (executable)
index 0000000..4649903
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,3 @@
+Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+Except as noted, this software is licensed under Apache License, Version 2.
+Please, see the LICENSE file for Apache License terms and conditions.
\ No newline at end of file
diff --git a/WORKSPACE b/WORKSPACE
new file mode 100755 (executable)
index 0000000..956ea2f
--- /dev/null
+++ b/WORKSPACE
@@ -0,0 +1,2 @@
+vp-main
+./
diff --git a/build_def.prop b/build_def.prop
new file mode 100755 (executable)
index 0000000..6bb5e2f
--- /dev/null
@@ -0,0 +1,6 @@
+
+# Add pre/post build process
+PREBUILD_DESC = 
+PREBUILD_COMMAND = 
+POSTBUILD_DESC = 
+POSTBUILD_COMMAND = 
diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..343ae85
--- /dev/null
@@ -0,0 +1,65 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(common C)
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(VERSION 0.1.0)
+
+SET(SRCS
+       src/vp-db-util.c
+       src/vp-preview-db.c
+       src/vp-thumb-db.c
+       src/vp-chapter-db.c
+       src/vp-media-content-util.c
+       src/vp-util.c
+       src/vp-file-util.c
+       src/vp-pinch-zoom.c
+)
+
+INCLUDE_DIRECTORIES(
+       include
+       src
+       src/include
+       src/uuid
+)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(${PROJECT_NAME}_pkgs REQUIRED
+       elementary
+       ecore
+       ecore-evas
+       edje
+       eina
+       evas
+       dlog
+       sqlite3
+       capi-content-media-content
+       storage
+)
+
+FOREACH(flag ${${PROJECT_NAME}_pkgs_CFLAGS})
+       SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS} -Wall")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_CXX_FLAGS}")
+
+ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
+
+ADD_LIBRARY(${PROJECT_NAME} STATIC ${SRCS})
+
+SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION} )
+SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${${PROJECT_NAME}_pkgs_LDFLAGS})
+
+
+#install resouce files.
+# Lack of a trailing slash means install this directory, trailing slash means
+# install everything in this directory.
+
+# Install image files.
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib)
+
+
+
diff --git a/common/include/vp-chapter-db.h b/common/include/vp-chapter-db.h
new file mode 100755 (executable)
index 0000000..e8de3cd
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+
+#pragma once
+
+
+#include <stdbool.h>
+#include <glib.h>
+
+typedef void *vp_chapter_db_h;
+
+
+typedef struct _ChapterDBItem {
+       int nIdx;
+       char *szChapterPath;
+       int nFileSize;
+} ChapterDBItem;
+
+#ifdef _cplusplus
+extern "C" {
+#endif
+
+
+       vp_chapter_db_h vp_chapter_db_create();
+       void vp_chapter_db_destroy(vp_chapter_db_h hChapterDB);
+       bool vp_chapter_db_set_media_id(vp_chapter_db_h hChapterDB,
+                                                                       const char *szMediaID);
+       bool vp_chapter_db_set_media_url(vp_chapter_db_h hChapterDB,
+                                                                        const char *szMediaURL);
+       bool vp_chapter_db_get_items(vp_chapter_db_h hChapterDB,
+                                                                GList ** pChapterList);
+       bool vp_chapter_db_get_all_items_media_id(vp_chapter_db_h hChapterDB,
+                                                                                         GList ** pChapterList);
+       bool vp_chapter_db_insert(vp_chapter_db_h hChapterDB,
+                                                         const char *szChapterPath, int nIdx);
+       bool vp_chapter_db_delete(vp_chapter_db_h hChapterDB);
+       bool vp_chapter_db_item_count(vp_chapter_db_h hChapterDB, int *nCount);
+       bool vp_chapter_db_item_free(ChapterDBItem * pItem);
+
+
+#ifdef _cplusplus
+}
+#endif
diff --git a/common/include/vp-debug.h b/common/include/vp-debug.h
new file mode 100755 (executable)
index 0000000..ad69ce6
--- /dev/null
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+
+#pragma once
+
+#include <dlog.h>
+#include <assert.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <linux/unistd.h>
+#include <stdbool.h>
+
+#ifdef _cplusplus
+extern "C" {
+#endif
+
+
+#ifdef LOG_TAG
+#undef LOG_TAG
+#endif
+
+
+#define LOG_TAG "VIDEO_PLAYER"
+
+#ifndef _USE_DLOG_
+#define _USE_DLOG_
+#endif
+
+/* anci c color type */
+#define FONT_COLOR_RESET    "\033[0m"
+#define FONT_COLOR_RED      "\033[31m"
+#define FONT_COLOR_GREEN    "\033[32m"
+#define FONT_COLOR_YELLOW   "\033[33m"
+#define FONT_COLOR_BLUE     "\033[34m"
+#define FONT_COLOR_PURPLE   "\033[35m"
+#define FONT_COLOR_CYAN     "\033[36m"
+#define FONT_COLOR_GRAY     "\033[37m"
+
+#ifdef _USE_LOG_FILE_
+       FILE *g_log_fp;
+#endif                                                 // _USE_LOG_FILE_
+
+#ifdef _USE_LOG_FILE_
+
+
+#elif defined _USE_DLOG_
+
+#define vp_dbg_tid(fmt, arg...)                dlog_print(DLOG_DEBUG, LOG_TAG, "[%s : %05d %lu]" fmt "\n", __func__, __LINE__, syscall(__NR_gettid), ##arg)
+#define vp_dbg(fmt, arg...)                    dlog_print(DLOG_DEBUG, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define vp_dbgW(fmt, arg...)           dlog_print(DLOG_INFO, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define vp_dbgE(fmt, arg...)           dlog_print(DLOG_ERROR, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+
+#define vp_sdbg(fmt, arg...)                   dlog_print(DLOG_DEBUG, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define vp_sdbg_tid(fmt, arg...)               dlog_print(DLOG_INFO, LOG_TAG, "[%s : %05d %lu]" fmt "\n", __func__, __LINE__, syscall(__NR_gettid), ##arg)
+#define vp_sdbgE(fmt, arg...)          dlog_print(DLOG_ERROR, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+
+
+#elif defined _USE_LOG_CONSOLE_
+
+
+#else
+
+#define vp_dbg(fmt, arg...)
+#define vp_dbgW(fmt, arg...)
+#define vp_dbgE(fmt, arg...)
+#endif
+
+
+#define vp_retm_if(expr, fmt, arg...) do { \
+       if (expr) { \
+               vp_dbgE(fmt, ##arg); \
+               vp_dbgE("(%s) -> %s() return", #expr, __FUNCTION__); \
+               return; \
+       } \
+} while (0)
+
+#define vp_retvm_if(expr, val, fmt, arg...) do { \
+       if (expr) { \
+               vp_dbgE(fmt, ##arg); \
+               vp_dbgE("(%s) -> %s() return", #expr, __FUNCTION__); \
+               return (val); \
+       } \
+} while (0)
+
+#define CHECK_EXCEP(expr) do { \
+       if (!(expr)) { \
+               vp_dbgE("Critical ERROR ########################################## Check below item.");\
+               goto EXCEPTION;\
+       } \
+} while (0)
+
+#define VP_CHECK_VAL(expr, val)                vp_retvm_if(!(expr), val, "Invalid parameter, return ERROR code!")
+#define VP_CHECK_NULL(expr)                    vp_retvm_if(!(expr), NULL, "Invalid parameter, return NULL!")
+#define VP_CHECK_FALSE(expr)                   vp_retvm_if(!(expr), false, "Invalid parameter, return FALSE!")
+#define VP_CHECK_CANCEL(expr)                  vp_retvm_if(!(expr), ECORE_CALLBACK_CANCEL, "Invalid parameter, return ECORE_CALLBACK_CANCEL!")
+#define VP_CHECK(expr)                                 vp_retm_if(!(expr), "Invalid parameter, return!")
+
+#define VP_START_FUNC()        dlog_print(DLOG_DEBUG, "*********************** [Func: %s] enter!! ********************* \n", __func__)
+#define VP_END_FUNC()          dlog_print(DLOG_DEBUG, "*********************** [Func: %s] leave!! ********************* \n", __func__)
+
+#ifdef _cplusplus
+}
+#endif
diff --git a/common/include/vp-file-util.h b/common/include/vp-file-util.h
new file mode 100755 (executable)
index 0000000..921a43c
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2020 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_FILE_UTIL_H__
+#define __VP_FILE_UTIL_H__
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <dirent.h>
+#include <Elementary.h>
+
+const char *vp_file_get(const char path[]);
+char *vp_dir_get(const char path[]);
+int vp_file_exists(const char *path);
+Eina_Bool vp_is_dir(const char *path);
+int vp_is_dir_empty(const char *path);
+int vp_mkdir(const char *dir);
+int vp_mkpath(const char *path);
+char *vp_strip_ext(const char *path);
+int vp_file_unlink(const char *filename);
+int vp_file_size(const char *filename);
+int vp_file_rmdir(const char *filename);
+Eina_List *vp_file_ls(const char *dir);
+int vp_file_recursive_rm(const char *dir);
+int vp_file_cp(const char *src, const char *dst);
+int vp_file_mv(const char *src, const char *dst);
+
+#endif                                                 //__VP_FILE_UTIL_H__
diff --git a/common/include/vp-macro.h b/common/include/vp-macro.h
new file mode 100755 (executable)
index 0000000..0e45f69
--- /dev/null
@@ -0,0 +1,135 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif                                                 /*  __cplusplus */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <limits.h>
+#include <errno.h>
+#include <assert.h>
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#define _EDJ(o)                                elm_layout_edje_get(o)
+#define VP_SCALE                       elm_config_scale_get()
+
+#define VP_MAX_HEAP_SIZE               5*1024*1024     /*Malloc more than this will not be allowd */
+
+#define VP_ASSERT(scalar_exp)   \
+       assert(scalar_exp);     \
+
+
+#define VP_CALLOC(ptr, no_elements, type)       \
+       do { \
+               if ((int)(no_elements) <= 0) { \
+                       ptr = NULL; \
+               } \
+               else if (VP_MAX_HEAP_SIZE < no_elements * sizeof(type)) { \
+                       assert(0); \
+               } \
+               else {\
+                       ptr = (type *) calloc(no_elements , sizeof(type)); \
+                       VP_ASSERT(ptr);          \
+               } \
+       } while (0);
+
+#define VP_SNPRINTF(dest, size, format, arg...)        \
+               do { \
+                       if (dest != NULL && format != NULL)     { \
+                               snprintf(dest, size, format, ##arg); \
+                       }       \
+               } while (0);
+
+       /* If the same pointer is passed to free twice, known as a double free.
+          To avoid this, set pointers to NULL after passing    them to free:
+          free(NULL) is safe (it does nothing). */
+
+#define VP_FREE(ptr)   \
+               do { \
+                       if (ptr != NULL) {\
+                               free(ptr);      \
+                               ptr = NULL;     \
+                       }       \
+               } while (0);
+
+#define VP_STRNCPY(dest, src, size)    \
+               do { \
+                       if (src != NULL && dest != NULL && size > 0) {\
+                               strncpy(dest, src, size); \
+                       }       \
+               } while (0);
+       /*
+        * string wrappers
+        */
+#define VP_STRDUP(destptr, sourceptr)\
+               do {\
+                       if (sourceptr == NULL)\
+                               destptr = NULL; \
+                       else \
+                               destptr = strdup(sourceptr); \
+               } while (0);
+
+
+
+#define VP_EVAS_DEL(evas_obj)  \
+               do { \
+                       if (evas_obj != NULL) {\
+                               evas_object_del(evas_obj); \
+                               evas_obj = NULL; \
+                       } \
+               } while (0);
+
+#define VP_EVAS_TIMER_DEL(evas_obj)    \
+               do { \
+                       if (evas_obj != NULL) {\
+                               ecore_timer_del(evas_obj); \
+                               evas_obj = NULL; \
+                       } \
+               } while (0);
+
+#define VP_EVAS_IDLER_DEL(evas_obj)    \
+               do { \
+                       if (evas_obj != NULL) {\
+                               ecore_idler_del(evas_obj); \
+                               evas_obj = NULL; \
+                       } \
+               } while (0);
+
+
+#define VP_EVAS_EVENT_HANDLER_DEL(evas_obj)    \
+               do { \
+                       if (evas_obj != NULL) {\
+                               ecore_event_handler_del(evas_obj); \
+                               evas_obj = NULL; \
+                       } \
+               } while (0);
+
+#ifdef __cplusplus
+}
+#endif                                                 /*  __cplusplus */
diff --git a/common/include/vp-media-content-util.h b/common/include/vp-media-content-util.h
new file mode 100755 (executable)
index 0000000..0c13a63
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#pragma once
+
+#include <stdbool.h>
+
+bool vp_media_content_util_get_video_id(const char *szFilePath,
+                                                                               char **szVideoID);
+bool vp_media_content_util_get_first_video(char **szFilePath);
diff --git a/common/include/vp-pinch-zoom.h b/common/include/vp-pinch-zoom.h
new file mode 100755 (executable)
index 0000000..1f47924
--- /dev/null
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 2020 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 <app.h>
+#include <glib.h>
+#include <unistd.h>
+#include <stdbool.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include "mp-util-media-service.h"
+#include "mp-video-log.h"
+#include "mp-util.h"
+#include "mp-video-list-view-thumbnail.h"
+
+typedef struct _vp_gesture_t vp_gesture_s;
+typedef struct _vp_pinch_event_t vp_pinch_event_s;
+typedef enum _vp_pinch_plan_t vp_pinch_plan_e;
+typedef Eina_Bool(*vp_gesture_cb) (Evas_Object * gesture, void *data);
+
+struct _vp_gesture_t {
+       st_VideoListViewMainViewWidget *ad;
+       Evas_Object *parent;
+       Evas_Object *gesture;
+       vp_gesture_cb zoom_in_cb;
+       vp_gesture_cb zoom_out_cb;
+       void *zoom_in_data;
+       void *zoom_out_data;
+
+       int dis_old;
+       int pinch_dis_old;
+       Eina_List *s_event_elist;
+       Ecore_Job *pinch_job;
+       int next_plan;
+};
+
+struct _vp_pinch_event_t {
+       int device;
+
+       struct vp_prev {
+               Evas_Coord x;
+               Evas_Coord y;
+       } prev;
+
+       Evas_Coord x;
+       Evas_Coord y;
+       Evas_Coord w;
+       Evas_Coord h;
+       Evas_Object *object;
+       Ecore_Timer *hold_timer;
+       int ts;                                         /* Time stamp to calculate whether scrolling or moving */
+       int v;                                          /* Velocity */
+       int pinch_dis;
+       Evas_Object *pinch_obj;         /* Object between thumb and index */
+       Evas_Object *test;                      /* To see dis center */
+};
+
+enum _vp_pinch_plan_t {
+       VP_PINCH_PLAN_NONE,
+       VP_PINCH_PLAN_OUT,
+       VP_PINCH_PLAN_IN,
+       VP_PINCH_PLAN_MAX
+};
+
+typedef enum _vp_zoom_mode {
+       VP_ZOOM_NONE,
+       VP_ZOOM_IN_DEFAULT,
+       VP_ZOOM_IN_MAX,
+} vp_zoom_mode;
+
+#define VP_IF_DEL_TIMER(timer) \
+       do { \
+               if (timer != NULL) { \
+                       ecore_timer_del(timer); \
+                       timer = NULL; \
+               } \
+       } while (0)
+
+#define VP_FREE(ptr) \
+       do { \
+               free(ptr); \
+               ptr = NULL; \
+       } while (0)
+
+#define VP_IF_DEL_JOB(job) \
+       do { \
+               if (job != NULL) { \
+                       ecore_job_del(job); \
+                       job = NULL; \
+               } \
+       } while (0)
+
+#define VP_PINCH_TOUCH_HOLD_RANGE 80
+#define VP_PINCH_TOUCH_FACTOR 4
+#define VP_PINCH_HOLD_TIME_DELAY 0.35f
+#define VP_GESTURE_KEY_DATA "gesture_data"
+
+int _vp_gesture_set_zoom_in_cb(Evas_Object * gesture, vp_gesture_cb cb,
+                                                          void *data);
+int _vp_gesture_set_zoom_out_cb(Evas_Object * gesture, vp_gesture_cb cb,
+                                                               void *data);
+int _vp_pinch_add_event(void *data, Evas_Object * layout);
+Eina_Bool __vp_pinch_zoom_out_cb(Evas_Object * gesture, void *data);
+Eina_Bool __vp_pinch_zoom_in_cb(Evas_Object * gesture, void *data);
diff --git a/common/include/vp-preview-db.h b/common/include/vp-preview-db.h
new file mode 100755 (executable)
index 0000000..579ceed
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+
+#pragma once
+
+
+#include <stdbool.h>
+#include <glib.h>
+
+typedef void *vp_preview_db_h;
+
+
+#ifdef _cplusplus
+extern "C" {
+#endif
+
+       vp_preview_db_h vp_preview_db_create();
+       void vp_preview_db_destroy(vp_preview_db_h hPreviewDB);
+       bool vp_preview_db_set_media_id(vp_preview_db_h hPreviewDB,
+                                                                       const char *szMediaURL);
+       bool vp_preview_db_set_media_url(vp_preview_db_h hPreviewDB,
+                                                                        const char *szMediaURL);
+       bool vp_preview_db_get_file_path(vp_preview_db_h hPreviewDB,
+                                                                        char **szFilePath);
+       bool vp_preview_db_get_file_size(vp_preview_db_h hPreviewDB,
+                                                                        int *nFileSize);
+       bool vp_preview_db_item_count(vp_preview_db_h hPreviewDB, int *nCount);
+       bool vp_preview_db_get_all_items_media_id(vp_preview_db_h hPreviewDB,
+                                                                                         GList ** pPreviewList);
+       bool vp_preview_db_insert(vp_preview_db_h hPreviewDB,
+                                                         const char *szPreviewPath);
+       bool vp_preview_db_delete(vp_preview_db_h hPreviewDB);
+
+
+#ifdef _cplusplus
+}
+#endif
diff --git a/common/include/vp-thumb-db.h b/common/include/vp-thumb-db.h
new file mode 100755 (executable)
index 0000000..1a9f619
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+
+#pragma once
+
+
+#include <stdbool.h>
+#include <glib.h>
+
+typedef void *vp_thumb_db_h;
+
+
+typedef struct _ThumbDBItem {
+       int nIdx;
+       char *szThumbPath;
+       int nFileSize;
+} ThumbDBItem;
+
+#ifdef _cplusplus
+extern "C" {
+#endif
+
+
+       vp_thumb_db_h vp_thumb_db_create();
+       void vp_thumb_db_destroy(vp_thumb_db_h hThumbDB);
+       bool vp_thumb_db_set_media_id(vp_thumb_db_h hThumbDB,
+                                                                 const char *szMediaID);
+       bool vp_thumb_db_set_media_url(vp_thumb_db_h hThumbDB,
+                                                                  const char *szMediaURL);
+       bool vp_thumb_db_get_items(vp_thumb_db_h hThumbDB,
+                                                          GList ** pThumbList);
+       bool vp_thumb_db_get_all_items_media_id(vp_thumb_db_h hThumbDB,
+                                                                                       GList ** pThumbList);
+       bool vp_thumb_db_insert(vp_thumb_db_h hThumbDB,
+                                                       const char *szThumbPath, int nIdx);
+       bool vp_thumb_db_delete(vp_thumb_db_h hThumbDB);
+       bool vp_thumb_db_item_count(vp_thumb_db_h hThumbDB, int *nCount);
+       bool vp_thumb_db_item_free(ThumbDBItem * pItem);
+
+
+#ifdef _cplusplus
+}
+#endif
diff --git a/common/include/vp-util.h b/common/include/vp-util.h
new file mode 100755 (executable)
index 0000000..f464e57
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+#include <image_util_type.h>
+
+char *vp_util_convert_file_location(const char *szFileLocation);
+int vp_util_image_rotate(unsigned char *dest, int *dest_width,
+                                                int *dest_height,
+                                                const image_util_rotation_e dest_rotation,
+                                                const unsigned char *src, const int src_w,
+                                                const int src_h,
+                                                const image_util_colorspace_e colorspace);
+int vp_util_image_resize(unsigned char *dest, const int *dest_width,
+                                                const int *dest_height, const unsigned char *src,
+                                                const int src_w, const int src_h,
+                                                const image_util_colorspace_e colorspace);
+void vp_util_lock_cpu();
+void vp_util_release_cpu();
diff --git a/common/src/include/vp-db-common.h b/common/src/include/vp-db-common.h
new file mode 100755 (executable)
index 0000000..e713e70
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <Ecore.h>
+#include <Elementary.h>
+#include <media_content.h>
+
+
+#include "vp-debug.h"
+#include "vp-macro.h"
diff --git a/common/src/include/vp-db-util.h b/common/src/include/vp-db-util.h
new file mode 100755 (executable)
index 0000000..9c4abc5
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#pragma once
+
+#include <sqlite3.h>
+#include <stdbool.h>
+
+bool vp_db_util_connect();
+void vp_db_util_disconnect();
+bool vp_db_util_is_connect();
+bool vp_db_util_query_prepare(char *szQuery, sqlite3_stmt ** stmt);
diff --git a/common/src/vp-chapter-db.c b/common/src/vp-chapter-db.c
new file mode 100755 (executable)
index 0000000..4c30173
--- /dev/null
@@ -0,0 +1,530 @@
+/*
+ * Copyright (c) 2020 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 "vp-db-common.h"
+#include "vp-db-util.h"
+
+#include "vp-media-content-util.h"
+
+#include "vp-chapter-db.h"
+#include "vp-file-util.h"
+
+#define CHAPTER_DB_INSERT_QUERY                "INSERT INTO video_chapter (chapter_idx, file_path, file_size, media_id) VALUES ( %d, '%q', %d, '%q')"
+#define CHAPTER_DB_DELETE_QUERY                "DELETE FROM video_chapter where media_id = '%q'"
+#define CHAPTER_DB_SELECT_QUERY                "select chapter_uuid, chapter_idx, file_path, file_size, media_id from video_chapter where media_id = '%q'"
+#define CHAPTER_DB_COUNT_QUERY         "select count(*) from video_chapter where media_id = '%q'"
+#define CHAPTER_DB_ALL_ITEM_QUERY      "select DISTINCT(media_id) from video_chapter"
+
+typedef struct _ChapterDB {
+       char *szMediaURL;
+       char *szMediaID;
+       char *szFilePath;
+       int nFileSize;
+       int nTotalCount;
+} ChapterDB;
+
+
+static void _vp_chapter_db_destory_handle(ChapterDB * pChapterDB);
+
+
+/* callback functions */
+
+/* internal functions */
+/**
+ *
+ * @param pChapterDB
+ */
+static void _vp_chapter_db_destory_handle(ChapterDB * pChapterDB)
+{
+       if (pChapterDB == NULL) {
+               vp_dbgE("pChapterDB is NULL");
+               return;
+       }
+
+       VP_FREE(pChapterDB->szMediaURL);
+       VP_FREE(pChapterDB->szMediaID);
+       VP_FREE(pChapterDB->szFilePath);
+
+       VP_FREE(pChapterDB);
+}
+
+/**
+ *
+ * @param szMediaID
+ * @param nCount
+ * @return
+ */
+static bool _vp_chapter_db_get_count(char *szMediaID, int *nCount)
+{
+       if (szMediaID == NULL) {
+               vp_dbgE("szMediaID is NULL");
+               return FALSE;
+       }
+       char *szSql = sqlite3_mprintf(CHAPTER_DB_COUNT_QUERY, szMediaID);
+       sqlite3_stmt *stmt = NULL;
+
+       if (!vp_db_util_query_prepare(szSql, &stmt)) {
+               if (szSql) {
+                       sqlite3_free(szSql);
+                       szSql = NULL;
+               }
+               return FALSE;
+       }
+
+       int nRet = 0;
+       nRet = sqlite3_step(stmt);
+       if (nRet == SQLITE_ROW) {
+               *nCount = (int) sqlite3_column_int(stmt, 0);
+               vp_dbgW("Get Chapter Count : %d", *nCount);
+       }
+
+       //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       //}
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szMediaID
+ * @return
+ */
+static bool _vp_chapter_db_delete_items(char *szMediaID)
+{
+       if (szMediaID == NULL) {
+               vp_dbgE("szMediaID is NULL");
+               return FALSE;
+       }
+
+       char *szSql = sqlite3_mprintf(CHAPTER_DB_SELECT_QUERY, szMediaID);
+       sqlite3_stmt *stmt = NULL;
+
+       if (!vp_db_util_query_prepare(szSql, &stmt)) {
+               if (szSql) {
+                       sqlite3_free(szSql);
+                       szSql = NULL;
+               }
+               return FALSE;
+       }
+
+       int nRet = 0;
+       nRet = sqlite3_step(stmt);
+       while (nRet == SQLITE_ROW) {
+               char *szFileName = (char *) sqlite3_column_text(stmt, 2);
+
+               if (vp_file_exists(szFileName)) {
+                       vp_file_unlink(szFileName);
+               }
+
+               nRet = sqlite3_step(stmt);
+       }
+
+       //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       //}
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+
+
+/* external functions */
+/**
+ *
+ * @return
+ */
+vp_chapter_db_h vp_chapter_db_create()
+{
+       ChapterDB *pChapterDB = calloc(1, sizeof(ChapterDB));
+
+       if (pChapterDB == NULL) {
+               vp_dbgE("pChapterDB alloc is fail");
+               return NULL;
+       }
+
+       if (!vp_db_util_connect()) {
+               vp_dbgE("Database connect is fail");
+               _vp_chapter_db_destory_handle(pChapterDB);
+               return NULL;
+       }
+
+       return (vp_chapter_db_h) pChapterDB;
+}
+
+/**
+ *
+ * @param hChapterDB
+ */
+void vp_chapter_db_destroy(vp_chapter_db_h hChapterDB)
+{
+       if (hChapterDB == NULL) {
+               vp_dbgE("hChapterDB is NULL");
+               return;
+       }
+
+       vp_db_util_disconnect();
+
+       ChapterDB *pChapterDB = (ChapterDB *) hChapterDB;
+
+       _vp_chapter_db_destory_handle(pChapterDB);
+}
+
+/**
+ *
+ * @param hChapterDB
+ * @param szMediaID
+ * @return
+ */
+bool vp_chapter_db_set_media_id(vp_chapter_db_h hChapterDB,
+                                                               const char *szMediaID)
+{
+       if (hChapterDB == NULL) {
+               vp_dbgE("hChapterDB is NULL");
+               return FALSE;
+       }
+
+       if (szMediaID == NULL) {
+               vp_dbgE("szMediaID is NULL");
+               return FALSE;
+       }
+
+       ChapterDB *pChapterDB = (ChapterDB *) hChapterDB;
+
+       VP_FREE(pChapterDB->szMediaID);
+
+       VP_STRDUP(pChapterDB->szMediaID, szMediaID);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param hChapterDB
+ * @param szMediaURL
+ * @return
+ */
+bool vp_chapter_db_set_media_url(vp_chapter_db_h hChapterDB,
+                                                                const char *szMediaURL)
+{
+       if (hChapterDB == NULL) {
+               vp_dbgE("hChapterDB is NULL");
+               return FALSE;
+       }
+
+       if (szMediaURL == NULL) {
+               vp_dbgE("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       ChapterDB *pChapterDB = (ChapterDB *) hChapterDB;
+
+       VP_FREE(pChapterDB->szMediaURL);
+       VP_FREE(pChapterDB->szMediaID);
+
+       VP_STRDUP(pChapterDB->szMediaURL, szMediaURL);
+
+       if (!vp_media_content_util_get_video_id
+               (szMediaURL, &(pChapterDB->szMediaID))) {
+               vp_dbgE("vp_media_content_util_get_video_id is fail");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param hChapterDB
+ * @param pChapterList
+ * @return
+ */
+bool vp_chapter_db_get_items(vp_chapter_db_h hChapterDB,
+                                                        GList ** pChapterList)
+{
+       if (hChapterDB == NULL) {
+               vp_dbgE("hChapterDB is NULL");
+               return FALSE;
+       }
+
+       ChapterDB *pChapterDB = (ChapterDB *) hChapterDB;
+
+       if (pChapterDB->szMediaID == NULL) {
+               vp_dbgE("szMediaID is NULL");
+               return FALSE;
+       }
+
+       char *szSql =
+               sqlite3_mprintf(CHAPTER_DB_SELECT_QUERY, pChapterDB->szMediaID);
+       sqlite3_stmt *stmt = NULL;
+
+       if (!vp_db_util_query_prepare(szSql, &stmt)) {
+               if (szSql) {
+                       sqlite3_free(szSql);
+                       szSql = NULL;
+               }
+               return FALSE;
+       }
+
+       int nRet = 0;
+       nRet = sqlite3_step(stmt);
+       while (nRet == SQLITE_ROW) {
+               /* chapter_uuid, chapter_idx, file_path, file_size, media_id */
+               ChapterDBItem *pItem = calloc(1, sizeof(ChapterDBItem));
+               if (!pItem) {
+                       vp_dbgE("allocation failed");
+                       return FALSE;
+               }
+               vp_sdbg("UUID : %d", (int) sqlite3_column_int(stmt, 0));
+               vp_sdbg("CHAPTER_IDX : %d", (int) sqlite3_column_int(stmt, 1));
+               vp_sdbg("FILE_PATH : %s", (char *) sqlite3_column_text(stmt, 2));
+               vp_sdbg("FILE_SIZE : %d", (int) sqlite3_column_int(stmt, 3));
+               vp_sdbg("MEDIA_ID : %s", (char *) sqlite3_column_text(stmt, 4));
+
+               pItem->nIdx = (int) sqlite3_column_int(stmt, 1);
+               VP_STRDUP(pItem->szChapterPath,
+                                 (char *) sqlite3_column_text(stmt, 2));
+               pItem->nFileSize = (int) sqlite3_column_int(stmt, 3);
+
+               *pChapterList = g_list_append(*pChapterList, pItem);
+
+               nRet = sqlite3_step(stmt);
+       }
+
+       //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       //}
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param hChapterDB
+ * @param pChapterList
+ * @return
+ */
+bool vp_chapter_db_get_all_items_media_id(vp_chapter_db_h hChapterDB,
+                                                                                 GList ** pChapterList)
+{
+       if (hChapterDB == NULL) {
+               vp_dbgE("hChapterDB is NULL");
+               return FALSE;
+       }
+
+       char *szSql = sqlite3_mprintf(CHAPTER_DB_ALL_ITEM_QUERY);
+       sqlite3_stmt *stmt = NULL;
+
+       if (!vp_db_util_query_prepare(szSql, &stmt)) {
+               if (szSql) {
+                       sqlite3_free(szSql);
+                       szSql = NULL;
+               }
+               return FALSE;
+       }
+
+       int nRet = 0;
+       nRet = sqlite3_step(stmt);
+       while (nRet == SQLITE_ROW) {
+               char *szMediaID = NULL;
+
+               VP_STRDUP(szMediaID, (char *) sqlite3_column_text(stmt, 0));
+
+               *pChapterList = g_list_append(*pChapterList, szMediaID);
+
+               nRet = sqlite3_step(stmt);
+       }
+
+       //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       //}
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param hChapterDB
+ * @param szChapterPath
+ * @param nIdx
+ * @return
+ */
+bool vp_chapter_db_insert(vp_chapter_db_h hChapterDB,
+                                                 const char *szChapterPath, int nIdx)
+{
+       if (hChapterDB == NULL) {
+               vp_dbgE("hChapterDB is NULL");
+               return FALSE;
+       }
+
+       if (szChapterPath == NULL) {
+               vp_dbgE("szChapterPath is NULL");
+               return FALSE;
+       }
+
+       ChapterDB *pChapterDB = (ChapterDB *) hChapterDB;
+
+       if (pChapterDB->szMediaID == NULL) {
+               vp_dbgE("szMediaID is NULL");
+               return FALSE;
+       }
+
+
+       long long nSize = vp_file_size(szChapterPath);
+
+       char *szSql =
+               sqlite3_mprintf(CHAPTER_DB_INSERT_QUERY, nIdx, szChapterPath,
+                                               (int) nSize, pChapterDB->szMediaID);
+       vp_sdbg("%s", szSql);
+
+       sqlite3_stmt *stmt = NULL;
+
+       if (!vp_db_util_query_prepare(szSql, &stmt)) {
+               if (szSql) {
+                       sqlite3_free(szSql);
+                       szSql = NULL;
+               }
+               return FALSE;
+       }
+
+       sqlite3_step(stmt);
+
+       //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+               sqlite3_reset(stmt);
+               sqlite3_clear_bindings(stmt);
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       //}
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param hChapterDB
+ * @return
+ */
+bool vp_chapter_db_delete(vp_chapter_db_h hChapterDB)
+{
+       if (hChapterDB == NULL) {
+               vp_dbgE("hChapterDB is NULL");
+               return FALSE;
+       }
+
+       ChapterDB *pChapterDB = (ChapterDB *) hChapterDB;
+
+       if (pChapterDB->szMediaID == NULL) {
+               vp_dbgE("szMediaID is NULL");
+               return FALSE;
+       }
+
+       _vp_chapter_db_delete_items(pChapterDB->szMediaID);
+
+       char *szSql =
+               sqlite3_mprintf(CHAPTER_DB_DELETE_QUERY, pChapterDB->szMediaID);
+       vp_sdbg("%s", szSql);
+
+       sqlite3_stmt *stmt = NULL;
+
+       if (!vp_db_util_query_prepare(szSql, &stmt)) {
+               if (szSql) {
+                       sqlite3_free(szSql);
+                       szSql = NULL;
+               }
+               return FALSE;
+       }
+
+       sqlite3_step(stmt);
+
+       //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+               sqlite3_reset(stmt);
+               sqlite3_clear_bindings(stmt);
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       //}
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param hChapterDB
+ * @param nCount
+ * @return
+ */
+bool vp_chapter_db_item_count(vp_chapter_db_h hChapterDB, int *nCount)
+{
+       if (hChapterDB == NULL) {
+               vp_dbgE("hChapterDB is NULL");
+               return FALSE;
+       }
+
+       ChapterDB *pChapterDB = (ChapterDB *) hChapterDB;
+
+       return _vp_chapter_db_get_count(pChapterDB->szMediaID, nCount);
+}
+
+/**
+ *
+ * @param pItem
+ * @return
+ */
+bool vp_chapter_db_item_free(ChapterDBItem * pItem)
+{
+       if (pItem == NULL) {
+               vp_dbgE("ChapterDBItem is NULL");
+               return FALSE;
+       }
+
+       VP_FREE(pItem->szChapterPath);
+       VP_FREE(pItem);
+
+       return TRUE;
+}
diff --git a/common/src/vp-db-util.c b/common/src/vp-db-util.c
new file mode 100755 (executable)
index 0000000..c8778ee
--- /dev/null
@@ -0,0 +1,172 @@
+/*
+ * Copyright (c) 2020 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 "vp-db-common.h"
+#include "vp-db-util.h"
+#include "app_common.h"
+
+static sqlite3 *g_sqlite3_handle = NULL;
+static int g_nRefCount = 0;
+
+/* callback functions */
+/**
+ *
+ * @param pData
+ * @param count
+ * @return
+ */
+static int __vp_db_util_busy_handler(void *pData, int count)
+{
+       usleep(50000);
+
+       vp_dbgW("__vp_db_util_busy_handler called : %d", count);
+
+       return 100 - count;
+}
+
+/* internal functions */
+/**
+ *
+ * @return
+ */
+static sqlite3 *_vp_db_util_connect_db()
+{
+       sqlite3 *pSqlite = NULL;
+       int ret = SQLITE_OK;
+
+       char *app_path = app_get_data_path();
+       if (!app_path) {
+               vp_dbgE("cannot retrieve app install path");
+               return NULL;
+       }
+       char db_path[1024] = { 0, };
+       snprintf(db_path, 1024, "%s%s", app_path, ".video-thumb.db");
+
+       /*Connect DB */
+       ret = sqlite3_open(db_path, &pSqlite);
+       if (SQLITE_OK != ret) {
+               vp_dbgE("sqlite3_open fail [0x%x] : %s", ret,
+                               sqlite3_errmsg(pSqlite));
+               return NULL;
+       }
+
+       ret = sqlite3_busy_handler(pSqlite, __vp_db_util_busy_handler, NULL);
+       if (SQLITE_OK != ret) {
+               vp_dbgE("sqlite3_busy_handler fail [0x%x]", ret);
+               sqlite3_close(pSqlite);
+               return NULL;
+       }
+
+       return pSqlite;
+}
+
+/**
+ *
+ * @param db_handle
+ */
+static void _vp_db_util_disconnect_db(sqlite3 * db_handle)
+{
+       if (db_handle == NULL) {
+               vp_dbgE("db_handle is NULL");
+               return;
+       }
+       int ret = SQLITE_OK;
+       ret = sqlite3_close(db_handle);
+       if (SQLITE_OK != ret) {
+               vp_dbgE("sqlite3_close fail [0x%x]", ret);
+               db_handle = NULL;
+       }
+}
+
+
+/* external functions */
+
+/**
+ *
+ * @return
+ */
+bool vp_db_util_connect()
+{
+       if (g_sqlite3_handle) {
+               vp_dbgW("database is already connect");
+               g_nRefCount++;
+               return TRUE;
+       }
+
+       g_sqlite3_handle = _vp_db_util_connect_db();
+       if (g_sqlite3_handle == NULL) {
+               vp_dbgE("database connect is fail");
+               return FALSE;
+       }
+
+       g_nRefCount++;
+
+       return TRUE;
+}
+
+/**
+ *
+ */
+void vp_db_util_disconnect()
+{
+       g_nRefCount--;
+
+       if (g_nRefCount < 0) {
+               g_nRefCount = 0;
+       }
+
+       if (g_nRefCount == 0) {
+               if (g_sqlite3_handle == NULL) {
+                       vp_dbgW("database is already disconnect");
+                       return;
+               }
+               _vp_db_util_disconnect_db(g_sqlite3_handle);
+
+               g_sqlite3_handle = NULL;
+       }
+
+       return;
+
+}
+
+/**
+ *
+ * @param szQuery
+ * @param stmt
+ * @return
+ */
+bool vp_db_util_query_prepare(char *szQuery, sqlite3_stmt ** stmt)
+{
+       if (g_sqlite3_handle == NULL) {
+               vp_dbgE("database is not connect");
+               return FALSE;
+       }
+
+       int err = -1;
+
+       sqlite3 *handle = g_sqlite3_handle;
+       vp_dbg("SQL = %s\n", szQuery);
+
+       err = sqlite3_prepare_v2(handle, szQuery, -1, stmt, NULL);
+       if (SQLITE_OK != err) {
+               vp_dbgE("Query fails [0x%x]: query_string[%s] ", err, szQuery);
+               return FALSE;
+       }
+
+       vp_dbg("query success\n");
+
+       return TRUE;
+}
diff --git a/common/src/vp-file-util.c b/common/src/vp-file-util.c
new file mode 100755 (executable)
index 0000000..3085b2b
--- /dev/null
@@ -0,0 +1,407 @@
+/*
+ * Copyright (c) 2020 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 "vp-file-util.h"
+
+#define PATH_MAX_SIZE 256
+#define BUF_MAX 16384
+static mode_t default_mode =
+       S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH;
+
+/**
+ *
+ * @param path
+ * @return
+ */
+const char *vp_file_get(const char path[])
+{
+       char *file = NULL;
+       struct stat info = { 0, };
+       if (stat(path, &info) == 0) {
+               if ((file = strrchr(path, '/'))) {
+                       file++;
+               }
+       } else {
+               file = (char *) path;
+       }
+       return file;
+}
+
+/**
+ *
+ * @param path
+ * @return
+ */
+char *vp_dir_get(const char path[])
+{
+       char *p = NULL;
+       char buf[PATH_MAX] = { 0, };
+       struct stat info = { 0, };
+
+       if (stat(path, &info) == 0) {
+               strncpy(buf, path, PATH_MAX);
+               buf[PATH_MAX - 1] = 0;
+               p = dirname(buf);
+               return strdup(p);
+       } else {
+               return "";
+       }
+}
+
+/**
+ *
+ * @param path
+ * @return
+ */
+int vp_file_exists(const char *path)
+{
+       struct stat info = { 0, };
+
+       if (stat(path, &info) == 0) {
+               return 1;
+       } else {
+               return 0;
+       }
+}
+
+/**
+ *
+ * @param path
+ * @return
+ */
+Eina_Bool vp_is_dir(const char *path)
+{
+       struct stat info = { 0, };
+
+       if (stat(path, &info) == 0) {
+               if (S_ISDIR(info.st_mode)) {
+                       return 1;
+               }
+       }
+
+       return 0;
+}
+
+/**
+ *
+ * @param path
+ * @return
+ */
+int vp_is_dir_empty(const char *path)
+{
+       struct stat info = { 0, };
+       struct dirent *dp = NULL;
+       DIR *dirp = NULL;
+       struct dirent ent_struct;
+
+       dirp = opendir(path);
+       if (!dirp) {
+               return -1;
+       }
+
+       while ((readdir_r(dirp, &ent_struct, &dp) == 0) && dp) {
+               if (stat(dp->d_name, &info) == 0 && (strcmp(dp->d_name, "."))
+                       && (strcmp(dp->d_name, ".."))) {
+                       closedir(dirp);
+                       return 0;
+               }
+       }
+       closedir(dirp);
+       return 1;
+}
+
+/**
+ *
+ * @param dir
+ * @return
+ */
+int vp_mkdir(const char *dir)
+{
+       if (mkdir(dir, default_mode) < 0) {
+               return 0;
+       } else {
+               return 1;
+       }
+}
+
+/**
+ *
+ * @param path
+ * @return
+ */
+static int vp_mkpath_if_not_exists(const char *path)
+{
+       struct stat st = { 0, };
+       if (stat(path, &st) < 0) {
+               return vp_mkdir(path);
+       } else if (!S_ISDIR(st.st_mode)) {
+               return 0;
+       } else {
+               return 1;
+       }
+}
+
+/**
+ *
+ * @param path
+ * @return
+ */
+int vp_mkpath(const char *path)
+{
+       char ss[PATH_MAX] = { 0, };
+       unsigned int i = 0;
+
+       if (vp_is_dir(path)) {
+               return 1;
+       }
+
+       for (i = 0; path[i] != '\0'; ss[i] = path[i], i++) {
+               if (i == sizeof(ss) - 1) {
+                       return 0;
+               }
+
+               if ((path[i] == '/') && (i > 0)) {
+                       ss[i] = '\0';
+                       if (!vp_mkpath_if_not_exists(ss)) {
+                               return 0;
+                       }
+               }
+       }
+       ss[i] = '\0';
+
+       return vp_mkpath_if_not_exists(ss);
+}
+
+/**
+ *
+ * @param path
+ * @return
+ */
+char *vp_strip_ext(const char *path)
+{
+       char *p = NULL;
+       char *file = NULL;
+
+       p = strrchr(path, '.');
+       if (!p) {
+               file = strdup(path);
+       } else if (p != path) {
+               file = malloc(((p - path) + 1) * sizeof(char));
+               if (file) {
+                       memcpy(file, path, (p - path));
+                       file[p - path] = 0;
+               }
+       }
+
+       return file;
+}
+
+/**
+ *
+ * @param filename
+ * @return
+ */
+int vp_file_unlink(const char *filename)
+{
+       int status = unlink(filename);
+       if (status < 0) {
+               return 0;
+       } else {
+               return 1;
+       }
+}
+
+/**
+ *
+ * @param filename
+ * @return
+ */
+int vp_file_size(const char *filename)
+{
+       struct stat info = { 0, };
+       if (stat(filename, &info) == 0) {
+               if (!S_ISDIR(info.st_mode)) {
+                       return info.st_size;
+               }
+       }
+
+       return 0;
+}
+
+/**
+ *
+ * @param filename
+ * @return
+ */
+int vp_file_rmdir(const char *filename)
+{
+       int status = rmdir(filename);
+       if (status < 0) {
+               return 0;
+       } else {
+               return 1;
+       }
+}
+
+/**
+ *
+ * @param dir
+ * @return
+ */
+Eina_List *vp_file_ls(const char *dir)
+{
+       char *f;
+       DIR *dirp = NULL;
+       struct dirent *dp = NULL;
+       Eina_List *list = NULL;
+       struct dirent ent_struct;
+
+       dirp = opendir(dir);
+       if (!dirp) {
+               return NULL;
+       }
+
+       while ((readdir_r(dirp, &ent_struct, &dp) == 0) && dp) {
+               if ((strcmp(dp->d_name, ".")) && (strcmp(dp->d_name, ".."))) {
+                       f = strdup(dp->d_name);
+                       list = eina_list_append(list, f);
+               }
+       }
+       closedir(dirp);
+
+       list =
+               eina_list_sort(list, eina_list_count(list),
+                                          EINA_COMPARE_CB(strcoll));
+
+       return list;
+}
+
+/**
+ *
+ * @param dir
+ * @return
+ */
+int vp_file_recursive_rm(const char *dir)
+{
+       char buf[PATH_MAX_SIZE] = { 0, };
+       struct dirent *dp = NULL;
+       DIR *dirp = NULL;
+       struct dirent ent_struct;
+
+       if (readlink(dir, buf, sizeof(buf)) > 0) {
+               return vp_file_unlink(dir);
+       }
+
+       int ret = vp_is_dir(dir);
+       if (ret) {
+               ret = 1;
+               dirp = opendir(dir);
+               if (dirp) {
+                       while ((readdir_r(dirp, &ent_struct, &dp) == 0) && dp) {
+                               if ((strcmp(dp->d_name, "."))
+                                       && (strcmp(dp->d_name, ".."))) {
+                                       if (!vp_file_recursive_rm(dp->d_name)) {
+                                               ret = 0;
+                                       }
+                               }
+                       }
+                       closedir(dirp);
+               }
+
+               if (!vp_file_rmdir(dir)) {
+                       ret = 0;
+               }
+
+               return ret;
+       } else {
+               return vp_file_unlink(dir);
+       }
+}
+
+/**
+ *
+ * @param src
+ * @param dst
+ * @return
+ */
+int vp_file_cp(const char *src, const char *dst)
+{
+       FILE *f1 = NULL;
+       FILE *f2 = NULL;
+       char buf[BUF_MAX] = { 0, };     //TODO: How about moving buf to heap instead of stack
+       char realpath1[PATH_MAX_SIZE] = { 0, };
+       char realpath2[PATH_MAX_SIZE] = { 0, };
+       size_t num;
+       int ret = 1;
+
+       if (!realpath(src, realpath1)) {
+               return 0;
+       }
+
+       if (realpath(dst, realpath2) && !strcmp(realpath1, realpath2)) {
+               return 0;
+       }
+
+       f1 = fopen(src, "rb");
+       if (!f1) {
+               return 0;
+       }
+
+       f2 = fopen(dst, "wb");
+       if (!f2) {
+               fclose(f1);
+               return 0;
+       }
+
+       while ((num = fread(buf, 1, sizeof(buf), f1)) > 0) {
+               if (fwrite(buf, 1, num, f2) != num) {
+                       ret = 0;
+               }
+       }
+
+       fclose(f1);
+       fclose(f2);
+
+       return ret;
+}
+
+/**
+ *
+ * @param src
+ * @param dst
+ * @return
+ */
+int vp_file_mv(const char *src, const char *dst)
+{
+       struct stat info = { 0, };
+       if (stat(dst, &info) == 0) {
+               return 0;
+       }
+
+       if (rename(src, dst)) {
+               memset(&info, 0x00, sizeof(struct stat));
+               if (stat(src, &info) == 0) {
+                       if (S_ISREG(info.st_mode)) {
+                               vp_file_cp(src, dst);
+                               chmod(dst, info.st_mode);
+                               unlink(src);
+                               return 1;
+                       }
+               }
+               return 0;
+       }
+       return 1;
+}
diff --git a/common/src/vp-media-content-util.c b/common/src/vp-media-content-util.c
new file mode 100755 (executable)
index 0000000..0c7dda4
--- /dev/null
@@ -0,0 +1,268 @@
+/*
+ * Copyright (c) 2020 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 "vp-db-common.h"
+
+
+
+/* callback functions */
+
+/**
+ *
+ * @param pMediaHandle
+ * @param pUserData
+ * @return
+ */
+static bool __vp_media_content_info_cb(media_info_h pMediaHandle,
+                                                                          void *pUserData)
+{
+       media_info_h *pAssignItem = (media_info_h *) pUserData;
+
+       if (pMediaHandle != NULL) {
+               int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+               nRet = media_info_clone(pAssignItem, pMediaHandle);
+               if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+                       vp_dbgE("media_info_clone is fail : 0x%x", nRet);
+                       return FALSE;
+               }
+
+               char *szTmpStr = NULL;
+               nRet = media_info_get_display_name(*pAssignItem, &szTmpStr);
+               if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+                       vp_dbgE("media_info_get_display_name is fail : 0x%x", nRet);
+                       return FALSE;
+               }
+
+               vp_dbg("Display name : %s", szTmpStr);
+               VP_FREE(szTmpStr);
+       } else {
+               vp_dbgE("pMeidaHandle is NULL");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/* internal functions */
+
+
+/* external functions */
+
+/**
+ *
+ * @param szFilePath
+ * @param szVideoID
+ * @return
+ */
+bool vp_media_content_util_get_video_id(const char *szFilePath,
+                                                                               char **szVideoID)
+{
+       if (szFilePath == NULL) {
+               vp_dbgE("szFilePath is NULL");
+               return FALSE;
+       }
+
+       media_info_h pMediaHandle = NULL;
+       filter_h pFilterHandle = NULL;
+       char *szMediaID = NULL;
+
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+       char szTmpStr[4096] = { 0, };
+       snprintf(szTmpStr, 4096, "MEDIA_PATH = \"%s\"", szFilePath);
+
+       nRet = media_filter_create(&pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               vp_dbgE("media_filter_create is fail : 0x%x", nRet);
+               goto Execption;
+       }
+
+       if (pFilterHandle == NULL) {
+               vp_dbgE("Filter handle is NULL");
+               goto Execption;
+       }
+
+       nRet =
+               media_filter_set_condition(pFilterHandle, szTmpStr,
+                                                                  MEDIA_CONTENT_COLLATE_DEFAULT);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               vp_dbgE("media_filter_set_condition is fail : 0x%x", nRet);
+               goto Execption;
+       }
+
+       nRet =
+               media_info_foreach_media_from_db(pFilterHandle,
+                                                                                __vp_media_content_info_cb,
+                                                                                &pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               vp_dbgE("media_filter_set_condition is fail : 0x%x", nRet);
+               goto Execption;
+       }
+
+       if (pMediaHandle == NULL) {
+               vp_dbgE("media info handle is NULL");
+               goto Execption;
+       }
+
+       nRet = media_info_get_media_id(pMediaHandle, &szMediaID);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               vp_dbgE("media_info_get_media_id is fail : 0x%x", nRet);
+               goto Execption;
+       }
+
+       VP_STRDUP(*szVideoID, szMediaID);
+       VP_FREE(szMediaID);
+
+       nRet = media_filter_destroy(pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               vp_dbgE("media_filter_destroy is fail : 0x%x", nRet);
+               goto Execption;
+       }
+
+       nRet = media_info_destroy(pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               vp_dbgE("media_info_destroy is fail : 0x%x", nRet);
+               goto Execption;
+       }
+
+       return TRUE;
+
+  Execption:
+       VP_FREE(szMediaID);
+
+       if (pFilterHandle) {
+               media_filter_destroy(pFilterHandle);
+               pFilterHandle = NULL;
+       }
+
+       if (pMediaHandle) {
+               media_info_destroy(pMediaHandle);
+               pMediaHandle = NULL;
+       }
+       return FALSE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+bool vp_media_content_util_get_first_video(char **szFilePath)
+{
+       media_info_h pMediaHandle = NULL;
+       filter_h pFilterHandle = NULL;
+       char *szMediaID = NULL;
+
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+       nRet = media_content_connect();
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               vp_dbgE("media_content_connect is fail : 0x%x", nRet);
+               return FALSE;
+       }
+
+       char szTmpStr[4096] = { 0, };
+       snprintf(szTmpStr, 4096, "MEDIA_TYPE = 1");
+
+       nRet = media_filter_create(&pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               vp_dbgE("media_filter_create is fail : 0x%x", nRet);
+               goto Execption;
+       }
+
+       if (pFilterHandle == NULL) {
+               vp_dbgE("Filter handle is NULL");
+               goto Execption;
+       }
+
+       nRet =
+               media_filter_set_condition(pFilterHandle, szTmpStr,
+                                                                  MEDIA_CONTENT_COLLATE_DEFAULT);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               vp_dbgE("media_filter_set_condition is fail : 0x%x", nRet);
+               goto Execption;
+       }
+
+       nRet =
+               media_filter_set_order(pFilterHandle, MEDIA_CONTENT_ORDER_DESC,
+                                                          MEDIA_MODIFIED_TIME,
+                                                          MEDIA_CONTENT_COLLATE_NOCASE);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               vp_dbgE("media_filter_set_order is fail : 0x%x", nRet);
+               goto Execption;
+       }
+
+       nRet = media_filter_set_offset(pFilterHandle, 0, 1);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               vp_dbgE("media_filter_set_offset is fail : 0x%x", nRet);
+               goto Execption;
+       }
+
+       nRet =
+               media_info_foreach_media_from_db(pFilterHandle,
+                                                                                __vp_media_content_info_cb,
+                                                                                &pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               vp_dbgE("media_info_foreach_media_from_db is fail : 0x%x", nRet);
+               goto Execption;
+       }
+
+       if (pMediaHandle == NULL) {
+               vp_dbgE("media info handle is NULL");
+               goto Execption;
+       }
+
+       nRet = media_info_get_file_path(pMediaHandle, szFilePath);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               vp_dbgE("media_info_get_media_id is fail : 0x%x", nRet);
+               goto Execption;
+       }
+
+
+       nRet = media_filter_destroy(pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               vp_dbgE("media_filter_destroy is fail : 0x%x", nRet);
+               goto Execption;
+       }
+
+       nRet = media_info_destroy(pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               vp_dbgE("media_info_destroy is fail : 0x%x", nRet);
+               goto Execption;
+       }
+       nRet = media_content_disconnect();
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               vp_dbgE("media_content_connect is fail : 0x%x", nRet);
+               goto Execption;
+       }
+
+       return TRUE;
+
+  Execption:
+       VP_FREE(szMediaID);
+
+       if (pFilterHandle) {
+               media_filter_destroy(pFilterHandle);
+               pFilterHandle = NULL;
+       }
+
+       if (pMediaHandle) {
+               media_info_destroy(pMediaHandle);
+               pMediaHandle = NULL;
+       }
+       return FALSE;
+}
diff --git a/common/src/vp-pinch-zoom.c b/common/src/vp-pinch-zoom.c
new file mode 100755 (executable)
index 0000000..9439d9b
--- /dev/null
@@ -0,0 +1,616 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-log.h"
+#include "vp-pinch-zoom.h"
+
+/**
+ *
+ * @param data
+ * @param object
+ * @param device
+ * @return
+ */
+static vp_pinch_event_s *__vp_gesture_create_event_obj(void *data,
+                                                                                                          Evas_Object *
+                                                                                                          object, int device)
+{
+       vp_gesture_s *gesture_d = (vp_gesture_s *) data;
+       vp_pinch_event_s *ev = NULL;
+       ev = calloc(1, sizeof(vp_pinch_event_s));
+       if (ev == NULL) {
+               VideoLogDebug("Cannot allocate event_t");
+               return NULL;
+       }
+
+       ev->object = object;
+       ev->device = device;
+       evas_object_geometry_get(object, &ev->x, &ev->y, &ev->w, &ev->h);
+
+       gesture_d->s_event_elist =
+               eina_list_append(gesture_d->s_event_elist, ev);
+       return ev;
+}
+
+/**
+ *
+ * @param data
+ * @param ev
+ * @return
+ */
+static int __vp_gesture_destroy_event_obj(void *data,
+                                                                                 vp_pinch_event_s * ev)
+{
+       vp_gesture_s *gesture_d = (vp_gesture_s *) data;
+       ev->pinch_obj = NULL;
+       ev->pinch_dis = 0;
+       gesture_d->s_event_elist =
+               eina_list_remove(gesture_d->s_event_elist, ev);
+       VP_IF_DEL_TIMER(ev->hold_timer);
+
+       VP_FREE(ev);
+       return 0;
+}
+
+/**
+ *
+ * @param data
+ * @param device
+ * @return
+ */
+static vp_pinch_event_s *__vp_gesture_get_event_obj(void *data, int device)
+{
+       vp_gesture_s *gesture_d = (vp_gesture_s *) data;
+       Eina_List *l = NULL;
+       vp_pinch_event_s *ev = NULL;
+
+       EINA_LIST_FOREACH(gesture_d->s_event_elist, l, ev) {
+               if (ev && ev->device == device) {
+                       break;
+               }
+               ev = NULL;
+       }
+
+       return ev;
+}
+
+/**
+ *
+ * @param x1
+ * @param y1
+ * @param x2
+ * @param y2
+ * @return
+ */
+static int __vp_gesture_get_distance(Evas_Coord x1, Evas_Coord y1,
+                                                                        Evas_Coord x2, Evas_Coord y2)
+{
+       int dis, dx, dy;
+
+       dx = x1 - x2;
+       dy = y1 - y2;
+
+       dis = (int) sqrt(dx * dx + dy * dy);
+       return dis;
+}
+
+/**
+ *
+ * @param data
+ * @return
+ */
+static Eina_Bool __vp_gesture_hold_timer_cb(void *data)
+{
+       vp_pinch_event_s *ev0 = (vp_pinch_event_s *) data;
+       VP_IF_DEL_TIMER(ev0->hold_timer);
+       return ECORE_CALLBACK_CANCEL;
+}
+
+/**
+ *
+ * @param data
+ * @return
+ */
+static int __vp_gesture_get_multi_device(void *data)
+{
+       vp_gesture_s *gesture_d = (vp_gesture_s *) data;
+       Eina_List *l = NULL;
+       vp_pinch_event_s *ev = NULL;
+
+       EINA_LIST_FOREACH(gesture_d->s_event_elist, l, ev) {
+               if (ev && ev->device != 0) {
+                       return ev->device;
+               }
+       }
+       return 0;
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param evas_obj
+ * @param ei
+ */
+static void __vp_gesture_mouse_down_event(void *data, Evas * e,
+                                                                                 Evas_Object * evas_obj, void *ei)
+{
+       Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down *) ei;
+       vp_pinch_event_s *ev0;
+       ev0 = __vp_gesture_get_event_obj(data, 0);
+       if (ev0) {
+               return;
+       }
+
+       ev0 = __vp_gesture_create_event_obj(data, evas_obj, 0);
+       if (!ev0) {
+               return;
+       }
+
+       ev0->hold_timer = NULL;
+       ev0->prev.x = ev->output.x;
+       ev0->prev.y = ev->output.y;
+}
+
+/**
+ *
+ * @param data
+ * @param evas
+ * @param obj
+ * @param ei
+ */
+static void __vp_gesture_multi_down_event(void *data, Evas * evas,
+                                                                                 Evas_Object * obj, void *ei)
+{
+       vp_pinch_event_s *ev;
+       Evas_Event_Multi_Down *down = (Evas_Event_Multi_Down *) ei;
+       ev = __vp_gesture_get_event_obj(data, down->device);
+       if (ev) {
+               return;
+       }
+
+       ev = __vp_gesture_create_event_obj(data, obj, down->device);
+       if (!ev) {
+               return;
+       }
+
+       ev->hold_timer = NULL;
+       ev->prev.x = down->output.x;
+       ev->prev.y = down->output.y;
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param ei
+ */
+static void __vp_gesture_mouse_up_event(void *data, Evas * e,
+                                                                               Evas_Object * obj, void *ei)
+{
+       int mdevice;
+       vp_pinch_event_s *ev0;
+       vp_pinch_event_s *ev = NULL;
+
+       ev0 = __vp_gesture_get_event_obj(data, 0);
+       if (ev0 == NULL) {
+               VideoLogDebug("Cannot get event0");
+               return;
+       }
+
+       mdevice = __vp_gesture_get_multi_device(data);
+       if (mdevice == 0) {
+       } else {
+               ev = __vp_gesture_get_event_obj(data, mdevice);
+               if (ev == NULL) {
+                       return;
+               }
+
+               VP_IF_DEL_TIMER(ev->hold_timer);
+               ev->hold_timer =
+                       ecore_timer_add(VP_PINCH_HOLD_TIME_DELAY,
+                                                       __vp_gesture_hold_timer_cb, ev);
+       }
+
+       __vp_gesture_destroy_event_obj(data, ev0);
+}
+
+/**
+ *
+ * @param data
+ * @param evas
+ * @param obj
+ * @param ei
+ */
+static void __vp_gesture_multi_up_event(void *data, Evas * evas,
+                                                                               Evas_Object * obj, void *ei)
+{
+       vp_gesture_s *gesture_d = (vp_gesture_s *) data;
+       Evas_Event_Multi_Up *up = (Evas_Event_Multi_Up *) ei;
+       vp_pinch_event_s *ev0 = NULL;
+       vp_pinch_event_s *ev = NULL;
+       ev = __vp_gesture_get_event_obj(data, up->device);
+       if (ev == NULL) {
+               return;
+       }
+
+       gesture_d->dis_old = 0;
+       gesture_d->pinch_dis_old = 0;
+       ev0 = __vp_gesture_get_event_obj(data, 0);
+       if (ev0) {
+               VP_IF_DEL_TIMER(ev0->hold_timer);
+               ev0->hold_timer =
+                       ecore_timer_add(VP_PINCH_HOLD_TIME_DELAY,
+                                                       __vp_gesture_hold_timer_cb, ev0);
+       } else {
+               /* up when device 0 is off */
+       }
+       __vp_gesture_destroy_event_obj(data, ev);
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param ei
+ */
+static void __vp_gesture_mouse_move_event(void *data, Evas * e,
+                                                                                 Evas_Object * obj, void *ei)
+{
+       Evas_Event_Mouse_Move *ev = (Evas_Event_Mouse_Move *) ei;
+       vp_pinch_event_s *ev0;
+       ev0 = __vp_gesture_get_event_obj(data, 0);
+       if (ev0 == NULL) {
+               return;
+       }
+       ev0->prev.x = ev->cur.output.x;
+       ev0->prev.y = ev->cur.output.y;
+
+       __vp_gesture_get_multi_device(data);
+}
+
+/**
+ *
+ * @param data
+ */
+static void __vp_gesture_zoom_out_job_cb(void *data)
+{
+       vp_gesture_s *gesture_d = (vp_gesture_s *) data;
+       if (gesture_d->next_plan != VP_PINCH_PLAN_OUT) {
+               VideoLogWarning("State is wrong[plan:%d]!", gesture_d->next_plan);
+               VP_IF_DEL_JOB(gesture_d->pinch_job);
+               return;
+       }
+
+       if (gesture_d->zoom_out_cb)
+               gesture_d->zoom_out_cb(gesture_d->gesture,
+                                                          gesture_d->zoom_out_data);
+
+       VP_IF_DEL_JOB(gesture_d->pinch_job);
+}
+
+/**
+ *
+ * @param data
+ */
+static void __vp_gesture_zoom_in_job_cb(void *data)
+{
+       vp_gesture_s *gesture_d = (vp_gesture_s *) data;
+       if (gesture_d->next_plan != VP_PINCH_PLAN_IN) {
+               VideoLogWarning("State is wrong[plan:%d]!", gesture_d->next_plan);
+               VP_IF_DEL_JOB(gesture_d->pinch_job);
+               return;
+       }
+
+       if (gesture_d->zoom_in_cb)
+               gesture_d->zoom_in_cb(gesture_d->gesture, gesture_d->zoom_in_data);
+
+
+       VP_IF_DEL_JOB(gesture_d->pinch_job);
+}
+
+/**
+ *
+ * @param data
+ * @param evas
+ * @param obj
+ * @param ei
+ */
+static void __vp_gesture_multi_move_event(void *data, Evas * evas,
+                                                                                 Evas_Object * obj, void *ei)
+{
+       vp_gesture_s *gesture_d = (vp_gesture_s *) data;
+       Evas_Event_Multi_Move *move = (Evas_Event_Multi_Move *) ei;
+       int dis_new;
+       vp_pinch_event_s *ev0;
+       vp_pinch_event_s *ev;
+       ev = __vp_gesture_get_event_obj(data, move->device);
+       if (ev == NULL) {
+               return;
+       }
+       ev->prev.x = move->cur.output.x;
+       ev->prev.y = move->cur.output.y;
+
+       ev0 = __vp_gesture_get_event_obj(data, 0);
+       if (ev0 == NULL) {
+               return;
+       }
+
+       dis_new = __vp_gesture_get_distance(ev0->prev.x, ev0->prev.y,
+                                                                               ev->prev.x, ev->prev.y);
+
+       int dis_old = gesture_d->dis_old;
+       if (dis_old != 0) {
+               if (dis_old - dis_new > 0
+                       && ev->pinch_dis > VP_PINCH_TOUCH_HOLD_RANGE) {
+                       if (gesture_d->pinch_dis_old
+                               && ev->pinch_dis <
+                               (gesture_d->pinch_dis_old * VP_PINCH_TOUCH_FACTOR)) {
+                               ev->pinch_dis += (dis_old - dis_new);
+                               gesture_d->dis_old = dis_new;
+                               return;
+                       }
+
+                       gesture_d->next_plan = VP_PINCH_PLAN_OUT;       /* plan to zoom-out */
+                       if (!gesture_d->pinch_job) {
+                               gesture_d->pinch_job =
+                                       ecore_job_add(__vp_gesture_zoom_out_job_cb, data);
+                       } else {
+                               VideoLogInfo("Added job pinch zoom out");
+                       }
+
+                       gesture_d->pinch_dis_old = ev->pinch_dis;
+                       ev->pinch_dis = 0;
+               } else if (dis_old - dis_new < 0
+                                  && ev->pinch_dis < -VP_PINCH_TOUCH_HOLD_RANGE) {
+                       if (gesture_d->pinch_dis_old
+                               && ev->pinch_dis >
+                               (gesture_d->pinch_dis_old * VP_PINCH_TOUCH_FACTOR)) {
+                               ev->pinch_dis += (dis_old - dis_new);
+                               gesture_d->dis_old = dis_new;
+                               return;
+                       }
+
+                       gesture_d->next_plan = VP_PINCH_PLAN_IN;        /* plan to zoom-in */
+                       if (!gesture_d->pinch_job) {
+                               VideoLogInfo("Add job pinch zoom in");
+                               gesture_d->pinch_job =
+                                       ecore_job_add(__vp_gesture_zoom_in_job_cb, data);
+                       } else {
+                               VideoLogWarning("Added job pinch zoom in");
+                       }
+
+                       gesture_d->pinch_dis_old = ev->pinch_dis;
+                       ev->pinch_dis = 0;
+               }
+               ev->pinch_dis += (dis_old - dis_new);
+       }
+       VideoLogInfo("dis_new: %d, dis_old: %d, pinch_dis %d", dis_new,
+                                dis_old, ev->pinch_dis);
+
+       /* Reset dis_old value */
+       gesture_d->dis_old = dis_new;
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param ei
+ */
+static void __vp_gesture_del_cb(void *data, Evas * e, Evas_Object * obj,
+                                                               void *ei)
+{
+       VideoLogWarning("Delete gesture ---");
+       if (data) {
+               vp_gesture_s *gesture_d = (vp_gesture_s *) data;
+               VP_IF_DEL_JOB(gesture_d->pinch_job);
+               evas_object_data_del(gesture_d->gesture, VP_GESTURE_KEY_DATA);
+               VP_FREE(gesture_d);
+       }
+       VideoLogWarning("Delete gesture +++");
+}
+
+/**
+ *
+ * @param data
+ * @param parent
+ * @return
+ */
+Evas_Object *_vp_gesture_add(void *data, Evas_Object * parent)
+{
+       if (data == NULL || parent == NULL) {
+               VideoLogInfo("Error input parameters");
+               return NULL;
+       }
+
+       Evas_Object *gesture = NULL;
+
+       gesture = evas_object_rectangle_add(evas_object_evas_get(parent));
+       evas_object_color_set(gesture, 0, 0, 0, 0);
+
+       vp_gesture_s *gesture_d =
+               (vp_gesture_s *) calloc(1, sizeof(vp_gesture_s));
+       if (gesture_d == NULL) {
+               evas_object_del(gesture);
+               return NULL;
+       }
+
+       gesture_d->ad = data;
+       gesture_d->parent = parent;
+       gesture_d->gesture = gesture;
+
+       evas_object_event_callback_add(gesture, EVAS_CALLBACK_MOUSE_DOWN,
+                                                                  __vp_gesture_mouse_down_event,
+                                                                  gesture_d);
+       evas_object_event_callback_add(gesture, EVAS_CALLBACK_MOUSE_UP,
+                                                                  __vp_gesture_mouse_up_event, gesture_d);
+       evas_object_event_callback_add(gesture, EVAS_CALLBACK_MOUSE_MOVE,
+                                                                  __vp_gesture_mouse_move_event,
+                                                                  gesture_d);
+       evas_object_event_callback_add(gesture, EVAS_CALLBACK_MULTI_DOWN,
+                                                                  __vp_gesture_multi_down_event,
+                                                                  gesture_d);
+       evas_object_event_callback_add(gesture, EVAS_CALLBACK_MULTI_UP,
+                                                                  __vp_gesture_multi_up_event, gesture_d);
+       evas_object_event_callback_add(gesture, EVAS_CALLBACK_MULTI_MOVE,
+                                                                  __vp_gesture_multi_move_event,
+                                                                  gesture_d);
+
+       evas_object_data_set(gesture, VP_GESTURE_KEY_DATA, (void *) gesture_d);
+       evas_object_event_callback_add(gesture, EVAS_CALLBACK_DEL,
+                                                                  __vp_gesture_del_cb, gesture_d);
+       return gesture;
+}
+
+/**
+ *
+ * @param gesture
+ * @param cb
+ * @param data
+ * @return
+ */
+int _vp_gesture_set_zoom_in_cb(Evas_Object * gesture, vp_gesture_cb cb,
+                                                          void *data)
+{
+       if (gesture == NULL || data == NULL) {
+               VideoLogInfo("Event Object is NULL");
+               return 0;
+       }
+
+       vp_gesture_s *gesture_d = NULL;
+
+       gesture_d =
+               (vp_gesture_s *) evas_object_data_get(gesture,
+                                                                                         VP_GESTURE_KEY_DATA);
+       if (gesture_d) {
+               gesture_d->zoom_in_cb = cb;
+               gesture_d->zoom_in_data = data;
+       }
+       return 0;
+}
+
+/**
+ *
+ * @param gesture
+ * @param cb
+ * @param data
+ * @return
+ */
+int _vp_gesture_set_zoom_out_cb(Evas_Object * gesture, vp_gesture_cb cb,
+                                                               void *data)
+{
+       if (gesture == NULL || data == NULL) {
+               VideoLogInfo("Event Object is NULL");
+               return 0;
+       }
+
+       vp_gesture_s *gesture_d = NULL;
+
+       gesture_d =
+               (vp_gesture_s *) evas_object_data_get(gesture,
+                                                                                         VP_GESTURE_KEY_DATA);
+
+       if (gesture_d != NULL) {
+               gesture_d->zoom_out_cb = cb;
+               gesture_d->zoom_out_data = data;
+       }
+
+       return 0;
+}
+
+/**
+ *
+ * @param gesture
+ * @param data
+ * @return
+ */
+Eina_Bool __vp_pinch_zoom_out_cb(Evas_Object * gesture, void *data)
+{
+       if (gesture == NULL || data == NULL) {
+               VideoLogInfo("Event Object is NULL");
+               return EINA_FALSE;
+       }
+
+       st_VideoListViewMainViewWidget *ad =
+               (st_VideoListViewMainViewWidget *) data;
+       VideoLogInfo("%d", ad->zoom_level);
+       if (ad->zoom_level > VP_ZOOM_IN_DEFAULT) {
+               ad->zoom_level--;
+               if (_grid_view_zoom_out(data, NULL) == 0) {
+                       ad->zoom_level = VP_ZOOM_IN_DEFAULT;
+               }
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+/**
+ *
+ * @param gesture
+ * @param data
+ * @return
+ */
+Eina_Bool __vp_pinch_zoom_in_cb(Evas_Object * gesture, void *data)
+{
+       if (gesture == NULL || data == NULL) {
+               VideoLogInfo("Event Object is NULL");
+               return EINA_FALSE;
+       }
+
+       st_VideoListViewMainViewWidget *ad =
+               (st_VideoListViewMainViewWidget *) data;
+
+       if ((ad->zoom_level >= VP_ZOOM_IN_DEFAULT) &&
+               (ad->zoom_level < VP_ZOOM_IN_MAX)) {
+               ad->zoom_level++;
+               if (_grid_view_zoom_in(data, NULL) == 0) {
+                       ad->zoom_level = VP_ZOOM_IN_MAX;
+               }
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+/**
+ *
+ * @param data
+ * @param layout
+ * @return
+ */
+int _vp_pinch_add_event(void *data, Evas_Object * layout)
+{
+       if (data == NULL || layout == NULL) {
+               VideoLogError("Error input parameters");
+               return 0;
+       }
+
+       st_VideoListViewMainViewWidget *ad =
+               (st_VideoListViewMainViewWidget *) data;
+
+       /* Set initialize level */
+       ad->zoom_level = VP_ZOOM_IN_DEFAULT;
+
+       Evas_Object *gesture = _vp_gesture_add(data, layout);
+       _vp_gesture_set_zoom_in_cb(gesture, __vp_pinch_zoom_in_cb, data);
+       _vp_gesture_set_zoom_out_cb(gesture, __vp_pinch_zoom_out_cb, data);
+       elm_object_part_content_set(layout, "gesture", gesture);
+       ad->gesture = gesture;
+       return 0;
+}
diff --git a/common/src/vp-preview-db.c b/common/src/vp-preview-db.c
new file mode 100755 (executable)
index 0000000..2f7a271
--- /dev/null
@@ -0,0 +1,557 @@
+/*
+ * Copyright (c) 2020 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 "vp-db-common.h"
+#include "vp-db-util.h"
+
+#include "vp-preview-db.h"
+#include "vp-media-content-util.h"
+#include "vp-file-util.h"
+
+#define PREVIEW_DB_INSERT_QUERY                "INSERT INTO video_preview (file_path, file_size, media_id) VALUES ( '%q', %d, '%q')"
+#define PREVIEW_DB_DELETE_QUERY                "DELETE FROM video_preview where media_id = '%q'"
+#define PREVIEW_DB_SELECT_QUERY                "select preview_uuid, file_path, file_size, last_hit_date, media_id from video_preview where media_id = '%q'"
+#define PREVIEW_DB_LAST_HIT_QUERY      "select preview_uuid, file_path, file_size, last_hit_date, media_id from video_preview order by last_hit_date DESC"
+#define PREVIEW_DB_COUNT_QUERY         "select count(*) from video_preview where media_id = '%q'"
+#define PREVIEW_DB_ALL_ITEM_QUERY      "select DISTINCT(media_id) from video_preview"
+
+typedef struct _PreviewDB {
+       char *szMediaURL;
+       char *szMediaID;
+       char *szFilePath;
+       int nFileSize;
+} PreviewDB;
+
+
+static void _vp_preview_db_destory_handle(PreviewDB * pPreviewDB);
+
+
+/* callback functions */
+
+/* internal functions */
+
+/**
+ *
+ * @param pPreviewDB
+ */
+static void _vp_preview_db_destory_handle(PreviewDB * pPreviewDB)
+{
+       if (pPreviewDB == NULL) {
+               vp_dbgE("pPreviewDB is NULL");
+               return;
+       }
+
+       VP_FREE(pPreviewDB->szMediaURL);
+       VP_FREE(pPreviewDB->szMediaID);
+       VP_FREE(pPreviewDB->szFilePath);
+
+       VP_FREE(pPreviewDB);
+}
+
+/**
+ *
+ * @param szMediaID
+ * @param nCount
+ * @return
+ */
+static bool _vp_preview_db_get_count(char *szMediaID, int *nCount)
+{
+       if (szMediaID == NULL) {
+               vp_dbgE("szMediaID is NULL");
+               return FALSE;
+       }
+
+       char *szSql = sqlite3_mprintf(PREVIEW_DB_COUNT_QUERY, szMediaID);
+       sqlite3_stmt *stmt = NULL;
+
+       if (!vp_db_util_query_prepare(szSql, &stmt)) {
+               if (szSql) {
+                       sqlite3_free(szSql);
+                       szSql = NULL;
+               }
+               return FALSE;
+       }
+
+       int nRet = 0;
+       nRet = sqlite3_step(stmt);
+       if (nRet == SQLITE_ROW) {
+               *nCount = (int) sqlite3_column_int(stmt, 0);
+               vp_dbgW("Get Chapter Count : %d", *nCount);
+       }
+
+       //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       //}
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szMeidaID
+ * @return
+ */
+static bool _vp_preview_db_delete_item(char *szMeidaID)
+{
+       if (szMeidaID == NULL) {
+               vp_dbgE("szMeidaID is NULL");
+               return FALSE;
+       }
+
+       char *szSql = sqlite3_mprintf(PREVIEW_DB_SELECT_QUERY, szMeidaID);
+       sqlite3_stmt *stmt = NULL;
+
+       if (!vp_db_util_query_prepare(szSql, &stmt)) {
+               if (szSql) {
+                       sqlite3_free(szSql);
+                       szSql = NULL;
+               }
+               return FALSE;
+       }
+
+       int nRet = 0;
+       nRet = sqlite3_step(stmt);
+       if (nRet == SQLITE_ROW) {
+
+               char *szFileName = (char *) sqlite3_column_text(stmt, 1);
+               if (vp_file_exists(szFileName)) {
+                       vp_file_unlink(szFileName);
+               }
+
+       }
+
+       //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       //}
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+
+
+/* external functions */
+
+/**
+ *
+ * @return
+ */
+vp_preview_db_h vp_preview_db_create()
+{
+       PreviewDB *pPreviewDB = calloc(1, sizeof(PreviewDB));
+
+       if (pPreviewDB == NULL) {
+               vp_dbgE("pPreviewDB alloc is fail");
+               return NULL;
+       }
+
+       if (!vp_db_util_connect()) {
+               vp_dbgE("Database connect is fail");
+               _vp_preview_db_destory_handle(pPreviewDB);
+               return NULL;
+       }
+
+       return (vp_preview_db_h) pPreviewDB;
+}
+
+/**
+ *
+ * @param hPreviewDB
+ */
+void vp_preview_db_destroy(vp_preview_db_h hPreviewDB)
+{
+       if (hPreviewDB == NULL) {
+               vp_dbgE("hPreviewDB is NULL");
+               return;
+       }
+
+       vp_db_util_disconnect();
+
+       PreviewDB *pPreviewDB = (PreviewDB *) hPreviewDB;
+
+       _vp_preview_db_destory_handle(pPreviewDB);
+}
+
+/**
+ *
+ * @param hPreviewDB
+ * @param szMediaID
+ * @return
+ */
+bool vp_preview_db_set_media_id(vp_preview_db_h hPreviewDB,
+                                                               const char *szMediaID)
+{
+       if (hPreviewDB == NULL) {
+               vp_dbgE("hPreviewDB is NULL");
+               return FALSE;
+       }
+
+       if (szMediaID == NULL) {
+               vp_dbgE("szMediaID is NULL");
+               return FALSE;
+       }
+
+       PreviewDB *pPreviewDB = (PreviewDB *) hPreviewDB;
+
+       VP_FREE(pPreviewDB->szMediaID);
+
+       VP_STRDUP(pPreviewDB->szMediaID, szMediaID);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param hPreviewDB
+ * @param szMediaURL
+ * @return
+ */
+bool vp_preview_db_set_media_url(vp_preview_db_h hPreviewDB,
+                                                                const char *szMediaURL)
+{
+       if (hPreviewDB == NULL) {
+               vp_dbgE("hPreviewDB is NULL");
+               return FALSE;
+       }
+
+       if (szMediaURL == NULL) {
+               vp_dbgE("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       PreviewDB *pPreviewDB = (PreviewDB *) hPreviewDB;
+
+       VP_FREE(pPreviewDB->szMediaURL);
+       VP_FREE(pPreviewDB->szMediaID);
+
+       VP_STRDUP(pPreviewDB->szMediaURL, szMediaURL);
+
+       if (!vp_media_content_util_get_video_id
+               (szMediaURL, &(pPreviewDB->szMediaID))) {
+               vp_dbgE("vp_media_content_util_get_video_id is fail");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param hPreviewDB
+ * @param szFilePath
+ * @return
+ */
+bool vp_preview_db_get_file_path(vp_preview_db_h hPreviewDB,
+                                                                char **szFilePath)
+{
+       if (hPreviewDB == NULL) {
+               vp_dbgE("hPreviewDB is NULL");
+               return FALSE;
+       }
+
+       PreviewDB *pPreviewDB = (PreviewDB *) hPreviewDB;
+
+       if (pPreviewDB->szMediaID == NULL) {
+               vp_dbgE("szMediaID is NULL");
+               return FALSE;
+       }
+
+       char *szSql =
+               sqlite3_mprintf(PREVIEW_DB_SELECT_QUERY, pPreviewDB->szMediaID);
+       sqlite3_stmt *stmt = NULL;
+
+       if (!vp_db_util_query_prepare(szSql, &stmt)) {
+               if (szSql) {
+                       sqlite3_free(szSql);
+                       szSql = NULL;
+               }
+               return FALSE;
+       }
+
+       int nRet = 0;
+       nRet = sqlite3_step(stmt);
+       if (nRet == SQLITE_ROW) {
+               /* preview_uuid, file_path, file_size, media_id */
+               vp_sdbg("UUID : %d", (int) sqlite3_column_int(stmt, 0));
+               vp_sdbg("FILE_PATH : %s", (char *) sqlite3_column_text(stmt, 1));
+               vp_sdbg("FILE_SIZE : %d", (int) sqlite3_column_int(stmt, 2));
+               vp_sdbg("LAST_DATE : %d", (int) sqlite3_column_int(stmt, 3));
+               vp_sdbg("MEDIA_ID : %s", (char *) sqlite3_column_text(stmt, 4));
+
+               VP_STRDUP(*szFilePath, (char *) sqlite3_column_text(stmt, 1));
+       }
+
+       //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       //}
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param hPreviewDB
+ * @param nFileSize
+ * @return
+ */
+bool vp_preview_db_get_file_size(vp_preview_db_h hPreviewDB,
+                                                                int *nFileSize)
+{
+       if (hPreviewDB == NULL) {
+               vp_dbgE("hPreviewDB is NULL");
+               return FALSE;
+       }
+
+       PreviewDB *pPreviewDB = (PreviewDB *) hPreviewDB;
+
+       if (pPreviewDB->szMediaID == NULL) {
+               vp_dbgE("szMediaID is NULL");
+               return FALSE;
+       }
+
+       char *szSql =
+               sqlite3_mprintf(PREVIEW_DB_SELECT_QUERY, pPreviewDB->szMediaID);
+       sqlite3_stmt *stmt = NULL;
+
+       if (!vp_db_util_query_prepare(szSql, &stmt)) {
+               if (szSql) {
+                       sqlite3_free(szSql);
+                       szSql = NULL;
+               }
+               return FALSE;
+       }
+
+       int nRet = 0;
+       nRet = sqlite3_step(stmt);
+       if (nRet == SQLITE_ROW) {
+               /* preview_uuid, file_path, file_size, media_id */
+               vp_sdbg("UUID : %d", (int) sqlite3_column_int(stmt, 0));
+               vp_sdbg("FILE_PATH : %s", (char *) sqlite3_column_text(stmt, 1));
+               vp_sdbg("FILE_SIZE : %d", (int) sqlite3_column_int(stmt, 2));
+               vp_sdbg("LAST_DATE : %d", (int) sqlite3_column_int(stmt, 3));
+               vp_sdbg("MEDIA_ID : %s", (char *) sqlite3_column_text(stmt, 4));
+
+
+               *nFileSize = (int) sqlite3_column_int(stmt, 2);
+       }
+
+       //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       //}
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param hPreviewDB
+ * @param nCount
+ * @return
+ */
+bool vp_preview_db_item_count(vp_preview_db_h hPreviewDB, int *nCount)
+{
+       if (hPreviewDB == NULL) {
+               vp_dbgE("hPreviewDB is NULL");
+               return FALSE;
+       }
+
+       PreviewDB *pPreviewDB = (PreviewDB *) hPreviewDB;
+
+       return _vp_preview_db_get_count(pPreviewDB->szMediaID, nCount);
+}
+
+/**
+ *
+ * @param hPreviewDB
+ * @param pPreviewList
+ * @return
+ */
+bool vp_preview_db_get_all_items_media_id(vp_preview_db_h hPreviewDB,
+                                                                                 GList ** pPreviewList)
+{
+       if (hPreviewDB == NULL) {
+               vp_dbgE("hPreviewDB is NULL");
+               return FALSE;
+       }
+
+       char *szSql = sqlite3_mprintf(PREVIEW_DB_ALL_ITEM_QUERY);
+       sqlite3_stmt *stmt = NULL;
+
+       if (!vp_db_util_query_prepare(szSql, &stmt)) {
+               if (szSql) {
+                       sqlite3_free(szSql);
+                       szSql = NULL;
+               }
+               return FALSE;
+       }
+
+       int nRet = 0;
+       nRet = sqlite3_step(stmt);
+       while (nRet == SQLITE_ROW) {
+               char *szMediaID = NULL;
+
+               VP_STRDUP(szMediaID, (char *) sqlite3_column_text(stmt, 0));
+
+               *pPreviewList = g_list_append(*pPreviewList, szMediaID);
+
+               nRet = sqlite3_step(stmt);
+       }
+
+       //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       //}
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param hPreviewDB
+ * @param szPreviewPath
+ * @return
+ */
+bool vp_preview_db_insert(vp_preview_db_h hPreviewDB,
+                                                 const char *szPreviewPath)
+{
+       if (hPreviewDB == NULL) {
+               vp_dbgE("hPreviewDB is NULL");
+               return FALSE;
+       }
+
+       if (szPreviewPath == NULL) {
+               vp_dbgE("szMediaID is NULL");
+               return NULL;
+       }
+
+       PreviewDB *pPreviewDB = (PreviewDB *) hPreviewDB;
+
+       if (pPreviewDB->szMediaID == NULL) {
+               vp_dbgE("szMediaID is NULL");
+               return FALSE;
+       }
+
+       long long nSize = vp_file_size(szPreviewPath);
+
+       char *szSql = sqlite3_mprintf(PREVIEW_DB_INSERT_QUERY, szPreviewPath,
+                                                                 (int) nSize, pPreviewDB->szMediaID);
+       vp_sdbg("%s", szSql);
+
+       sqlite3_stmt *stmt = NULL;
+
+       if (!vp_db_util_query_prepare(szSql, &stmt)) {
+               if (szSql) {
+                       sqlite3_free(szSql);
+                       szSql = NULL;
+               }
+               return FALSE;
+       }
+
+       sqlite3_step(stmt);
+
+       //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+               sqlite3_reset(stmt);
+               sqlite3_clear_bindings(stmt);
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       //}
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param hPreviewDB
+ * @return
+ */
+bool vp_preview_db_delete(vp_preview_db_h hPreviewDB)
+{
+       if (hPreviewDB == NULL) {
+               vp_dbgE("hPreviewDB is NULL");
+               return FALSE;
+       }
+
+       PreviewDB *pPreviewDB = (PreviewDB *) hPreviewDB;
+
+       if (pPreviewDB->szMediaID == NULL) {
+               vp_dbgE("szMediaID is NULL");
+               return FALSE;
+       }
+
+       _vp_preview_db_delete_item(pPreviewDB->szMediaID);
+
+       char *szSql =
+               sqlite3_mprintf(PREVIEW_DB_DELETE_QUERY, pPreviewDB->szMediaID);
+       vp_sdbg("%s", szSql);
+
+       sqlite3_stmt *stmt = NULL;
+
+       if (!vp_db_util_query_prepare(szSql, &stmt)) {
+               if (szSql) {
+                       sqlite3_free(szSql);
+                       szSql = NULL;
+               }
+               return FALSE;
+       }
+
+       sqlite3_step(stmt);
+
+       //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+               sqlite3_reset(stmt);
+               sqlite3_clear_bindings(stmt);
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       //}
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
diff --git a/common/src/vp-thumb-db.c b/common/src/vp-thumb-db.c
new file mode 100755 (executable)
index 0000000..33ccfa3
--- /dev/null
@@ -0,0 +1,528 @@
+/*
+ * Copyright (c) 2020 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 "vp-db-common.h"
+#include "vp-db-util.h"
+#include "vp-file-util.h"
+
+#include "vp-media-content-util.h"
+
+#include "vp-thumb-db.h"
+
+
+#define THUMB_DB_INSERT_QUERY          "INSERT INTO video_thumb (thumb_idx, file_path, file_size, media_id) VALUES ( %d, '%q', %d, '%q')"
+#define THUMB_DB_DELETE_QUERY          "DELETE FROM video_thumb where media_id = '%q'"
+#define THUMB_DB_SELECT_QUERY          "select thumb_uuid, thumb_idx, file_path, file_size, media_id from video_thumb where media_id = '%q'"
+#define THUMB_DB_COUNT_QUERY           "select count(*) from video_thumb where media_id = '%q'"
+#define THUMB_DB_ALL_ITEM_QUERY                "select DISTINCT(media_id) from video_thumb"
+
+
+
+typedef struct _ThumbDB {
+       char *szMediaURL;
+       char *szMediaID;
+       char *szFilePath;
+       int nFileSize;
+       int nTotalCount;
+} ThumbDB;
+
+
+static void _vp_thumb_db_destory_handle(ThumbDB * pThumbDB);
+
+
+/* callback functions */
+
+/* internal functions */
+
+/**
+ *
+ * @param pThumbDB
+ */
+static void _vp_thumb_db_destory_handle(ThumbDB * pThumbDB)
+{
+       if (pThumbDB == NULL) {
+               vp_dbgE("pThumbDB is NULL");
+               return;
+       }
+
+       VP_FREE(pThumbDB->szMediaURL);
+       VP_FREE(pThumbDB->szMediaID);
+       VP_FREE(pThumbDB->szFilePath);
+
+       VP_FREE(pThumbDB);
+}
+
+/**
+ *
+ * @param szMediaID
+ * @param nCount
+ * @return
+ */
+static bool _vp_thumb_db_get_count(char *szMediaID, int *nCount)
+{
+       if (szMediaID == NULL) {
+               vp_dbgE("szMediaID is NULL");
+               return FALSE;
+       }
+       char *szSql = sqlite3_mprintf(THUMB_DB_COUNT_QUERY, szMediaID);
+       sqlite3_stmt *stmt = NULL;
+
+       if (!vp_db_util_query_prepare(szSql, &stmt)) {
+               if (szSql) {
+                       sqlite3_free(szSql);
+                       szSql = NULL;
+               }
+               return FALSE;
+       }
+
+       int nRet = 0;
+       nRet = sqlite3_step(stmt);
+       if (nRet == SQLITE_ROW) {
+               *nCount = (int) sqlite3_column_int(stmt, 0);
+               vp_dbgW("Get Thumb Count : %d", *nCount);
+       }
+
+       //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       //}
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szMediaID
+ * @return
+ */
+static bool _vp_thumb_db_delete_items(char *szMediaID)
+{
+       if (szMediaID == NULL) {
+               vp_dbgE("szMediaID is NULL");
+               return FALSE;
+       }
+
+       char *szSql = sqlite3_mprintf(THUMB_DB_SELECT_QUERY, szMediaID);
+       sqlite3_stmt *stmt = NULL;
+
+       if (!vp_db_util_query_prepare(szSql, &stmt)) {
+               if (szSql) {
+                       sqlite3_free(szSql);
+                       szSql = NULL;
+               }
+               return FALSE;
+       }
+
+       int nRet = 0;
+       nRet = sqlite3_step(stmt);
+       while (nRet == SQLITE_ROW) {
+               char *szFileName = (char *) sqlite3_column_text(stmt, 2);
+
+               if (vp_file_exists(szFileName)) {
+                       vp_file_unlink(szFileName);
+               }
+
+               nRet = sqlite3_step(stmt);
+       }
+
+       //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       //}
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+
+
+/* external functions */
+/**
+ *
+ * @return
+ */
+vp_thumb_db_h vp_thumb_db_create()
+{
+       ThumbDB *pThumbDB = calloc(1, sizeof(ThumbDB));
+
+       if (pThumbDB == NULL) {
+               vp_dbgE("pThumbDB alloc is fail");
+               return NULL;
+       }
+       if (!vp_db_util_connect()) {
+               vp_dbgE("Database connect is fail");
+               _vp_thumb_db_destory_handle(pThumbDB);
+               return NULL;
+       }
+
+       return (vp_thumb_db_h) pThumbDB;
+}
+
+/**
+ *
+ * @param hThumbDB
+ */
+void vp_thumb_db_destroy(vp_thumb_db_h hThumbDB)
+{
+       if (hThumbDB == NULL) {
+               vp_dbgE("hThumbDB is NULL");
+               return;
+       }
+
+       vp_db_util_disconnect();
+
+       ThumbDB *pThumbDB = (ThumbDB *) hThumbDB;
+
+       _vp_thumb_db_destory_handle(pThumbDB);
+}
+
+/**
+ *
+ * @param hThumbDB
+ * @param szMediaID
+ * @return
+ */
+bool vp_thumb_db_set_media_id(vp_thumb_db_h hThumbDB,
+                                                         const char *szMediaID)
+{
+       if (hThumbDB == NULL) {
+               vp_dbgE("hThumbDB is NULL");
+               return FALSE;
+       }
+
+       ThumbDB *pThumbDB = (ThumbDB *) hThumbDB;
+
+       if (szMediaID == NULL) {
+               vp_dbgE("szMediaID is NULL");
+               return FALSE;
+       }
+
+       VP_FREE(pThumbDB->szMediaID);
+
+       VP_STRDUP(pThumbDB->szMediaID, szMediaID);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param hThumbDB
+ * @param szMediaURL
+ * @return
+ */
+bool vp_thumb_db_set_media_url(vp_thumb_db_h hThumbDB,
+                                                          const char *szMediaURL)
+{
+       if (hThumbDB == NULL) {
+               vp_dbgE("hThumbDB is NULL");
+               return FALSE;
+       }
+
+       if (szMediaURL == NULL) {
+               vp_dbgE("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       ThumbDB *pThumbDB = (ThumbDB *) hThumbDB;
+
+       VP_FREE(pThumbDB->szMediaURL);
+       VP_FREE(pThumbDB->szMediaID);
+
+       VP_STRDUP(pThumbDB->szMediaURL, szMediaURL);
+
+       if (!vp_media_content_util_get_video_id
+               (szMediaURL, &(pThumbDB->szMediaID))) {
+               vp_dbgE("vp_media_content_util_get_video_id is fail");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param hThumbDB
+ * @param pThumbList
+ * @return
+ */
+bool vp_thumb_db_get_items(vp_thumb_db_h hThumbDB, GList ** pThumbList)
+{
+       if (hThumbDB == NULL) {
+               vp_dbgE("hThumbDB is NULL");
+               return FALSE;
+       }
+
+       ThumbDB *pThumbDB = (ThumbDB *) hThumbDB;
+
+       if (pThumbDB->szMediaID == NULL) {
+               vp_dbgE("szMediaID is NULL");
+               return FALSE;
+       }
+
+       char *szSql =
+               sqlite3_mprintf(THUMB_DB_SELECT_QUERY, pThumbDB->szMediaID);
+       sqlite3_stmt *stmt = NULL;
+
+       if (!vp_db_util_query_prepare(szSql, &stmt)) {
+               if (szSql) {
+                       sqlite3_free(szSql);
+                       szSql = NULL;
+               }
+               return FALSE;
+       }
+
+       int nRet = 0;
+       nRet = sqlite3_step(stmt);
+       while (nRet == SQLITE_ROW) {
+               /* thumb_uuid, thumb_idx, file_path, file_size, media_id */
+               ThumbDBItem *pItem = calloc(1, sizeof(ThumbDBItem));
+               if (!pItem) {
+                       vp_dbgE("allocation failed");
+                       return FALSE;
+               }
+               vp_sdbg("UUID : %d", (int) sqlite3_column_int(stmt, 0));
+               vp_sdbg("THUMB_IDX : %d", (int) sqlite3_column_int(stmt, 1));
+               vp_sdbg("FILE_PATH : %s", (char *) sqlite3_column_text(stmt, 2));
+               vp_sdbg("FILE_SIZE : %d", (int) sqlite3_column_int(stmt, 3));
+               vp_sdbg("MEDIA_ID : %s", (char *) sqlite3_column_text(stmt, 4));
+
+               pItem->nIdx = (int) sqlite3_column_int(stmt, 1);
+               VP_STRDUP(pItem->szThumbPath,
+                                 (char *) sqlite3_column_text(stmt, 2));
+               pItem->nFileSize = (int) sqlite3_column_int(stmt, 3);
+
+               *pThumbList = g_list_append(*pThumbList, pItem);
+
+               nRet = sqlite3_step(stmt);
+       }
+
+       //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       //}
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param hThumbDB
+ * @param pThumbList
+ * @return
+ */
+bool vp_thumb_db_get_all_items_media_id(vp_thumb_db_h hThumbDB,
+                                                                               GList ** pThumbList)
+{
+       if (hThumbDB == NULL) {
+               vp_dbgE("hThumbDB is NULL");
+               return FALSE;
+       }
+
+       char *szSql = sqlite3_mprintf(THUMB_DB_ALL_ITEM_QUERY);
+       sqlite3_stmt *stmt = NULL;
+
+       if (!vp_db_util_query_prepare(szSql, &stmt)) {
+               if (szSql) {
+                       sqlite3_free(szSql);
+                       szSql = NULL;
+               }
+               return FALSE;
+       }
+
+       int nRet = 0;
+       nRet = sqlite3_step(stmt);
+       while (nRet == SQLITE_ROW) {
+               char *szMediaID = NULL;
+               VP_STRDUP(szMediaID, (char *) sqlite3_column_text(stmt, 0));
+               *pThumbList = g_list_append(*pThumbList, szMediaID);
+
+               nRet = sqlite3_step(stmt);
+       }
+
+       //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       //}
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param hThumbDB
+ * @param szThumbPath
+ * @param nIdx
+ * @return
+ */
+bool vp_thumb_db_insert(vp_thumb_db_h hThumbDB, const char *szThumbPath,
+                                               int nIdx)
+{
+       if (hThumbDB == NULL) {
+               vp_dbgE("hThumbDB is NULL");
+               return FALSE;
+       }
+
+       if (szThumbPath == NULL) {
+               vp_dbgE("szThumbPath is NULL");
+               return NULL;
+       }
+
+       ThumbDB *pThumbDB = (ThumbDB *) hThumbDB;
+
+       if (pThumbDB->szMediaID == NULL) {
+               vp_dbgE("szMediaID is NULL");
+               return FALSE;
+       }
+
+       long long nSize = vp_file_size(szThumbPath);
+
+       char *szSql = sqlite3_mprintf(THUMB_DB_INSERT_QUERY, nIdx, szThumbPath,
+                                                                 (int) nSize, pThumbDB->szMediaID);
+       vp_sdbg("%s", szSql);
+
+       sqlite3_stmt *stmt = NULL;
+
+       if (!vp_db_util_query_prepare(szSql, &stmt)) {
+               if (szSql) {
+                       sqlite3_free(szSql);
+                       szSql = NULL;
+               }
+               return FALSE;
+       }
+
+       sqlite3_step(stmt);
+
+       //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+               sqlite3_reset(stmt);
+               sqlite3_clear_bindings(stmt);
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       //}
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param hThumbDB
+ * @return
+ */
+bool vp_thumb_db_delete(vp_thumb_db_h hThumbDB)
+{
+       if (hThumbDB == NULL) {
+               vp_dbgE("hThumbDB is NULL");
+               return FALSE;
+       }
+
+       ThumbDB *pThumbDB = (ThumbDB *) hThumbDB;
+
+       if (pThumbDB->szMediaID == NULL) {
+               vp_dbgE("szMediaID is NULL");
+               return FALSE;
+       }
+
+       _vp_thumb_db_delete_items(pThumbDB->szMediaID);
+
+       char *szSql =
+               sqlite3_mprintf(THUMB_DB_DELETE_QUERY, pThumbDB->szMediaID);
+       vp_sdbg("%s", szSql);
+
+       sqlite3_stmt *stmt = NULL;
+
+       if (!vp_db_util_query_prepare(szSql, &stmt)) {
+               if (szSql) {
+                       sqlite3_free(szSql);
+                       szSql = NULL;
+               }
+               return FALSE;
+       }
+
+       sqlite3_step(stmt);
+
+       //if (stmt) { // SVACE issue, pointer dereferenced compared to NULL
+               sqlite3_reset(stmt);
+               sqlite3_clear_bindings(stmt);
+               sqlite3_finalize(stmt);
+               stmt = NULL;
+       //}
+
+       if (szSql) {
+               sqlite3_free(szSql);
+               szSql = NULL;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param hThumbDB
+ * @param nCount
+ * @return
+ */
+bool vp_thumb_db_item_count(vp_thumb_db_h hThumbDB, int *nCount)
+{
+       if (hThumbDB == NULL) {
+               vp_dbgE("hThumbDB is NULL");
+               return FALSE;
+       }
+
+       ThumbDB *pThumbDB = (ThumbDB *) hThumbDB;
+
+       return _vp_thumb_db_get_count(pThumbDB->szMediaID, nCount);
+}
+
+/**
+ *
+ * @param pItem
+ * @return
+ */
+bool vp_thumb_db_item_free(ThumbDBItem * pItem)
+{
+       if (pItem == NULL) {
+               vp_dbgE("ThumbDBItem is NULL");
+               return FALSE;
+       }
+
+       VP_FREE(pItem->szThumbPath);
+       VP_FREE(pItem);
+
+       return TRUE;
+}
diff --git a/common/src/vp-util.c b/common/src/vp-util.c
new file mode 100755 (executable)
index 0000000..aa8f99c
--- /dev/null
@@ -0,0 +1,490 @@
+/*
+ * Copyright (c) 2020 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 <glib.h>
+#include <device/power.h>
+#include <storage/storage.h>
+
+#include "vp-util.h"
+
+#define CLOUD_FOLDER                   "/opt/usr/media/.cloud"
+
+#define OTG_FOLDER                     "/opt/storage/usb"
+#define PERSONAL_PAGE_FOLDER           "/opt/storage/PersonalStorage"
+#define PKGNAME                        "videos"
+
+#define VP_UTIL_LABEL_DEVICE_MEMORY    __vp_util_get_string("IDS_VIDEO_SBODY_DEVICE_STORAGE")
+#define VP_UTIL_LABEL_SD_CARD          __vp_util_get_string("IDS_ST_BODY_SD_CARD")
+#define VP_UTIL_LABEL_OTG              __vp_util_get_string("IDS_VPL_TAB_EXTERNAL_STORAGE")
+#define VP_UTIL_LABEL_PERSONAL_PAGE    __vp_util_get_string("IDS_GALLERY_BODY_PERSONAL_STORAGE")
+#define VP_UTIL_LABEL_UNKNOWN          __vp_util_get_string("VIDEOS_VIEW_DROPBOX_NAME")
+#define VP_UTIL_LABEL_CLOUD                    __vp_util_get_string("IDS_CLOUD_BODY_DROPBOX_ABB")
+
+
+#define DIR_PATH_LEN_MAX               4096
+
+typedef enum __Vp_Storage Vp_Storage;
+enum __Vp_Storage {
+       VP_STORAGE_NONE,
+       VP_STORAGE_PHONE,
+       VP_STORAGE_CLOUD,
+       VP_STORAGE_MMC,
+       VP_STORAGE_OTG,
+       VP_STORAGE_PERSONAL_PAGE,
+       VP_STORAGE_MAX
+};
+
+static const int RGB_BPP = 3;
+static const int RGBA_BPP = 4;
+typedef unsigned char uchar;
+typedef struct _rgb888 {
+       uchar r;
+       uchar g;
+       uchar b;
+} rgb888;
+
+typedef struct _rgba8888 {
+       uchar r;
+       uchar g;
+       uchar b;
+       uchar a;
+} rgba8888;
+
+typedef struct _transform {
+       int index;
+       float coef;
+} transform;
+
+/**
+ *
+ * @param ID
+ * @return
+ */
+static char *__vp_util_get_string(const char *ID)
+{
+       char *str = dgettext("video-player", ID);
+       return str;
+}
+
+/**
+ *
+ * @param filepath
+ * @return
+ */
+static Vp_Storage __vp_util_get_storage_type(const char *filepath)
+{
+       if (!filepath) {
+               return VP_STORAGE_NONE;
+       }
+
+       char *PHONE_FOLDER = NULL;
+       char *MEMORY_FOLDER = NULL;
+       Vp_Storage store_type = VP_STORAGE_NONE;
+
+       storage_get_root_directory(STORAGE_TYPE_INTERNAL, &PHONE_FOLDER);
+       storage_get_root_directory(STORAGE_TYPE_EXTERNAL, &MEMORY_FOLDER);
+
+       if (g_str_has_prefix(filepath, CLOUD_FOLDER)) {
+               store_type = VP_STORAGE_CLOUD;  /*store in cloud server */
+       } else if (g_str_has_prefix(filepath, PHONE_FOLDER)) {
+               store_type = VP_STORAGE_PHONE;  /*store in phone */
+       } else if (g_str_has_prefix(filepath, MEMORY_FOLDER)) {
+               store_type = VP_STORAGE_MMC;    /*store in MMC */
+       } else if (g_str_has_prefix(filepath, OTG_FOLDER)) {
+               store_type = VP_STORAGE_OTG;    /*store in OTG */
+       } else if (g_str_has_prefix(filepath, PERSONAL_PAGE_FOLDER)) {
+               store_type = VP_STORAGE_PERSONAL_PAGE;  /*store in persona page */
+       } else {
+               store_type = VP_STORAGE_NONE;
+       }
+
+       free(PHONE_FOLDER);
+       free(MEMORY_FOLDER);
+
+       return store_type;
+}
+
+/**
+ *
+ * @param full_path
+ * @return
+ */
+static char *__vp_util_get_logic_path(const char *full_path)
+{
+       if (!full_path) {
+               return NULL;
+       }
+
+       char *PHONE_FOLDER = NULL;
+       char *MEMORY_FOLDER = NULL;
+       Vp_Storage store_type = VP_STORAGE_NONE;
+       int root_len = 0;
+
+       storage_get_root_directory(STORAGE_TYPE_INTERNAL, &PHONE_FOLDER);
+       storage_get_root_directory(STORAGE_TYPE_EXTERNAL, &MEMORY_FOLDER);
+
+       store_type = __vp_util_get_storage_type(full_path);
+
+       switch (store_type) {
+       case VP_STORAGE_PHONE:
+               root_len = strlen(PHONE_FOLDER);
+               break;
+       case VP_STORAGE_MMC:
+               root_len = strlen(MEMORY_FOLDER);
+               break;
+       case VP_STORAGE_OTG:
+               root_len = strlen(OTG_FOLDER);
+               break;
+       case VP_STORAGE_PERSONAL_PAGE:
+               root_len = strlen(PERSONAL_PAGE_FOLDER);
+               break;
+       default:
+               free(PHONE_FOLDER);
+               free(MEMORY_FOLDER);
+               return NULL;
+       }
+
+       free(PHONE_FOLDER);
+       free(MEMORY_FOLDER);
+
+       /*size of path is DIR_PATH_LEN_MAX+1 */
+       char *logic_path = NULL;
+       logic_path = (char *) malloc(DIR_PATH_LEN_MAX + 1);
+       if (logic_path == NULL) {
+               return NULL;
+       }
+
+       memset(logic_path, 0, DIR_PATH_LEN_MAX + 1);
+
+       g_strlcpy(logic_path, full_path + root_len, DIR_PATH_LEN_MAX);
+
+       if (strlen(logic_path) == 0) {
+               g_strlcpy(logic_path, "/", DIR_PATH_LEN_MAX);
+       }
+
+       return logic_path;
+}
+
+/**
+ *
+ * @param szFileLocation
+ * @return
+ */
+char *vp_util_convert_file_location(const char *szFileLocation)
+{
+       if (!szFileLocation) {
+               return NULL;
+       }
+
+       Vp_Storage store_type = VP_STORAGE_NONE;
+       char *logic_path = NULL;
+       char *file_location = NULL;
+
+       store_type = __vp_util_get_storage_type(szFileLocation);
+
+       if (store_type == VP_STORAGE_CLOUD) {
+               file_location = g_strdup(VP_UTIL_LABEL_CLOUD);
+               return file_location;
+       }
+
+
+       logic_path = __vp_util_get_logic_path(szFileLocation);
+
+       if (!logic_path) {
+               return NULL;
+       }
+
+       if (store_type == VP_STORAGE_MMC) {
+               file_location =
+                       g_strconcat(VP_UTIL_LABEL_SD_CARD, logic_path, NULL);
+       } else if (store_type == VP_STORAGE_PHONE) {
+               file_location =
+                       g_strconcat(VP_UTIL_LABEL_DEVICE_MEMORY, logic_path, NULL);
+       } else if (store_type == VP_STORAGE_OTG) {
+               file_location = g_strconcat(VP_UTIL_LABEL_OTG, logic_path, NULL);
+       } else if (store_type == VP_STORAGE_PERSONAL_PAGE) {
+               file_location =
+                       g_strconcat(VP_UTIL_LABEL_PERSONAL_PAGE, logic_path, NULL);
+       } else {
+               file_location = g_strdup(VP_UTIL_LABEL_UNKNOWN);
+       }
+
+       g_free(logic_path);
+       logic_path = NULL;
+
+       return file_location;
+}
+
+/**
+ *
+ * @param dest
+ * @param dest_width
+ * @param dest_height
+ * @param dest_rotation
+ * @param src
+ * @param src_w
+ * @param src_h
+ * @param colorspace
+ * @return
+ */
+int vp_util_image_rotate(unsigned char *dest, int *dest_width,
+                                                int *dest_height,
+                                                const image_util_rotation_e dest_rotation,
+                                                const unsigned char *src, const int src_w,
+                                                const int src_h,
+                                                const image_util_colorspace_e colorspace)
+{
+       if (!dest || !dest_width || !dest_height || !src) {
+               return IMAGE_UTIL_ERROR_INVALID_PARAMETER;
+       }
+
+       if (IMAGE_UTIL_COLORSPACE_RGB888 != colorspace || src_w <= 0
+               || src_h <= 0 || dest_rotation <= IMAGE_UTIL_ROTATION_NONE
+               || dest_rotation > IMAGE_UTIL_ROTATION_FLIP_VERT) {
+               return IMAGE_UTIL_ERROR_INVALID_PARAMETER;
+       }
+
+       const int dest_w =
+               (IMAGE_UTIL_ROTATION_180 == dest_rotation ? src_w : src_h);
+       const int dest_h =
+               (IMAGE_UTIL_ROTATION_180 == dest_rotation ? src_h : src_w);
+       const unsigned int src_stride = src_w * sizeof(rgb888);
+       const unsigned int dest_stride = dest_w * sizeof(rgb888);
+       int x = 0, y = 0;
+
+       switch (dest_rotation) {
+       case IMAGE_UTIL_ROTATION_90:{
+                       const rgb888 *const src_col_0 =
+                               (rgb888 *) (src + (src_h - 1) * src_stride);
+                       for (y = 0; y < dest_h; y++) {
+                               rgb888 *const dest_row =
+                                       (rgb888 *) (dest + y * dest_stride);
+                               const rgb888 *const src_col = (src_col_0 + y);
+                               for (x = 0; x < dest_w; x++) {
+                                       dest_row[x] =
+                                               *(rgb888 *) ((uchar *) src_col - x * src_stride);
+                               }
+                       }
+               }
+               break;
+
+       case IMAGE_UTIL_ROTATION_180:{
+                       const rgb888 *const src_row_rev_0 =
+                               (rgb888 *) (src + (src_h - 1) * src_stride +
+                                                       (src_w - 1) * sizeof(rgb888));
+                       for (y = 0; y < dest_h; y++) {
+                               rgb888 *const dest_row =
+                                       (rgb888 *) (dest + y * dest_stride);
+                               const rgb888 *const src_row_rev =
+                                       (rgb888 *) ((uchar *) src_row_rev_0 - y * src_stride);
+                               for (x = 0; x < dest_w; x++) {
+                                       dest_row[x] = *(src_row_rev - x);
+                               }
+                       }
+               }
+               break;
+
+       case IMAGE_UTIL_ROTATION_270:{
+                       const rgb888 *const src_col_rev_0 =
+                               (rgb888 *) (src + (src_w - 1) * sizeof(rgb888));
+                       for (y = 0; y < dest_h; y++) {
+                               rgb888 *const dest_row =
+                                       (rgb888 *) (dest + y * dest_stride);
+                               const rgb888 *const src_col_rev = (src_col_rev_0 - y);
+                               for (x = 0; x < dest_w; x++) {
+                                       dest_row[x] =
+                                               *(rgb888 *) ((uchar *) src_col_rev +
+                                                                        x * src_stride);
+                               }
+                       }
+               }
+               break;
+
+       default:
+               return IMAGE_UTIL_ERROR_INVALID_PARAMETER;
+       }
+
+       *dest_width = dest_w;
+       *dest_height = dest_h;
+       return IMAGE_UTIL_ERROR_NONE;
+}
+
+/**
+ *
+ */
+void vp_util_lock_cpu()
+{
+       int ret = device_power_request_lock(POWER_LOCK_CPU, 0);
+       if (ret) {
+               return;
+       }
+}
+
+/**
+ *
+ */
+void vp_util_release_cpu()
+{
+       int ret = device_power_release_lock(POWER_LOCK_CPU);
+       if (ret) {
+               return;
+       }
+}
+
+int vp_util_image_resize(unsigned char *dest, const int *dest_width,
+                                                const int *dest_height, const unsigned char *src,
+                                                const int src_w, const int src_h,
+                                                const image_util_colorspace_e colorspace)
+{
+       if (!dest || !dest_width || !dest_height || !src) {
+               return IMAGE_UTIL_ERROR_INVALID_PARAMETER;
+       }
+
+       int dest_w = *dest_width;
+       int dest_h = *dest_height;
+
+       if ((IMAGE_UTIL_COLORSPACE_RGB888 != colorspace
+                && IMAGE_UTIL_COLORSPACE_RGBA8888 != colorspace)
+               || src_w <= 0 || src_h <= 0 || dest_w <= 0 || dest_h <= 0) {
+               return IMAGE_UTIL_ERROR_INVALID_PARAMETER;
+       }
+
+       const unsigned int bpp =
+               (IMAGE_UTIL_COLORSPACE_RGBA8888 ==
+                colorspace ? RGBA_BPP : RGB_BPP);
+       const unsigned int src_stride = bpp * src_w;
+       const unsigned int dest_stride = bpp * dest_w;
+       float coef = 0.0f;
+       float c1, c2, c3, c4;
+       c1 = c2 = c3 = c4 = 0.0f;
+       u_int32_t red, green, blue, alpha;
+       red = green = blue = alpha = 0;
+       int x = 0, y = 0;
+       const float coef_x = (float) (src_w) / (float) (dest_w);
+       const float coef_y = (float) (src_h) / (float) (dest_h);
+       const float add_x = 0.5f * coef_x - 0.5f;
+       const float add_y = 0.5f * coef_y - 0.5f;
+       transform *transform_x = NULL, *transform_y = NULL;
+       transform_x = calloc(dest_w, sizeof(transform));
+       if (!transform_x) {
+               return IMAGE_UTIL_ERROR_OUT_OF_MEMORY;
+       }
+       transform_y = calloc(dest_h, sizeof(transform));
+       if (!transform_y) {
+               free(transform_x);
+               return IMAGE_UTIL_ERROR_OUT_OF_MEMORY;
+       }
+
+       for (x = 0; x < dest_w; ++x) {
+               coef = x * coef_x + add_x;
+               transform_x[x].index = (int) coef;
+               transform_x[x].coef = 1 - coef + transform_x[x].index;
+       }
+       if (transform_x[0].index < 0) {
+               transform_x[0].index = 0;
+               transform_x[0].coef = 1.0f;
+       }
+       if (transform_x[dest_w - 1].index >= src_w - 2) {
+               transform_x[dest_w - 1].index = src_w - 2;
+               transform_x[dest_w - 1].coef = 0.0f;
+       }
+
+       for (y = 0; y < dest_h; ++y) {
+               coef = y * coef_y + add_y;
+               transform_y[y].index = (int) coef;
+               transform_y[y].coef = 1 - coef + transform_y[y].index;
+       }
+       if (transform_y[0].index < 0) {
+               transform_y[0].index = 0;
+               transform_y[0].coef = 1.0f;
+       }
+       if (transform_y[dest_h - 1].index >= src_h - 2) {
+               transform_y[dest_h - 1].index = src_h - 2;
+               transform_y[dest_h - 1].coef = 0.0f;
+       }
+
+       if (colorspace == IMAGE_UTIL_COLORSPACE_RGBA8888) {
+               for (y = 0; y < dest_h; ++y) {
+                       const transform t_y = transform_y[y];
+                       rgba8888 *const dest_row =
+                               (rgba8888 *) (dest + y * dest_stride);
+                       const rgba8888 *const src_row_1 =
+                               (rgba8888 *) (src + t_y.index * src_stride);
+                       const rgba8888 *const src_row_2 =
+                               (rgba8888 *) (src + (t_y.index + 1) * src_stride);
+
+                       for (x = 0; x < dest_w; ++x) {
+                               const transform t_x = transform_x[x];
+                               const rgba8888 pixel1 = src_row_1[t_x.index];
+                               const rgba8888 pixel2 = src_row_1[t_x.index + 1];
+                               const rgba8888 pixel3 = src_row_2[t_x.index];
+                               const rgba8888 pixel4 = src_row_2[t_x.index + 1];
+                               c1 = t_x.coef * t_y.coef;
+                               c2 = (1 - t_x.coef) * t_y.coef;
+                               c3 = t_x.coef * (1 - t_y.coef);
+                               c4 = (1 - t_x.coef) * (1 - t_y.coef);
+                               red = pixel1.r * c1 + pixel2.r * c2 + pixel3.r * c3
+                                       + pixel4.r * c4;
+                               green = pixel1.g * c1 + pixel2.g * c2 + pixel3.g * c3
+                                       + pixel4.g * c4;
+                               blue = pixel1.b * c1 + pixel2.b * c2 + pixel3.b * c3
+                                       + pixel4.b * c4;
+                               alpha = pixel1.a * c1 + pixel2.a * c2 + pixel3.a * c3
+                                       + pixel4.a * c4;
+                               dest_row[x].r = red;
+                               dest_row[x].g = green;
+                               dest_row[x].b = blue;
+                               dest_row[x].a = alpha;
+                       }
+               }
+       } else {
+               for (y = 0; y < dest_h; ++y) {
+                       const transform t_y = transform_y[y];
+                       rgb888 *const dest_row = (rgb888 *) (dest + y * dest_stride);
+                       const rgb888 *const src_row_1 =
+                               (rgb888 *) (src + t_y.index * src_stride);
+                       const rgb888 *const src_row_2 =
+                               (rgb888 *) (src + (t_y.index + 1) * src_stride);
+
+                       for (x = 0; x < dest_w; ++x) {
+                               const transform t_x = transform_x[x];
+                               const rgb888 pixel1 = src_row_1[t_x.index];
+                               const rgb888 pixel2 = src_row_1[t_x.index + 1];
+                               const rgb888 pixel3 = src_row_2[t_x.index];
+                               const rgb888 pixel4 = src_row_2[t_x.index + 1];
+                               c1 = t_x.coef * t_y.coef;
+                               c2 = (1 - t_x.coef) * t_y.coef;
+                               c3 = t_x.coef * (1 - t_y.coef);
+                               c4 = (1 - t_x.coef) * (1 - t_y.coef);
+                               red = pixel1.r * c1 + pixel2.r * c2 + pixel3.r * c3
+                                       + pixel4.r * c4;
+                               green = pixel1.g * c1 + pixel2.g * c2 + pixel3.g * c3
+                                       + pixel4.g * c4;
+                               blue = pixel1.b * c1 + pixel2.b * c2 + pixel3.b * c3
+                                       + pixel4.b * c4;
+
+                               dest_row[x].r = red;
+                               dest_row[x].g = green;
+                               dest_row[x].b = blue;
+                       }
+               }
+       }
+
+       free(transform_x);
+       free(transform_y);
+
+       return IMAGE_UTIL_ERROR_NONE;
+}
diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..1f37850
--- /dev/null
@@ -0,0 +1,57 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(core C)
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(VERSION 0.1.0)
+
+SET(SRCS
+       src/vp-drm.c
+)
+
+INCLUDE_DIRECTORIES(
+       ${CMAKE_SOURCE_DIR}/common/include
+       ${CMAKE_CURRENT_SOURCE_DIR}/include
+       ${CMAKE_CURRENT_SOURCE_DIR}/src/include
+)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(${PROJECT_NAME}_pkgs REQUIRED
+       elementary
+       ecore
+       ecore-evas
+       edje
+       eina
+       evas
+       dlog
+       capi-appfw-application
+       capi-system-system-settings
+)
+
+FOREACH(flag ${${PROJECT_NAME}_pkgs_CFLAGS})
+       SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS} -Wall")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_CXX_FLAGS}")
+
+ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
+
+ADD_LIBRARY(${PROJECT_NAME} STATIC ${SRCS})
+
+SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION} )
+SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${${PROJECT_NAME}_pkgs_LDFLAGS})
+
+
+#install resouce files.
+# Lack of a trailing slash means install this directory, trailing slash means
+# install everything in this directory.
+
+# Install image files.
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib)
+
+
+
+
diff --git a/core/include/vp-drm.h b/core/include/vp-drm.h
new file mode 100755 (executable)
index 0000000..91b3592
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#ifdef ENABLE_DRM_FEATURE
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+
+typedef enum {
+       VP_DRM_CONSTRAINT_TYPE_RENTAL = 0,
+       VP_DRM_CONSTRAINT_TYPE_RENTAL_UNLIMITED,
+       VP_DRM_CONSTRAINT_TYPE_PURCHASE,
+       VP_DRM_CONSTRAINT_TYPE_BASE,
+       VP_DRM_CONSTRAINT_TYPE_EXPIRED,
+       VP_DRM_CONSTRAINT_TYPE_NOT_AUTHORIZED,
+       VP_DRM_CONSTRAINT_TYPE_INVALID_DRM_VERSION,
+       VP_DRM_CONSTRAINT_TYPE_UNKNOWN_TYPE,
+       VP_DRM_CONSTRAINT_TYPE_GENERAL_ERROR
+} vp_drm_constraint_status_t;
+
+
+typedef struct _vp_drm_constraint_info {
+       vp_drm_constraint_status_t status;
+       int constraints;
+
+       int original_count;
+       int remaining_count;
+       bool date_time_expired;
+       int remaining_interval_sec;
+       int remaining_timed_count;
+       int remaining_acc_sec;
+} vp_drm_constraint_info;
+
+typedef enum {
+       VP_DRM_CONSTRAINT_UNLIMITED = 0x0,
+       VP_DRM_CONSTRAINT_COUNT = 0x01,
+       VP_DRM_CONSTRAINT_DATE_TIME = 0x02,
+       VP_DRM_CONSTRAINT_INTERVAL = 0x04,
+       VP_DRM_CONSTRAINT_TIMED_COUNT = 0x08,
+       VP_DRM_CONSTRAINT_ACCUMLATED_TIME = 0x10,
+} vp_drm_constraint_type_t;
+
+
+bool vp_drm_is_drm_file(const char *szMediaURL, bool * bIsDRM);
+bool vp_drm_is_divx_drm_file(const char *szMediaURL, bool * bIsDivXDRM);
+bool vp_drm_is_playready_drm_file(const char *szMediaURL,
+                                                                 bool * bIsPlayReadyDRM);
+bool vp_drm_is_check_license(const char *szMediaURL, bool * bCheckLicense);
+bool vp_drm_is_check_forward_lock(const char *szMediaURL,
+                                                                 bool * bIsFowardLock);
+bool vp_drm_get_constarint_info(const char *szMediaURL,
+                                                               vp_drm_constraint_info * pConstraintInfo);
+bool vp_drm_get_file_mime_type(const char *szMediaURL, char **szMime);
+bool vp_drm_get_store_item_license(char *pPath, char *pStoreAppId,
+                                                                  char *pUserId, char *pImei,
+                                                                  char *pOrderId, char *pMvId,
+                                                                  char *pServerId);
+
+#endif                                                 //ENABLE_DRM_FEATURE
diff --git a/core/src/include/vp-core-common.h b/core/src/include/vp-core-common.h
new file mode 100755 (executable)
index 0000000..fb46b34
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#pragma once
+
+#include <Ecore.h>
+#include <Elementary.h>
+
+#include "vp-debug.h"
+#include "vp-macro.h"
diff --git a/core/src/vp-drm.c b/core/src/vp-drm.c
new file mode 100755 (executable)
index 0000000..389eea5
--- /dev/null
@@ -0,0 +1,575 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#ifdef ENABLE_DRM_FEATURE
+
+#include <drm_client.h>
+#include <drm_client_types.h>
+
+#include "vp-debug.h"
+#include "vp-macro.h"
+
+
+#include "vp-drm.h"
+
+/* callback functions */
+
+
+/* internal functions */
+static void _vp_drm_print_error_code(drm_result_e nErr)
+{
+       switch (nErr) {
+       case DRM_RETURN_INVALID_ARG:
+               vp_dbgE("DRM_RETURN_INVALID_ARG Error");
+               break;
+       case DRM_RETURN_INSUFFICIENT_MEMORY:
+               vp_dbgE("DRM_RETURN_INSUFFICIENT_MEMORY Error");
+               break;
+       case DRM_RETURN_PARSING_ERROR:
+               vp_dbgE("DRM_RETURN_PARSING_ERROR Error");
+               break;
+       case DRM_RETURN_DB_ERROR:
+               vp_dbgE("DRM_RETURN_DB_ERROR Error");
+               break;
+       case DRM_RETURN_FILE_ERROR:
+               vp_dbgE("DRM_RETURN_FILE_ERROR Error");
+               break;
+       case DRM_RETURN_COMMUNICATION_ERROR:
+               vp_dbgE("DRM_RETURN_COMMUNICATION_ERROR Error");
+               break;
+       case DRM_RETURN_OPL_ERROR:
+               vp_dbgE("DRM_RETURN_OPL_ERROR Error");
+               break;
+       case DRM_RETURN_NO_LICENSE_ERROR:
+               vp_dbgE("DRM_RETURN_NO_LICENSE_ERROR Error");
+               break;
+       case DRM_RETURN_LICENSE_EXPIRED_ERROR:
+               vp_dbgE("DRM_RETURN_LICENSE_EXPIRED_ERROR Error");
+               break;
+       case DRM_RETURN_LICENCE_FUTURE_USE_ERROR:
+               vp_dbgE("DRM_RETURN_LICENCE_FUTURE_USE_ERROR Error");
+               break;
+       case DRM_RETURN_LICENSE_SUSPEND_ERROR:
+               vp_dbgE("DRM_RETURN_LICENSE_SUSPEND_ERROR Error");
+               break;
+       case DRM_RETURN_SERVER_CRASHED:
+               vp_dbgE("DRM_RETURN_SERVER_CRASHED Error");
+               break;
+       case DRM_RETURN_NO_SECURE_CLOCK_ERROR:
+               vp_dbgE("DRM_RETURN_NO_SECURE_CLOCK_ERROR Error");
+               break;
+       case DRM_RETURN_INTERNAL_ERROR:
+               vp_dbgE("DRM_RETURN_INTERNAL_ERROR Error");
+               break;
+       default:
+               vp_dbgE("Unknown Error");
+               break;
+       }
+
+}
+
+/* external functions */
+bool vp_drm_is_drm_file(const char *szMediaURL, bool * bIsDRM)
+{
+       if (!szMediaURL) {
+               vp_dbgE("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       int nRet = DRM_RETURN_SUCCESS;
+       drm_bool_type_e is_drm = DRM_FALSE;
+
+       *bIsDRM = FALSE;
+
+       nRet = drm_is_drm_file(szMediaURL, &is_drm);
+       if (nRet != DRM_RETURN_SUCCESS) {
+               vp_dbgE("drm_is_drm_file is fail");
+               _vp_drm_print_error_code(nRet);
+               return FALSE;
+       }
+
+       if (is_drm == DRM_TRUE) {
+               *bIsDRM = TRUE;
+       }
+
+       return TRUE;
+}
+
+bool vp_drm_is_divx_drm_file(const char *szMediaURL, bool * bIsDivXDRM)
+{
+       if (!szMediaURL) {
+               vp_dbgE("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       drm_file_type_e drm_type = DRM_TYPE_UNDEFINED;
+       drm_bool_type_e is_drm = DRM_FALSE;
+       int nRet = DRM_RETURN_SUCCESS;
+
+       nRet = drm_is_drm_file(szMediaURL, &is_drm);
+       if (nRet != DRM_RETURN_SUCCESS) {
+               vp_dbgE("drm_is_drm_file is fail");
+               _vp_drm_print_error_code(nRet);
+               return FALSE;
+       }
+
+       if (is_drm != DRM_TRUE) {
+               *bIsDivXDRM = FALSE;
+               return TRUE;
+       }
+
+       nRet = drm_get_file_type(szMediaURL, &drm_type);
+       if (nRet != DRM_RETURN_SUCCESS) {
+               vp_dbgE("drm_get_file_type is fail");
+               _vp_drm_print_error_code(nRet);
+               return FALSE;
+       }
+
+       if (drm_type == DRM_TYPE_DIVX) {
+               *bIsDivXDRM = TRUE;
+               vp_dbgW("%s file is DIVX", szMediaURL);
+       } else {
+               *bIsDivXDRM = FALSE;
+               vp_dbgW("%s file is %d type", szMediaURL, drm_type);
+       }
+
+       return TRUE;
+}
+
+bool vp_drm_is_playready_drm_file(const char *szMediaURL,
+                                                                 bool * bIsPlayReadyDRM)
+{
+       if (!szMediaURL) {
+               vp_dbgE("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       drm_file_type_e drm_type = DRM_TYPE_UNDEFINED;
+       drm_bool_type_e is_drm = DRM_FALSE;
+       int nRet = DRM_RETURN_SUCCESS;
+
+       nRet = drm_is_drm_file(szMediaURL, &is_drm);
+       if (nRet != DRM_RETURN_SUCCESS) {
+               vp_dbgE("drm_is_drm_file is fail");
+               _vp_drm_print_error_code(nRet);
+               return FALSE;
+       }
+
+       if (is_drm != DRM_TRUE) {
+               *bIsPlayReadyDRM = FALSE;
+               return TRUE;
+       }
+
+       nRet = drm_get_file_type(szMediaURL, &drm_type);
+       if (nRet != DRM_RETURN_SUCCESS) {
+               vp_dbgE("drm_get_file_type is fail");
+               _vp_drm_print_error_code(nRet);
+               return FALSE;
+       }
+
+       if (drm_type == DRM_TYPE_PLAYREADY
+               || drm_type == DRM_TYPE_PLAYREADY_ENVELOPE) {
+               *bIsPlayReadyDRM = TRUE;
+               vp_dbgW("%s file is PlayReady", szMediaURL);
+       } else {
+               *bIsPlayReadyDRM = FALSE;
+               vp_dbgW("%s file is %d type", szMediaURL, drm_type);
+       }
+
+       return TRUE;
+}
+
+
+bool vp_drm_is_check_license(const char *szMediaURL, bool * bCheckLicense)
+{
+       if (!szMediaURL) {
+               vp_dbgE("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       *bCheckLicense = TRUE;
+
+       drm_license_status_e nLicenseStatus = DRM_LICENSE_STATUS_UNDEFINED;
+       int nRet = drm_get_license_status(szMediaURL, DRM_PERMISSION_TYPE_PLAY,
+                                                                         &nLicenseStatus);
+       if (nRet != DRM_RETURN_SUCCESS) {
+               vp_dbgE("drm_get_license_status is fail");
+               _vp_drm_print_error_code(nRet);
+               return FALSE;
+       }
+
+       if (nLicenseStatus != DRM_LICENSE_STATUS_VALID) {
+               vp_dbgE("Invalid license status : %d", nLicenseStatus);
+               *bCheckLicense = FALSE;
+       }
+
+       return TRUE;
+}
+
+bool vp_drm_is_check_forward_lock(const char *szMediaURL,
+                                                                 bool * bIsFowardLock)
+{
+       if (!szMediaURL) {
+               vp_dbgE("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       *bIsFowardLock = FALSE;
+
+       drm_bool_type_e is_drm = DRM_FALSE;
+       int nRet = DRM_RETURN_SUCCESS;
+       drm_file_type_e drm_type = DRM_TYPE_UNDEFINED;
+
+       nRet = drm_is_drm_file(szMediaURL, &is_drm);
+       if (nRet != DRM_RETURN_SUCCESS) {
+               vp_dbgW("drm_is_drm_file is fail");
+               _vp_drm_print_error_code(nRet);
+               return FALSE;
+       }
+
+       nRet = drm_get_file_type(szMediaURL, &drm_type);
+       if (nRet != DRM_RETURN_SUCCESS) {
+               vp_dbgE("drm_get_file_type is fail");
+               _vp_drm_print_error_code(nRet);
+               return FALSE;
+       }
+
+       if (drm_type != DRM_TYPE_OMA_V1 && drm_type != DRM_TYPE_OMA_V2) {
+               return FALSE;
+       }
+
+       drm_file_info_s st_DrmFileInfo;
+       memset(&st_DrmFileInfo, 0x0, sizeof(drm_file_info_s));
+
+       nRet = drm_get_file_info(szMediaURL, &st_DrmFileInfo);
+       if (nRet != DRM_RETURN_SUCCESS) {
+               vp_dbgE("drm_get_file_info is fail");
+               _vp_drm_print_error_code(nRet);
+               return FALSE;
+       }
+
+       if (st_DrmFileInfo.oma_info.method == DRM_METHOD_TYPE_FORWARD_LOCK) {
+               vp_dbgW
+                       ("st_DrmFileInfo.oma_info.method == DRM_METHOD_TYPE_FORWARD_LOCK");
+               *bIsFowardLock = TRUE;
+       }
+
+       return TRUE;
+}
+
+bool vp_drm_get_constarint_info(const char *szMediaURL,
+                                                               vp_drm_constraint_info * pConstraintInfo)
+{
+       if (!szMediaURL) {
+               vp_dbgE("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       drm_constraint_info_s sDrmConstraintInfo;
+
+       memset(&sDrmConstraintInfo, 0, sizeof(drm_constraint_info_s));
+
+       int nRet =
+               drm_get_constraint_info(szMediaURL, DRM_PERMISSION_TYPE_PLAY,
+                                                               &sDrmConstraintInfo);
+       if (nRet != DRM_RETURN_SUCCESS) {
+               vp_dbgE("drm_get_constraint_info is fail");
+               _vp_drm_print_error_code(nRet);
+               return FALSE;
+       }
+       switch (sDrmConstraintInfo.const_type.constraint_type) {
+       case DRM_CONSTRAINT_TYPE_RENTAL:
+               vp_dbgW("VP_DRM_CONSTRAINT_TYPE_RENTAL");
+               pConstraintInfo->status = VP_DRM_CONSTRAINT_TYPE_RENTAL;
+               break;
+       case DRM_CONSTRAINT_TYPE_RENTAL_UNLIMITED:
+               vp_dbgW("DRM_CONSTRAINT_TYPE_RENTAL_UNLIMITED");
+               pConstraintInfo->status = VP_DRM_CONSTRAINT_TYPE_RENTAL_UNLIMITED;
+               break;
+       case DRM_CONSTRAINT_TYPE_PURCHASE:
+               vp_dbgW("DRM_CONSTRAINT_TYPE_PURCHASE");
+               pConstraintInfo->status = VP_DRM_CONSTRAINT_TYPE_PURCHASE;
+               break;
+       case DRM_CONSTRAINT_TYPE_BASE:
+               vp_dbgW("DRM_CONSTRAINT_TYPE_BASE");
+               pConstraintInfo->status = VP_DRM_CONSTRAINT_TYPE_BASE;
+               break;
+       case DRM_CONSTRAINT_TYPE_EXPIRED:
+               vp_dbgW("DRM_CONSTRAINT_TYPE_EXPIRED");
+               pConstraintInfo->status = VP_DRM_CONSTRAINT_TYPE_EXPIRED;
+               break;
+       case DRM_CONSTRAINT_TYPE_NOT_AUTHORIZED:
+               vp_dbgW("DRM_CONSTRAINT_TYPE_NOT_AUTHORIZED");
+               pConstraintInfo->status = VP_DRM_CONSTRAINT_TYPE_NOT_AUTHORIZED;
+               break;
+       case DRM_CONSTRAINT_TYPE_INVALID_DRM_VERSION:
+               vp_dbgW("DRM_CONSTRAINT_TYPE_INVALID_DRM_VERSION");
+               pConstraintInfo->status =
+                       VP_DRM_CONSTRAINT_TYPE_INVALID_DRM_VERSION;
+               break;
+       case DRM_CONSTRAINT_TYPE_UNKNOWN_TYPE:
+               vp_dbgW("DRM_CONSTRAINT_TYPE_UNKNOWN_TYPE");
+               pConstraintInfo->status = VP_DRM_CONSTRAINT_TYPE_UNKNOWN_TYPE;
+               break;
+       case DRM_CONSTRAINT_TYPE_GENERAL_ERROR:
+               vp_dbgW("DRM_CONSTRAINT_TYPE_GENERAL_ERROR");
+               pConstraintInfo->status = VP_DRM_CONSTRAINT_TYPE_GENERAL_ERROR;
+               break;
+       }
+
+       if (sDrmConstraintInfo.const_type.is_unlimited) {
+               vp_dbgW("UNLIMITED");
+               pConstraintInfo->constraints = VP_DRM_CONSTRAINT_UNLIMITED;
+               return TRUE;
+       }
+
+       if (sDrmConstraintInfo.const_type.is_count) {
+               vp_dbgW("DRM_COUNT [%d]", sDrmConstraintInfo.remaining_count);
+               pConstraintInfo->constraints |= VP_DRM_CONSTRAINT_COUNT;
+               pConstraintInfo->original_count =
+                       sDrmConstraintInfo.original_count;
+               pConstraintInfo->remaining_count =
+                       sDrmConstraintInfo.remaining_count;
+       }
+
+       if (sDrmConstraintInfo.const_type.is_datetime) {
+               vp_dbgW("DRM_DATETIME");
+               pConstraintInfo->constraints |= VP_DRM_CONSTRAINT_DATE_TIME;
+               vp_dbgW("%d.%d.%d %d:%d~%d.%d.%d %d:%d",
+                               sDrmConstraintInfo.start_time.tm_mday,
+                               sDrmConstraintInfo.start_time.tm_mon,
+                               sDrmConstraintInfo.start_time.tm_year,
+                               sDrmConstraintInfo.start_time.tm_hour,
+                               sDrmConstraintInfo.start_time.tm_min,
+                               sDrmConstraintInfo.end_time.tm_mday,
+                               sDrmConstraintInfo.end_time.tm_mon,
+                               sDrmConstraintInfo.end_time.tm_year,
+                               sDrmConstraintInfo.end_time.tm_hour,
+                               sDrmConstraintInfo.end_time.tm_min);
+
+               struct timeval tv;
+               gettimeofday(&tv, NULL);
+               struct tm *ptm = NULL;
+               ptm = localtime(&tv.tv_sec);
+               ptm->tm_mon += 1;
+               ptm->tm_year += 1900;
+
+               time_t local_t = mktime(ptm);
+               time_t start_t = mktime(&(sDrmConstraintInfo.start_time));
+               time_t end_t = mktime(&(sDrmConstraintInfo.end_time));
+
+
+               vp_dbgW("%d.%d.%d %d:%d",
+                               ptm->tm_mday, ptm->tm_mon, ptm->tm_year,
+                               ptm->tm_hour, ptm->tm_min);
+
+               if (local_t >= start_t && local_t <= end_t) {
+                       pConstraintInfo->date_time_expired = FALSE;
+               } else {
+                       pConstraintInfo->date_time_expired = TRUE;
+               }
+
+       }
+
+       if (sDrmConstraintInfo.const_type.is_interval) {
+               vp_dbgW("DRM_INTERVAL");
+               pConstraintInfo->constraints |= VP_DRM_CONSTRAINT_INTERVAL;
+               vp_dbgW("Remain... %d.%d.%d %d:%d",
+                               sDrmConstraintInfo.interval_time.tm_mon,
+                               sDrmConstraintInfo.interval_time.tm_mday,
+                               sDrmConstraintInfo.interval_time.tm_year,
+                               sDrmConstraintInfo.interval_time.tm_hour,
+                               sDrmConstraintInfo.interval_time.tm_min);
+
+               pConstraintInfo->remaining_interval_sec =
+                       sDrmConstraintInfo.interval_time.tm_sec +
+                       sDrmConstraintInfo.interval_time.tm_min * 60 +
+                       sDrmConstraintInfo.interval_time.tm_hour * 3600;
+               pConstraintInfo->remaining_interval_sec +=
+                       (sDrmConstraintInfo.interval_time.tm_mday +
+                        sDrmConstraintInfo.interval_time.tm_mon * 30 +
+                        sDrmConstraintInfo.interval_time.tm_year * 365) * (3600 * 24);
+       }
+
+       if (sDrmConstraintInfo.const_type.is_timedcount) {
+               vp_dbgW("DRM_TIMED_COUNT");
+               vp_dbgW("%d left (%d sec)",
+                               sDrmConstraintInfo.timed_remaining_count,
+                               sDrmConstraintInfo.timed_count_timer);
+               pConstraintInfo->constraints |= VP_DRM_CONSTRAINT_TIMED_COUNT;
+               pConstraintInfo->remaining_timed_count =
+                       sDrmConstraintInfo.timed_remaining_count;
+       }
+
+       if (sDrmConstraintInfo.const_type.is_accumulated) {
+               vp_dbgW("DRM_ACCUMULATED [%d]",
+                               sDrmConstraintInfo.accumulated_remaining_seconds);
+               pConstraintInfo->constraints |= VP_DRM_CONSTRAINT_ACCUMLATED_TIME;
+               pConstraintInfo->remaining_acc_sec =
+                       sDrmConstraintInfo.accumulated_remaining_seconds;
+       }
+
+       if (sDrmConstraintInfo.const_type.is_individual) {
+               vp_sdbg("DRM_INDIVISUAL_ID [%s]",
+                               sDrmConstraintInfo.individual_id);
+       }
+
+       if (sDrmConstraintInfo.const_type.is_system) {
+               vp_sdbg("DRM_SYSTEM [ID:%s, type:%d]",
+                               sDrmConstraintInfo.system_id,
+                               sDrmConstraintInfo.system_identity_type);
+       }
+
+       return TRUE;
+}
+
+bool vp_drm_get_file_mime_type(const char *szMediaURL, char **szMime)
+{
+       if (!szMediaURL) {
+               vp_dbgE("[ERR]");
+               return FALSE;
+       }
+
+
+       drm_bool_type_e is_drm = DRM_FALSE;
+       int nRet = DRM_RETURN_SUCCESS;
+       drm_file_type_e drm_type = DRM_TYPE_UNDEFINED;
+
+       nRet = drm_is_drm_file(szMediaURL, &is_drm);
+       if (nRet != DRM_RETURN_SUCCESS) {
+               vp_dbgW("drm_is_drm_file is fail");
+               _vp_drm_print_error_code(nRet);
+               return FALSE;
+       }
+
+       nRet = drm_get_file_type(szMediaURL, &drm_type);
+       if (nRet != DRM_RETURN_SUCCESS) {
+               vp_dbgE("drm_get_file_type is fail");
+               _vp_drm_print_error_code(nRet);
+               return FALSE;
+       }
+
+       if (drm_type == DRM_TYPE_PLAYREADY
+               || drm_type == DRM_TYPE_PLAYREADY_ENVELOPE) {
+               vp_sdbg("contentType: video/vnd.ms-playready.media.pyv");
+               return FALSE;
+       } else if (drm_type == DRM_TYPE_OMA_V1 || drm_type == DRM_TYPE_OMA_V2) {
+               drm_content_info_s content_info;
+
+               int nRet = DRM_RETURN_SUCCESS;
+               memset(&content_info, 0, sizeof(drm_content_info_s));
+
+               nRet = drm_get_content_info(szMediaURL, &content_info);
+               if (nRet != DRM_RETURN_SUCCESS) {
+                       vp_dbgE("drm_get_constraint_info is fail");
+                       _vp_drm_print_error_code(nRet);
+                       return FALSE;
+               }
+
+               vp_sdbg("contentType: %s", content_info.mime_type);
+               VP_STRDUP(*szMime, content_info.mime_type);
+       } else {
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+
+bool
+vp_drm_get_store_item_license(char *pPath, char *pStoreAppId,
+                                                         char *pUserId, char *pImei, char *pOrderId,
+                                                         char *pMvId, char *pServerId)
+{
+       int nRet = -1;
+
+       // for domain hardening, license aquisition
+       drm_initiator_info_s initiator_info = { "", 0, };
+       drm_web_server_resp_data_s ws_resp_data = { "", 0, };
+
+       if (!pPath) {
+               vp_dbgE("[ERR]");
+               return FALSE;
+       }
+
+       if (!pStoreAppId) {
+               vp_dbgE("[ERR]");
+               return FALSE;
+       }
+
+       if (!pUserId) {
+               vp_dbgE("[ERR]");
+               return FALSE;
+       }
+
+       if (!pImei) {
+               vp_dbgE("[ERR]");
+               return FALSE;
+       }
+
+       if (!pOrderId) {
+               vp_dbgE("[ERR]");
+               return FALSE;
+       }
+
+       if (!pMvId) {
+               vp_dbgE("[ERR]");
+               return FALSE;
+       }
+
+       if (!pServerId) {
+               vp_dbgE("[ERR]");
+               return FALSE;
+       }
+
+       vp_sdbg
+               ("pPath: [%s], pStoreAppId: [%s], pUserId: [%s], pImei: [%s], pOrderId: [%s], pMvId: [%s], pServerId: [%s]",
+                pPath, pStoreAppId, pUserId, pImei, pOrderId, pMvId, pServerId);
+
+       initiator_info.init_type = DRM_INITIATOR_TYPE_LICENSE_ACQ;
+       initiator_info.initiator_url_len = strlen(pPath);
+       snprintf(initiator_info.initiator_url, DRM_MAX_LEN_INITIATOR_URL,
+                        "%s", pPath);
+       snprintf(initiator_info.custom_data.app_id, DRM_MAX_LEN_APP_ID + 1,
+                        "%s", pStoreAppId);
+       snprintf(initiator_info.custom_data.user_guid,
+                        DRM_MAX_LEN_USER_GUID + 1, "%s", pUserId);
+       snprintf(initiator_info.custom_data.device_id,
+                        DRM_MAX_LEN_DEVICE_ID + 1, "%s", pImei);
+       snprintf(initiator_info.custom_data.order_id,
+                        DRM_MAX_LEN_ORDER_ID + 1, "%s", pOrderId);
+       snprintf(initiator_info.custom_data.mv_id, DRM_MAX_LEN_MV_ID + 1,
+                        "%s", pMvId);
+       snprintf(initiator_info.custom_data.svr_id, DRM_MAX_LEN_SVR_ID + 1,
+                        "%s", pServerId);
+
+       nRet =
+               drm_process_request(DRM_REQUEST_TYPE_SUBMIT_INITIATOR_URL,
+                                                       (void *) (&initiator_info),
+                                                       (void *) (&ws_resp_data));
+
+       if (nRet == DRM_RETURN_SUCCESS) {
+               vp_dbg("Server Error Code = %d", ws_resp_data.result_code);
+               vp_sdbg("Content URL = %s", ws_resp_data.content_url);
+       } else {
+               vp_dbgE("drm_process_request failed!!!");
+               _vp_drm_print_error_code((drm_result_e) nRet);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+#endif
diff --git a/include/common/mp-drm-ctrl.h b/include/common/mp-drm-ctrl.h
new file mode 100755 (executable)
index 0000000..f2a1001
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2020 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 _MP_DRM_CTRL_H_
+#define _MP_DRM_CTRL_H_
+
+#define        DRM_STR_LEN_MAX                         2048
+#define DIVX_DRM_UNLIMIT_VALUE         -999
+
+#define DIVX_DRM_AUTHORIZATION_ERROR_MSG               "This phone is not authorized to play this DivX protected video."
+#define DIVX_DRM_RENTAL_EXPIRED_MSG                            "This DivX rental has used %d of %d views.<br>This DivX rental has expired."
+#define DIVX_DRM_RENTAL_CONTINUE_MSG                   "This DivX rental has used %d of %d views.<br>Continue?"
+
+
+typedef enum {
+       DRM_CONTENT_INFO_NULL = -1,
+       DRM_CONTENT_INFO_AUTHOR,
+       DRM_CONTENT_INFO_RIGHTS_URL,
+       DRM_CONTENT_INFO_DESCRIPTION,
+} MpVideoDrmContentInfoType;
+
+
+typedef enum {
+       MP_VIDEO_DRM_ERROR_NONE = 0,
+       MP_VIDEO_DRM_ERROR_INTERNAL,
+       MP_VIDEO_DRM_ERROR_TIME_BASED,
+       MP_VIDEO_DRM_ERROR_INTERVAL,
+       MP_VIDEO_DRM_ERROR_INTERVAL_FIRST_USE,
+       MP_VIDEO_DRM_ERROR_ACCUMULATED,
+       MP_VIDEO_DRM_ERROR_COUNT,
+       MP_VIDEO_DRM_ERROR_COUNT_SMALL,
+       MP_VIDEO_DRM_ERROR_TIME_COUNT_BASED,
+       MP_VIDEO_DRM_ERROR_TIME_INDIVIDULAL,
+       MP_VIDEO_DRM_ERROR_TIME_SYSTEM,
+       MP_VIDEO_DRM_ERROR_MAX,
+} MpVideoDrmErrorType;
+
+
+typedef struct {
+       int constraints;
+
+       int remaining_count;
+       bool date_time_expired;
+       int remaining_interval_sec;
+       int remaining_timed_count;
+       int remaining_acc_sec;
+} st_MpConstraintsInfo;
+
+typedef enum {
+       MP_DRM_CONSTRAINT_UNLIMITED = 0x0,
+       MP_DRM_CONSTRAINT_COUNT = 0x01,
+       MP_DRM_CONSTRAINT_DATE_TIME = 0x02,
+       MP_DRM_CONSTRAINT_INTERVAL = 0x04,
+       MP_DRM_CONSTRAINT_TIMED_COUNT = 0x08,
+       MP_DRM_CONSTRAINT_ACCUMLATED_TIME = 0x10,
+} MpDrmConstraintInfoType;
+
+bool mp_drm_is_drm_file(char *szPath);
+bool mp_drm_check_foward_lock(char *szPath);
+
+bool mp_drm_is_divx(char *szPath);
+bool mp_drm_check_divx_rental_expired(char *szPath, int *use_count,
+                                                                         int *total_count);
+void mp_drm_get_file_extension(char *szPath, char *szContentType,
+                                                          int nContentTypeStrSize);
+
+#endif                                                 //_MP_DRM_CTRL_H_
+
diff --git a/include/common/mp-rotate-ctrl.h b/include/common/mp-rotate-ctrl.h
new file mode 100755 (executable)
index 0000000..d03333b
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2020 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 _VIDEO_ROTATE_CTRL_
+#define  _VIDEO_ROTATE_CTRL_
+
+#include <app.h>
+#include <stdbool.h>
+#include <Ecore_Evas.h>
+
+typedef enum {
+       VIDEOS_ROTATE_NONE = 0x00,
+       VIDEOS_ROTATE_90,
+       VIDEOS_ROTATE_180,
+       VIDEOS_ROTATE_270
+} VideosRotateStatus_t;
+
+
+void mp_rotate_ctrl_init(void);
+void mp_rotate_ctrl_destroy(void);
+VideosRotateStatus_t mp_rotate_ctrl_get_current_state(void);
+void mp_rotate_ctrl_set_state(int nAngle);
+bool mp_rotate_ctrl_check_landspace();
+bool mp_rotate_ctrl_check_landspace_by_win(Evas_Object * pWin);
+
+#endif
diff --git a/include/common/mp-util-config.h b/include/common/mp-util-config.h
new file mode 100755 (executable)
index 0000000..f39034c
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2020 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  __VIDEO_MP_UTIL_CONFIG__
+#define  __VIDEO_MP_UTIL_CONFIG__
+
+#include <stdbool.h>
+#include <Elementary.h>
+#include <app_preference.h>
+
+bool mp_util_config_set_multi_play_status(bool bMultiPlay);
+bool mp_util_config_get_multi_play_status(bool * bMultiPlay);
+
+bool mp_util_config_set_preview(char *szPreviewUrl);
+char *mp_util_config_get_preview(void);
+bool mp_util_config_preview_key_changed_cb(preference_changed_cb callback,
+                                                                                  void *pUserData);
+bool mp_util_config_ignore_preview_key_changed_cb();
+
+#endif
diff --git a/include/common/mp-util-media-service.h b/include/common/mp-util-media-service.h
new file mode 100755 (executable)
index 0000000..2bdb59d
--- /dev/null
@@ -0,0 +1,167 @@
+/*
+ * Copyright (c) 2020 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 _MP_UTIL_DATABASE_
+#define _MP_UTIL_DATABASE_
+
+#define RECENTLY_PLAYED_VIDEO_ITEM_MAX         20
+
+typedef enum {
+       MP_MEDIA_VIDEO_FILE_TYPE = 0,
+       MP_MEDIA_CAMERA_FILE_TYPE,
+       MP_MEDIA_ALL_FILE_TYPE,
+       MP_MEDIA_FILE_TYPE_MAX,
+} MpMediaSvcVideoFileType;
+
+typedef enum {
+       MP_MEDIA_SORT_BY_NONE = 0,
+       MP_MEDIA_SORT_BY_RECENTLY_VIEWED,
+       MP_MEDIA_SORT_BY_RECENTLY_ADDED,
+       MP_MEDIA_SORT_BY_NAME,
+       MP_MEDIA_SORT_BY_SIZE,
+       MP_MEDIA_SORT_BY_TYPE,
+       MP_MEDIA_SORT_BY_MAX,
+} MpMediaSvcSortType;
+
+
+typedef enum {
+       MP_MEDIA_LIST_TYPE_FOLDER = 0,
+       MP_MEDIA_LIST_TYPE_ALL_FOLDER_GALLERY,
+       MP_MEDIA_LIST_TYPE_TAG_GALLERY,
+       MP_MEDIA_LIST_TYPE_FAVORITE,
+       MP_MEDIA_LIST_TYPE_MAX,
+} MpMediaSvcListType;
+
+typedef enum {
+       MP_MEDIA_TYPE_STORAGE_UNKNOWN = 0,
+       MP_MEDIA_TYPE_STORAGE_INTERNAL,
+       MP_MEDIA_TYPE_STORAGE_EXTERNAL,
+       MP_MEDIA_TYPE_STORAGE_DROPBOX,
+       MP_MEDIA_TYPE_STORAGE_MAX,
+} MpMediaStorageType;
+
+
+typedef void (*UpdateDatabaseCbFunc) (void *pUserData, float fTimer,
+                                                                         int UpdateStyle);
+
+void mp_util_svc_init_session(void);
+void mp_util_svc_finish_session(void);
+
+////////////////////////////////////////////////////////
+// Manage video item list
+
+// For gallery list
+bool mp_util_svc_extract_video_list_from_folder(char *szFolderPath, int nSortType, int nItemType);     // For myfiles.
+bool mp_util_svc_extract_video_list_by_item_type(int nSortType, int nItemType);        // For video list by item type. (All/Phone/Cloud)
+bool mp_util_svc_index_list_for_search_view(const char *keyword, void **index_list);   // For only video type files of video search view
+
+void mp_util_svc_destory_video_list(void);
+bool mp_util_svc_destory_video_item_list(void);
+bool mp_util_svc_remove_item_by_list_index(int nVideoItemIndex);
+
+bool mp_util_svc_get_video_id_by_video_url(const char *szPath,
+                                                                                  char **szVideoID);
+char *mp_util_svc_get_video_Thumbnail_by_video_url(const char *szMediaUri);
+void mp_util_svc_set_video_last_played_time_by_url(char *szMediaUri,
+                                                                                                  unsigned int nPosition);
+
+// For video list
+char *mp_util_svc_get_video_url(const int nVideoItemIndex);
+char *mp_util_svc_get_video_thumbnail(const int nVideoItemIndex);
+char *mp_util_svc_get_video_title(const int nVideoItemIndex);
+int mp_util_svc_get_video_duration_time(const int nVideoItemIndex);
+unsigned long long mp_util_svc_get_video_item_size(const int
+                                                                                                  nVideoItemIndex);
+
+int mp_util_svc_get_video_item_width(const int nVideoItemIndex);
+int mp_util_svc_get_video_item_height(const int nVideoItemIndex);
+char *mp_util_svc_get_video_item_modified_time(const int nVideoItemIndex);
+
+int mp_util_svc_get_video_list_size_for_checking_index(void);
+int mp_util_svc_get_number_of_video_item_by_type(void);
+char *mp_util_svc_get_video_id_by_index(const int nVideoItemIndex);
+MpMediaStorageType mp_util_svc_get_video_storage(const int
+                                                                                                nVideoItemIndex);
+bool mp_util_svc_is_cloud_storage(const int nVideoItemIndex);
+bool mp_util_svc_remove_item_from_db_by_list_index(int nVideoItemIndex);
+
+// For folder list
+bool mp_util_svc_extract_video_folder_list_by_type(int nSortType,
+                                                                                                  int nItemType);
+
+bool mp_util_svc_destory_video_folder_list(void);
+int mp_util_svc_get_video_folder_size(void);
+char *mp_util_svc_get_video_folder_name(int nVideoFolderIndex);
+char *mp_util_svc_get_video_folder_url(int nVideoFolderIndex);
+MpMediaStorageType mp_util_svc_get_folder_storage(const int
+                                                                                                 nVideoFolderIndex);
+char *mp_util_svc_get_video_folder_id(int nVideoFolderIndex);
+char *mp_util_get_folder_thumbnail(int nVideoFolderIndex, int nSortType);
+
+void mp_util_svc_register_thumbnail_update_func(int nVideoItemIndex,
+                                                                                               void *pUserCallbackFunc,
+                                                                                               void *pUserData);
+void mp_util_svc_cancel_thumbnail_update(int nVideoItemIndex);
+void mp_util_svc_update_thumbnail_info(const int nVideoItemIndex);
+bool mp_util_svc_remove_folder_list_item_from_list(int nVideoItemIndex);
+
+
+///////////////////////////////////////////////////////
+// For livebox list
+bool mp_util_svc_destory_last_played_item_list(void);
+
+////////////////////////////////////////////////////////
+// Util
+bool mp_util_svc_set_update_db_cb_func(UpdateDatabaseCbFunc
+                                                                          pUpdateDbCbFunc);
+
+void mp_util_svc_unset_update_db_cb_func(void);
+
+char *mp_util_svc_get_duration_str_time(int nVideoItemIndex);
+bool mp_util_svc_filter_drm_video_item_list(void);
+bool mp_util_svc_scan_file(const char *szFilePath);
+
+/*need to free szTitle, output nWidth, nHeight, szTitle, nDuration,  nPlayedTime*/
+bool mp_util_svc_get_video_detail_by_video_url(const char *szPath,
+                                                                                          int *nWidth, int *nHeight,
+                                                                                          char **szTitle,
+                                                                                          unsigned int *nDuration,
+                                                                                          unsigned int *nPlayedTime);
+
+//personal
+bool mp_util_svc_extract_personal_video_folder_list(int nSortType,
+                                                                                                       bool bPersonal);
+bool mp_util_svc_extract_video_list_by_personal(int nSortType,
+                                                                                               int nItemType,
+                                                                                               int nViewType);
+bool mp_util_svc_extract_video_list_from_folder_by_personal(char
+                                                                                                                       *szFolderPath,
+                                                                                                                       int nSortType,
+                                                                                                                       int nItemType,
+                                                                                                                       int nViewType);
+void mp_util_svc_move_to_db(const int nVideoItemIndex,
+                                                       const char *szVideoPath);
+bool mp_util_svc_remove_list_item_from_list(int nVideoItemIndex);
+bool mp_util_svc_is_device_storage(const int nVideoItemIndex);
+
+//sort by
+//used for check videoid and folderid
+bool mp_util_svc_check_valid_media_id(char *pMediaId, int style,
+                                                                         int *nMediaIndex);
+
+#endif                                                 // _MP_UTIL_DATABASE_
diff --git a/include/common/mp-util-preference.h b/include/common/mp-util-preference.h
new file mode 100755 (executable)
index 0000000..e517458
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2020 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  __VIDEO_MP_UTIL_PREFERENCE__
+#define  __VIDEO_MP_UTIL_PREFERENCE__
+
+#include <Elementary.h>
+#include <stdbool.h>
+#include <app_preference.h>
+
+/*Currently, for different process, we could not use preference. Only save and read key in the same process, we could use preference.*/
+
+
+bool mp_util_preference_set_multi_play_status(bool set);
+bool mp_util_preference_get_multi_play_status(bool * bMultiPlay);
+
+char *mp_util_preference_get_preview(void);
+bool mp_util_preference_set_preview(char *szPreview);
+bool mp_util_preference_set_preview_change(preference_changed_cb callback,
+                                                                                  void *pUserData);
+bool mp_util_preference_unset_preview_change(void);
+
+void mp_util_preference_init();
+
+
+#endif
diff --git a/include/common/mp-util.h b/include/common/mp-util.h
new file mode 100755 (executable)
index 0000000..1ca666c
--- /dev/null
@@ -0,0 +1,250 @@
+/*
+ * Copyright (c) 2020 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 _MP_UTIL_
+#define _MP_UTIL_
+
+#include <stdbool.h>
+#include <Ecore_Evas.h>
+
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-video-list-auto-play-ctrl.h"
+#include <efl_extension.h>
+
+typedef void (*MpUtilExitCbFunc) (void);
+typedef void (*mpColorThemeChangedCb) (void *pUserData);
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#define MP_FREE_STRING(str)            do { if (str) { free(str); str = NULL; } } while (0)
+#define MP_DEL_OBJ(obj)                do { if (obj) { evas_object_del(obj); obj = NULL; } } while (0)
+#define MP_DEL_TIMER(timer)    do { if (timer) { ecore_timer_del(timer); timer = NULL; } } while (0)
+#define MP_DEL_IDLER(idler)    do { if (idler) { ecore_idler_del(idler); idler = NULL; } } while (0)
+#define MP_DEL_PIPE(pipe)              do { if (pipe) { ecore_pipe_del(pipe); pipe = NULL; } } while (0)
+#define MP_DEL_ITC(Itc)                do { if (Itc) { elm_genlist_item_class_free(Itc); Itc = NULL; } } while (0)
+#define MP_DEL_GRID_ITC(Itc)   do { if (Itc) { elm_gengrid_item_class_free(Itc); Itc = NULL; } } while (0)
+
+#define MP_SCALE                       elm_config_scale_get()
+
+
+typedef enum {
+       NORMAL_POPUP_RETURN_TYPE_UNKNOW = 0,
+       NORMAL_POPUP_RETURN_TYPE_YES,
+       NORMAL_POPUP_RETURN_TYPE_NO,
+       NORMAL_POPUP_RETURN_TYPE_ERR,
+} NormalPopUpRetType;
+
+
+typedef enum {
+       VIDEO_ROTATE_UNKNOWN = 0,
+       VIDEO_ROTATE_PORTRAIT_NORMAL,
+       VIDEO_ROTATE_PORTRAIT_REVERSE,
+       VIDEO_ROTATE_LANDSCAPE_NORMAL,
+       VIDEO_ROTATE_LANDSCAPE_REVERSE,
+} MpVideoRotateType;
+
+
+typedef enum {
+       POPUP_PROCESSING_NO_BUTTON = 0,
+       POPUP_PROCESSING_ONE_BUTTON,
+
+} MpLoadingPopUpType;
+
+
+/////////////////////////////////////////
+// tap type
+int mp_util_get_main_tab_type();
+void mp_util_set_main_tab_type(int nType);
+
+/////////////////////////////////////////
+// Windows utility
+void mp_util_reset_for_relauching(void);
+void mp_util_set_main_window_handle(void *pWindowHandle);
+void *mp_util_get_main_window_handle(void);
+
+void mp_util_set_main_conformat(void *pConformant);
+void *mp_util_get_main_conformat(void);
+
+void mp_util_create_main_theme(void);
+void mp_util_set_color_theme_changed_cb(mpColorThemeChangedCb fChanged);
+void mp_util_free_main_theme(void);
+
+void mp_util_show_indicator(void);
+void mp_util_hide_indicator(void);
+
+/////////////////////////////////////////
+// Popup utility
+void mp_util_delete_popup_handle(void);
+bool mp_util_notify_popup(void *pUserData, char *szTitle, char *szContents,
+                                                 void *PopupButtonCallbackFunc);
+bool mp_util_yes_no_popup(void *pUserData, char *szTitle, char *szContents,
+                                                 void *PopupYesButtonCallbackFunc,
+                                                 void *PopupNoButtonCallbackFunc);
+bool mp_util_remove_all_videos_question_popup(void *pUserData,
+                                                                                         MpListViewAsType viewType,
+                                                                                         void
+                                                                                         *PopupDeleteButtonCallbackFunc,
+                                                                                         void
+                                                                                         *PopupCancelButtonCallbackFunc,
+                                                                                         void
+                                                                                         *PopupHWMouseBackUpCbFunc,
+                                                                                         void *PopupHWKeyBackCbFunc);
+bool mp_util_remove_question_popup(int pUserData,
+                                                                  MpListViewAsType viewType,
+                                                                  void *PopupDeleteButtonCallbackFunc,
+                                                                  void *PopupCancelButtonCallbackFunc,
+                                                                  void *PopupHWMouseBackUpCbFunc,
+                                                                  void *PopupHWKeyBackCbFunc);
+bool mp_util_remove_folder_question_popup(void *pUserData,
+                                                                                 void
+                                                                                 *PopupDeleteButtonCallbackFunc,
+                                                                                 void
+                                                                                 *PopupCancelButtonCallbackFunc,
+                                                                                 void *PopupHWMouseBackUpCbFunc,
+                                                                                 void *PopupHWKeyBackCbFunc);
+bool mp_util_download_question_popup(void *pUserData, char *szTitle,
+                                                                        char *szContents,
+                                                                        void *PopupCancelBtnCallbackFunc,
+                                                                        void *PopupDownloadBtnCallbackFunc);
+bool mp_util_progress_popup(char *szLabel);
+void mp_util_status_bar_noti_popup_show(const char *szStr);
+void *mp_util_create_button_icon(void *pParent, const char *szIconPath,
+                                                                bool bSizeUp, bool bSizeDown,
+                                                                int nAspectWidth, int nAspectHeight,
+                                                                void *pUserData, char *szButtonStyle,
+                                                                void *func);
+void *mp_util_create_style_button(void *pParent, const char *szButtonText,
+                                                                 const void *pUserData,
+                                                                 char *szButtonStyle, void *func);
+bool mp_util_ticker_toast_popup(const char *text, bool info_style,
+                                                               bool bottom);
+bool mp_util_ticker_toast_with_timeout_cb_popup(const char *text,
+                                                                                               Evas_Smart_Cb
+                                                                                               timeout_func);
+
+void *mp_util_create_title_icon_btn(void *pParent, const char *icon_path,
+                                                                       Evas_Smart_Cb pFunc, void *pUserData);
+bool mp_util_loading_popup(MpLoadingPopUpType style, char *szLabel,
+                                                  Evas_Smart_Cb response_cb, void *pUserData);
+bool mp_util_info_popup(char *szLabel, Evas_Smart_Cb response_cb,
+                                               Evas_Event_Cb focus_cb, void *pUserData,
+                                               const char *szDomain);
+bool mp_util_info_second_popup(Evas_Object * pParent, char *szLabel,
+                                                          Evas_Smart_Cb response_cb,
+                                                          Evas_Event_Cb focus_cb, void *pUserData,
+                                                          const char *szDomain);
+void *mp_util_get_current_popup_object();
+void mp_util_text_and_check_popup(Evas_Smart_Cb response_cb,
+                                                                 void *cancel_cb, void *ok_cb,
+                                                                 void *check_changed_cb, char *szLabel,
+                                                                 void *pUserData);
+bool mp_util_loading_left_text_popup(MpLoadingPopUpType style,
+                                                                        char *szLabel,
+                                                                        Evas_Smart_Cb response_cb,
+                                                                        void *pUserData);
+bool mp_util_check_video_file(const char *szFullPath);
+bool mp_util_check_empty_dir(const char *szDir);
+
+bool mp_util_call_off(void);
+
+bool mp_util_check_local_file_exist(char *uri);
+char *mp_util_get_file_size(unsigned long long size);
+bool mp_util_get_file_title_from_file_path(char *szFilepath, char *szTitle,
+                                                                                  int nLengthTitle);
+char *mp_util_get_file_name_from_file_path(const char *szFilePath);
+bool mp_util_get_icon_path_from_thumbnail(const char *szMediaURL,
+                                                                                 char **szIconURL);
+char *mp_util_get_display_name_from_path_and_title(const char *szFilePath,
+                                                                                                  const char *szTitle);
+char *mp_util_get_title_from_path(char *szFilePath);
+
+int mp_util_rename_the_same_file(const char *old_path,
+                                                                char **szNewestPath);
+
+void mp_util_convert_time(int nVideoTime, char *szRetTime,
+                                                 bool bIsHideHour);
+int mp_util_get_pid(void);
+
+const char *mp_util_str_str_same_case(const char *str, const char *subStr);
+bool mp_util_get_network_result();
+
+char *mp_util_get_dir_by_path(const char *file_path);
+char *mp_util_get_folder_icon_path(int nVideoFolderIndex);
+
+bool mp_util_get_subtitle_path(const char *szMediaURL, char **szSubtitle);
+bool mp_util_get_file_size_by_path(const char *szMediaURL,
+                                                                  unsigned long long *nSize);
+
+bool mp_util_get_image_size(Evas_Object * pParent, const char *szMediaURL,
+                                                       int *nWidth, int *nHeight);
+
+//personal page
+bool mp_util_get_personal_status(void);
+bool mp_util_check_video_personal_status(const char *szPreviewUrl);
+int mp_util_rename_file(const char *old_path, const char *new_path,
+                                               char **szNewestPath);
+int mp_util_set_dest_file(const char *pDestPath);
+
+
+//drm
+bool mp_util_check_drm_lock(const char *szMediaURL, bool * bLock);
+void mp_util_convert_sec_time(int nVideoTime, char *szRetTime,
+                                                         bool bIsHideHour);
+
+Evas_Object *mp_util_create_preload_image(Evas_Object * parent,
+                                                                                 const char *path,
+                                                                                 int nIconWidth);
+char *mp_util_get_preview_image_path(const char *szFilePath);
+
+// progresss loading object
+Evas_Object *mp_util_create_embedded_progress();
+void mp_util_destroy_embedded_progress(Evas_Object * pProgress);
+
+Evas_Object *mp_util_create_wall_preload_image(Evas_Object * parent,
+                                                                                          int nIconWidth);
+
+bool mp_util_meta_get_width_and_height(const char *szFilePath, int *nWidth,
+                                                                          int *nHeight);
+
+bool mp_util_delete_wall_file(char *szVideoId);
+
+Evas_Object *mp_util_create_gengrid(Evas_Object * parent, int nWidth,
+                                                                       int nHeight, bool bHorizontal);
+
+Evas_Object *mp_util_create_folder_icon(void *pParent,
+                                                                               const char *icon_path);
+bool mp_util_create_folder_sub_icon(void *pLayout, int nVideoFolderIndex);
+bool mp_util_create_video_sub_icon(void *pLayout, int nVideoItemIndex);
+unsigned long long mp_util_get_disk_available_space(const char
+                                                                                                       *szFilePath);
+
+void mp_util_virtual_keypad_disabled_set(Eina_Bool bDisabled);
+
+int mp_util_set_translate_str(Evas_Object * obj, const char *str);
+
+bool vp_is_auto_play_on();
+void vp_set_auto_play(bool val);
+
+#define PREF_MP_VIDEO_AUTO_PLAY_TYPE_KEY  "preference/org.tizen.videos/auto_play_type"
+#endif                                                 // _MP_UTIL_
diff --git a/include/common/mp-video-info-ctrl.h b/include/common/mp-video-info-ctrl.h
new file mode 100755 (executable)
index 0000000..2e08417
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2020 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 _VIDEO_INFO_CTRL_
+#define  _VIDEO_INFO_CTRL_
+
+bool mp_info_ctrl_get_gps(char *szUriPath, double *dLongitude,
+                                                 double *dLatitude);
+char *mp_info_ctrl_get_file_extension(char *szPath);
+bool mp_info_ctrl_get_resolution(char *szWidthResolution,
+                                                                char *szHeightResolution,
+                                                                void *pUserData);
+bool mp_info_ctrl_get_file_info(char *szUriPath, char *szFileDate,
+                                                               int nFileDateSize, char *szFileExtension,
+                                                               int nFileExtensionSize, char *szFileSize,
+                                                               int nFilesizeSize);
+char *mp_info_ctrl_get_data_of_file(time_t mtime);
+
+#endif
diff --git a/include/common/mp-video-util-db-controller.h b/include/common/mp-video-util-db-controller.h
new file mode 100755 (executable)
index 0000000..51593c4
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2020 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  __VIDEO_MP_UTIL_DB_CONTROLLER__
+#define  __VIDEO_MP_UTIL_DB_CONTROLLER__
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+typedef enum {
+       MP_DB_UPDATE_LEV_0 = 0,
+       MP_DB_UPDATE_LEV_1,
+       MP_DB_UPDATE_LEV_2,
+       MP_DB_UPDATE_LEV_3,
+       MP_DB_UPDATE_LEV_4,
+       MP_DB_UPDATE_LEV_MAX,
+} MpDbUpdateViewLev;
+
+
+typedef void (*MpDbUpdateCbFunc) (void *pUserData);
+
+
+bool mp_util_db_set_update_fun(MpDbUpdateViewLev nLev,
+                                                          MpDbUpdateCbFunc pUpdateFun);
+void mp_util_db_reset_update_fun_except_lev0(void);
+void mp_util_db_reset_all_update_fun(void);
+void mp_util_db_reset_update_fun_up_self(MpDbUpdateViewLev nLev);
+bool mp_util_db_run_update_fun(MpDbUpdateViewLev nLev, void *pUserData);
+bool mp_util_db_run_all_update_fun(void *pUserData0, void *pUserData1,
+                                                                  void *pUserData2, void *pUserData3,
+                                                                  void *pUserData4);
+bool mp_util_db_run_update_fun_except_lev0(void *pUserData1,
+                                                                                  void *pUserData2,
+                                                                                  void *pUserData3,
+                                                                                  void *pUserData4);
+
+void mp_util_db_reset_backup_fun_up_self(MpDbUpdateViewLev nLev);
+void mp_util_db_reset_backup_fun_except_lev0(void);
+void mp_util_db_reset_all_backup_fun(void);
+bool mp_util_db_set_backup_fun(MpDbUpdateViewLev nLev,
+                                                          MpDbUpdateCbFunc pUpdateFun);
+bool mp_util_db_run_backup_fun_except_lev0(void *pUserData1,
+                                                                                  void *pUserData2,
+                                                                                  void *pUserData3,
+                                                                                  void *pUserData4);
+bool mp_util_db_run_all_backup_fun(void *pUserData0, void *pUserData1,
+                                                                  void *pUserData2, void *pUserData3,
+                                                                  void *pUserData4);
+
+
+#endif
diff --git a/include/feature/mp-launching-video-displayer.h b/include/feature/mp-launching-video-displayer.h
new file mode 100755 (executable)
index 0000000..a000682
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2020 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 __LAUNCHING_VIDEO_DISPLAYER__
+#define         __LAUNCHING_VIDEO_DISPLAYER__
+
+
+typedef enum {
+       MP_PLAYER_TYPE_VIDEO = 0,
+       MP_PLAYER_TYPE_STREAMING,
+       MP_PLAYER_TYPE_MAX,
+} MpPlayerType;
+
+
+void mp_launch_video_play(char *szMediaUrl, MpPlayerType nPlayerType,
+                                                 char *szDeviceID);
+void mp_launch_video_stop(void);
+bool mp_launch_video_allow_check(void);
+
+#endif
diff --git a/include/feature/mp-util-move.h b/include/feature/mp-util-move.h
new file mode 100755 (executable)
index 0000000..b83ba27
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2020 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 __MP_UTIL_COPY_CTRL__
+#define __MP_UTIL_COPY_CTRL__
+
+#include <Eina.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+
+typedef enum {
+       MP_VIDEO_UPDATE,
+       MP_VIDEO_UPDATE_CANCEL,
+       MP_VIDEO_UPDATE_FINISH,
+       MP_VIDEO_UPDATE_FAILED,
+       MP_VIDEO_UPDATE_ERROR,
+} euThreadFeedback;
+
+
+typedef void (*mp_util_copy_cb) (euThreadFeedback msg_type,
+                                                                unsigned long long size, int nErrorCode,
+                                                                void *userData);
+
+int mp_util_move_push(const char *szSrcPath, const char *szDstPath,
+                                         mp_util_copy_cb cbFun, void *userData,
+                                         unsigned long long nTotalSize);
+bool mp_util_move_cancel_check(void);
+
+void mp_util_move_set_cancel_state(bool bCancel);
+bool mp_util_move_get_total_dir_size(const char *szDir,
+                                                                        unsigned long long *size);
+
+int mp_util_move_delete_video_folder(const char *szFolderPath,
+                                                                        void *userData);
+
+#endif
diff --git a/include/mp-video-log.h b/include/mp-video-log.h
new file mode 100755 (executable)
index 0000000..86a97fd
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2020 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 _VIDEO_LOG_H_
+#define _VIDEO_LOG_H_
+
+#include <stdbool.h>
+#include <dlog.h>
+#include <unistd.h>
+#include <linux/unistd.h>
+#include <assert.h>
+
+#ifdef LOG_TAG
+#undef LOG_TAG
+#endif
+
+
+#define LOG_TAG "VIDEOS"
+
+#define VideoLogInfoWithTid(fmt, arg...)                       dlog_print(DLOG_DEBUG, LOG_TAG, "[%s : %05d %lu]" fmt "\n", __func__, __LINE__, syscall(__NR_gettid), ##arg)
+#define VideoLogInfo(fmt, arg...)                              dlog_print(DLOG_DEBUG, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define VideoLogDebug(fmt, arg...)                             dlog_print(DLOG_INFO, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define VideoLogWarning(fmt, arg...)                           dlog_print(DLOG_INFO, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define VideoLogError(fmt, arg...)                             dlog_print(DLOG_ERROR, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+
+#define VideoSecureLogInfoWithTid(fmt, arg...) dlog_print(DLOG_INFO, LOG_TAG, "[%s : %05d %lu]" fmt "\n", __func__, __LINE__, syscall(__NR_gettid), ##arg)
+#define VideoSecureLogDebug(fmt, arg...)                       dlog_print(DLOG_DEBUG, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define VideoSecureLogInfo(fmt, arg...)                        dlog_print(DLOG_INFO, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define VideoSecureLogError(fmt, arg...)               dlog_print(DLOG_ERROR, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+
+
+#define PERF_CHECK_IN(fmt, arg...)                             dlog_print(DLOG_INFO, "LAUNCH", "[video-player:Application:" fmt ":IN]", ##arg)
+#define PERF_CHECK_OUT(fmt, arg...)                            dlog_print(DLOG_INFO, "LAUNCH", "[video-player:Application:" fmt ":OUT]", ##arg)
+
+#define VideoLogAssert(expr) do { \
+       if (!(expr)) { \
+               VideoLogError("Critical ERROR ########################################## Check below item.");\
+               assert(0); \
+       } \
+} while (0)
+
+
+#endif /*_MPVIDEO_LOG_H_*/
diff --git a/include/mp-video-string-define.h b/include/mp-video-string-define.h
new file mode 100755 (executable)
index 0000000..c4b3a20
--- /dev/null
@@ -0,0 +1,298 @@
+/*
+ * Copyright (c) 2020 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 _VIDEO_STRING_DEFINE_
+#define  _VIDEO_STRING_DEFINE_
+
+
+#include <app.h>
+
+
+#define MP_SYS_STRING                                                          "videos"
+#define VIDEOS_STRING                                                          "videos"
+
+#define VIDEOS_GET_STR(x)                                                      dgettext(VIDEOS_STRING, x)
+#define VIDEOS_GET_STR_FMT(x)                                          _(dgettext(VIDEOS_STRING, x))
+
+/*--------------------------------------------String Define---------------------------------------------------*/
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//  Title, System
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+#define VIDEOS_TITLE_VIDEO                                                                     VIDEOS_GET_STR("IDS_VIDEO_OPT_VIDEOS")
+#define VIDEOS_TITLE_VIDEO_PLAYER                                                      (dgettext(MP_SYS_STRING, "IDS_COM_BODY_VIDEO_PLAYER"))
+#define VIDEOS_ALERT_LOW_BATTERY                                                       (dgettext(MP_SYS_STRING, "IDS_COM_BODY_LOW_BATTERY"))
+
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//  Popup
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+//  Common  //
+#define VIDEOS_COMMON_BUTTON_YES_IDS                                   ("IDS_COM_SK_YES")
+#define VIDEOS_COMMON_BUTTON_NO_IDS                                            ("IDS_COM_SK_NO")
+#define VIDEOS_COMMON_BUTTON_OK                                                        (dgettext(MP_SYS_STRING, "IDS_COM_SK_OK"))
+#define VIDEOS_COMMON_BUTTON_OK_IDS                                            ("IDS_COM_SK_OK")
+#define VIDEOS_COMMON_BUTTON_CANCEL                                            VIDEOS_GET_STR("IDS_VIDEO_SK_CANCEL_ABB")
+#define VIDEOS_COMMON_BUTTON_CANCEL_IDS                                        ("IDS_CLOCK_BUTTON_CANCEL")
+#define VIDEOS_COMMON_BUTTON_CLOSE_IDS                                 ("IDS_COM_BODY_CLOSE")
+#define VIDEOS_COMMON_HEADER_ERROR                                             (dgettext(MP_SYS_STRING, "IDS_COM_POP_ERROR"))
+#define VIDEOS_COMMON_MSG_DONT_ASK_AGAIN_IDS                   ("IDS_MUSIC_BUTTON_DONT_ASK_AGAIN")
+#define VIDEOS_COMMON_BUTTON_RENAME_IDS                                        ("IDS_VIDEO_OPT_RENAME")
+
+//  Context popup   //
+#define VIDEOS_CTXPOP_MENU_DOWNLOAD                                            VIDEOS_GET_STR("IDS_VIDEO_BUTTON_DOWNLOAD")
+#define VIDEOS_CTXPOP_MENU_DOWNLOAD_IDS                                ("IDS_VIDEO_BUTTON_DOWNLOAD")
+#define VIDEOS_CTXPOP_MENU_SEARCH                                              VIDEOS_GET_STR("IDS_VIDEO_OPT_SEARCH")
+#define VIDEOS_CTXPOP_MENU_SEARCH_IDS                                  ("IDS_VIDEO_OPT_SEARCH")
+#define VIDEOS_CTXPOP_MENU_SHARE                                                       VIDEOS_GET_STR("IDS_VIDEO_OPT_SHARE")
+#define VIDEOS_CTXPOP_MENU_SHARE_IDS                                           ("IDS_VIDEO_OPT_SHARE")
+#define VIDEOS_CTXPOP_MENU_DELETE                                              VIDEOS_GET_STR("IDS_VIDEO_BUTTON_DELETE")
+#define VIDEOS_CTXPOP_MENU_DELETE_IDS                                  ("IDS_VIDEO_BUTTON_DELETE")
+#define VIDEOS_CTXPOP_MENU_VIEW_AS                                             VIDEOS_GET_STR("IDS_VIDEO_OPT_VIEW_AS")
+#define VIDEOS_CTXPOP_MENU_VIEW_AS_IDS                                 ("IDS_VIDEO_OPT_VIEW_AS")
+#define VIDEOS_CTXPOP_MENU_SORT_BY                                             VIDEOS_GET_STR("IDS_VIDEO_OPT_SORT_BY")
+#define VIDEOS_CTXPOP_MENU_SORT_BY_IDS                                 ("IDS_VIDEO_OPT_SORT_BY")
+#define VIDEOS_CTXPOP_MENU_AUTO_PLAY_NEXT_IDS                  ("IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB")
+#define VIDEOS_CTXPOP_MENU_RENAME                                              VIDEOS_GET_STR("IDS_VIDEO_OPT_RENAME")
+#define VIDEOS_CTXPOP_MENU_RENAME_IDS                                  ("IDS_VIDEO_OPT_RENAME")
+#define VIDEOS_CTXPOP_MENU_DETAILS                                             VIDEOS_GET_STR("IDS_VIDEO_OPT_DETAILS")
+#define VIDEOS_CTXPOP_MENU_DETAILS_IDS                                 ("IDS_VIDEO_OPT_DETAILS")
+#define VIDEOS_CTXPOP_MENU_ADD_TO_HOME                                 VIDEOS_GET_STR("IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN")
+#define VIDEOS_CTXPOP_MENU_CONTENT_TO_DISPLAY                  VIDEOS_GET_STR("IDS_VIDEO_OPT_CONTENT_TO_DISPLAY_ABB")
+#define VIDEOS_CTXPOP_MENU_CONTENT_TO_DISPLAY_IDS              ("IDS_VIDEO_OPT_CONTENT_TO_DISPLAY_ABB")
+#define VIDEOS_CTXPOP_MENU_MOVE_TO_PRIVATE                             VIDEOS_GET_STR("IDS_GALLERY_OPT_MOVE_TO_PRIVATE")
+#define VIDEOS_CTXPOP_MENU_REMOVE_FROM_PRIVATE                 VIDEOS_GET_STR("IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE")
+
+//  Delete popup    //
+#define VIDEOS_DELETEPOP_HEADER_DELETE                                 VIDEOS_GET_STR("IDS_VIDEO_BUTTON_DELETE")
+#define VIDEOS_DELETEPOP_BUTTON_DELETE                                 VIDEOS_GET_STR("IDS_VIDEO_BUTTON_DELETE")
+#define VIDEOS_DELETEPOP_BUTTON_DELETE_ALL                             VIDEOS_GET_STR("IDS_ST_OPT_DELETE_ALL")
+#define VIDEOS_DELETEPOP_MSG_PD_VIDEOS_WILL_BE_DELETED         VIDEOS_GET_STR_FMT("IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED")
+#define VIDEOS_DELETEPOP_MSG_ONE_VIDEO_WILL_BE_DELETED VIDEOS_GET_STR("IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED")
+#define VIDEOS_DELETEPOP_MSG_ALL_VIDEOS_WILL_BE_DELETED        VIDEOS_GET_STR("IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED")
+#define VIDEOS_DELETEPOP_MSG_ONE_FOLDER_WILL_BE_DELETED        VIDEOS_GET_STR("IDS_MUSIC_POP_1_FOLDER_WILL_BE_DELETED")
+#define VIDEOS_DELETEPOP_MSG_ONE_FOLDER_WILL_BE_DELETED_IDS    ("IDS_MUSIC_POP_1_FOLDER_WILL_BE_DELETED")
+#define VIDEOS_DELETEPOP_MSG_THIS_FOLDER_WILL_BE_DELETED_IDS   VIDEOS_GET_STR("IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED")
+#define VIDEOS_DELETEPOP_MSG_PD_FOLDERS_WILL_BE_DELETED        VIDEOS_GET_STR_FMT("IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED")
+#define VIDEOS_DELETEPOP_MSG_ALL_FOLDERS_WILL_BE_DELETED       VIDEOS_GET_STR("IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED")
+#define VIDEOS_DELETEPOP_MSG_DELETING                                  VIDEOS_GET_STR("IDS_VIDEO_TPOP_DELETING_ING")
+#define VIDEOS_DELETEPOP_MSG_DELETING_IDS                              ("IDS_VIDEO_TPOP_DELETING_ING")
+#define VIDEOS_DELETEPOP_HEADER_DELETE_VIDEO                   VIDEOS_GET_STR("IDS_VIDEO_HEADER_DELETE_VIDEO") // not be used in lite
+#define VIDEOS_DELETEPOP_HEADER_DELETE_VIDEOS                  VIDEOS_GET_STR("IDS_VIDEO_HEADER_DELETE_VIDEOS")        // not be used in lite
+#define MP_COM_POP_DELETED                                                             (dgettext(MP_SYS_STRING, "IDS_COM_POP_DELETED"))        // not be used in lite
+
+//  Rename popup    //
+#define VIDEOS_RENAMEPOP_HEADER_RENAME                                 VIDEOS_GET_STR("IDS_VIDEO_OPT_RENAME")
+#define VIDEOS_RENAMEPOP_HEADER_RENAME_IDS                             ("IDS_VIDEO_OPT_RENAME")
+#define VIDEOS_RENAMEPOP_BUTTON_RENAME                                 VIDEOS_GET_STR("IDS_VIDEO_OPT_RENAME")
+#define VIDEOS_RENAMEPOP_BUTTON_RENAME_IDS                             ("IDS_VIDEO_OPT_RENAME")
+
+//  View as popup   //
+#define VIDEOS_VIEWASPOP_HEADER_VIEW_AS                                        VIDEOS_GET_STR("IDS_VIDEO_OPT_VIEW_AS")
+#define VIDEOS_VIEWASPOP_HEADER_VIEW_AS_IDS                            ("IDS_VIDEO_OPT_VIEW_AS")
+
+//  Sort by popup       //
+#define VIDEOS_SORTBYPOP_HEADER_SORT_BY                                        VIDEOS_GET_STR("IDS_VIDEO_OPT_SORT_BY")
+#define VIDEOS_SORTBYPOP_HEADER_SORT_BY_IDS                            ("IDS_VIDEO_OPT_SORT_BY")
+
+//Auto Play next Popup
+#define VIDEOS_MENU_AUTO_PLAY_NEXT_POP_HEADER                          VIDEOS_GET_STR("IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB")
+
+//  Download popup  //
+#define VIDEOS_DOWNLOADPOP_MSG_1_VIDEO_WILL_BE_DOWNLOADED      "1 video will be downloaded."   // TODO. need to change STMS string after release new ID
+#define VIDEOS_DOWNLOADPOP_MSG_PD_VIDEOS_WILL_BE_DOWNLOADED "%d videos will be downloaded."    // TODO. need to change STMS string after release new ID
+#define VIDEOS_DOWNLOADPOP_MSG_ALL_VIDEOS_WILL_BE_DOWNLOADED "All videos will be downloaded."  // TODO. need to change STMS string after release new ID
+#define VIDEOS_DOWNLOADPOP_BUTTON_DOWNLOAD                     VIDEOS_GET_STR("IDS_VIDEO_BUTTON_DOWNLOAD")
+
+//  Move popup (not be used for lite)   //
+#define MP_PERSONAL_ITEM_MOVE_TO                                                       VIDEOS_GET_STR_FMT("IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS")
+#define MP_PERSONAL_ITEMS_MOVE_TO                                              VIDEOS_GET_STR_FMT("IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS")
+#define MP_PERSONAL_DONT_ASK_AGAIN                                             VIDEOS_GET_STR("IDS_MUSIC_BUTTON_DONT_ASK_AGAIN")
+#define MP_TEXT_MOVING_IDS                                                                     ("IDS_VIDEO_POP_MOVING_ING")
+#define MP_TEXT_MOVING                                                                         VIDEOS_GET_STR("IDS_VIDEO_POP_MOVING_ING")
+#define MP_TEXT_REMOVING_IDS                                                           ("IDS_VIDEO_POP_REMOVING_ING")
+#define MP_BUTTON_MOVE_IDS                                                             ("IDS_VIDEO_BUTTON_MOVE_ABB")
+#define MP_COM_OPT_ADDED                                                                       (dgettext(MP_SYS_STRING, "IDS_COM_OPT_ADDED"))  // status bar noti
+#define MP_COM_OPT_UNABLE_ADDED                                                        (dgettext(MP_SYS_STRING, "IDS_COM_BODY_UNABLE_TO_ADD")) // status bar noti
+#define MP_COM_BODY_MOVE                                                                       (dgettext(MP_SYS_STRING, "IDS_COM_BODY_MOVE"))
+
+//  Share panel (not used at lite)  //
+#define MP_SHARE_BLUETOOTH                                                             (dgettext(MP_SYS_STRING, "IDS_COM_BODY_BLUETOOTH"))
+#define MP_SHARE_FTM                                                                           (dgettext(MP_SYS_STRING, "IDS_COM_OPT1_WI_FI_DIRECT"))
+#define MP_SHARE_MESSAGE                                                                       VIDEOS_GET_STR("IDS_VIDEO_OPT_MESSAGE_ABB")
+#define MP_SHARE_EMAIL                                                                         VIDEOS_GET_STR("IDS_VIDEO_OPT_EMAIL_ABB")
+
+//  Notificatioin msg (noti, toast popup)   //
+#define VIDEOS_NOTIPOP_MSG_ALREADY_EXISTS                              VIDEOS_GET_STR("IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE")
+#define VIDEOS_NOTIPOP_MSG_ALREADY_EXISTS_IDS                  ("IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE")
+#define VIDEOS_NOTIPOP_MSG_SHARE_ITEM_MAX                              VIDEOS_GET_STR_FMT("IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED")
+#define VIDEOS_NOTIPOP_MSG_UNABLE_TO_PLAY_THIS_VIDEO_SIDESYNC          VIDEOS_GET_STR("IDS_VIDEO_POP_UNABLE_TO_PLAY_THIS_VIDEO_WHILE_USING_SIDESYNC")
+#define VIDEOS_NOTIPOP_MSG_INVALID_CHARACTERS                  VIDEOS_GET_STR("IDS_SWALL_HEADER_INVALID_CHARACTER")
+#define VIDEOS_NOTIPOP_MSG_MAX_NUM_OF_CHARACTERS               dgettext(MP_SYS_STRING, "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED")
+#define VIDEOS_NOTIPOP_MSG_CONNECTION_FAIL                             (dgettext(MP_SYS_STRING, "IDS_COM_POP_CONNECTION_ERROR"))
+#define VIDEOS_NOTIPOP_MSG_FILE_NOT_EXIST                              (dgettext(MP_SYS_STRING, "IDS_COM_POP_FILE_NOT_EXIST"))
+#define VIDEOS_NOTIPOP_MSG_UNABLE_TO_SHARE_DRM_FILE    VIDEOS_GET_STR("IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE")        // it will be removed.  // not be used for lite
+#define VIDEOS_NOTIPOP_MSG_UNABLE_TO_PLAY_VIDEO_DURING_CALL    VIDEOS_GET_STR("IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL")
+#define VIDEOS_NOTIPOP_MSG_TURN_PHONE_OVER_TO_MUTE_IDS         ("IDS_VPL_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS")
+#define VIDEOS_NOTIPOP_MSG_CLOUD_FILE_CONNECT_FAIL                             ("IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN")
+#define VIDEOS_NOTIPOP_MSG_MOVE_TO_PERSONAL_STORAGE_FAILED     VIDEOS_GET_STR("IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE")
+#define VIDEOS_NOTIPOP_MSG_MOVE_TO_NORMAL_STORAGE_FAILED               VIDEOS_GET_STR("IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE")
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//  Option
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+//  Sort by //
+#define VIDEOS_SORTBYOPT_OPT_DATE_MOST_RECENT                  VIDEOS_GET_STR("IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB")
+#define VIDEOS_SORTBYOPT_OPT_NAME                                              VIDEOS_GET_STR("IDS_VIDEO_OPT_NAME_HA_Z_ABB")
+#define VIDEOS_SORTBYOPT_OPT_RECENTLY_VIEWED                   VIDEOS_GET_STR("IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB")
+#define VIDEOS_SORTBYOPT_OPT_RECENTLY_ADDED                            VIDEOS_GET_STR("IDS_VIDEO_OPT_RECENTLY_ADDED_ABB")
+#define VIDEOS_SORTBYOPT_OPT_TITLE                                             VIDEOS_GET_STR("IDS_VIDEO_OPT_TITLE")
+#define VIDEOS_SORTBYOPT_OPT_SIZE                                                      VIDEOS_GET_STR("IDS_VIDEO_OPT_SIZE")
+#define VIDEOS_SORTBYOPT_OPT_TYPE                                                      VIDEOS_GET_STR("IDS_VIDEO_OPT_TYPE")
+
+//  Veiw as //
+#define VIDEOS_VIEWASOPT_OPT_LIST                                                      VIDEOS_GET_STR("IDS_VIDEO_OPT_LIST")
+#define VIDEOS_VIEWASOPT_OPT_THUMBNAIL                                 VIDEOS_GET_STR("IDS_VIDEO_OPT_VIDEOS")  // not be used for lite
+#define VIDEOS_VIEWASOPT_OPT_FOLDER                                            VIDEOS_GET_STR("IDS_VIDEO_OPT_FOLDERS_ABB")
+#define VIDEOS_TITLE_OPT_FOLDER                                                VIDEOS_GET_STR("IDS_VIDEO_OPT_FOLDERS_ABB")
+
+//  Content to display  //
+#define VIDEOS_CONTENTTODISPLAYOPT_OPT_ALLCONTENT              VIDEOS_GET_STR("IDS_VPL_OPT_ALL_CONTENT_ABB")
+#define VIDEOS_CONTENTTODISPLAYOPT_OPT_PHONE                   VIDEOS_GET_STR("IDS_VPL_OPT_CONTENT_ON_DEVICE_ABB")
+#define VIDEOS_CONTENTTODISPLAYOPT_OPT_CLOUD                   VIDEOS_GET_STR("IDS_VPL_OPT_CONTENT_IN_DROPBOX_ABB")
+
+//dropbox
+#define VIDEOS_POP_CLOUD_FILE_CONNECT_FAIL                             ("IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN")
+#define VIDEOS_VIEW_DROPBOX_NAME                                               VIDEOS_GET_STR("IDS_CLOUD_BODY_DROPBOX_ABB")
+
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//  View
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+//  Nocontent   //
+#define VIDEOS_NOCONTENT_MSG_NO_VIDEOS                                 VIDEOS_GET_STR("IDS_VIDEO_NPBODY_NO_VIDEOS")
+#define VIDEOS_NOCONTENT_MSG_NO_VIDEOS_IDS                             VIDEOS_GET_STR("IDS_VIDEO_NPBODY_NO_VIDEOS")
+#define VIDEOS_NOCONTENT_MSG_NO_VIDEOS_DESC                    VIDEOS_GET_STR("IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE")
+#define VIDEOS_NOCONTENT_MSG_NO_VIDEOS_DESC_IDS                ("IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE")
+
+//  List view       //
+#define VIDEOS_LISTVIEW_BODY_ONE_VIDEO                                 VIDEOS_GET_STR("IDS_VPL_BODY_1_VIDEO")
+#define VIDEOS_LISTVIEW_BODY_PD_VIDEOS                                 VIDEOS_GET_STR_FMT("IDS_VIDEO_HEADER_PD_VIDEOS")
+
+//  Folder view //
+#define VIDEOS_FOLDERVIEW_BODY_ONE_FOLDER                              VIDEOS_GET_STR("IDS_VPL_BODY_1_FOLDER")
+#define VIDEOS_FOLDERVIEW_BODY_PD_FOLDERS                              VIDEOS_GET_STR_FMT("IDS_VIDEO_HEADER_PD_FOLDERS")
+#define VIDEOS_FOLDERVIEW_BODY_DEVICE_MEMORY                   VIDEOS_GET_STR("IDS_IS_BODY_DEVICE_MEMORY_ABB")
+#define VIDEOS_FOLDERVIEW_BODY_SD_CARD                                 VIDEOS_GET_STR("IDS_IS_BODY_SD_CARD")
+#define VIDEOS_FOLDERVIEW_BODY_USB_MEMORY                              VIDEOS_GET_STR("IDS_IS_BODY_SD_CARD")   // need to add IDS about USB memory
+
+//  Folder item view    //
+
+//  Search view //
+#define VIDEOS_SEARCHVIEW_MSG_NO_RESULTS_FOUND_IDS     ("IDS_MUSIC_BODY_NO_RESULTS_FOUND")
+#define VIDEOS_SEARCHVIEW_MSG_NO_SEARCH_RESULTS                VIDEOS_GET_STR("IDS_VIDEO_BODY_NO_SEARCH_RESULTS")
+#define VIDEOS_SEARCHVIEW_MSG_NO_SEARCH_RESULTS_IDS    ("IDS_VIDEO_BODY_NO_SEARCH_RESULTS")
+
+//  Share view  //
+#define VIDEOS_SHAREVIEW_DONE_IDS                              VIDEOS_GET_STR("IDS_TPLATFORM_ACBUTTON_DONE_ABB")
+#define VIDEOS_SHAREVIEW_CANCEL_IDS                            VIDEOS_GET_STR("IDS_TPLATFORM_ACBUTTON_CANCEL_ABB")
+//  Delete view //
+#define VIDEOS_DELETEVIEW_DELETE_IDS                           VIDEOS_GET_STR("IDS_TPLATFORM_ACBUTTON_DELETE_ABB")
+#define VIDEOS_DELETEVIEW_CANCEL_IDS                           VIDEOS_GET_STR("IDS_TPLATFORM_ACBUTTON_CANCEL_ABB")
+
+//  Select view //
+#define VIDEOS_SELECTVIEW_HEADER_PD_SELECTED                   VIDEOS_GET_STR_FMT("IDS_VIDEO_HEADER_PD_SELECTED")
+#define VIDEOS_SELECTVIEW_BODY_SELECT_ALL                              VIDEOS_GET_STR_FMT("IDS_VIDEO_HEADER_SELECT_ALL")
+#define VIDEOS_SELECTVIEW_BODY_SELECT_ALL_IDS                  ("IDS_VIDEO_HEADER_SELECT_ALL")
+#define VIDEOS_SELECTVIEW_HEADER_SELECT_ITEMS                  VIDEOS_GET_STR("IDS_VPL_BODY_SELECT_ITEMS")     // not be used in lite
+#define VIDEOS_SELECTVIEW_HEADER_SELECT_ITEMS_IDS              ("IDS_VPL_BODY_SELECT_ITEMS")   // not be used in lite
+#define VIDEOS_SELECTVIEW_HEADER_SELECT                                        VIDEOS_GET_STR("IDS_GALLERY_HEADER_SELECT")
+#define VIDEOS_SELECTVIEW_HEADER_SELECT_IDS                            ("IDS_GALLERY_HEADER_SELECT")
+#define VIDEOS_SELECTVIEW_HEADER_SELECT_VIDEO                          VIDEOS_GET_STR("IDS_GALLERY_HEADER_SELECT_VIDEO")
+
+//  Rename view //
+#define VIDEOS_RENAMEVIEW_HEADER_RENAME                                VIDEOS_GET_STR("IDS_VIDEO_OPT_RENAME")
+#define VIDEOS_RENAMEVIEW_HEADER_RENAME_IDS                    ("IDS_VIDEO_OPT_RENAME")
+
+//  Detail view //
+#define VIDEOS_DETAILVIEW_HEADER_DETAILS                                       VIDEOS_GET_STR("IDS_VIDEO_OPT_DETAILS")
+#define VIDEOS_DETAILVIEW_HEADER_DETAILS_IDS                           ("IDS_VIDEO_OPT_DETAILS")
+#define VIDEOS_DETAILVIEW_BODY_TITLE                                           VIDEOS_GET_STR("IDS_VIDEO_OPT_TITLE")
+#define VIDEOS_DETAILVIEW_BODY_SIZE                                            VIDEOS_GET_STR("IDS_VIDEO_OPT_SIZE")
+#define VIDEOS_DETAILVIEW_BODY_DATE                                            (dgettext(MP_SYS_STRING, "IDS_COM_BODY_DATE"))
+#define VIDEOS_DETAILVIEW_BODY_FORMAT                                  VIDEOS_GET_STR("IDS_VPL_OPT_FORMAT")
+#define VIDEOS_DETAILVIEW_BODY_RESOLUTION                              VIDEOS_GET_STR("IDS_VIDEO_BODY_RESOLUTION")
+#define VIDEOS_DETAILVIEW_BODY_LAST_MODIFIED                   ("Last modified")
+#define VIDEOS_DETAILVIEW_BODY_LOCATION                                        (dgettext(MP_SYS_STRING, "IDS_COM_BODY_LOCATION"))
+#define VIDEOS_DETAILVIEW_BODY_LATITUDE                                        VIDEOS_GET_STR("IDS_VIDEO_BODY_LATITUDE")
+#define VIDEOS_DETAILVIEW_BODY_LONGITUDE                                       VIDEOS_GET_STR("IDS_VIDEO_BODY_LONGITUDE")
+#define VIDEOS_DETAILVIEW_BODY_UNKNOWN                                 ("Unknown")
+#define VIDEOS_DETAILVIEW_BODY_KB                                                      (dgettext(MP_SYS_STRING, "IDS_COM_BODY_KB"))
+#define VIDEOS_DETAILVIEW_BODY_B                                                       (dgettext(MP_SYS_STRING, "IDS_COM_BODY_B"))
+#define VIDEOS_DETAILVIEW_BODY_MB                                              (dgettext(MP_SYS_STRING, "IDS_COM_BODY_MB"))
+#define VIDEOS_DETAILVIEW_BODY_GB                                              (dgettext(MP_SYS_STRING, "IDS_COM_BODY_GB"))
+
+//  Device view //  // not be used in lite
+#define VP_TEXT_NOT_TO_CONNECT_WIFI_IDS                                        ("IDS_IS_BODY_YOU_NEED_TO_BE_CONNECTED_TO_A_WI_FI_NETWORK_TO_SCAN_FOR_NEARBY_DEVICES_CONNECT_VIA_WI_FI_AND_TRY_AGAIN")
+#define VP_TEXT_NO_DEVICE_FOUND_IDS                                            ("IDS_IS_BODY_NO_DEVICES_FOUND_ENABLE_THE_SHARE_CONTENT_FUNCTION_ON_YOUR_NEARBY_DEVICES")
+#define MP_VPL_LIST_CTX_NEAR_BY_DEVICE                                 VIDEOS_GET_STR("IDS_VIDEO_OPT_NEARBY_DEVICES_ABB")
+#define MP_VPL_LIST_CTX_NEAR_BY_DEVICE_IDS                             ("IDS_VIDEO_OPT_NEARBY_DEVICES_ABB")
+#define VS_TEXT_DISCONNECT_DEVICE                                                      VIDEOS_GET_STR_FMT("IDS_DLNA_POP_DISCONNECTED_FROM_PS_CHECK_THE_NETWORK_STATUS_AND_THE_CONNECTED_DEVICE")
+#define MP_COM_SK_REFRESH                                                                      (dgettext(MP_SYS_STRING, "IDS_COM_SK_REFRESH"))
+#define VS_TEXT_SETTINGS_DEVICES_IDS                                           ("IDS_IS_BODY_DEVICES")
+#define VS_TEXT_LOADING                                                                        VIDEOS_GET_STR("IDS_IS_BODY_LOADING_ING")
+#define MP_VPL_DEVICES                                                                         VIDEOS_GET_STR_FMT("IDS_MUSIC_HEADER_PD_DEVICES")
+#define MP_VPL_CTX_SCAN_NEAR_BY_DEVICE_IDS                             ("IDS_VIDEO_OPT_SCAN_FOR_NEARBY_DEVICES")
+#define MP_TEXT_NO_DEVICES_IDS                                                 ("IDS_VIDEO_BODY_NO_DEVICES")
+
+//  Cloud view  //
+#define MP_COM_POP_DOWNLOADED                                                  (dgettext(MP_SYS_STRING, "IDS_COM_BODY_DOWNLOADED"))
+#define MP_VPL_DOWNLOAD_LIST_NO_VIDEO                                  VIDEOS_GET_STR("IDS_VPL_POP_YOU_CAN_DOWNLOAD_AND_ENJOY_VIDEOS_THROUGH_THE_VIDEO_STORE")
+#define MP_VPL_DOWNLOAD_LIST_NO_VIDEO_IDS                              ("IDS_VPL_POP_YOU_CAN_DOWNLOAD_AND_ENJOY_VIDEOS_THROUGH_THE_VIDEO_STORE")
+#define MP_DOWNLOAD_STR_SELECT_QUALITY                                 VIDEOS_GET_STR("IDS_VIDEO_HEADER_SELECT_QUALITY_ABB")
+
+//  Tab (Personal, Devices) //  // not be used in lite
+#define MP_VPL_LIST_TAB_PERSONAL                                                       VIDEOS_GET_STR("IDS_IS_TAB4_PERSONAL_M_CONTENT")
+#define MP_VPL_LIST_TAB_PERSONAL_IDS                                           ("IDS_IS_TAB4_PERSONAL_M_CONTENT")
+#define MP_VPL_LIST_TAB_VIEW                                                           VIDEOS_GET_STR("IDS_VIDEO_BUTTON_VIEW")
+
+#define VIDEOS_STRING_COM_ON                                   VIDEOS_GET_STR("IDS_COM_BODY_ON")
+#define VIDEOS_STRING_COM_OFF                                  VIDEOS_GET_STR("IDS_COM_BODY_OFF")
+
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//  Other strings
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+#ifdef ENABLE_DRM_FEATURE
+//  DRM feature string  //
+#define MP_VPL_DRM_PS_1_MORE_TIME_START_NOW_Q                  (dgettext(MP_SYS_STRING, "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"))
+#define MP_VPL_DRM_PS_2_MORE_TIME_START_NOW_Q                  (dgettext(MP_SYS_STRING, "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"))
+#define MP_VPL_DRM_PS_FOR_PD_DAYS_START_NOW_Q                  (dgettext(MP_SYS_STRING, "IDS_COM_POP_YOU_CAN_USE_PS_FOR_PD_DAYS_START_NOW_Q"))
+#define MP_VPL_DRM_PS_CURRENTLY_LOCKED_UNLOCK_Q                (dgettext(MP_SYS_STRING, "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"))
+#define MP_VPL_DRM_PS_CAN_USE_1_MORE_TIME_GET_ANOTHER_LICENCE_Q        (dgettext(MP_SYS_STRING, "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"))
+#define MP_VPL_DRM_PS_CANNOT_USE_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q  (dgettext(MP_SYS_STRING, "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"))
+#define MP_VPL_DRM_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q (dgettext(MP_SYS_STRING, "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"))
+#endif
+
+//  Sensor Control (not be used in lite)    //
+#define MP_VPL_ENABLE_MOTION_IDS                                                       ("IDS_MUSIC_BUTTON_ENABLE_MOTION")
+
+
+#endif                                                 //_VIDEO_STRING_DEFINE_
diff --git a/include/mp-video-type-define.h b/include/mp-video-type-define.h
new file mode 100755 (executable)
index 0000000..d80eac1
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2020 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 __MP_VIDEO_TYPE_DEFINE__
+#define __MP_VIDEO_TYPE_DEFINE__
+
+typedef enum {
+       LIST_TAB_TYPE_PERSONAL = 0,
+       LIST_TAB_TYPE_DEVICES,
+       LIST_TAB_TYPE_MAX,
+} MpVideoListTabType;
+
+
+typedef enum {
+       LIST_UPDATE_TYPE_NONE = 0,
+       LIST_UPDATE_TYPE_ALL,           //DATA AND VIEW
+       LIST_UPDATE_TYPE_VIEW,          //ONLY UPDATE VIEW, NOT UPDATE DATA
+       LIST_UPDATE_TYPE_DATA,          //ONLY UPDATE DATA, NOT UPDATE VIEW
+       LIST_UPDATE_TYPE_MAX            //RESERVED FIELD
+} MpListUpdateType;
+
+typedef enum {
+       MEDIA_TYPE_FILE = 0,                                            /**< File type*/
+       MEDIA_TYPE_DIRECTORY = 1,                                       /**< Directory type*/
+} MpMediaType;
+
+
+#endif
diff --git a/include/mp-video-value-define.h b/include/mp-video-value-define.h
new file mode 100755 (executable)
index 0000000..7435fab
--- /dev/null
@@ -0,0 +1,634 @@
+/*
+ * Copyright (c) 2020 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 _VIDEO_VALUE_DEFINE_
+#define  _VIDEO_VALUE_DEFINE_
+
+//PLAY_TIME_FORMAT
+#define PLAY_TIME_FORMAT "02u:%02u:%02u"
+
+
+//PLAY_TIME_ARGS
+#define PLAY_TIME_ARGS(t) \
+               (t) / (60 * 60), \
+               ((t) / 60) % 60, \
+               (t) % 60
+
+#define PLAY_TIME_LENGTH 9
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#define _EDJ(x) elm_layout_edje_get(x)
+
+
+#ifdef PREFIX
+#undef PREFIX
+#endif
+
+#ifdef LOCALEDIR
+#undef LOCALEDIR
+#endif
+
+#define VIDEO_UTIL_PERSONAL_HEAD_STR                   "/opt/storage/PersonalStorage"
+
+#define MP_UTIL_VCONF_KEY_PERSONAL_TAG                 "memory/setting/personal"
+
+
+#define PREFIX                                                         "/usr/apps/org.tizen.videos"
+#define LOCALEDIR                                                      "/usr/apps/org.tizen.videos/res/locale"
+
+#define VIDEO_BOOKMARK_DIR                                     "/opt"PREFIX"/data"
+#define VIDEO_THUMB_DATA_DIR                           "/opt/usr/media/.video_thumb"
+#define VIDEO_TRIM_DATA_DIR                                    "/opt/usr/media/.video_thumb"
+#define VIDEO_DOWNLOAD_FILE_DIR                                "/opt/usr/media/Videos"
+#define VIDEO_CHAPTER_VIEW_DATA_DIR                    "/opt/usr/media/.video_thumb"
+
+#define VIDEO_LIST_VIEW_ICON_VIDEO_DEFAULT     "player_library_list_thumbnail_default.png"
+#define VIDEO_LIST_VIEW_ICON_SEARCH                    "icon/T01_2_icon_search.png"
+
+#define VIDEO_LIST_VIEW_ICON_VIDEO                     "icon/T01_2_icon_video.png"
+#define VIDEO_LIST_VIEW_NO_ITEM                                "icon/T01-2_video_noitem.png"
+#define VIDEO_SOFT_BACK_BUTTON                         "T01_icon_soft_back.png"
+#define VIDEO_LIST_VIEW_PREVIEW_NO_ITEM                                "icon/T01-2_video_thumbnail_default.png"
+#define VIDEO_LIST_VIEW_ICON_SELECT_ALL                                "icon/T02_icon_edit.png"
+#define VIDEO_LIST_VIEW_ICON_PERSONAL_LOCK             "icon/T01_2_video_lock_45x45.png"
+#define VIDEO_LIST_VIEW_ICON_DROPBOX                           "icon/T01_2_thumbnail_icon_drop_box.png"
+#define VIDEO_LIST_VIEW_ICON_REFRESH                           "icon/T01_Device_icon_index_refresh_bg.png"
+#define VIDEO_LIST_VIEW_ICON_REFRESH_FOCUS             "icon/T01_Device_icon_index_refresh_focus_ef.png"
+
+//folder view
+#define VIDEO_LIST_VIEW_ICON_FOLDER_PHONE                      "icon/player_folder_list_icon_folder.png"
+#define VIDEO_LIST_VIEW_ICON_FOLDER_PHONE_EF           "icon/player_folder_list_icon_folder_ef.png"
+#define VIDEO_LIST_VIEW_ICON_FOLDER_DROPBOX                    "icon/player_folder_list_icon_dropbox.png"
+#define VIDEO_LIST_VIEW_ICON_FOLDER_DROPBOX_EF         "icon/player_folder_list_icon_dropbox_ef.png"
+#define VIDEO_LIST_VIEW_ICON_FOLDER_EXTERNAL                   "icon/T01_2_list_icon_inner_usb.png"
+#define VIDEO_LIST_VIEW_ICON_FOLDER_SDCARD                     "icon/T01_2_list_icon_sd_card.png"
+
+#define        VIDEO_STORE_PATH                                        ".video-store"
+
+#define VIDEO_PLAYER_TOOLBAR_ICON_VIDEOS                               "toolbar/T01-2_controlbar_icon_video.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_RECORDED                     "toolbar/T01-2_controlbar_icon_recorded.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_BACK                         "toolbar/T01-2_btn_toolbar_back.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_CANCEL                       "toolbar/T01-2_icon_toolbar_cancel.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_DELETE                               "toolbar/icon_delete.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_MOVE_TO_PERSONAL     "toolbar/more_button_icon_add_to_your_personal_storage.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_MOVE_TO_NORMAL       "toolbar/more_button_icon_remove_from_your_personal_storage.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_DONE                         "toolbar/T01-2_icon_toolbar_done.png"
+
+
+//Use for more button popup
+#define VIDEO_PLAYER_TOOLBAR_ICON_SIGN_IN              "toolbar/icon_signin.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_DOWNLOAD             "toolbar/icon_download.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_REFRESH              "toolbar/icon_refresh.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_SORT_BY              "toolbar/icon_sort_by.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_VIEW_AS              "toolbar/icon_view_as.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_SHARE                        "toolbar/icon_share_via.png"
+#define VIDEO_PLAYER_TOOLBAR_ICON_NEAR_BY_DEVICES      "toolbar/icon_nearbydevices.png"
+
+
+#define VIDEO_PLAYER_REMOVE_LIST_EDJ           "vp-remove-list-internal.edj"
+#define VIDEO_PLAYER_LISTVIEW_EDJ              "vp-main-listview-internal.edj"
+#define VIDEO_PLAYER_IMAGE_NAME_EDJ            "vp-images.edj"
+#define VIDEO_PLAYER_NO_ITEM_EDJ               "vp-genlist-no-item.edj"
+
+#define VIDEO_CUSTOM_THEME                     "vp-custom-winset-style.edj"
+#define VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ     "popup_progressbar.edj"
+
+#define VIDEO_BASIC_LAYOUT_EDJ                 "vp-main-layout.edj"
+#define VIDEO_BASIC_NAVIFRAME_EDJ              "vp-naviframe.edj"
+
+#define MAIN_EDJ_GROUP                                                 "main"
+#define CONTROL_EDJ_GROUP                                              "control"
+#define PROGRESS_EDJ_GROUP                                             "progress"
+#define BOOKMARK_EDJ_GROUP                                             "bookmark"
+#define BOOKMARK_ITEM_EDJ_GROUP                                        "bookmark.item"
+#define BOOKMARK_REMOVE_EDJ_GROUP                              "bookmark.end"
+#define TRIM_EDJ_GROUP                                                 "trim.control"
+#define TRIM_ITEM_EDJ_GROUP                                            "trim.item"
+#define CHAPTER_VIEW_EDJ_GROUP                                 "chapter"
+#define SPEEDBOX_EDJ_GROUP                                             "speedbox"
+#define VOLUME_EDJ_GROUP                                               "volume"
+
+#define PANEL_EDJ_GROUP                                                        "panel"
+#define        FAVORITE_EDJ_GROUP                                              "favorite"
+#define ANIMATION_EDJ_GROUP                                            "animation"
+#define DETAIL_EDJ_GROUP                                               "detail"
+#define SUBTITLE_EDJ_GROUP                                             "subtitle"
+#define SUBTITLE_SYNC_EDJ_GROUP                                        "subtitle.sync"
+#define PANEL_BUTTON_EDJ_GROUP                                 "panel.button"
+#define OPTION_EDJ_GROUP                                               "option"
+#define MULTIWIN_EDJ_GROUP                                             "mw"
+#define SETTING_EDJ_GROUP                                              "setting"
+#define LANDSCAPE_THUMB_EDJ_GROUP                              "landscape.thumb"
+#define SEARCH_VIEW_LAYOUT_GROUP                               "video-player.search-view.layout"
+#define REMOVE_LIST_EDJ_GROUP                                  "main.listview.internal"
+#define LISTVIEW_EDJ_GROUP                                             "main.listview.internal"
+#define ASF_DEVICE_LIST_EDJ_GROUP                              "asf.device.list.internal"
+#define PREVIEW_MOVIE_EDJ_GROUP                                        "listview.preview.movie"
+#define PREVIEW_MOVIE_LANDSCAPE_EDJ_GROUP              "listview.preview.movie.landscape"
+#define SEARCH_VIEW_DIM_EDJ_GROUP                              "search.view.internal"
+#define GENLIST_NOITEM_EDJ_GROUP                "listview.genlist.noitem"
+#define GENLIST_NOITEM_SIGNIN_EDJ_GROUP                        "listview.genlist.noitem.signin"
+#define PREVIEW_MOVIE_NOCOTENT__EDJ_GROUP_L            "listview.preview.movie.landspace.nocontent"
+#define PREVIEW_MOVIE_NOCOTENT_EDJ_GROUP               "listview.preview.movie.nocontent"
+
+
+
+#define SWALLOW_MAIN_CONTROL                                   "main.panel"
+#define SWALLOW_MAIN_BOOKMARK                                  "main.bookmark"
+#define SWALLOW_MAIN_ANIMATION                                 "main.animation"
+#define SWALLOW_MAIN_PANEL_BUTTON                              "main.panel.button"
+#define SWALLOW_MAIN_OPTION_BUTTON                             "main.option.button"
+#define SWALLOW_SETTING_LISTVIEW                               "setting.list"
+
+#define SWALLOW_BOOKMARK_GRID                                  "bookmark.swallow"
+#define SWALLOW_PANEL_CONTROL                                  "panel.control"
+#define SWALLOW_PANEL_PROGRESS_BAR                             "panel.progress"
+#define SWALLOW_DETAIL_LIST                                            "detail.list"
+#define SWALLOW_TRIM_THUMBNAIL                                 "trim.control.thumb"
+#define SWALLOW_LISTVIEW_CONTENT                               "main.listview.content"
+#define SWALLOW_ASF_DEVICE_LIST_CONTENT                        "asf.device.list.content"
+#define SWALLOW_LISTVIEW_SELECTION_INFO                        "main.listview.selection.info"
+#define SWALLOW_LISTVIEW_PREVIEW_MOVIE_PIXMAP  "listview.preview.movie.pixmap"
+#define SWALLOW_LISTVIEW_PREVIEW_PROGRESS_BAR  "listview.preview.movie.progressbar"
+#define SWALLOW_LISTVIEW_NO_ITEM_BUTTON                        "listview.genlist.noitem.button"
+#define SWALLOW_LISTVIEW_NO_ITEM_SIGNIN_BUTTON "listview.genlist.noitem.signin.button"
+#define SWALLOW_LISTVIEW_NO_ITEM_TEXT                  "listview.genlist.noitem.text"
+#define SWALLOW_LISTVIEW_NO_ITEM_SIGNIN_TEXT   "listview.genlist.noitem.signin.text"
+#define SWALLOW_LISTVIEW_PREVIEW_LANDSCAPE_PROGRESS_BAR                        "listview.preview.movie.landscape.progressbar"
+#define SWALLOW_LISTVIEW_PREVIEW_LANDSCAPE_MOVIE_PIXMAP                        "listview.preview.movie.landscape.pixmap"
+#define SWALLOW_LISTVIEW_PREVIEW_NOCOTENT_PIXMAP                               "listview.preview.movie.nocontent.pixmap"
+
+#define SWALLOW_LISTVIEW_PROGRESS_CONTENT              "main.listview.progress"
+
+
+
+
+
+
+#define PART_BUTTON_ICON                                               "icon"
+#define MAIN_SPEED_TEXT                                                        "main.speedbox.txt"
+#define SUBTITLE_TEXT                                                  "subtitle.txt"
+
+#define PART_MAIN_ROTATE_BUTTON                                        "main.rotate.button"
+
+#define SIGNAL_MAIN_ROTATE_BUTTON_SHOW                 "signal.main.rotate.button.show"
+#define SIGNAL_MAIN_ROTATE_BUTTON_HIDE                 "signal.main.rotate.button.hide"
+
+#define SIGNAL_MAIN_ROTATE_BUTTON_CLICK                        "signal.main.rotate.button.clicked"
+
+#define SIGNAL_CONTROL_PART_PLAY_BUTTON                        "control.play.button"
+#define SIGNAL_CONTROL_PART_BACK_BUTTON                        "control.back.button"
+#define SIGNAL_CONTROL_PART_VOL_BUTTON                 "control.volume.button"
+#define SIGNAL_CONTROL_PART_MUTE_BUTTON                        "control.volume.mute.button"
+
+#define SIGNAL_CONTROL_PART_SOUNDPATH_BUTTON   "control.soundpath.button"
+#define SIGNAL_CONTROL_PART_SCREENSIZE_BUTTON  "control.screensize.button"
+#define SIGNAL_CONTROL_PART_FF_BUTTON                  "control.normal.ff.button"
+#define SIGNAL_CONTROL_PART_REW_BUTTON                 "control.normal.rew.button"
+#define SIGNAL_CONTROL_PART_TRIM_FF_BUTTON             "control.trim.ff.button"
+#define SIGNAL_CONTROL_PART_TRIM_REW_BUTTON            "control.trim.rew.button"
+
+#define PART_CONTROL_TRIM_DONE_BUTTON                  "control.trim.done.button"
+#define PART_CONTROL_TRIM_CANCEL_BUTTON                        "control.trim.cancel.button"
+#define PART_CONTROL_SPEED_BOX_REW                             "control.normal.rew.speed.swallow"
+#define PART_CONTROL_SPEED_BOX_FF                              "control.normal.ff.speed.swallow"
+
+#define PART_BOOKMARK_ADD                                              "bookmark.add"
+#define PART_BOOKMARK_DEL                                              "bookmark.end.btn"
+
+#define SIGNAL_VOLUME_PORTRAIT_MODE                            "signal.volume.potrait.mode"
+#define SIGNAL_VOLUME_LANDSCAPE_MODE                   "signal.volume.landscape.mode"
+
+#define SIGNAL_SPEEDBOX_SET_MODE_1                             "signal.speedbox.set.mode.1"
+#define SIGNAL_SPEEDBOX_SET_MODE_2                             "signal.speedbox.set.mode.2"
+#define SIGNAL_SPEEDBOX_SET_MODE_3                             "signal.speedbox.set.mode.3"
+
+#define SIGNAL_SPEEDBOX_SHOW                                   "signal.speedbox.visible.on"
+#define SIGNAL_SPEEDBOX_HIDE                                   "signal.speedbox.visible.off"
+
+#define SIGNAL_CONTROL_MODE_NORMAL                             "signal.control.mode.normal"
+#define SIGNAL_CONTROL_MODE_BOOKMARK                   "signal.control.mode.bookmark"
+#define SIGNAL_CONTROL_MODE_TRIM                               "signal.control.mode.trim"
+#define SIGNAL_CONTROL_MODE_STREAMING                  "signal.control.mode.streaming"
+#define SIGNAL_CONTROL_MODE_DLNA                               "signal.control.mode.dlna"
+#define SIGNAL_CONTROL_MODE_VISIBLE_OFF                        "signal.control.mode.visible.off"
+#define SIGNAL_CONTROL_BACK_BUTTON_UP                  "signal.control.back.button.up"
+
+#define SIGNAL_CONTROL_VOL_BUTTON_DOWN                 "signal.control.volume.button.down"
+#define SIGNAL_CONTROL_VOL_BUTTON_UP                   "signal.control.volume.button.up"
+
+#define SIGNAL_CONTROL_MUTE_BUTTON_DOWN                        "signal.control.volume.mute.button.down"
+#define SIGNAL_CONTROL_MUTE_BUTTON_UP                  "signal.control.volume.mute.button.up"
+
+#define SIGNAL_CONTROL_SOUNDPATH_BUTTON_DOWN           "signal.control.soundpath.button.down"
+#define SIGNAL_CONTROL_SOUNDPATH_BUTTON_UP                     "signal.control.soundpath.button.up"
+#define SIGNAL_CONTROL_SCREENSIZE_NORMAL                       "signal.control.screensize.normal"
+#define SIGNAL_CONTROL_SCREENSIZE_EXPAND                       "signal.control.screensize.expand"
+#define SIGNAL_CONTROL_NORMAL_FF_BUTTON_DOWN           "signal.control.normal.ff.button.down"
+#define SIGNAL_CONTROL_NORMAL_FF_BUTTON_UP             "signal.control.normal.ff.button.up"
+#define SIGNAL_CONTROL_NORMAL_REW_BUTTON_DOWN          "signal.control.normal.rew.button.down"
+#define SIGNAL_CONTROL_NORMAL_REW_BUTTON_UP            "signal.control.normal.rew.button.up"
+
+#define SIGNAL_PANEL_BUTTON_SA_DOWN                                    "signal.panel.button.sa.down"
+#define SIGNAL_PANEL_BUTTON_SA_UP                                      "signal.panel.button.sa.up"
+#define SIGNAL_PANEL_BUTTON_REPEAT_DOWN                                "signal.panel.button.repeat.down"
+#define SIGNAL_PANEL_BUTTON_REPEAT_UP                          "signal.panel.button.repeat.up"
+
+#define SIGNAL_BOOKMARK_ADD_DOWN                                       "signal.bookmark.add.down"
+#define SIGNAL_BOOKMARK_ADD_UP                                         "signal.bookmark.add.up"
+
+#define SIGNAL_BOOKMARK_EXPAND                                         "signal.bookmark.expand"
+#define SIGNAL_BOOKMARK_NORMAL                                         "signal.bookmark.normal"
+#define SIGNAL_BOOKMARK_DEL_DOWN                                       "signal.bookmark.end.btn.down"
+
+#define SIGNAL_CONTROL_TRIM_DONE_BUTTON_DOWN           "signal.control.trim.done.button.down"
+#define SIGNAL_CONTROL_TRIM_CANCEL_BUTTON_DOWN         "signal.control.trim.cancel.button.down"
+
+#define SIGNAL_CONTROL_TRIM_FF_BUTTON_DOWN                     "signal.control.trim.ff.button.down"
+#define SIGNAL_CONTROL_TRIM_FF_BUTTON_UP                       "signal.control.trim.ff.button.up"
+#define SIGNAL_CONTROL_TRIM_REW_BUTTON_DOWN                    "signal.control.trim.rew.button.down"
+#define SIGNAL_CONTROL_TRIM_REW_BUTTON_UP                      "signal.control.trim.rew.button.up"
+
+#define SIGNAL_CONTROL_SOUNDPATH_BUTTON_ACTIVE         "signal.control.soundpath.button.active"
+#define SIGNAL_CONTROL_SOUNDPATH_BUTTON_UNACTIVE       "signal.control.soundpath.button.unactive"
+
+#define PART_OPTION_SCREEN_SIZE                                "option.screensize"
+#define PART_OPTION_SHARE                                      "option.share"
+#define PART_OPTION_BOOKMARK                           "option.bookmark"
+#define        PART_OPTION_MULTIWIN                            "option.multiwin"
+#define PART_OPTION_MORE                                       "option.more"
+#define PART_OPTION_SOUND_ALIVE                                "option.sa"
+#define PART_OPTION_TRIM                                       "option.trim"
+#define PART_OPTION_REPEAT                                     "option.repeat"
+#define PART_OPTION_CONNECT_INFO                       "option.connectinfo"
+
+#define SIGNAL_OPTION_SHARE_CLICKED                    "signal.option.share.clicked"
+#define SIGNAL_OPTION_BOOKMARK_CLICKED                 "signal.option.bookmark.clicked"
+#define SIGNAL_OPTION_MULTIWIN_CLICKED                 "signal.option.multiwin.clicked"
+#define SIGNAL_OPTION_MORE_CLICKED                     "signal.option.more.clicked"
+#define SIGNAL_OPTION_SOUND_ALIVE_CLICKED              "signal.option.sa.clicked"
+#define SIGNAL_OPTION_TRIM_CLICKED                     "signal.option.trim.clicked"
+#define SIGNAL_OPTION_REPEAT_UP                                "signal.option.repeat.clicked"
+#define SIGNAL_OPTION_CONNECT_INFO_UP                  "signal.option.connectinfo.clicked"
+
+#define SIGNAL_LAYOUT_PIXMAP_BG_SHOW           "signal.layout.pixmap.bg.show"
+#define SIGNAL_LAYOUT_PIXMAP_BG_HIDE           "signal.layout.pixmap.bg.hide"
+
+#define SIGNAL_LAYOUT_INDICATOR_SHOW           "signal.layout.indicator.show"
+#define SIGNAL_LAYOUT_INDICATOR_HIDE           "signal.layout.indicator.hide"
+
+#define PART_MW_CLOSE                                  "mw.close"
+#define PART_MW_PANEL_HIDE                             "mw.panel.hide"
+#define PART_MW_PANEL_SHOW                             "mw.panel.show"
+#define PART_MW_FULL_SIZE                              "mw.full.size"
+#define PART_MW_REW                                            "mw.control.rew"
+#define PART_MW_PLAY                                   "mw.control.play"
+#define PART_MW_PAUSE                                  "mw.control.pause"
+#define PART_MW_FF                                             "mw.control.ff"
+#define PART_MW_RESIZE                                 "mw.resize"
+
+#define SIGNAL_CONTORL_SHOW_FINISH                     "signal.control.show.finish"
+#define SIGNAL_CONTORL_HIDE_FINISH                     "signal.control.hide.finish"
+
+#define SIGNAL_NAVIFRAME_TITLE_SHOW                    "elm,state,title,show,custom"
+#define SIGNAL_NAVIFRAME_TITLE_HIDE                    "elm,state,title,hide,custom"
+
+#define SIGNAL_MAIN_CONTROL_PORTRAIT_SHOW              "signal.main.control.portrait.show"
+#define SIGNAL_MAIN_CONTROL_LANDSCAPE_SHOW             "signal.main.control.landscape.show"
+
+#define SIGNAL_MAIN_CONTROL_NORMAL_HIDE                        "signal.main.control.hide"
+#define SIGNAL_MAIN_CONTROL_NO_EFFECT_HIDE             "signal.main.control.no.effect.hide"
+#define SIGNAL_MAIN_CONTROL_LANDSCAPE_BOOKMAKR_HIDE    "signal.main.control.hide.with.bookmark"
+
+#define SIGNAL_MW_CLOSE_CLICKED                                "signal.mw.close.clicked"
+#define SIGNAL_MW_PANEL_HIDE_CLICKED                   "signal.mw.panel.hide.clicked"
+#define SIGNAL_MW_PANEL_SHOW_CLICKED                   "signal.mw.panel.show.clicked"
+#define SIGNAL_MW_FULL_SIZE_CLICKED                    "signal.mw.full.size.clicked"
+#define SIGNAL_MW_REW_CLICKED                          "signal.mw.control.rew.clicked"
+#define SIGNAL_MW_PLAY_CLICKED                         "signal.mw.control.play.clicked"
+#define SIGNAL_MW_PAUSE_CLICKED                                "signal.mw.control.pause.clicked"
+#define SIGNAL_MW_FF_CLICKED                           "signal.mw.control.ff.clicked"
+#define SIGNAL_MW_RESIZE_DOWN                          "signal.mw.resize.down"
+
+#define SIGNAL_MW_HIDE_CONTROL                         "signal.mw.hide.control"
+#define SIGNAL_MW_SHOW_CONTROL                         "signal.mw.show.control"
+
+#define SIGNAL_MW_SET_PAUSE_STATUS                     "signal.mw.set.pause.status"
+#define SIGNAL_MW_SET_PLAY_STATUS                      "signal.mw.set.play.status"
+
+#define SIGNAL_MW_PIXMAP_SHOW                          "signal.mw.image.show"
+#define SIGNAL_MW_PIXMAP_HIDE                          "signal.mw.image.hide"
+
+#define SIGNAL_MW_PIXMAP_ALPHA_SET                     "signal.mw.image.alpha.set"
+#define SIGNAL_MW_PIXMAP_ALPHA_UNSET                   "signal.mw.image.alpha.unset"
+
+#define SIGNAL_OPTION_SELECT_BG_CLEAR                  "signal.option.select.bg.clear"
+
+#define SIGNAL_OPTION_SCREEN_SIZE_NORMAL               "signal.option.screensize.normal"
+#define SIGNAL_OPTION_SCREEN_SIZE_FULL                 "signal.option.screensize.full"
+#define SIGNAL_OPTION_SCREEN_SIZE_ORIGIN               "signal.option.screensize.origin"
+
+#define SIGNAL_OPTION_REPEAT_ON                                "signal.option.repeat.on"
+#define SIGNAL_OPTION_REPEAT_OFF                       "signal.option.repeat.off"
+
+#define SIGNAL_OPTION_MODE_LOCAL                       "signal.option.mode.local"
+#define SIGNAL_OPTION_MODE_MYFILE                      "signal.option.mode.myfile"
+#define SIGNAL_OPTION_MODE_EMAIL                       "signal.option.mode.email"
+#define SIGNAL_OPTION_MODE_WEB                         "signal.option.mode.web"
+#define SIGNAL_OPTION_MODE_MESSAGE                     "signal.option.mode.message"
+
+#define SIGNAL_PANEL_BUTTON_REPEAT_OFF                 "signal.panel.button.repeat.off"
+#define SIGNAL_PANEL_BUTTON_REPEAT_ONE                 "signal.panel.button.repeat.one"
+#define SIGNAL_PANEL_BUTTON_REPEAT_ALL                 "signal.panel.button.repeat.all"
+
+#define SIGNAL_NAVIFRAME_PORTRATE_MODE                 "signal.naviframe.portrate.mode"
+#define SIGNAL_NAVIFRAME_LANDSCAPE_MODE                        "signal.naviframe.landscape.mode"
+
+#define SIGNAL_MAIN_PORTRATE_MODE                      "signal.main.portrate.mode"
+#define SIGNAL_MAIN_LANDSCAPE_MODE                     "signal.main.landscape.mode"
+#define SIGNAL_MAIN_TRIM_MODE                          "signal.main.trim.mode"
+
+#define SIGNAL_MAIN_LANDSCAPE_BOOKMAKR_SHOW            "signal.main.landscape.bookmark.show"
+#define SIGNAL_MAIN_LANDSCAPE_BOOKMAKR_HIDE            "signal.main.landscape.bookmark.hide"
+
+#define SIGNAL_PANEL_PORTRATE_MODE                     "signal.panel.portrate.mode"
+#define SIGNAL_PANEL_LANDSCAPE_MODE                    "signal.panel.landscape.mode"
+#define SIGNAL_PANEL_TRIM_MODE                         "signal.panel.trim.mode"
+
+#define SIGNAL_PROGRESS_PORTRATE_MODE                  "signal.progress.portrate.mode"
+#define SIGNAL_PROGRESS_LANDSCAPE_MODE                 "signal.progress.landscape.mode"
+
+#define SIGNAL_PROGRESS_POINTER_SHOW                   "signal.progress.pointer.show"
+#define SIGNAL_PROGRESS_POINTER_HIDE                   "signal.progress.pointer.hide"
+
+#define SIGNAL_PROGRESS_ADJUSTMENT_SHOW                        "signal.progress.adjustment.show"
+#define SIGNAL_PROGRESS_ADJUSTMENT_HIDE                        "signal.progress.adjustment.hide"
+
+#define SIGNAL_CONTROL_PORTRATE_MODE                   "signal.control.portrate.mode"
+#define SIGNAL_CONTROL_LANDSCAPE_MODE                  "signal.control.landscape.mode"
+
+#define SIGNAL_CONTROL_STREAMING_PORTRATE_MODE         "signal.control.streaming.portrate.mode"
+#define SIGNAL_CONTROL_STREAMING_LANDSCAPE_MODE                "signal.control.streaming.landscape.mode"
+
+#define SIGNAL_CONTROL_SET_MUTE                                "signal.control.volume.set.mute"
+#define SIGNAL_CONTROL_UNSET_MUTE                      "signal.control.volume.unset.mute"
+
+#define SIGNAL_SEARCH_VIEW_INTERNAL_DIMMING_SHOW       "signal.search.view.internal.dimming.show"
+#define SIGNAL_SEARCH_VIEW_INTERNAL_DIMMING_HIDE       "signal.search.view.internal.dimming.hide"
+
+
+// Callback signals.
+#define SIGNAL_CONTROL_PLAY_BUTTON_DOWN                        "signal.control.play.button.down"
+#define SIGNAL_CONTROL_PLAY_BUTTON_UP                  "signal.control.play.button.up"
+#define SIGNAL_CONTROL_PLAY_PAUSE_PRESS                        "signal.control.play.pause.press"
+#define SIGNAL_CONTROL_PLAY_RESUME_PRESS               "signal.control.play.resume.press"
+
+// Emit signals.
+#define SIGNAL_CONTROL_PLAY_RESUME                     "signal.control.play.resume"
+#define SIGNAL_CONTROL_PLAY_PAUSE                      "signal.control.play.pause"
+
+#define SIGNAL_MAIN_MUTE_SHOW                          "signal.main.mute.show"
+#define SIGNAL_MAIN_MUTE_HIDE                          "signal.main.mute.hide"
+
+#define SIGNAL_MAIN_NOCONTENTS_SHOW                    "signal.main.nocontents.show"
+#define SIGNAL_MAIN_NOCONTENTS_HIDE                    "signal.main.nocontents.hide"
+
+#define SIGNAL_MAIN_SPEEDBOX_SHOW                      "signal.main.speedbox.show"
+#define SIGNAL_MAIN_SPEEDBOX_HIDE                      "signal.main.speedbox.hide"
+
+#define SIGNAL_MAIN_SCREEN_TOUCH_TOGGLE                "main.screen.touch.toggle"
+#define SIGNAL_MAIN_ANIMATION_SHOW                     "signal.main.animation.show"
+#define SIGNAL_MAIN_ANIMATION_HIDE                     "signal.main.animation.hide"
+
+#define SIGNAL_ANIMATION_IMAGE_LOADING         "signal.loading.image.step"
+#define SIGNAL_SUBTITLE_PORTRATE_MODE          "signal.subtitle.portrate.mode"
+#define SIGNAL_SUBTITLE_LANDSCAPE_MODE         "signal.subtitle.landscape.mode"
+
+#define SIGNAL_SUBTITLE_TXT_SHOW                       "signal.subtitle.txt.show"
+#define SIGNAL_SUBTITLE_TXT_HIDE                       "signal.subtitle.txt.hide"
+
+#define SIGNAL_SUBTITLE_LAYOUT_SHOW            "signal.subtitle.layout.show"
+#define SIGNAL_SUBTITLE_LAYOUT_HIDE            "signal.subtitle.layout.hide"
+
+#define SIGNAL_SUBTITLE_SIZE_SMALL                     "signal.subtitle.size.small"
+#define SIGNAL_SUBTITLE_SIZE_MEDIUM                    "signal.subtitle.size.medium"
+#define SIGNAL_SUBTITLE_SIZE_LARGE                     "signal.subtitle.size.large"
+
+#define SIGNAL_SUBTITLE_SYNC_SHOW                      "signal.subtitle.sync.show"
+#define SIGNAL_SUBTITLE_SYNC_HIDE                      "signal.subtitle.sync.hide"
+
+
+#define PART_SUBTITLE_SYNC_SLOW_BUTTON         "subtitle.sync.slow.button"
+#define PART_SUBTITLE_SYNC_FAST_BUTTON         "subtitle.sync.fast.button"
+#define PART_SUBTITLE_SYNC_TXT                         "subtitle.sync.txt"
+
+#define SIGNAL_SUBTITLE_SYNC_SLOW_DOWN         "signal.subtitle.sync.slow.button.down"
+#define SIGNAL_SUBTITLE_SYNC_FAST_DOWN         "signal.subtitle.sync.fast.button.down"
+
+
+#define SIGNAL_LOCKSCREEN_SHOW                         "signal.lockscreen.show"
+#define SIGNAL_LOCKSCREEN_HIDE                         "signal.lockscreen.hide"
+
+
+#define SIGNAL_LISTVIEW_SELECTION_INFO_SHOW                    "signal.main.listview.internal.selection.info.show"
+#define SIGNAL_LISTVIEW_SELECTION_INFO_HIDE                    "signal.main.listview.internal.selection.info.hide"
+
+#define SIGNAL_ASF_VDIEO_ITEM_SELECTION_INFO_SHOW              "signal.asf.device.internal.selection.info.show"
+#define SIGNAL_ASF_VIDEO_ITEM_SELECTION_INFO_HIDE              "signal.asf.device.internal.selection.info.hide"
+
+#define SIGNAL_LISTVIEW_PREVIEW_MOVIE_EVENT_CLICKED            "signal.listview.preview.movie.event.clicked"
+
+#define SIGNAL_LANDSCAPE_THUMB_PREVIEW_SHOW                    "signal.landscape.thumb.preview.show"
+#define SIGNAL_LANDSCAPE_THUMB_PREVIEW_HIDE                    "signal.landscape.thumb.preview.hide"
+
+#define SIGNAL_MOUSE_DOWN                              "mouse,down,1"
+#define SIGNAL_MOUSE_UP                                        "mouse,up,1"
+#define SIGNAL_MOUSE_CLICK                             "mouse,clicked,1"
+
+//download
+#define MP_DOWNLOAD_BUTTON_STYLE            "video/circle"
+
+// Multi Window value
+#define MP_MULTI_WINDOW_STARTUP_TYPE           "window_startup_type"
+#define MP_MULTI_WINDOW_LAYOUT_ID                      "window_layout_id"
+#define MP_MULTI_WINDOW_OPERATION                      "http://tizen.org/appcontrol/operation/main"
+
+#define TAG_FAVOURITES                                 "Favourites"
+#ifndef PACKAGE
+#define PACKAGE "video-player"
+#endif
+#define PAUSE_KEY                                              "XF86AudioPause"
+#define PLAY_KEY                                               "XF86AudioPlay"
+#define STOP_KEY                                               "XF86AudioStop"
+#define NEXT_KEY                                               "XF86AudioNext"
+#define PREV_KEY                                               "XF86AudioPrev"
+#define FORWARD_KEY                                            "XF86AudioForward"
+#define REWIND_KEY                                             "XF86AudioRewind"
+#define END_KEY                                                        "XF86Stop"
+#define HOME_KEY                                               "XF86Home"
+#define KEY_CANCLE                                             "Cancel"
+#define POWER_KEY                                              "XF86PowerOff"
+
+#define VOLUME_DOWN_KEY                                        "XF86AudioLowerVolume"
+#define VOLUME_UP_KEY                                  "XF86AudioRaiseVolume"
+
+#define VOLUME_MUTE                                            0
+#define KEY_GRAB_SHARED                                        SHARED_GRAB
+#define KEY_GRAB_EXCLUSIVE                             EXCLUSIVE_GRAB
+#define KEY_GRAB_TOP_POSITION                  TOP_POSITION_GRAB
+#define KEY_GRAB_OR_EXCLUSIVE                  OR_EXCLUSIVE_GRAB
+#define STR_LEN_MAX                                            4096
+#define SVC_LEN_MAX                                            2048
+#define FORMAT_LEN_MAX                                 100
+
+
+#define        XML_ITEM_NUM                                    6
+#define _WIFI_MODE_                                            1
+#define _3G_MODE_                                              2
+#define USE_STREAMING_ANI                              1
+#define LONG_PRESS_INTERVAL                            1.0
+#define DOUBLE_CLICK_TIME                              0.2
+
+#define        SCREEN_TOUCH_TOGGLE_AREA_Y_START 0.065
+#define        SCREEN_TOUCH_TOGGLE_AREA_Y_END  0.78
+
+#define        TAG_LIST_SIZE                                   256
+
+#define ANIMATION_TIMER_INTERVAL               0.05
+#define ANIMATION_MAX_COUNT                            30
+
+#define BOOSTER_STEP_DISTANCE                  99
+#define TRIM_DETAIL_STEP_DISTANCE              30
+
+#define SIGNAL_TEXT_MAX_LEN                            64
+#define CAPTION_TEXT_MAX_LEN                   16
+#define STR_UUID_LEN_MAX                               37
+
+#define DEFAULT_SCALE_WIDTH                    720
+#define DEFAULT_SCALE_HEIGHT                   1280
+
+#define DEFAULT_MW_WIDTH                               496
+#define DEFAULT_MW_HEIGHT                              286
+
+#define VIDEO_ICON_WIDTH                               70
+#define VIDEO_ICON_HEIGHT                              45
+
+#define VIDEO_LIST_PROGRESSBAR_LENGTH  70
+
+#define NO_ITEM_GENLIST_WIDTH                  720
+#define NO_ITEM_GENLIST_HEIGHT                 690
+
+#define VIDEO_THUMB_WIDTH                              176
+#define VIDEO_THUMB_HEIGHT                     144
+
+#define VIDEO_PREVIEW_WIDTH                    320
+#define VIDEO_PREVIEW_HEIGHT                   240
+
+#define VIDEO_NUMBER_INFO_BAR_Y                        1115
+
+#define NUMBER_INFO_BAR_HEIGHT                 57
+
+#define VIDEO_POPUP_TITLE_H                            72
+#define VIDEO_POPUP_1_ITEM_H                   46
+#define VIDEO_POPUP_2_ITEM_H                   84
+
+#define VIDEO_POPUP_MAX_HEIGHT         752-72
+#define VIDEO_POPUP_MAX_HEIGHT_L               432-72
+
+#define VIDEO_POPUP_MIN_ITEMS                  4
+
+#define VIDEO_POPUP_LIST_HEIGHT(count)                 (((VIDEO_POPUP_1_ITEM_H*count) > VIDEO_POPUP_MAX_HEIGHT) ? (VIDEO_POPUP_MAX_HEIGHT) : (VIDEO_POPUP_1_ITEM_H*count))     //(((112*count) > 728) ? (728) : (112*count))
+#define VIDEO_POPUP_LIST_HEIGHT_L(count)               (((VIDEO_POPUP_1_ITEM_H*count-1) > VIDEO_POPUP_MAX_HEIGHT_L) ? (VIDEO_POPUP_MAX_HEIGHT_L) : (VIDEO_POPUP_1_ITEM_H*count-1))
+
+#define VIDEO_POPUP_2_TEXT_HEIGHT(count)               (((VIDEO_POPUP_2_ITEM_H*count-1) > VIDEO_POPUP_MAX_HEIGHT) ? (VIDEO_POPUP_MAX_HEIGHT) : (VIDEO_POPUP_2_ITEM_H*count-1))
+#define VIDEO_POPUP_2_TEXT_HEIGHT_L(count)             (((VIDEO_POPUP_2_ITEM_H*count-1) > VIDEO_POPUP_MAX_HEIGHT_L) ? (VIDEO_POPUP_MAX_HEIGHT_L) : (VIDEO_POPUP_2_ITEM_H*count-1))
+
+
+#define VIDEO_POPUP_ITEM_W                             120
+#define VIDEO_POPUP_ITEM_LADSCAPE_W            480
+
+#define VIDEO_POPUP_DETAIL_ITEM_W              367
+
+#define VIDEO_FILE_ENTRY_LEN_MAX               255
+#define VIDEO_FILE_SEARCH_CHAR_LEN_MAX 50
+#define VIDEO_CTXPOPUP_ITEM_W                  500
+#define VIDEO_CTXPOPUP_TITLE_H                 54
+
+
+#define PREVIEW_MOVIE_WIDTH                                    720
+#define PREVIEW_MOVIE_HEIGHT                           406
+#define PREVIEW_MOVIE_WIDTH_LANDSCAPE          1280
+#define PREVIEW_MOVIE_HEIGHT_LANDSCAPE         320
+#define PREVIEW_MOVIE_NOCONTENT_LANDSCAPE      640
+#define NO_CONTENTS_WIDTH                              720
+#define NO_CONTENTS_HEIGHT                             897
+#define VIDEO_MAIN_LIST_BLOCK_COUNT            12
+#define VIDEO_GENLIST_BLOCK_COUNT              12
+#define VIDEO_PERSONAL_UPDATE_TIMER            1.0
+
+#define VIDEO_PREVIEW_WIDTH_ICON_LANDSCAPE     640
+#define VIDEO_PREVIEW_HEIGHT_ICON_LANDSCAPE    320
+
+
+//thumbnail view
+#define        VP_GENLIST_THUMB_PORTRAIT_COUNT                 2
+#define VP_GENLIST_THUMB_LANDSPACE_COUNT               4
+#define        VP_GENLIST_THUMB_PORTRAIT_COUNT_ZOOM_IN                 1
+#define VP_GENLIST_THUMB_LANDSPACE_COUNT_ZOOM_IN               2
+#define VP_ALBUM_THUMB_ICON_HEIGHT                             150
+#define VP_ALBUM_THUMB_ICON_HEIGHT_ZOOM_IN                     225
+#define GRID_VIDEO_ICON_WIDTH                                  150
+#define GRID_VIDEO_ICON_HEIGHT                                 210
+#define GRID_VIDEO_TAB_PAD_HEIGHT                              12
+
+#define VIDEO_GENGRID_ICON_WIDTH                               150
+
+//landspace
+#define VP_ALBUM_THUMB_ICON_HEIGHT_LAND                        150
+#define GRID_VIDEO_ICON_WIDTH_LAND                             314
+#define GRID_VIDEO_ICON_HEIGHT_LAND                            186
+
+#define VIDEO_GENGRID_ICON_WIDTH_LAND                          132
+
+//video wall
+#define MP_VIDEO_WALL_START_POSITION           0
+#define MP_VIDEO_WALL_DIR                                      "/opt/usr/media/.video_wall"
+#define        MP_VIDEO_WALL_FRAME_FILE_PREFIX         "%s/.frame_buff.jpg"
+#define        MP_VIDEO_WALL_GEN_FILE_NAME_PREFIX              "%s/preview.3gp"
+
+#define VIDEO_SHARE_OPERATION_SINGLE "http://tizen.org/appcontrol/operation/share"
+#define VIDEO_SHARE_OPERATION_MULTIPLE "http://tizen.org/appcontrol/operation/multi_share"
+#define VIDEO_SHARE_SVC_FILE_PATH "http://tizen.org/appcontrol/data/path"
+
+#define MP_VIDEO_WALL_DURATION                         10000
+#define MP_VIDEO_WALL_DEFAULT_FPS                      10
+
+
+#define GRID_VIDEO_ICON_WIDTH_T                                        352
+#define GRID_VIDEO_ICON_HEIGHT_T                               192
+
+#define VIDEO_DETAIL_VALUE_GPS_DEFAULT -200.0
+
+
+#endif                                                 //_VIDEO_VALUE_DEFINE_
diff --git a/include/video-player.h b/include/video-player.h
new file mode 100755 (executable)
index 0000000..c2ae56f
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2020 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 __VIDEO_PLAYER__
+#define         __VIDEO_PLAYER__
+
+#include <app.h>
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include "mp-video-value-define.h"
+
+#ifndef EXPORT_API
+#define EXPORT_API __attribute__((__visibility__("default")))
+#endif
+
+#endif                                                 //__VIDEO_PLAYER__
diff --git a/include/view/mp-library-view-mgr.h b/include/view/mp-library-view-mgr.h
new file mode 100755 (executable)
index 0000000..46fa256
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2020 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 _VIDEO_VIEW_MGR_
+#define  _VIDEO_VIEW_MGR_
+
+#include "mp-video-type-define.h"
+
+void *mp_library_mgr_init(void);
+void mp_library_mgr_destroy(void *pUserData);
+
+void mp_library_mgr_set_value(void);
+
+void mp_library_mgr_unset_value(void);
+
+void mp_library_mgr_update_video_list(void);
+void mp_library_mgr_update_library_view(MpListUpdateType eUpdateType);
+void mp_library_mgr_change_language(void);
+void mp_library_mgr_change_color(void);
+
+void mp_library_mgr_destroy_player(void);
+
+void mp_library_mgr_pause_wall_render(void);
+void mp_library_mgr_resume_wall_render(void);
+
+void mp_library_mgr_init_value(void);
+
+#endif                                                 //_VIDEO_VIEW_MGR_
diff --git a/include/view/mp-video-detail-view.h b/include/view/mp-video-detail-view.h
new file mode 100755 (executable)
index 0000000..0324418
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2020 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  _VIDEO_PLAYER_DETAIL_VIEW_
+#define  _VIDEO_PLAYER_DETAIL_VIEW_
+
+typedef struct _VideoDetailInfo {
+       char *szTitle;
+       char *szSize;
+       char *szFormat;
+       char *szResolution;
+       char *szLastModifiedTime;
+       char *szLocation;
+} stDetailInfo;
+
+typedef void (*mpDetailViewCbFunc) (void);
+
+void mp_detail_view_free_detail_info(stDetailInfo * pDetailInfo);
+void mp_detail_view_push(void *pNaviFrame, bool IsFolder,
+                                                const char *pMediaId, stDetailInfo * pDetailInfo);
+
+void mp_detail_view_delete_handle(void);
+bool mp_detail_view_get_video_detail_info(int nVideoItemIndex,
+                                                                                 stDetailInfo ** pDetailInfo);
+bool mp_detail_view_get_folder_detail_info(int nFolderItemIndex,
+                                                                                  stDetailInfo ** pDetailInfo);
+void mp_detail_view_update(void);
+
+#endif                                                 // __MP_VIDEO_DETAIL_VIEW__
diff --git a/include/view/mp-video-list-folder-share-via-view.h b/include/view/mp-video-list-folder-share-via-view.h
new file mode 100755 (executable)
index 0000000..507eeac
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2020 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 _VIDEO_LIST_FOLDER_SHARE_VIA_VIEW_
+#define  _VIDEO_LIST_FOLDER_SHARE_VIA_VIEW_
+
+#include <stdbool.h>
+#include "mp-video-type-define.h"
+
+typedef void (*ChangeListFolderShareViewCbFunc) (void);
+
+void mp_folder_share_view_push(void *pNaviFrame,
+                                                          ChangeListFolderShareViewCbFunc
+                                                          pChangeViewCb, MpVideoListTabType eTabType);
+void mp_folder_share_view_pop(void);
+void mp_folder_share_view_change_language(void);
+
+#endif
diff --git a/include/view/mp-video-list-personal-ctrl.h b/include/view/mp-video-list-personal-ctrl.h
new file mode 100755 (executable)
index 0000000..cca4f93
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2020 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 _MP_VIDEO_LIST_PERSONAL_CTRL_
+#define _MP_VIDEO_LIST_PERSONAL_CTRL_
+
+
+typedef void (*PersonalCtrlCbFunc) (void);
+
+
+bool mp_personal_ctrl_show(bool * pCheckedItemsEditList,
+                                                  int pCheckedItemsEditListSize, int nViewStyle,
+                                                  bool bFolderMove,
+                                                  PersonalCtrlCbFunc pPersonalCtrlCb,
+                                                  void *pUserData);
+
+#endif                                                 // _MP_VIDEO_LIST_SORT_CTRL_
diff --git a/include/view/mp-video-list-personal-view.h b/include/view/mp-video-list-personal-view.h
new file mode 100755 (executable)
index 0000000..02d7711
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2020 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 _VIDEO_LIST_PERSONAL_VIEW_
+#define  _VIDEO_LIST_PERSONAL_VIEW_
+
+#include <stdbool.h>
+#include "mp-video-type-define.h"
+
+
+typedef void (*ChangePersonalViewCbFunc) (MpListUpdateType eUpdateType);
+
+/*nViewStyle: 0->add to personal, 1->Remove from personal */
+void mp_personal_view_push(void *pNaviFrame,
+                                                  ChangePersonalViewCbFunc pChangeViewCb,
+                                                  char *pFolderPath, int nViewStyle);
+void mp_personal_view_pop(void);
+bool mp_personal_view_is_top_view(void);
+void mp_personal_view_update(void);
+
+
+#endif
diff --git a/include/view/mp-video-list-remove-ctrl.h b/include/view/mp-video-list-remove-ctrl.h
new file mode 100755 (executable)
index 0000000..74f6e5c
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2020 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 _MP_VIDEO_LIST_REMOVE_CTRL_
+#define _MP_VIDEO_LIST_REMOVE_CTRL_
+
+
+typedef void (*ListRemoveCtrlCbFunc) (void);
+
+
+bool mp_remove_ctrl_show(bool * pCheckedItemsEditList,
+                                                int pCheckedItemsEditListSize,
+                                                ListRemoveCtrlCbFunc pListRemoveCtrlCb,
+                                                bool bFolderDel, void *pUserData);
+
+#endif                                                 // _MP_VIDEO_LIST_SORT_CTRL_
diff --git a/include/view/mp-video-list-remove-view.h b/include/view/mp-video-list-remove-view.h
new file mode 100755 (executable)
index 0000000..72998b9
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2020 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 _VIDEO_LIST_REMOVE_VIEW_
+#define  _VIDEO_LIST_REMOVE_VIEW_
+
+#include <stdbool.h>
+#include "mp-video-type-define.h"
+
+
+typedef void (*ChangeListRemoveViewCbFunc) (void);
+typedef void (*ListRemoveViewCbFunc) (MpListUpdateType eUpdateType);
+
+void mp_remove_view_push(void *pNaviFrame,
+                                                ListRemoveViewCbFunc pUpdateViewCb,
+                                                ChangeListRemoveViewCbFunc pChangeViewCb,
+                                                char *pFolderPath, MpVideoListTabType eTabType);
+void mp_remove_view_pop(void);
+bool mp_remove_view_is_top_view(void);
+void mp_remove_view_change_language(void);
+int __mp_remove_folder_view_get_folder_count();
+
+#endif
diff --git a/include/view/mp-video-list-share-via-view.h b/include/view/mp-video-list-share-via-view.h
new file mode 100755 (executable)
index 0000000..2062248
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2020 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 _VIDEO_LIST_SHARE_VIA_VIEW_
+#define  _VIDEO_LIST_SHARE_VIA_VIEW_
+
+
+#include <stdbool.h>
+#include "mp-video-type-define.h"
+
+typedef void (*ChangeListShareViewCbFunc) (void);
+
+void mp_share_view_push(void *pNaviFrame,
+                                               ChangeListShareViewCbFunc pChangeViewCb,
+                                               char *pFolderPath, MpVideoListTabType eTabType);
+void mp_share_view_pop(void);
+bool mp_share_view_is_top_view(void);
+void mp_share_view_change_language(void);
+void vp_share_view_update_share_panel(void);
+
+#endif
diff --git a/include/view/mp-video-list-view-common.h b/include/view/mp-video-list-view-common.h
new file mode 100755 (executable)
index 0000000..c1a3a55
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2020 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 _VIDEO_LIST_VIEW_COMMON_
+#define  _VIDEO_LIST_VIEW_COMMON_
+
+
+#include <stdbool.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include "mp-video-type-define.h"
+
+typedef void (*UpdateListItemsCbFunc) (MpListUpdateType eUpdateType);
+
+typedef struct {
+       void *pNaviFrameHandle;
+       void *pNaviFrameItem;
+
+       void *pVideosGenlist;           // DON'T CHANGE GENLIST HANDLE!!!
+
+       Ecore_Timer *pDbUpdateTimer;    //db Update
+
+       MpVideoListTabType nListTabType;
+
+       int nCurrentViewType;
+
+       Evas_Smart_Cb pGenlistItemtLanguageChangedCb;
+       Evas_Smart_Cb pGenlistItemtRealizeCb;
+       Evas_Smart_Cb pGenlistItemtPressCb;
+       Evas_Smart_Cb pGenlistItemtLongPressCb;
+} st_VideoListViewMainViewHandle;
+
+
+typedef struct {
+       Evas_Object *pBox;                      // DON'T CHANGE BOX !!!
+       Evas_Object *pToolBar;          // DON'T CHANGE TOOLBAR !!!
+
+       ////////////////////////////////////////////////////////////
+       // personal tab
+       Evas_Object *pListViewBaselayout;
+       Evas_Object *pListViewTitlelayout;
+       Evas_Object *pListViewNocontentlayout;
+       ////////////////////////////////////////////////////////////
+       Evas_Object *pScroller;
+
+       Evas_Object *pVideoGenlistTitle;
+       Elm_Genlist_Item_Class *pVideoGenlistTitleItc;
+       Elm_Object_Item *pVideoGenlistItemForTitle;
+       Elm_Object_Item *pVideoGenlistItemForNoContentLayout;
+
+       Evas_Object *gesture;
+       int zoom_level;
+} st_VideoListViewMainViewWidget;
+
+void mp_list_common_set_callabcks(void *viewHandle,
+                                                                 Evas_Smart_Cb
+                                                                 pGenlistItemtLanguageChangedCb,
+                                                                 Evas_Smart_Cb pGenlistItemtRealizeCb,
+                                                                 Evas_Smart_Cb pGenlistItemtPressCb,
+                                                                 Evas_Smart_Cb pGenlistItemtLongPressCb);
+void mp_list_common_unset_callabcks(void *viewHandle);
+
+void mp_folder_view_set_is_item_view(bool isSelected);
+bool mp_folder_view_is_item_view(void);
+bool mp_folder_view_is_top_view(void);
+
+
+#endif
diff --git a/include/view/mp-video-list-view-folder.h b/include/view/mp-video-list-view-folder.h
new file mode 100755 (executable)
index 0000000..e3a895a
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2020 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  _VIDEO_PLAYER_FOLDER_LIST_VIEW_
+#define  _VIDEO_PLAYER_FOLDER_LIST_VIEW_
+
+#include "mp-video-list-view-common.h"
+#include "mp-video-type-define.h"
+
+void mp_folder_view_destroy(void);
+void mp_folder_view_arrange_folder_list(void *pMainViewHandle,
+                                                                               void *pMainViewWidget,
+                                                                               MpListUpdateType eUpdateType,
+                                                                               UpdateListItemsCbFunc
+                                                                               pUpdateVideoListUserCb);
+void mp_folder_view_update_video_items(void);
+void mp_folder_view_change_language(void);
+#endif
diff --git a/include/view/mp-video-list-view-item-of-folder.h b/include/view/mp-video-list-view-item-of-folder.h
new file mode 100755 (executable)
index 0000000..4935cf5
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2020 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  _VIDEO_ITEM_VIEW_OF_FOLDER_
+#define  _VIDEO_ITEM_VIEW_OF_FOLDER_
+
+#include "mp-video-list-view-common.h"
+#include "mp-video-type-define.h"
+
+void mp_folder_item_view_push(void *pNaviFrame, int folder_index,
+                                                         UpdateListItemsCbFunc pChangeViewCb);
+bool mp_folder_item_view_is_current_view();
+void mp_folder_item_view_check_more_button_of_toolbar(void);
+void mp_folder_item_view_change_language(void);
+void mp_folder_item_view_update_played_item(void);
+void mp_folder_item_view_update_video_list(MpListUpdateType eUpdateType);
+
+#endif
diff --git a/include/view/mp-video-list-view-main.h b/include/view/mp-video-list-view-main.h
new file mode 100755 (executable)
index 0000000..b5f8b91
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2020 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 _VIDEO_LIST_VIEW_
+#define  _VIDEO_LIST_VIEW_
+
+#include <stdbool.h>
+#include "mp-video-type-define.h"
+
+
+void mp_list_view_push(void *pNaviFrame);
+void mp_list_view_destroy(void);
+void mp_list_view_update_widget(void);
+void mp_list_view_update_widget_resume(void);
+void mp_list_view_change_language(void);
+void mp_list_view_change_color(void);
+void mp_list_view_destroy_player(void);
+void mp_list_view_update_whole_genlist(MpListUpdateType eUpdateType);
+void mp_list_view_rotate_view(MpListUpdateType eUpdateType);
+void mp_list_view_update_count_layout();
+void mp_list_view_update_base_layout();
+void mp_list_view_search_item_cb(void *pUserData, Evas_Object * pObject,
+                                                                void *pEventInfo);
+
+#endif
diff --git a/include/view/mp-video-list-view-normal.h b/include/view/mp-video-list-view-normal.h
new file mode 100755 (executable)
index 0000000..567668c
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2020 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 _VIDEO_LIST_VIEW_NORMAL_
+#define  _VIDEO_LIST_VIEW_NORMAL_
+
+#include "mp-video-list-view-common.h"
+#include "mp-video-type-define.h"
+
+
+bool mp_normal_view_arrange_list_item(void *pMainViewHandle,
+                                                                         void *pMainViewWidget,
+                                                                         MpListUpdateType eUpdateType,
+                                                                         UpdateListItemsCbFunc
+                                                                         pUpdateVideoListUserCb);
+int mp_normal_view_get_selected_video_item_index(void);
+void mp_normal_view_update_video_items(int nVideoItemIndex);
+
+void mp_normal_view_change_language(void);
+void mp_normal_view_update_video_list(void);
+void mp_normal_view_destroy(void);
+
+
+
+#endif
diff --git a/include/view/mp-video-list-view-select.h b/include/view/mp-video-list-view-select.h
new file mode 100755 (executable)
index 0000000..b4e3cb8
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2020 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 _VIDEO_LIST_VIEW_SELECT_H_
+#define  _VIDEO_LIST_VIEW_SELECT_H_
+
+#include <stdbool.h>
+#include "mp-video-type-define.h"
+
+typedef enum {
+       SELECT_TYPE_UNKNOW = 0,
+       SELECT_TYPE_DETAIL,
+       SELECT_TYPE_RENAME,
+} SelectType;
+
+typedef void (*ChangeSelectViewCbFunc) (MpListUpdateType eUpdateType);
+
+void mp_select_view_push(void *pNaviFrame, void *pNaviItem,
+                                                ChangeSelectViewCbFunc pChangeViewCb,
+                                                char *pFolderUrl, SelectType eSelType,
+                                                MpVideoListTabType eTabType);
+void mp_select_view_pop(void);
+void mp_select_view_change_language(void);
+bool mp_select_view_arrange_video_list(void *pGenlist, bool bNeedSvc);
+
+#endif
diff --git a/include/view/mp-video-list-view-thumbnail.h b/include/view/mp-video-list-view-thumbnail.h
new file mode 100755 (executable)
index 0000000..8463aa3
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2020 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 _VIDEO_LIST_VIEW_THUMBNAIL_
+#define  _VIDEO_LIST_VIEW_THUMBNAIL_
+
+#include "mp-video-list-view-common.h"
+
+bool mp_thumbnail_view_arrange_list_item(void *pMainViewHandle,
+                                                                                void *pMainViewWidget,
+                                                                                MpListUpdateType eUpdateType,
+                                                                                UpdateListItemsCbFunc
+                                                                                pUpdateVideoListUserCb);
+
+int mp_thumbnail_view_get_selected_video_item_index(void);
+void mp_thumbnail_view_update_genlist_item(int nVideoItemIndex);
+void mp_thumbnail_view_update_played_item(void);
+void mp_thumbnail_view_update_video_list(void);
+int mp_thumbnail_view_thumbnail_to_genlist_index(int nVideoItemIndex);
+
+int _grid_view_zoom_in(void *data, Evas_Object * view);
+int _grid_view_zoom_out(void *data, Evas_Object * view);
+
+void mp_thumbnail_view_change_language(void);
+void mp_thumbnail_view_start_to_render(char *pVideoId);
+void mp_thumbnail_view_free_wall_handle_list(void);
+void mp_thumbnail_view_start_video_wall(bool * bSuccess);
+void mp_thumbnail_view_pause_video_wall(void);
+void mp_thumbnail_view_destroy(void);
+
+#endif
diff --git a/include/view/mp-video-search-view.h b/include/view/mp-video-search-view.h
new file mode 100755 (executable)
index 0000000..fab6552
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2020 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  _VIDEO_PLAYER_SEARCH_VIEW_
+#define  _VIDEO_PLAYER_SEARCH_VIEW_
+
+#include "mp-video-type-define.h"
+#include "mp-video-list-view-folder.h"
+
+
+typedef void (*ListViewUpdateListItemCbFunc) (void);
+typedef void (*ViewUpdateListItemCbFunc) (MpListUpdateType eUpdateType);
+
+void mp_search_view_push(void *pNaviFrame, char *pFolderPath);
+void mp_search_view_register_update_list_func(ViewUpdateListItemCbFunc
+                                                                                         pUpdateViewCb,
+                                                                                         ListViewUpdateListItemCbFunc
+                                                                                         pChangeViewCb);
+void mp_search_view_change_language(void);
+void mp_search_view_update_played_item(int nIndex);
+char *mp_search_view_search_markup_keyword(char *szOriginStr,
+                                                                                  char *szSearchWord,
+                                                                                  bool * bResult);
+void mp_search_view_update_genlist();
+bool mp_search_view_get_active_view();
+
+#endif
diff --git a/include/viewMgr/videos-view-mgr.h b/include/viewMgr/videos-view-mgr.h
new file mode 100755 (executable)
index 0000000..857c1ce
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2020 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 _VIDEOS_VIEW_MGR_
+#define _VIDEOS_VIEW_MGR_
+
+
+#include <Evas.h>
+#include <stdlib.h>
+#include <stdbool.h>
+
+#include <Elementary.h>
+
+
+#ifdef _cplusplus
+extern "C" {
+#endif
+
+
+       const Evas_Object *mp_mgr_create_main_window(const char *pStrName);
+       void mp_mgr_restart_main_window();
+       const Evas_Object *mp_mgr_get_main_window();
+       const Evas_Object *mp_mgr_get_conformant();
+       const Evas_Object *mp_mgr_get_main_layout();
+
+       Eina_Bool mp_mgr_is_landscape();
+
+       const Evas_Object *mp_mgr_get_library_naviframe();
+       const Evas_Object *mp_mgr_get_current_inner_naviframe();
+
+       const Evas_Object *mp_mgr_get_library_parent();
+
+
+#ifdef _cplusplus
+}
+#endif
+#endif                                                 // _VIDEOS_VIEW_MGR_
diff --git a/include/widget/mp-external-ug.h b/include/widget/mp-external-ug.h
new file mode 100755 (executable)
index 0000000..353fcc4
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2020 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 _MP_EXTERNAL_UG_
+#define  _MP_EXTERNAL_UG_
+
+void mp_external_service_share_panel(const char *pUrl);
+
+#endif                                                 // _MP_EXTERNAL_UG_
diff --git a/include/widget/mp-footer-toolbar.h b/include/widget/mp-footer-toolbar.h
new file mode 100755 (executable)
index 0000000..c70560c
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2020 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 _VIDEO_FOOTER_TOOLBAR_
+#define _VIDEO_FOOTER_TOOLBAR_
+
+
+typedef enum {
+       FOOTER_TAB_TYPE_PERSONAL = 0,
+       FOOTER_TAB_TYPE_DOWNLOAD,
+       FOOTER_LIST_ITEM_TYPE_MAX,
+} MpFooterLibraryMainListTabType;
+
+
+typedef struct {
+       void *DownloadCb;
+       void *SearchCb;
+       void *ShareViaCb;
+       void *DeleteCb;
+       void *ViewAsCb;
+       void *AutoPlayCb;
+       void *SortItemCb;
+       void *RenameCb;
+       void *DetailsCb;
+       void *SignInCb;
+#ifdef ENABLE_PRIVATE_MODE
+       void *AddToPersonalCB;
+       void *RemoveFromPersonalCB;
+#endif
+} st_RegisteCbFunc;
+
+
+void mp_ft_ctrl_create(void *pNaviFrameHandle, void *pNaviFrameItem,
+                                          MpFooterLibraryMainListTabType nFooterListTabType,
+                                          st_RegisteCbFunc * pRegisteCbFunc);
+void mp_ft_ctrl_destroy(void);
+void mp_ft_ctrl_hide_more_popup(void);
+void mp_ft_ctrl_create_center_button(void *pUserData,
+                                                                        void *pToolbarCenterButtonCb);
+void mp_ft_ctrl_create_center_toolbar(void *pParent,
+                                                                         void *pToolbarCenterButtonCb);
+void mp_ft_ctrl_delete_center_button(void);
+void mp_ft_ctrl_disable(void);
+void mp_ft_ctrl_delete_center_toolbar();
+void mp_ft_ctrl_rotate_update();
+bool mp_ft_ctrl_is_show(void);
+#endif
diff --git a/include/widget/mp-util-widget-ctrl.h b/include/widget/mp-util-widget-ctrl.h
new file mode 100755 (executable)
index 0000000..803ae06
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2020 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 __MP_UTIL_WIDGET_CTRL__
+#define __MP_UTIL_WIDGET_CTRL__
+
+#include <Eina.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+typedef enum {
+       VIDEOS_POPUP_NONE = 0x00,
+       VIDEOS_POPUP_114,
+       VIDEOS_POPUP_141,
+       VIDEOS_POPUP_MAX
+} euPopUpStyle;
+
+
+void mp_widget_ctrl_enable_navi_handle_focus(Evas_Object * pNaviHandle);
+void mp_widget_ctrl_disable_navi_handle_focus_except_item(Evas_Object *
+                                                                                                                 pNaviHandle,
+                                                                                                                 Elm_Object_Item *
+                                                                                                                 pCurentNaviItem);
+void mp_widget_ctrl_set_popup_min_size(Evas_Object * pBox, int nListCount,
+                                                                          euPopUpStyle eStyle);
+void mp_widget_ctrl_navi_item_layout_focus_out(Evas_Object * pFocusLayout);
+void mp_widget_ctrl_navi_item_layout_focus_in(Evas_Object * pFocusLayout);
+Evas_Object *mp_widget_ctrl_create_navi_btn(Evas_Object * pParent,
+                                                                                       const char *pIconPath,
+                                                                                       Evas_Smart_Cb pFunc,
+                                                                                       void *pUserData);
+
+Evas_Object *mp_widget_ctrl_create_navi_left_btn(Evas_Object * pParent,
+                                                                                                Elm_Object_Item *
+                                                                                                pNaviItem,
+                                                                                                const char *pIconPath,
+                                                                                                Evas_Smart_Cb pFunc,
+                                                                                                void *pUserData);
+
+Evas_Object *mp_widget_ctrl_create_navi_right_btn(Evas_Object * pParent,
+                                                                                                 Elm_Object_Item *
+                                                                                                 pNaviItem,
+                                                                                                 const char *pIconPath,
+                                                                                                 Evas_Smart_Cb pFunc,
+                                                                                                 void *pUserData);
+
+bool mp_widget_ctrl_create_select_all_layout(Evas_Object * pParent,
+                                                                                        Evas_Smart_Cb pChangeFunc,
+                                                                                        Evas_Object_Event_Cb
+                                                                                        pMouseDownFunc,
+                                                                                        void *pUserData,
+                                                                                        Evas_Object ** pCheckBox,
+                                                                                        Evas_Object ** pSelectLayout);
+
+Evas_Object *mp_widget_ctrl_create_progressbar(Evas_Object * pParent,
+                                                                                          double dRadio);
+
+#endif
diff --git a/include/widget/mp-video-list-auto-play-ctrl.h b/include/widget/mp-video-list-auto-play-ctrl.h
new file mode 100755 (executable)
index 0000000..a3e79fc
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2020 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 _MP_VIDEO_LIST_AUTO_PLAY_CTRL_
+#define _MP_VIDEO_LIST_AUTO_PLAY_CTRL_
+
+
+typedef enum {
+       MP_LIST_AUTO_PLAY_NONE = 0,
+       MP_LIST_AUTO_PLAY_ON,
+       MP_LIST_AUTO_PLAY_OFF,
+       MP_LIST_AUTO_PLAY_MAX,
+} MpListAutoPlaySelect;
+
+
+typedef void (*ListViewAsCtrlCbFunc) (void);
+
+
+bool mp_auto_play_ctrl_show();
+void mp_auto_play_ctrl_hide(void);
+void mp_auto_play_ctrl_change_language(void);
+int mp_auto_play_ctrl_get_type(void);
+
+
+#endif                                                 // _MP_VIDEO_LIST_AUTO_PLAY_CTRL_
diff --git a/include/widget/mp-video-list-option-ctrl.h b/include/widget/mp-video-list-option-ctrl.h
new file mode 100755 (executable)
index 0000000..02dcc1f
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2020 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 _MP_VIDEO_LIST_OPTION_CTRL_
+#define _MP_VIDEO_LIST_OPTION_CTRL_
+
+
+typedef enum {
+       MP_LIST_OPTION_NONE = 0,
+       MP_LIST_OPTION_SHARE_VIA_ITEM,
+       MP_LIST_OPTION_ADD_HOME_ITEM,
+       MP_LIST_OPTION_RENAME_ITEM,
+       MP_LIST_OPTION_DETAILS_ITEM,
+       MP_LIST_OPTION_DELETE_ITEM,
+       MP_LIST_OPTION_DOWNLOAD_ITEM,
+       MP_LIST_OPTION_MAX,
+} MpListOptionType;
+
+typedef enum {
+       MP_LIST_OPTION_DOWNLOAD_NONE = 0,
+       MP_LIST_OPTION_CLOUD_DOWNLOAD_ITEM,
+       MP_LIST_OPTION_ASF_DOWNLOAD_ITEM,
+       MP_LIST_OPTION_DOWNLOAD_OPTION_MAX,
+} MpDownloadType;
+
+
+typedef struct {
+       void *ShareViaItemCb;
+       void *AddToHomeItemCb;
+       void *DeleteItemCb;
+       void *DownloadCb;                       //CLOUD, ALLSHARE
+} st_RegisteOptionCbFunc;
+
+typedef void (*MpListOptionCbFunc) (void *pUserData);
+
+bool mp_option_ctrl_show(void *pNaviHandle, const char *title,
+                                                int nVideoIndex,
+                                                st_RegisteOptionCbFunc * pCallbackFunc,
+                                                MpListOptionCbFunc pCloseFun, void *userData,
+                                                MpDownloadType euType);
+void mp_option_ctrl_change_language(void);
+void mp_option_ctrl_delete_handle(void);
+void *mp_option_ctrl_get_handle(void);
+
+
+#endif                                                 // _MP_VIDEO_LIST_OPTION_CTRL_
diff --git a/include/widget/mp-video-list-sort-ctrl.h b/include/widget/mp-video-list-sort-ctrl.h
new file mode 100755 (executable)
index 0000000..4f59555
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2020 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 _MP_VIDEO_LIST_SORT_CTRL_
+#define _MP_VIDEO_LIST_SORT_CTRL_
+
+
+typedef enum {
+       MP_LIST_SORT_BY_NONE = 0,
+       MP_LIST_SORT_BY_RECENTLY_ADDED = 2,
+       MP_LIST_SORT_BY_NAME = 3,
+       MP_LIST_SORT_BY_MAX,
+} MpListSortType;
+
+
+typedef void (*ListSortCtrlCbFunc) (void);
+
+
+bool mp_sort_ctrl_show(ListSortCtrlCbFunc pListSortCtrlCb);
+void mp_sort_ctrl_hide(void);
+void mp_sort_ctrl_change_language(void);
+int mp_sort_ctrl_get_sort_state(void);
+
+
+#endif                                                 // _MP_VIDEO_LIST_SORT_CTRL_
diff --git a/include/widget/mp-video-list-view-as-ctrl.h b/include/widget/mp-video-list-view-as-ctrl.h
new file mode 100755 (executable)
index 0000000..31cbe2f
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2020 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 _MP_VIDEO_LIST_VIEW_AS_CTRL_
+#define _MP_VIDEO_LIST_VIEW_AS_CTRL_
+
+
+typedef enum {
+       MP_LIST_VIEW_AS_NONE = 0,
+#ifdef VS_FEATURE_LIST_VIEW
+       MP_LIST_VIEW_AS_NORMAL_LIST,
+#endif
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+       MP_LIST_VIEW_AS_THUMBNAIL_LIST,
+#endif
+       MP_LIST_VIEW_AS_FOLDER_LIST,
+       MP_LIST_VIEW_AS_MAX,
+} MpListViewAsType;
+
+
+typedef void (*ListViewAsCtrlCbFunc) (void);
+
+
+bool mp_view_as_ctrl_show(int tabType,
+                                                 ListViewAsCtrlCbFunc pListViewAsCtrlCb);
+void mp_view_as_ctrl_hide(void);
+void mp_view_as_ctrl_change_language(void);
+int mp_view_as_ctrl_get_type(void);
+
+
+#endif                                                 // _MP_VIDEO_LIST_VIEW_AS_CTRL_
diff --git a/include/widget/mp-video-nocontent-layout.h b/include/widget/mp-video-nocontent-layout.h
new file mode 100755 (executable)
index 0000000..3e18a62
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2020 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 <Evas.h>
+
+
+#ifndef _MP_VIDEO_NOCONTENT_LAYOUT_
+#define _MP_VIDEO_NOCONTENT_LAYOUT_
+
+
+#ifdef _cplusplus
+extern "C" {
+#endif
+
+
+       Evas_Object *mp_create_nocontent_layout(const Evas_Object * pParent,
+                                                                                       const char *pText,
+                                                                                       const char *pHelpText);
+
+
+#ifdef _cplusplus
+}
+#endif
+#endif                                                 // _MP_VIDEO_NOCONTENT_LAYOUT_
diff --git a/include/widget/mp-video-rename-ctrl.h b/include/widget/mp-video-rename-ctrl.h
new file mode 100755 (executable)
index 0000000..8795b19
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2020 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 __MP_VIDEO_RENAME_CTRL__
+#define __MP_VIDEO_RENAME_CTRL__
+
+typedef void (*mpRenameCtrlCbFunc) (void);
+
+Evas_Object *mp_rename_ctrl_show(void *pNaviFrameHandlet, void *pUserData,
+                                                                mpRenameCtrlCbFunc pRenameCtrlCb,
+                                                                int nVideoItemIndex);
+void mp_rename_ctrl_delete_handle(void);
+void mp_rename_ctrl_focus_out_cb(void);
+bool mp_rename_ctrl_is_top_view();
+void mp_rename_ctrl_set_focus();
+#endif                                                 // __MP_VIDEO_RENAME_CTRL__
diff --git a/include/widget/mp-video-view-popup-ctrl.h b/include/widget/mp-video-view-popup-ctrl.h
new file mode 100755 (executable)
index 0000000..e82377f
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2020 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 _MP_VIDEO_LIST_VIEW_CTRL_
+#define _MP_VIDEO_LIST_VIEW_CTRL_
+
+#include "mp-video-type-define.h"
+
+
+typedef enum {
+       MP_LIST_VIEW_NONE = 0,
+       MP_LIST_VIEW_ALL,
+       MP_LIST_VIEW_PHONE,
+       MP_LIST_VIEW_CLOUD,
+       MP_LIST_VIEW_MAX,
+} MpListItemType;
+
+typedef void (*ListViewCtrlCbFunc) (MpListUpdateType eUpdateType);
+
+bool mp_view_ctrl_show(ListViewCtrlCbFunc pListViewCtrlCb);
+void mp_view_ctrl_hide(void);
+void mp_view_ctrl_change_language(void);
+int mp_view_ctrl_get_list_type(void);
+
+#endif                                                 // _MP_VIDEO_LIST_VIEW_CTRL_
diff --git a/org.tizen.video-player.manifest b/org.tizen.video-player.manifest
new file mode 100755 (executable)
index 0000000..974b9c6
--- /dev/null
@@ -0,0 +1,5 @@
+<manifest>
+        <request>
+                <domain name="_" />
+       </request>
+</manifest>
diff --git a/org.tizen.videos.manifest b/org.tizen.videos.manifest
new file mode 100755 (executable)
index 0000000..97e8c31
--- /dev/null
@@ -0,0 +1,5 @@
+<manifest>
+       <request>
+               <domain name="_"/>
+       </request>
+</manifest>
diff --git a/org.tizen.videos.xml b/org.tizen.videos.xml
new file mode 100755 (executable)
index 0000000..44285b4
--- /dev/null
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.videos" version="1.0.39" install-location="internal-only" api-version="3.0">
+       <label>Videos</label>
+       <author email="yoechan.song@samsung.com" href="www.samsung.com">Yochan Song</author>
+       <description>Videos Application</description>
+       <ui-application appid="org.tizen.videos" exec="/usr/apps/org.tizen.videos/bin/videos"
+                                       nodisplay="false" multiple="false" type="capp" taskmanage="true" indicatordisplay="false" hw-acceleration="on" process-pool="true"
+                                       effectimage-type="edj-default" portrait-effectimage="/usr/apps/org.tizen.videos/shared/res/video.edj">
+               <metadata key="http://developer.samsung.com/tizen/metadata/multiwindow"/>
+               <label>Video</label>
+               <icon>org.tizen.videos.png</icon>
+       <!--INDIA-->
+               <label xml:lang="en-gb">Video</label>   <!--  -->
+               <label xml:lang="hi-in">वीडियो</label>
+               <label xml:lang="bn-in">ভিডিও</label>
+               <label xml:lang="gu-in">વિડિયો</label>
+               <label xml:lang="kn-in">ವೀಡಿಯೊ</label>
+               <label xml:lang="ml-in">വീഡിയോ</label>
+               <label xml:lang="si-lk">වීඩියෝ</label>
+               <label xml:lang="ta-in">நிகழ்படம்</label>
+               <label xml:lang="te-in">వీడియో</label>
+               <label xml:lang="ur-pk">ویڈیو</label>
+       <!--SEA-->
+               <label xml:lang="en-us">Video</label>
+               <label xml:lang="en-ph">Video</label>
+               <label xml:lang="zh-cn">视频</label>
+               <label xml:lang="tl-ph">Video</label>
+               <label xml:lang="id-id">Video</label>
+               <label xml:lang="ko-kr">비디오</label>
+               <label xml:lang="ms-my">Video</label>
+               <label xml:lang="my-mm">ဗီဒီယို</label>
+               <label xml:lang="th-th">วิดีโอ</label>
+               <label xml:lang="vi-vn">Video</label>
+               <label xml:lang="lo-la">ວິດີໂອ</label>
+               <label xml:lang="km-kh">វីដេអូ</label>
+               <label xml:lang="hy-am">Վիդեո</label>
+               <label xml:lang="az-az">Video</label>
+               <label xml:lang="eu-es">Bideoa</label>
+               <label xml:lang="bg-bg">Видеоклип</label>
+               <label xml:lang="ca-es">Vídeo</label>
+               <label xml:lang="zh-cn">视频</label>
+               <label xml:lang="zh-hk">影片</label>
+               <label xml:lang="zh-tw">影片</label>
+               <label xml:lang="hr-hr">Video</label>
+               <label xml:lang="cs-cz">Video</label>
+               <label xml:lang="da-dk">Videoklip</label>
+               <label xml:lang="nl-nl">Video</label>
+               <label xml:lang="en-gb">Video</label>
+               <label xml:lang="en-us">Video</label>
+               <label xml:lang="et-ee">Video</label>
+               <label xml:lang="fi-fi">Video</label>
+               <label xml:lang="fr-fr">Vidéo</label>
+               <label xml:lang="gl-es">Vídeo</label>
+               <label xml:lang="ka-ge">ვიდეო</label>
+               <label xml:lang="de-de">Video</label>
+               <label xml:lang="el-gr">Βίντεο</label>
+               <label xml:lang="hu-hu">Videó</label>
+               <label xml:lang="is-is">Myndskeið</label>
+               <label xml:lang="ga-ie">Físeán</label>
+               <label xml:lang="it-it">Video</label>
+               <label xml:lang="ja-jp">動画</label>
+               <label xml:lang="kk-kz">Бейне</label>
+               <label xml:lang="ko-kr">동영상</label>
+               <label xml:lang="lv-lv">Video</label>
+               <label xml:lang="lt-lt">Vaizdo įrašas</label>
+               <label xml:lang="mk-mk">Видео-запис</label>
+               <label xml:lang="nb-no">Video</label>
+               <label xml:lang="pl-pl">Film</label>
+               <label xml:lang="pt-pt">Vídeo</label>
+               <label xml:lang="pt-br">Vídeo</label>
+               <label xml:lang="ro-ro">Videoclip</label>
+               <label xml:lang="ru-ru">Видео</label>
+               <label xml:lang="sr-rs">Video zapis</label>
+               <label xml:lang="sk-sk">Video</label>
+               <label xml:lang="sl-si">Video</label>
+               <label xml:lang="es-es">Vídeo</label>
+               <label xml:lang="es-us">Video</label>
+               <label xml:lang="sv-se">Videoklipp</label>
+               <label xml:lang="tr-tr">Video</label>
+               <label xml:lang="uk-ua">Відео</label>
+               <label xml:lang="uz-uz">Video</label>
+               <label xml:lang="ar-ae">فيديو</label>
+               <!-- <label xml:lang="zh-sg">画廊</label> -->
+               <label xml:lang="hi-in">वीडियो</label>
+               <label xml:lang="en-ph">Video</label>
+               <label xml:lang="fr-ca">Vidéo</label>
+       <!--Latin-->
+               <label xml:lang="pt-br">Vídeo</label>
+               <label xml:lang="es-us">Video</label>
+       </ui-application>
+
+       <privileges>
+               <privilege>http://tizen.org/privilege/mediastorage</privilege>
+               <privilege>http://tizen.org/privilege/systemsettings</privilege>
+               <privilege>http://tizen.org/privilege/externalstorage.appdata</privilege>
+               <privilege>http://tizen.org/privilege/externalstorage</privilege>
+               <privilege>http://tizen.org/privilege/telephony</privilege>
+               <privilege>http://tizen.org/privilege/wifidirect</privilege>
+               <privilege>http://tizen.org/privilege/network.get</privilege>
+               <privilege>http://tizen.org/privilege/volume.set</privilege>
+               <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+               <privilege>http://tizen.org/privilege/content.write</privilege>
+               <privilege>http://tizen.org/privilege/display</privilege>
+               <privilege>http://tizen.org/privilege/internet</privilege>
+       </privileges>
+</manifest>
diff --git a/packaging/load_pkgs.sh b/packaging/load_pkgs.sh
new file mode 100755 (executable)
index 0000000..e511ceb
--- /dev/null
@@ -0,0 +1,149 @@
+#!/bin/bash
+
+#snapshot="SLPRelease_20121204.002"
+#snapshot="SLP_20130208.002"
+
+snapshot=$1
+
+if [ $# -ne 1 ]
+then
+       echo ""
+       echo "load_pkg : Get debug package from web"
+       echo ""
+       echo "Usage load_pkg [Snapshot version]" 
+       echo ""
+       exit 1;
+fi
+
+declare -i release
+
+case $snapshot in
+       RelRedwoodCISOPEN*)
+               echo "CIS Open"
+               url="http://165.213.148.149:8008/snapshots/rel/redwood/cis-open/"
+               release=0
+               ;;
+       RelRedwoodEUROPEN*)
+               echo "Europe Open"
+               url="http://165.213.148.149:8008/snapshots/rel/redwood/eur-open/"
+               release=0
+               ;;
+       SLPRelease*)
+               echo "Release Mode"
+               url="http://165.213.148.151/snapshots/release/"
+               release=1
+               ;;
+       DailyRedwoodEUROPEN*)
+               echo "Daily Binary"
+               url="http://165.213.148.149:8008/snapshots/daily/redwood/eur-open/"
+               release=0
+               ;;
+
+       DailyRedwoodLTEEURORA*)
+               echo "Daily Binary Orange LTE"
+               url="http://165.213.148.151/snapshots/daily/redwoodlte/eur-ora/"
+               release=0
+               ;;
+
+       RelRedwoodLTEEURORA*)
+               echo "Release LTE orange Binary"
+               url="http://165.213.148.151/snapshots/rel/redwoodlte/eur-ora/"
+               release=0
+               ;;
+
+       DailyRedwoodCISOPEN*)
+               echo "Daily Redwood CIS Open"
+               url="http://165.213.148.151/snapshots/daily/redwood/cis-open/"
+               release=0
+               ;;
+
+       DailyRedwoodEURORA*)
+               echo "Daily Redwood Eur Ora"
+               url="http://165.213.148.151/snapshots/daily/redwood/eur-ora/"
+               release=0
+               ;;
+
+       SLP_*)
+               echo "Normal mode"
+               url="http://165.213.148.149:8008/snapshots/standard/"
+               release=0
+               ;;
+       *) 
+               echo "Uknown snapshot name: " $snapshot
+               exit 1;
+               ;;
+esac
+
+mkdir -p $snapshot; cd $snapshot
+
+echo "Addr=$url$snapshot/repos"
+
+pkg="eglibc app-core-efl evas ecore elementary edje eina mmfw capi-media-player capi-media-sound-manager capi-media-image-util capi-content-media-content libmm-common libmm-sound libmm-session libmm-utility libmm-fileinfo libmm-transcode libmm-player libmedia-thumbnail"
+
+url_repo=$url$snapshot"/repos"
+
+if [ -e tmp ]; then
+       rm tmp
+fi
+
+if [ -e pkg_list ]; then
+       rm pkg_list
+fi
+
+#libstd++ is in http://165.213.148.149:8008/snapshots/standard/SLP_20130208.002/repos/slp-base/armv7l/packages/armv7l/libstdc++-4.5.3-11.3.slp.armv7l.rpm  
+if [ $release -eq 1 ]
+then
+       url_base=$url_repo"/slp-base/armv7l/debug/"
+       url_release=$url_repo"/slp-release/armv7l/debug/"
+       url_package=$url_repo"/slp-base/armv7/packages/armv7l"
+
+#      echo DBG=$url_base
+#      echo DBG=$url_release
+
+       lynx -dump $url_base >> tmp
+       lynx -dump $url_release >> tmp
+
+
+       for pkgname in $pkg
+       do
+               if [ "$pkgname" == "libstdc++" ]
+               then 
+                       echo $url_package
+                       lynx -dump $url_package | grep 'http' | egrep "/libstdc\+\+-[0-9]" | awk '{print $2}' >> pkg_list
+               else
+                       grep 'http' tmp | grep "/$pkgname" | awk '{print $2}' >> pkg_list
+               fi
+       done
+
+elif [ $release -eq 0 ]
+then
+       url_base=$url_repo"/slp-release/armv7l/debug/"
+#      url_standard=$url_repo"/slp-standard/armv7l/debug/"
+#      url_package=$url_repo"/slp-base/armv7l/packages/armv7l"
+
+#      echo DBG=$url_base
+#      echo DBG=$url_standard
+       lynx -dump $url_base >> tmp
+#      lynx -dump $url_standard >> tmp
+
+       for pkgname in $pkg
+       do
+               if [ "$pkgname" == "libstdc++" ]
+               then 
+                       echo $url_package
+                       lynx -dump $url_package | grep 'http' | egrep "/libstdc\+\+-[0-9]" | awk '{print $2}' >> pkg_list
+               else
+                       grep 'http' tmp | grep "/$pkgname" | awk '{print $2}' >> pkg_list
+               fi
+       done
+fi
+
+for x in $(cat pkg_list)
+do
+       echo "Get: '${x##*/}"
+       wget -q -nd -N $x
+done
+
+rm tmp
+rm pkg_list
+
diff --git a/packaging/org.tizen.videos.spec b/packaging/org.tizen.videos.spec
new file mode 100755 (executable)
index 0000000..d941e85
--- /dev/null
@@ -0,0 +1,163 @@
+Name:       org.tizen.videos
+Summary:    video library & store
+Version:    1.0.40
+Release:    1
+Group:      Applications
+License:    Flora-1.1
+Source0:    %{name}-%{version}.tar.gz
+
+%if "%{?tizen_profile_name}" == "wearable" || "%{?tizen_profile_name}" == "tv"
+ExcludeArch: %{arm} %ix86 x86_64
+%endif
+
+BuildRequires: pkgconfig(elementary)
+BuildRequires: pkgconfig(capi-system-system-settings)
+BuildRequires: pkgconfig(libmedia-service)
+BuildRequires: pkgconfig(libxml-2.0)
+BuildRequires: pkgconfig(evas)
+BuildRequires: pkgconfig(edje)
+BuildRequires: pkgconfig(efreet)
+BuildRequires: pkgconfig(capi-appfw-application)
+BuildRequires: pkgconfig(capi-appfw-preference)
+BuildRequires: pkgconfig(capi-media-player)
+BuildRequires: pkgconfig(capi-media-image-util)
+BuildRequires: pkgconfig(capi-media-metadata-extractor)
+BuildRequires: pkgconfig(capi-content-media-content)
+BuildRequires: pkgconfig(capi-content-mime-type)
+BuildRequires: pkgconfig(capi-system-media-key)
+BuildRequires: pkgconfig(capi-web-url-download)
+BuildRequires: pkgconfig(capi-system-sensor)
+BuildRequires: pkgconfig(shortcut)
+BuildRequires: pkgconfig(notification)
+BuildRequires: pkgconfig(accounts-svc)
+BuildRequires: pkgconfig(capi-network-connection)
+BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(capi-system-runtime-info)
+BuildRequires: pkgconfig(capi-network-wifi-direct)
+BuildRequires: pkgconfig(capi-network-wifi-manager)
+BuildRequires: boost-devel
+BuildRequires: boost-thread
+BuildRequires: boost-system
+BuildRequires: boost-filesystem
+BuildRequires: pkgconfig(appcore-efl)
+BuildRequires: pkgconfig(minicontrol-provider)
+BuildRequires: pkgconfig(capi-appfw-app-manager)
+BuildRequires: pkgconfig(storage)
+BuildRequires: pkgconfig(appsvc)
+BuildRequires: pkgconfig(libcore-context-manager)
+BuildRequires: pkgconfig(capi-system-device)
+BuildRequires: pkgconfig(capi-network-bluetooth)
+BuildRequires: pkgconfig(capi-base-utils-i18n)
+BuildRequires: pkgconfig(capi-ui-efl-util)
+
+BuildRequires: cmake
+BuildRequires: gettext-tools
+BuildRequires: edje-tools
+BuildRequires: libicu-devel
+#BuildRequires: hash-signer
+
+BuildRequires: pkgconfig(tapi)
+BuildRequires: pkgconfig(efl-extension)
+BuildRequires: pkgconfig(capi-telephony)
+BuildRequires: pkgconfig(libtzplatform-config)
+
+%description
+video library
+
+
+Description: chapter video manange app for video-player.
+
+%package -n org.tizen.video-player
+Summary:    video file video-player.
+Group:      Applications
+License:    Flora-1.1
+
+%description -n org.tizen.video-player
+
+Description: video file video-player.
+
+%prep
+%setup -q
+
+%ifarch %{arm}
+%define ARCH arm
+%else
+%define ARCH i586
+%endif
+
+%build
+%if 0%{?tizen_build_devel_mode}
+export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE"
+export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE"
+export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE"
+%endif
+
+CFLAGS+=" -fvisibility=hidden"; export CFLAGS
+CXXFLAGS+=" -fvisibility=hidden"; export CXXFLAGS
+FFLAGS+=" -fvisibility=hidden"; export FFLAGS
+
+cmake . -DCMAKE_INSTALL_PREFIX="%{TZ_SYS_RO_APP}/org.tizen.videos" \
+       -DCMAKE_INSTALL_VP_PREFIX="%{TZ_SYS_RO_APP}/org.tizen.video-player" \
+       -DCMAKE_DESKTOP_ICON_DIR="%{TZ_SYS_RO_ICONS}/default/small" \
+       -DCMAKE_APP_SHARE_PACKAGES_DIR="%{TZ_SYS_RO_PACKAGES}" \
+       -DARCH=%{ARCH} \
+       -DTZ_SYS_RO_APP=%{TZ_SYS_RO_APP}
+
+%if 0%{?sec_build_binary_debug_enable}
+export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
+export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
+export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
+%endif
+
+make %{?jobs:-j%jobs}
+
+%install
+rm -rf %{buildroot}
+
+%make_install
+#execstack -c %{buildroot}%{TZ_SYS_RO_APP}/org.tizen.videos/bin/videos
+%define tizen_sign 1
+%define tizen_sign_base %{TZ_SYS_RO_APP}/org.tizen.videos;
+%define tizen_sign_base %{TZ_SYS_RO_APP}/org.tizen.video-player;
+%define tizen_sign_level platform
+%define tizen_author_sign 1
+%define tizen_dist_sign 1
+
+%post
+#/usr/bin/signing-client/hash-signer-client.sh -a -d -p platform %{TZ_SYS_RO_APP}/org.tizen.videos
+
+%postun
+
+%post -n org.tizen.video-player
+/sbin/ldconfig
+
+#/usr/bin/signing-client/hash-signer-client.sh -a -d -p platform /usr/apps/org.tizen.video-player
+
+%files -n org.tizen.videos
+%manifest org.tizen.videos.manifest
+%defattr(-,root,root,-)
+%{TZ_SYS_RO_APP}/org.tizen.videos/bin/*
+%{TZ_SYS_RO_APP}/org.tizen.videos/res/locale/*
+%{TZ_SYS_RW_ICONS}/default/small/org.tizen.videos.png
+%{TZ_SYS_RO_APP}/org.tizen.videos/res/edje/*
+%{TZ_SYS_RO_PACKAGES}/org.tizen.videos.xml
+%{TZ_SYS_RO_APP}/org.tizen.videos/shared/res/video.edc
+%{TZ_SYS_RO_APP}/org.tizen.videos/res/images/core_theme_bg_01.png
+
+#%{TZ_SYS_RO_APP}/org.tizen.videos/res/script/*
+#%{TZ_SYS_RO_APP}/org.tizen.videos/libexec/*
+
+#%{TZ_SYS_RO_APP}/org.tizen.videos/author-signature.xml
+#%{TZ_SYS_RO_APP}/org.tizen.videos/signature1.xml
+
+%files -n org.tizen.video-player
+%manifest org.tizen.video-player.manifest
+%defattr(-,root,root,-)
+%{TZ_SYS_RO_APP}/org.tizen.video-player/bin/*
+%{TZ_SYS_RO_APP}/org.tizen.video-player/res/locale/*
+%{TZ_SYS_RO_APP}/org.tizen.video-player/res/edje/*
+%{TZ_SYS_RW_ICONS}/default/small/org.tizen.video-player.png
+%{TZ_SYS_RO_PACKAGES}/org.tizen.video-player.xml
+#%{TZ_SYS_RO_APP}/org.tizen.video-player/author-signature.xml
+#%{TZ_SYS_RO_APP}/usr/apps/org.tizen.video-player/signature1.xml
+%license LICENSE
diff --git a/playview/CMakeLists.txt b/playview/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..cd98c89
--- /dev/null
@@ -0,0 +1,242 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(playview C)
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(VERSION 0.1.0)
+
+SET(SRCS
+#################################################
+#play view src
+#################################################
+       src/vp-play-view.c
+       src/common/vp-play-util.c
+       src/common/vp-play-config.c
+       src/common/vp-play-preference.c
+       src/common/vp-play-ug.c
+       #src/view/vp-play-multi-view.c
+       src/view/vp-play-normal-view.c
+       src/widget/vp-play-bookmark.c
+       src/widget/vp-play-button.c
+       src/widget/vp-play-more.c
+       src/widget/vp-play-popup.c
+       src/widget/vp-play-subtitle.c
+       src/widget/vp-play-volume.c
+       src/widget/vp-play-progressbar.c
+       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
+       src/core/vp-image-util.c
+       src/core/vp-device.c
+       src/core/vp-media-key.c
+       src/core/vp-sensor.c
+       src/core/vp-multi-path.c
+       src/core/vp-hollic.c
+       src/core/vp-device-language.c
+       src/core/vp-avrcp.c
+       src/feature/vp-share.c
+       src/feature/vp-sound-alive.c
+       src/feature/vp-sound-path.c
+       src/feature/vp-repeat.c
+       src/feature/vp-setting.c
+       src/feature/vp-audio-track.c
+       src/feature/vp-subtitle.c
+       src/feature/vp-subtitle-sync.c
+       src/feature/vp-subtitle-select.c
+       src/feature/vp-subtitle-track.c
+       src/feature/vp-subtitle-font.c
+       src/feature/vp-subtitle-size.c
+       src/feature/vp-subtitle-color.c
+       src/feature/vp-subtitle-alignment.c
+       src/feature/vp-subtitle-bg-color.c
+       src/feature/vp-subtitle-edge.c
+       src/feature/vp-detail.c
+       src/feature/vp-capture.c
+       src/feature/vp-play-speed.c
+       src/feature/vp-zoom-guide.c
+)
+
+INCLUDE_DIRECTORIES(
+       ${CMAKE_SOURCE_DIR}/video-downloader/include
+       ${CMAKE_SOURCE_DIR}/common/include
+       ${CMAKE_SOURCE_DIR}/feature/include
+       ${CMAKE_SOURCE_DIR}/core/include
+
+#################################################
+#play view include
+#################################################
+       ${CMAKE_CURRENT_SOURCE_DIR}/include
+       ${CMAKE_CURRENT_SOURCE_DIR}/src/include
+       ${CMAKE_CURRENT_SOURCE_DIR}/src/common/include
+       ${CMAKE_CURRENT_SOURCE_DIR}/src/view/include
+       ${CMAKE_CURRENT_SOURCE_DIR}/src/widget/include
+       ${CMAKE_CURRENT_SOURCE_DIR}/src/core/include
+       ${CMAKE_CURRENT_SOURCE_DIR}/src/feature/include
+)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(${PROJECT_NAME}_pkgs REQUIRED
+       elementary
+       #ecore-x
+       evas
+       edje
+       capi-appfw-application
+       capi-system-system-settings
+       glib-2.0
+       libxml-2.0
+       appcore-efl
+       capi-appfw-application
+       capi-appfw-preference
+       capi-media-player
+       capi-media-image-util
+       capi-network-wifi-manager
+       capi-network-wifi-direct
+       capi-system-media-key
+       capi-content-media-content
+       capi-system-sensor
+       capi-system-runtime-info
+       capi-web-url-download
+       shortcut
+       notification
+       capi-content-mime-type
+       capi-network-connection
+       fontconfig
+       minicontrol-provider
+       capi-appfw-app-manager
+       storage
+       accounts-svc
+       tapi
+       libcore-context-manager
+       capi-system-device
+       capi-network-bluetooth
+       capi-ui-efl-util
+       capi-base-utils-i18n
+       efl-extension
+       capi-telephony
+       capi-media-metadata-extractor
+)
+
+FOREACH(flag ${${PROJECT_NAME}_pkgs_CFLAGS})
+       SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS} -Wall")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_CXX_FLAGS}")
+
+FIND_PROGRAM(UNAME NAMES uname)
+EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
+IF("${ARCH}" STREQUAL "arm")
+       ADD_DEFINITIONS("-DTARGET")
+       MESSAGE("add -DTARGET")
+ENDIF("${ARCH}" STREQUAL "arm")
+
+ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
+
+IF(ENABLE_HW_BACK_KEY)
+ADD_DEFINITIONS("-D_ENABLE_HW_BACK_KEY")
+ENDIF(ENABLE_HW_BACK_KEY)
+
+ADD_DEFINITIONS("-DUSE_I_FRAMESEKK")
+
+# K feature
+#ADD_DEFINITIONS("-DK_FEATURE_MICROSEEK")
+ADD_DEFINITIONS("-DSUBTITLE_K_FEATURE")
+
+# support multi-language of subtitle
+ADD_DEFINITIONS("-D_SUBTITLE_MULTI_LANGUAGE")
+
+# apply new feature for trim view
+ADD_DEFINITIONS("-D_TRIME_VIEW_NEW_FEATURE")
+
+# apply native buffer sync
+#ADD_DEFINITIONS("-D_NATIVE_BUFFER_SYNC")
+
+# apply native buffer sync
+#ADD_DEFINITIONS("-DFLICK_JUMP")
+
+ADD_LIBRARY(${PROJECT_NAME} STATIC ${SRCS})
+
+SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION} )
+SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${${PROJECT_NAME}_pkgs_LDFLAGS} common core video-downloader -ldl)
+
+SET(VIDEO_PLAYER_PACKAGE "org.tizen.video-player")
+SET(VIDEO_PLAYER_EDJ_DIR "/usr/apps/${VIDEO_PLAYER_PACKAGE}/res/edje")
+SET(VIDEO_SHARED_DATA_DIR "/opt/usr/apps/${VIDEO_PLAYER_PACKAGE}/shared/data")
+
+INSTALL(DIRECTORY DESTINATION ${VIDEO_PLAYER_EDJ_DIR})
+INSTALL(DIRECTORY DESTINATION ${VIDEO_SHARED_DATA_DIR})
+
+# EDJE
+FUNCTION (BUILD_EDJ _in _out _base _dir)
+       ADD_CUSTOM_TARGET(${_out}
+               COMMAND
+                       edje_cc -no-save -id ${_base}/${_dir}
+                       ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_in}
+                       ${CMAKE_BINARY_DIR}/${_out}
+               DEPENDS
+                       ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_in}
+       )
+       ADD_DEPENDENCIES(${PROJECT_NAME} ${_out})
+       INSTALL(FILES ${CMAKE_BINARY_DIR}/${_out} DESTINATION ${VIDEO_PLAYER_EDJ_DIR})
+ENDFUNCTION (BUILD_EDJ)
+
+FUNCTION (BUILD_CUSTOM_EDJ _in _out _base _id _sd)
+       ADD_CUSTOM_TARGET(${_out}
+               COMMAND
+                       edje_cc -no-save -id ${_base}/${_id} -sd ${_base}/${_sd}
+                       ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_in}
+                       ${CMAKE_BINARY_DIR}/${_out}
+               DEPENDS
+                       ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_in}
+       )
+       ADD_DEPENDENCIES(${PROJECT_NAME} ${_out})
+       INSTALL(FILES ${CMAKE_BINARY_DIR}/${_out} DESTINATION ${VIDEO_PLAYER_EDJ_DIR})
+ENDFUNCTION (BUILD_CUSTOM_EDJ)
+
+BUILD_EDJ(pv-normal-main.edc                   pv-normal-main.edj                      res/edje/       images)
+BUILD_EDJ(pv-normal-control.edc                        pv-normal-control.edj           res/edje/       images)
+BUILD_EDJ(pv-normal-top-control.edc            pv-normal-top-control.edj       res/edje/       images)
+BUILD_EDJ(pv-normal-function.edc               pv-normal-function.edj          res/edje/       images)
+BUILD_EDJ(pv-multi-main.edc                            pv-multi-main.edj                       res/edje/       images)
+BUILD_EDJ(pv-trim-main.edc                             pv-trim-main.edj                        res/edje/       images)
+BUILD_EDJ(pv-trim-control.edc                  pv-trim-control.edj                     res/edje/       images)
+BUILD_EDJ(pv-trim-top-control.edc              pv-trim-top-control.edj         res/edje/       images)
+BUILD_EDJ(pv-trim-item.edc                             pv-trim-item.edj                        res/edje/       images)
+BUILD_EDJ(pv-chapter-main-new.edc              pv-chapter-main-new.edj         res/edje/       images)
+BUILD_EDJ(pv-progressbar.edc                   pv-progressbar.edj                      res/edje/       images)
+BUILD_EDJ(pv-volume.edc                                        pv-volume.edj                           res/edje/       images)
+BUILD_EDJ(pv-volume-popup.edc                  pv-volume-popup.edj                     res/edje/       images)
+BUILD_EDJ(pv-brightness-popup.edc              pv-brightness-popup.edj         res/edje/       images)
+BUILD_EDJ(pv-bookmark.edc                              pv-bookmark.edj                         res/edje/       images)
+BUILD_EDJ(pv-bookmark-item.edc                 pv-bookmark-item.edj            res/edje/       images)
+BUILD_EDJ(pv-resource.edc                              pv-resource.edj                         res/edje/       images)
+BUILD_EDJ(pv-subtitle.edc                              pv-subtitle.edj                         res/edje/       images)
+BUILD_EDJ(pv-popup.edc                                 pv-popup.edj                            res/edje/       images)
+BUILD_EDJ(pv-sensor-popup.edc                  pv-sensor-popup.edj                     res/edje/       images)
+BUILD_EDJ(pv-speed-popup.edc                   pv-speed-popup.edj                      res/edje/       images)
+BUILD_EDJ(pv-zoom-guide.edc                            pv-zoom-guide.edj                       res/edje/       images)
+BUILD_EDJ(pv-gesture.edc                               pv-gesture.edj                          res/edje/       images)
+BUILD_EDJ(pv-subtitle-color-popup.edc          pv-subtitle-color-popup.edj            res/edje/        images)
+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)
+
+
+#install resouce files.
+# Lack of a trailing slash means install this directory, trailing slash means
+# install everything in this directory.
+
+# Install image files.
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib)
+
+
+
diff --git a/playview/include/vp-play-log.h b/playview/include/vp-play-log.h
new file mode 100755 (executable)
index 0000000..5e97ac6
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2020 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 _VIDEO_LOG_H_
+#define _VIDEO_LOG_H_
+
+#include <dlog.h>
+#include <unistd.h>
+#include <linux/unistd.h>
+#include <stdbool.h>
+
+#ifdef LOG_TAG
+#undef LOG_TAG
+#endif
+
+
+#define LOG_TAG "VIDEO_PLAYER"
+
+#define VideoLogInfoWithTid(fmt, arg...)                       dlog_print(DLOG_DEBUG, LOG_TAG, "[%s : %05d %lu]" fmt "\n", __func__, __LINE__, syscall(__NR_gettid), ##arg)
+#define VideoLogInfo(fmt, arg...)                              dlog_print(DLOG_DEBUG, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define VideoLogDebug(fmt, arg...)                             dlog_print(DLOG_INFO, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define VideoLogWarning(fmt, arg...)                           dlog_print(DLOG_INFO, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define VideoLogError(fmt, arg...)                             dlog_print(DLOG_ERROR, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+
+#define VideoLogPerfS(fmt, arg...)                             dlog_print(DLOG_INFO, LOG_TAG, "\033[0;31m [PERF] ---> Start " fmt "\033[0m\n", ##arg)
+#define VideoLogPerfE(fmt, arg...)                             dlog_print(DLOG_INFO, LOG_TAG, "\033[0;31m [PERF] End <--- " fmt "\033[0m\n",  ##arg)
+
+
+#define VideoSecureLogInfoWithTid(fmt, arg...) dlog_print(DLOG_INFO, LOG_TAG, "[%s : %05d %lu]" fmt "\n", __func__, __LINE__, syscall(__NR_gettid), ##arg)
+#define VideoSecureLogDebug(fmt, arg...)                       dlog_print(DLOG_DEBUG, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define VideoSecureLogInfo(fmt, arg...)                        dlog_print(DLOG_INFO, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+#define VideoSecureLogError(fmt, arg...)               dlog_print(DLOG_ERROR, LOG_TAG, "[%s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
+
+#endif /*_MPVIDEO_LOG_H_*/
diff --git a/playview/include/vp-play-type-define.h b/playview/include/vp-play-type-define.h
new file mode 100755 (executable)
index 0000000..c94491f
--- /dev/null
@@ -0,0 +1,189 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#pragma once
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+typedef enum {
+       VIDEO_PLAY_ROTATE_NONE = 0x00,
+       VIDEO_PLAY_ROTATE_90,
+       VIDEO_PLAY_ROTATE_180,
+       VIDEO_PLAY_ROTATE_270
+} video_play_rotate_t;
+
+
+typedef enum {
+       VIDEO_PLAY_MODE_NORMAL_VIEW = 0x00,
+} video_play_mode_t;
+
+
+typedef enum {
+       VIDEO_PLAY_TYPE_OTHER = 0x00,
+       VIDEO_PLAY_TYPE_STORE,          //Currently, Don't support this type. if support this type, we need to  sync code
+       VIDEO_PLAY_TYPE_LIST,
+       VIDEO_PLAY_TYPE_GALLERY,
+       VIDEO_PLAY_TYPE_MYFILE,
+       VIDEO_PLAY_TYPE_MESSAGE,
+       VIDEO_PLAY_TYPE_EMAIL,
+       VIDEO_PLAY_TYPE_WEB,
+       VIDEO_PLAY_TYPE_MULTI_PATH,
+       VIDEO_PLAY_TYPE_PREVIEW
+} video_play_launching_type_t;
+
+
+typedef enum {
+       VIDEO_PLAY_LIST_TYPE_ALL = 0x00,
+       VIDEO_PLAY_LIST_TYPE_FOLDER,
+} video_play_list_type_t;
+
+
+typedef enum {
+       VIDEO_PLAY_CB_TYPE_REALIZE = 0x00,
+       VIDEO_PLAY_CB_TYPE_DESTORY,
+       VIDEO_PLAY_CB_TYPE_EVENT_KEY_DOWN,
+       VIDEO_PLAY_CB_TYPE_EVENT_KEY_UP
+} video_play_callback_type_t;
+
+typedef enum {
+       VIDEO_PLAY_POPUP_SOUND_ALIVE = 0x00,
+       VIDEO_PLAY_POPUP_SUBTITLE_MAIN,
+       VIDEO_PLAY_POPUP_SUBTITLE_LANGUAGE,
+       VIDEO_PLAY_POPUP_SUBTITLE_SIZE,
+       VIDEO_PLAY_POPUP_SUBTITLE_SYNC,
+       VIDEO_PLAY_POPUP_REPEAT_MODE,
+       VIDEO_PLAY_POPUP_AUDIO_TRACK
+} video_play_popup_mode_t;
+
+typedef enum {
+       VIDEO_SHARE_FILE_TRANSFER = 0x00,
+       VIDEO_SHARE_MESSAGE,
+       VIDEO_SHARE_EMAIL,
+       VIDEO_SHARE_NFC,
+       VIDEO_SHARE_WIFI_DIRECT,
+       VIDEO_SHARE_BLUETOOTH,
+       VIDEO_SHARE_FACEBOOK,
+       VIDEO_SHARE_YOUTUBE
+} video_share_mode_t;
+
+typedef enum {
+       VIDEO_SA_NONE = 0x00,
+       VIDEO_SA_NORMAL,
+       VIDEO_SA_VOICE,
+       VIDEO_SA_MOVIE,
+       VIDEO_SA_7_1_CH
+} video_sound_alive_t;
+
+typedef enum {
+       VIDEO_SOUND_PATH_NONE = 0x00,
+       VIDEO_SOUND_PATH_SPEAKER,
+       VIDEO_SOUND_PATH_EARJACK,
+       VIDEO_SOUND_PATH_BLUETOOTH,
+       VIDEO_SOUND_PATH_HDMI,
+       VIDEO_SOUND_PATH_MIRRORING,
+       VIDEO_SOUND_PATH_USB_AUDIO,
+       VIDEO_SOUND_PATH_MAX,
+} video_sound_path_t;
+
+
+typedef enum {
+       VIDEO_PLAY_REPEAT_NONE = 0x00,
+       VIDEO_PLAY_REPEAT_OFF,
+       VIDEO_PLAY_REPEAT_ALL_STOP,
+       VIDEO_PLAY_REPEAT_ONE,
+       VIDEO_PLAY_REPEAT_ALL,
+       VIDEO_PLAY_REPEAT_FOLDER
+} video_play_repeat_mode_t;
+
+typedef enum {
+       VIDEO_PLAY_COLOR_TONE_NORMAL = 0x00,
+       VIDEO_PLAY_COLOR_TONE_WARM,
+       VIDEO_PLAY_COLOR_TONE_COLD,
+} video_play_color_tone_t;
+
+typedef enum {
+       VIDEO_SORT_BY_NONE = 0,
+       VIDEO_SORT_BY_NAME_A_Z,
+       VIDEO_SORT_BY_NAME_Z_A,
+       VIDEO_SORT_BY_DATE_MOST_RECENT,
+       VIDEO_SORT_BY_OLDEST,
+       VIDEO_SORT_BY_MAX,
+} video_play_sort_type_t;
+
+typedef enum {
+       VIDEO_EDIT_WEATHER_TAG_NONE = -1,
+       VIDEO_EDIT_WEATHER_TAG_NO,
+       VIDEO_EDIT_WEATHER_TAG_SUNNY_DAY,
+       VIDEO_EDIT_WEATHER_TAG_CLOUDY_DAY,
+       VIDEO_EDIT_WEATHER_TAG_RAINY_DAY,
+       VIDEO_EDIT_WEATHER_TAG_SNOWY_DAY,
+       VIDEO_EDIT_WEATHER_TAG_CLEAR_DAY,
+} video_play_edit_weather_tag_t;
+
+typedef enum {
+       VIDEO_DISPLAY_LETTER_BOX = 0x00,
+       VIDEO_DISPLAY_ORIGIN,
+       VIDEO_DISPLAY_FULL,
+       VIDEO_DISPLAY_CROPPED_FULL
+} video_play_display_mode_t;
+
+typedef enum {
+       VIDEO_SUBTITLE_SIZE_SMALL = 0x00,
+       VIDEO_SUBTITLE_SIZE_MEDIUM,
+       VIDEO_SUBTITLE_SIZE_LARGE,
+} video_play_subtitle_size_t;
+
+typedef enum {
+       VIDEO_SUBTITLE_EDGE_NONE = 0x00,
+       VIDEO_SUBTITLE_EDGE_RAISED,
+       VIDEO_SUBTITLE_EDGE_DEPRESSED,
+       VIDEO_SUBTITLE_EDGE_UNIFORM,
+       VIDEO_SUBTITLE_EDGE_DROP_SHADOW,
+} video_play_subtitle_edge_t;
+
+typedef enum {
+       VIDEO_SUBTITLE_FONT_DEFAULT = 0x00,
+       VIDEO_SUBTITLE_FONT_SAMSUNG_SANS,
+       VIDEO_SUBTITLE_FONT_GEORGIA,
+       VIDEO_SUBTITLE_FONT_CHOCO_COOKY,
+       VIDEO_SUBTITLE_FONT_ROSEMARY,
+       VIDEO_SUBTITLE_FONT_COOL_JAZZ,
+} video_play_subtitle_font_t;
+
+typedef enum {
+       VIDEO_SUBTITLE_COLOR_WHITE = 0x00,
+       VIDEO_SUBTITLE_COLOR_BLACK,
+       VIDEO_SUBTITLE_COLOR_RED,
+       VIDEO_SUBTITLE_COLOR_GREEN,
+       VIDEO_SUBTITLE_COLOR_BLUE,
+       VIDEO_SUBTITLE_COLOR_YELLOW,
+       VIDEO_SUBTITLE_COLOR_MAGENTA,
+       VIDEO_SUBTITLE_COLOR_CYAN,
+       VIDEO_SUBTITLE_COLOR_CUSTOM,
+       VIDEO_SUBTITLE_COLOR_NONE
+} video_play_subtitle_color_t;
+
+typedef enum {
+       VIDEO_SUBTITLE_ALIGNMENT_LEFT = 0x00,
+       VIDEO_SUBTITLE_ALIGNMENT_CENTER,
+       VIDEO_SUBTITLE_ALIGNMENT_RIGHT
+} video_play_subtitle_alignment_t;
diff --git a/playview/include/vp-play-view.h b/playview/include/vp-play-view.h
new file mode 100755 (executable)
index 0000000..2aaa9e3
--- /dev/null
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include "vp-play-type-define.h"
+
+typedef void *play_view_handle;
+
+typedef void (*vp_play_view_realize_cb) (void *pUserData);
+typedef void (*vp_play_view_destroy_cb) (void *pUserData);
+typedef Eina_Bool(*vp_play_view_event_key_down_cb) (void *pUserData,
+                                                                                                       int nType,
+                                                                                                       void *pEvent);
+typedef Eina_Bool(*vp_play_view_event_key_up_cb) (void *pUserData,
+                                                                                                 int nType, void *pEvent);
+
+
+play_view_handle vp_play_view_create(Evas_Object * pParent,
+                                                                        Ecore_X_Window nParentXID,
+                                                                        video_play_mode_t nMode,
+                                                                        video_play_launching_type_t
+                                                                        nLaunchingType);
+void vp_play_view_destroy(play_view_handle pViewHandle);
+#ifdef _PERF_TEST_
+void vp_play_view_reset(play_view_handle pViewHandle, int nMode);
+#endif
+bool vp_play_view_realize(play_view_handle pViewHandle);
+bool vp_play_view_live_stream_realize(play_view_handle pViewHandle);
+bool vp_play_view_unrealize(play_view_handle pViewHandle);
+bool vp_play_view_is_realize(play_view_handle pViewHandle,
+                                                        bool * bIsRealize);
+bool vp_play_view_set_user_data(play_view_handle pViewHandle,
+                                                               void *pUserData);
+bool vp_play_view_set_url(play_view_handle pViewHandle,
+                                                 const char *szMediaURL);
+bool vp_play_view_get_url(play_view_handle pViewHandle, char **szMediaURL);
+bool vp_play_view_get_visible_status(play_view_handle pViewHandle,
+                                                                        bool * bVisible);
+bool vp_play_view_set_device_id(play_view_handle pViewHandle,
+                                                               const char *szDeviceID);
+bool vp_play_view_set_auto_play_setting(play_view_handle pViewHandle,
+                                                                               const char *autoplay);
+bool vp_play_view_set_dmr_id(play_view_handle pViewHandle,
+                                                        const char *szDMRID);
+bool vp_play_view_set_media_title(play_view_handle pViewHandle,
+                                                                 const char *szMediaTitle);
+bool vp_play_view_set_play_mode(play_view_handle pViewHandle,
+                                                               video_play_mode_t nMode);
+bool vp_play_view_set_start_position(play_view_handle pViewHandle,
+                                                                        int nPosition);
+bool vp_play_view_set_rotate(play_view_handle pViewHandle,
+                                                        video_play_rotate_t nRotate);
+bool vp_play_view_get_popup_mode(play_view_handle pViewHandle,
+                                                                bool * bPopupMode);
+bool vp_play_view_set_relaunch_caller(play_view_handle pViewHandle,
+                                                                         bool bRelaunch);
+bool vp_play_view_set_launching_mode(play_view_handle pViewHandle,
+                                                                        video_play_launching_type_t
+                                                                        nLaunchingType);
+bool vp_play_view_set_list_mode(play_view_handle pViewHandle,
+                                                               video_play_list_type_t nListType);
+bool vp_play_view_set_cookie(play_view_handle pViewHandle,
+                                                        const char *szCookie);
+bool vp_play_view_set_proxy(play_view_handle pViewHandle,
+                                                       const char *szProxy);
+bool vp_play_view_set_store_download_mode(play_view_handle pViewHandle,
+                                                                                 bool bStoreDownload);
+bool vp_play_view_set_stop_after_repeat_mode(play_view_handle pViewHandle,
+                                                                                        bool bStopAfterRepeat);
+bool vp_play_view_set_store_download_filesize(play_view_handle pViewHandle,
+                                                                                         double dStoreDL_FileSize);
+bool vp_play_view_set_store_order_info(play_view_handle pViewHandle,
+                                                                          char *pStoreOrderId,
+                                                                          char *pStoreServerId,
+                                                                          char *pStoreAppId,
+                                                                          char *pStoreMvId);
+
+bool vp_play_view_add_multi_path(play_view_handle pViewHandle,
+                                                                const char *szURL, char *szTitle,
+                                                                char *szSubTitle, int nPosition,
+                                                                int nDuration, bool bIsSameAP);
+
+bool vp_play_view_update(play_view_handle pViewHandle);
+
+bool vp_play_view_set_callback(play_view_handle pViewHandle,
+                                                          video_play_callback_type_t nCbType,
+                                                          void *pFunc);
+bool vp_play_view_unset_callback(play_view_handle pViewHandle,
+                                                                video_play_callback_type_t nCbType);
+
+Evas_Object *vp_play_view_get_main_window(play_view_handle pViewHandle);
+bool vp_play_view_change_style_minimode_to_fullmode(play_view_handle
+                                                                                                       pViewHandle,
+                                                                                                       video_play_launching_type_t
+                                                                                                       nLaunchingType);
+
+
+bool vp_play_view_reset_audio_only(play_view_handle * pPlayView);
+
+bool vp_play_view_handle_language_change(play_view_handle * pPlayViewHandle);
diff --git a/playview/res/edje/custom/Tizen_Touch.wav b/playview/res/edje/custom/Tizen_Touch.wav
new file mode 100755 (executable)
index 0000000..ef6e6ae
Binary files /dev/null and b/playview/res/edje/custom/Tizen_Touch.wav differ
diff --git a/playview/res/edje/custom/button-pressed.wav b/playview/res/edje/custom/button-pressed.wav
new file mode 100755 (executable)
index 0000000..ef6e6ae
Binary files /dev/null and b/playview/res/edje/custom/button-pressed.wav differ
diff --git a/playview/res/edje/custom/pv-custom-button.edc b/playview/res/edje/custom/pv-custom-button.edc
new file mode 100755 (executable)
index 0000000..381da26
--- /dev/null
@@ -0,0 +1,4469 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+
+#define BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC           63 63
+#define BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC                      63 63
+
+#define BUTTON_CUSTOM_ICON_NORMAL_COLOR                                        236 234 226 255
+#define BUTTON_CUSTOM_ICON_PRESS_COLOR                                 64 147 247 255
+#define BUTTON_CUSTOM_ICON_DIM_COLOR                                   236 234 226 75
+
+#define BUTTON_NAVIFRAME_MORE_BG_MIN_MAX_INC                           85 98
+#define BUTTON_NAVIFRAME_MORE_DEFAULT_IMAGE_MIN_MAX_INC        63 63
+
+#define BUTTON_CIRCLE_01_MIN_MAX_INC                                           40 40
+#define BUTTON_CIRCLE_02_MIN_MAX_INC                                           36 36
+#define BUTTON_CIRCLE_03_MIN_MAX_INC                                           45 45
+
+#define BUTTON_FLAT_MIN_MAX_INC                                                                30 30
+
+#define BUTTON_ROUND_LEFT_MIN_MAX_INC                                          104 68
+#define BUTTON_ROUND_CENTER_MIN_MAX_INC                                                104 68
+#define BUTTON_ROUND_RIGHT_MIN_MAX_INC                                         104 68
+
+#define BUTTON_ROUND_ICON_MIN_MAX_INC                                          40 40
+
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_NORMAL_COLOR_INC 255 255 255 255
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DEFAULT_COLOR_INC 101 101 101 255
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DEFAULT_BLACK_COLOR_INC 255 255 255 255
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_PRESSED_COLOR_INC 64 147 247 255
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DISABLED_COLOR_INC 101 101 101 76
+
+
+#define BUTTON_CUSTOM_ICON_STYLES(style_name, min_width, min_height)   \
+group {                                                                                                                                \
+       name: "elm/button/base/custom/"style_name;                              \
+       parts  {                                                                                                                        \
+               part {                                                                                                          \
+                       name: "button_image";                                                                           \
+                       type: RECT;                                                                                             \
+                       scale: 1;                                                                                                       \
+                       description {                                                                                           \
+                               state: "default" 0.0;                                                                   \
+                               min: min_width min_height;                                                              \
+                               max: min_width min_height;                                                              \
+                               fixed: 1 1;                                                                                     \
+                               visible: 0;                                                                                     \
+                       }                                                                                                               \
+                       description {                                                                                           \
+                               state: "clicked" 0.0;                                                                   \
+                               inherit: "default" 0.0;                                                                 \
+                       }                                                                                                               \
+                       description {                                                                                           \
+                               state: "disabled" 0.0;                                                                  \
+                               inherit: "default" 0.0;                                                                 \
+                       }                                                                                                               \
+                       description {                                                                                           \
+                               state: "focused" 0.0;                                                                   \
+                               inherit: "default" 0.0;                                                                 \
+                       }                                                                                                               \
+               }                                                                                                                       \
+               part {                                                                                                          \
+                       name: "elm.text";                                                                                       \
+                       type: TEXT;                                                                                             \
+                       mouse_events: 0;                                                                                        \
+                       scale: 1;                                                                                                       \
+                       description {                                                                                           \
+                               state: "default" 0.0;                                                                   \
+                               visible: 0;                                                                                     \
+                               rel1 { relative: 0.0 0.0;}                                                              \
+                               rel2 { relative: 0.0 0.0;}                                                              \
+                               color: 0 0 0 0;                                                                                 \
+                               text {                                                                                          \
+                                       font: "Tizen:style=Regular";                                                    \
+                                       size: 24;                                                                                       \
+                                       min: 0 0;                                                                                       \
+                               }                                                                                                       \
+                       }                                                                                                               \
+               }                                                                                                                       \
+               part {                                                                                                          \
+                       name: "elm.swallow.content";                                                            \
+                       type: SWALLOW;                                                                                  \
+                       scale: 1;                                                                                                       \
+                       mouse_events: 0;                                                                                        \
+                       description {                                                                                           \
+                               state: "default" 0.0;                                                                   \
+                               visible: 1;                                                                             \
+                               min: min_width min_height;                                                              \
+                               max: min_width min_height;                                                              \
+                               fixed: 1 1;                                                                                     \
+                               rel1.to: "button_image";                                                                        \
+                               rel2.to: "button_image";                                                                        \
+                       }                                                                                                               \
+               }                                                                                                                       \
+               part {                                                                                                          \
+                       name: "over2";                                                                                  \
+                       type: RECT;                                                                                             \
+                       repeat_events: 1;                                                                                       \
+                       ignore_flags: ON_HOLD;                                                                  \
+                       description {                                                                                           \
+                               state: "default" 0.0;                                                                   \
+                               color: 0 0 0 0;                                                                                 \
+                       }                                                                                                               \
+               }                                                                                                                       \
+               part {                                                                                                          \
+                       name: "over3";                                                                                  \
+                       type: RECT;                                                                                             \
+                       repeat_events: 1;                                                                                       \
+                       ignore_flags: ON_HOLD;                                                                  \
+                       description {                                                                                           \
+                               state: "default" 0.0;                                                                   \
+                               color: 0 0 0 0;                                                                                 \
+                       }                                                                                                               \
+               }                                                                                                                       \
+       }                                                                                                                               \
+       programs                                                                                                                        \
+       {                                                                                                                               \
+               program {                                                                                                       \
+                       name: "button_down";                                                                            \
+                       signal: "mouse,down,1";                                                                 \
+                       source: "over2";                                                                                        \
+                       action: SIGNAL_EMIT "elm,action,press" "";                                              \
+               }                                                                                                                       \
+               program {                                                                                                       \
+                       name: "button_up";                                                                              \
+                       signal: "mouse,up,1";                                                                           \
+                       source: "over3";                                                                                        \
+                       action: SIGNAL_EMIT "elm,action,unpress" "";                                    \
+               }                                                                                                                       \
+               program {                                                                                                       \
+                       name: "button_clicked";                                                                         \
+                       signal: "mouse,clicked,1";                                                                      \
+                       source: "over2";                                                                                        \
+                       action: SIGNAL_EMIT "elm,action,click" "";                                              \
+               }                                                                                                                       \
+               program {                                                                                                       \
+                       name: "button_click";                                                                   \
+                       source: "over2";                                                                                \
+                       signal: "mouse,clicked,1";                                                              \
+                       action: RUN_PLUGIN "touch_sound_plugin";                                \
+               }                                                                                                                       \
+       }                                                                                                                               \
+}
+
+
+
+group {
+       name: "elm/button/base/custom/circle_1/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               rel1.relative: 0.3 0.3;
+                               rel2.relative: 0.7 0.7;
+                               color: 0 166 191 255;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "button_bg";
+                       type: IMAGE;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01-2_control_circle_button_01_press.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01_press.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01_press.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01_press.png";
+                               color: 0 166 191 255;
+                       }
+               }
+
+               part {
+                       name: "button_circle";
+                       type: IMAGE;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01-2_control_circle_button_01.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01_focus.png";
+                               color: 0 166 191 255;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+
+               /*program {
+                       name: "focused";
+                       signal: "elm,action,focus";
+                       source: "elm";
+                       action: STATE_SET "focused" 0.0;
+                       target: "button_circle";
+                       target: "button_bg";
+               }
+
+               program {
+                       name: "unfocused";
+                       signal: "elm,action,unfocus";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_circle";
+                       target: "button_bg";
+               }*/
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+group {
+       name: "elm/button/base/custom/circle_1_focus/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               rel1.relative: 0.3 0.3;
+                               rel2.relative: 0.7 0.7;
+                               color: 0 255 0 255;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "button_bg";
+                       type: IMAGE;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01-2_control_circle_button_01_press.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01_press.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01_press.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01_press.png";
+                               color: 0 166 191 255;
+                       }
+               }
+
+               part {
+                       name: "button_circle";
+                       type: IMAGE;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01-2_control_circle_button_01.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01.png";
+                               color: 0 166 191 255;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+               part {
+                       name: "over2";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       target: "button_circle";
+                       target: "button_bg";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "button_circle";
+                       target: "button_bg";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "button_circle";
+                       target: "button_bg";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "button_circle";
+                       target: "button_bg";
+               }
+
+               program {
+                       name: "focused";
+                       signal: "elm,action,focus";
+                       source: "elm";
+                       action: STATE_SET "focused" 0.0;
+                       target: "button_circle";
+                       target: "button_bg";
+               }
+
+               program {
+                       name: "unfocused";
+                       signal: "elm,action,unfocus";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_circle";
+                       target: "button_bg";
+               }
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+group {
+       name: "elm/button/base/custom/circle_2/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: IMAGE;
+                       description {
+                               state: "default" 0.0;
+                               rel1.relative: 0.8 0.3;
+                               rel2.relative: 1.2 0.7;
+                               visible: 1;
+                               image { normal: "control/T01-2_control_circle_icon_rewind.png";}
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+
+               /*part {
+                       name: "button_bg";
+                       type: IMAGE;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01-2_control_circle_button_02_press.png";
+                               color: 0 0 0 153;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02_press.png";
+                               color: 66 162 207 255;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02_press.png";
+                               color: 0 0 0 153;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02_press.png";
+                               color: 0 0 0 153;
+                       }
+               }
+
+               part {
+                       name: "button_circle";
+                       type: IMAGE;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01-2_control_circle_button_02.png";
+                               color: 255 255 255 255 128;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02.png";
+                               color: 66 162 207 255;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02.png";
+                               color: 255 255 255 51;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02.png";
+                               color: 255 255 255 255 128;
+                       }
+               }*/
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               /*part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }*/
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+               /*program {
+                       name: "focused";
+                       action: STATE_SET "focused" 0.0;
+                       target: "button_circle";
+                       target: "button_bg";
+               }
+
+               program {
+                       name: "unfocused";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_circle";
+                       target: "button_bg";
+               }*/
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+
+group {
+       name: "elm/button/base/custom/circle_3/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: IMAGE;
+                       description {
+                               state: "default" 0.0;
+                               rel1.relative: -0.2 0.3;
+                               rel2.relative: 0.2 0.7;
+                               visible: 1;
+                               image { normal: "control/T01-2_control_circle_icon_next.png";}
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+
+               /*part {
+                       name: "button_bg";
+                       type: IMAGE;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01-2_control_circle_button_02_press.png";
+                               color: 0 0 0 153;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02_press.png";
+                               color: 66 162 207 255;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02_press.png";
+                               color: 0 0 0 153;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02_press.png";
+                               color: 0 0 0 153;
+                       }
+               }
+
+               part {
+                       name: "button_circle";
+                       type: IMAGE;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01-2_control_circle_button_02.png";
+                               color: 255 255 255 255 128;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02.png";
+                               color: 66 162 207 255;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02.png";
+                               color: 255 255 255 51;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02.png";
+                               color: 255 255 255 255 128;
+                       }
+               }*/
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               /*part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }*/
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+               /*program {
+                       name: "focused";
+                       action: STATE_SET "focused" 0.0;
+                       target: "button_circle";
+                       target: "button_bg";
+               }
+
+               program {
+                       name: "unfocused";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_circle";
+                       target: "button_bg";
+               }*/
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+
+
+
+group { name: "elm/button/base/custom/navi_button/default";
+   parts {
+         part { name: "button_image";
+                type: RECT;
+                scale: 1;
+                description { state: "default" 0.0;
+                       visible: 0;
+                       min: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+                       max: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+                }
+                description { state: "clicked" 0.0;
+                       inherit: "default" 0.0;
+                }
+                description { state: "disabled" 0.0;
+                       inherit: "default" 0.0;
+                }
+         }
+         part { name: "elm.swallow.content";
+                type: SWALLOW;
+                scale: 1;
+                clip_to: "elm.icon.clipper";
+                description { state: "default" 0.0;
+                       visible: 1;
+                       fixed: 1 1;
+                       min: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+                       max: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+                       rel1 { relative: 0.5 0.5; to : "button_image"; }
+                       rel2 { relative: 0.5 0.5; to : "button_image"; }
+
+                }
+                description { state: "visible" 0.0;
+                       inherit: "default" 0.0;
+                       visible: 1;
+                }
+         }
+         part { name: "elm.swallow.icon.proxy";
+                type: PROXY;
+                scale: 1;
+                clip_to: "elm.icon.proxy.clipper";
+                description { state: "default" 0.0;
+                        source: "elm.swallow.content";
+                        rel1.to: "elm.swallow.content";
+                        rel1.offset: 0 -2;
+                        rel2.to: "elm.swallow.content";
+                        rel2.offset: -1 -3;
+                }
+         }
+         part { name: "elm.icon.proxy.clipper";
+                type: RECT;
+                description { state: "default" 0.0;
+                       color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DEFAULT_BLACK_COLOR_INC;
+                }
+                description { state: "clicked" 0.0;
+                       color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_PRESSED_COLOR_INC;
+                }
+                description { state: "disabled" 0.0;
+                       color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DISABLED_COLOR_INC;
+                }
+         }
+         part { name: "elm.icon.clipper";
+                type: RECT;
+                description { state: "default" 0.0;
+                       color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_NORMAL_COLOR_INC;
+                }
+                description { state: "clicked" 0.0;
+                       color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_NORMAL_COLOR_INC;
+                }
+                description { state: "disabled" 0.0;
+                       color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DISABLED_COLOR_INC;
+                }
+         }
+         part { name: "over2";
+                type: RECT;
+                ignore_flags: ON_HOLD;
+                description { state: "default" 0.0;
+                       color: 0 0 0 0;
+                }
+         }
+         part { name: "over3";
+                type: RECT;
+                repeat_events: 1;
+                description { state: "default" 0.0;
+                       color: 0 0 0 0;
+                }
+         }
+         part { name: "disabler";
+                type: RECT;
+                description { state: "default" 0.0;
+                       color: 0 0 0 0;
+                       visible: 0;
+                }
+                description { state: "disabled" 0.0;
+                       inherit: "default" 0.0;
+                       visible: 1;
+                }
+         }
+   }
+   programs {
+         program { name: "button_click";
+                signal: "mouse,down,1";
+                source: "over2";
+                action: SIGNAL_EMIT "elm,action,press" "";
+                after: "button_click_anim";
+         }
+         program { name: "button_click_anim";
+                action: STATE_SET "clicked" 0.0;
+                target: "button_image";
+                target: "elm.icon.clipper";
+                target: "elm.icon.proxy.clipper";
+         }
+         program { name: "button_unpress";
+                action: SIGNAL_EMIT "elm,action,unpress" "";
+         }
+         program { name: "button_mouseout_clicked";
+                signal: "mouse,up,1";
+                source: "over3";
+                action: STATE_SET "default" 0.0;
+                target: "elm.icon.clipper";
+                target: "elm.icon.proxy.clipper";
+                after: button_unpress;
+         }
+         program { name: "touch_snd";
+                signal: "mouse,clicked,1";
+                source: "over2";
+                action: RUN_PLUGIN "touch_sound_plugin";
+                after: button_unclick3;
+         }
+         program { name: "button_unclick3";
+                action: SIGNAL_EMIT "elm,action,click" "";
+         }
+         program { name: "icon_show";
+                signal: "elm,state,icon,visible";
+                source: "elm";
+                action: STATE_SET "visible" 0.0;
+                target: "elm.swallow.content";
+         }
+         program { name: "icon_hide";
+                signal: "elm,state,icon,hidden";
+                source: "elm";
+                action: STATE_SET "default" 0.0;
+                target: "elm.swallow.content";
+         }
+         program { name: "disable";
+                signal: "elm,state,disabled";
+                source: "elm";
+                action: STATE_SET "disabled" 0.0;
+                target: "button_image";
+                target: "disabler";
+                target: "elm.icon.clipper";
+                target: "elm.icon.proxy.clipper";
+         }
+         program { name: "enable";
+                signal: "elm,state,enabled";
+                source: "elm";
+                action: STATE_SET "default" 0.0;
+                target: "button_image";
+                target: "elm.icon.clipper";
+                target: "elm.icon.proxy.clipper";
+                target: "disabler";
+         }
+   }
+}
+
+group {
+       name: "elm/button/base/custom/sound_path/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+                               max: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "rotate_button";
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+                               max: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+                               rel1 { relative: 0.5 0.5; to : "button_image"; }
+                               rel2 { relative: 0.5 0.5; to : "button_image"; }
+                               image.normal: "button/T01_2_icon_bluetooth_headset.png";
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01_2_icon_bluetooth_headset_press.png";
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01_2_icon_bluetooth_headset.png";
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       target: "rotate_button";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "rotate_button";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "rotate_button";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "rotate_button";
+               }
+       } /* programs */
+}
+
+group
+{
+       name: "elm/button/base/custom/allshare/default";
+       parts
+       {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+                               max: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "allshare_button";
+                       type: IMAGE;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+                               max: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01_2_icon_Near_by_device.png";
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01_2_icon_Near_by_device_press.png";
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01_2_icon_Near_by_device.png";
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01_2_icon_Near_by_device_press.png";
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "over2";
+                       type: RECT;
+                       repeat_events: 1;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       }
+
+       programs
+       {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       target: "allshare_button";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "allshare_button";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "allshare_button";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "allshare_button";
+               }
+               program {
+                       name: "focused";
+                       signal: "elm,action,focus";
+                       source: "elm";
+                       action: STATE_SET "focused" 0.0;
+                       target: "allshare_button";
+               }
+
+               program {
+                       name: "unfocused";
+                       signal: "elm,action,unfocus";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "allshare_button";
+               }
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       }
+
+}
+
+group {
+       name: "elm/button/base/custom/check/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+                               max: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "save_button";
+                       scale: 1;
+                       mouse_events: 0;
+                       type: IMAGE;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+                               max: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01_2_icon_check.png";
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01_2_icon_check_press.png";
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01_2_icon_check.png";
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       target: "save_button";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "save_button";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "save_button";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "save_button";
+               }
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+group {
+       name: "elm/button/base/playview/naviframe/close/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+                               max: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "back_button";
+                       type: IMAGE;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+                               max: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01_2_icon_close.png";
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01_2_icon_close_press.png";
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01_2_icon_close.png";
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       target: "back_button";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "back_button";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "back_button";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "back_button";
+               }
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+
+
+
+group {
+       name: "elm/button/base/custom/round_left/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+                               max: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "round_button";
+                       type: IMAGE;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               fixed: 1 1;
+                               min: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+                               max: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image { normal: "multi/T01_2_mw_control_bg_left.png"; border: 37 1 0 0;}
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image { normal: "multi/T01_2_mw_control_bg_left_press.png"; border: 37 1 0 0;}
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image { normal: "multi/T01_2_mw_control_bg_left.png"; border: 37 1 0 0;}
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: BUTTON_ROUND_ICON_MIN_MAX_INC;
+                               max: BUTTON_ROUND_ICON_MIN_MAX_INC;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1 { relative: 0.5 0.5; to: "button_image"; }
+                               rel2 { relative: 0.5 0.5; to: "button_image"; }
+                       }
+               }
+
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       target: "round_button";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "round_button";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "round_button";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "round_button";
+               }
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+
+group {
+       name: "elm/button/base/custom/round_right/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_ROUND_RIGHT_MIN_MAX_INC;
+                               max: BUTTON_ROUND_RIGHT_MIN_MAX_INC;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "round_button";
+                       type: IMAGE;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               fixed: 1 1;
+                               min: BUTTON_ROUND_RIGHT_MIN_MAX_INC;
+                               max: BUTTON_ROUND_RIGHT_MIN_MAX_INC;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image { normal: "multi/T01_2_mw_control_bg_right.png"; border: 1 37 0 0;}
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image { normal: "multi/T01_2_mw_control_bg_right_press.png"; border: 1 37 0 0;}
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image { normal: "multi/T01_2_mw_control_bg_right.png"; border: 1 37 0 0;}
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: BUTTON_ROUND_ICON_MIN_MAX_INC;
+                               max: BUTTON_ROUND_ICON_MIN_MAX_INC;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1 { relative: 0.5 0.5; to: "button_image"; }
+                               rel2 { relative: 0.5 0.5; to: "button_image"; }
+                       }
+               }
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       target: "round_button";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "round_button";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "round_button";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "round_button";
+               }
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+
+
+group {
+       name: "elm/button/base/custom/round_center/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_ROUND_CENTER_MIN_MAX_INC;
+                               max: BUTTON_ROUND_CENTER_MIN_MAX_INC;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "round_button";
+                       type: IMAGE;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               fixed: 1 1;
+                               min: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+                               max: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image { normal: "multi/T01_2_mw_control_bg_center.png"; border: 19 19 0 0;}
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image { normal: "multi/T01_2_mw_control_bg_center_press.png"; border: 19 19 0 0;}
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image { normal: "multi/T01_2_mw_control_bg_center.png"; border: 19 19 0 0;}
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               fixed: 1 1;
+                               min: BUTTON_ROUND_ICON_MIN_MAX_INC;
+                               max: BUTTON_ROUND_ICON_MIN_MAX_INC;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1 { relative: 0.5 0.5; to: "button_image"; }
+                               rel2 { relative: 0.5 0.5; to: "button_image"; }
+                       }
+               }
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       target: "round_button";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "round_button";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "round_button";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "round_button";
+               }
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+
+group {
+       name: "elm/button/base/custom/flat_70_70/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_FLAT_MIN_MAX_INC;
+                               max: BUTTON_FLAT_MIN_MAX_INC;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: BUTTON_FLAT_MIN_MAX_INC;
+                               max: BUTTON_FLAT_MIN_MAX_INC;
+                               fixed: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.press";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: BUTTON_FLAT_MIN_MAX_INC;
+                               max: BUTTON_FLAT_MIN_MAX_INC;
+                               fixed: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.dim";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: BUTTON_FLAT_MIN_MAX_INC;
+                               max: BUTTON_FLAT_MIN_MAX_INC;
+                               fixed: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "clicked", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "show", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "disabled", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+                       }
+               }
+               program {
+                       name: "enable";
+                       source: "elm";
+                       signal: "elm,state,enabled";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+//volume icon
+
+group {
+       name: "elm/button/base/custom/flat_46_46/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       
+                       description {
+                               state: "default" 0.0;
+                               rel1.relative:0.0 0.0;
+                               rel2.relative:0.95 1.0;
+                               color:255 0 0 255;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 26 26;
+                               max: 26 26;
+                               //fixed: 1 1;
+                               rel1 
+                               {       relative: 0.0 0.0; to:"button_image";}
+                               rel2
+                               {relative: 1.0 1.0; to:"button_image"; }
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.press";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 26 26;
+                               max: 26 26;
+                               fixed: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.dim";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 26 26;
+                               max: 26 26;
+                               fixed: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               align: 0.5 0.5;
+                               rel1 { relative: 0.0 0.7; to:"button_image";}
+                               rel2 { relative: 1.0 1.0; to:"button_image";}
+                               color: 255 255 255 255;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 10;
+                                       align: 0.5 0.5;
+                               }
+                       }
+               }
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "clicked", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "show", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "disabled", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+                       }
+               }
+               program {
+                       name: "enable";
+                       source: "elm";
+                       signal: "elm,state,enabled";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+//screen size icon
+
+group {
+       name: "elm/button/base/custom/flat_56_56/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;                     
+                       description {
+                               state: "default" 0.0;
+                               //rel1.relative:0.7 0.0;
+                               //rel2.relative:1.0 1.0;
+                               color:0 0 255 255;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 26 26;
+                               max: 26 26;
+                               //fixed: 1 1;
+                               rel1 
+                               {       relative: 0.0 0.0; to:"button_image";}
+                               rel2
+                               {relative: 1.0 1.0; to:"button_image"; }
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.press";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 26 26;
+                               max: 26 26;
+                               fixed: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.dim";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 26 26;
+                               max: 26 26;
+                               fixed: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               align: 0.5 0.5;
+                               rel1 { relative: 0.0 0.6;to: "button_image";}
+                               rel2 { relative: 1.0 1.0;to: "button_image";}
+                               color: 0 166 191 255;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 10;
+                                       align: 0.5 0.5;
+                               }
+                       }
+               }
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "clicked", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "show", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "disabled", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+                       }
+               }
+               program {
+                       name: "enable";
+                       source: "elm";
+                       signal: "elm,state,enabled";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+
+group {
+       name: "elm/button/base/custom/flat_63_63/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: 63 63;
+                               max: 63 63;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 63 63;
+                               max: 63 63;
+                               fixed: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.press";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 63 63;
+                               max: 63 63;
+                               fixed: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.dim";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 63 63;
+                               max: 63 63;
+                               fixed: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "clicked", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "show", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "disabled", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+                       }
+               }
+               program {
+                       name: "enable";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+group {
+       name: "elm/button/base/custom/flat_63_85/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: 63 85;
+                               max: 63 85;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 63 63;
+                               max: 63 63;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.press";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 63 63;
+                               max: 63 63;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.dim";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 63 63;
+                               max: 63 63;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "clicked", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "show", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "disabled", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+                       }
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+               /*keep default state when it is focused, Only show blue border in focued state*/
+               program {
+                       name: "focused";
+                       signal: "elm,action,focus";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "clicked", 0.0);
+                               set_state(PART:"disabler", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "unfocused";
+                       signal: "elm,action,unfocus";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+group {
+       name: "elm/button/base/custom/flat_94_60/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: 94 60;
+                               max: 94 60;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 45 45;
+                               max: 45 45;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.press";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 45 45;
+                               max: 45 45;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.dim";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 45 45;
+                               max: 45 45;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "clicked", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "show", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "disabled", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+                       }
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+
+group {
+       name: "elm/button/base/custom/flat_36_36/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: 36 36;
+                               max: 36 36;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 36 36;
+                               max: 36 36;
+                               fixed: 1 1;
+                               align: 0.0 0.0;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.press";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 36 36;
+                               max: 36 36;
+                               fixed: 1 1;
+                               align: 0.0 0.0;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.dim";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 36 36;
+                               max: 36 36;
+                               fixed: 1 1;
+                               align: 0.0 0.0;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "clicked", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "show", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "disabled", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+                       }
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+
+group {
+       name: "elm/button/base/custom/flat_63_78/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: 40 40;
+                               max: 40 40;
+                               align: 0.5 0.5;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 40 40;
+                               max: 40 40;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.press";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 40 40;
+                               max: 40 40;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.dim";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 40 40;
+                               max: 40 40;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+
+               part {
+                       name: "over2";
+                       type: RECT;
+                       mouse_events: 1;
+                       repeat_events: 1;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               min: 50 50;
+                       max: 50 50;
+                       rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       align: 0.5 0.5;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       mouse_events: 1;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 100 100;
+                       max: 100 100;
+                       align: 0.5 0.5;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               align: 0.5 0.5;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "clicked", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "show", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "disabled", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+                       }
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+group {
+       name: "elm/button/base/back";
+       images
+       {
+               image: "button/core_icon_back.png" COMP;
+       }
+       parts {
+               part {
+                       name: "bg";
+                       type: RECT;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               min: 80 80;
+                               max: 80 80;
+                       }
+               }
+               part {
+                       name: "icon";
+                       type: IMAGE;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 {
+                                       relative: 0 0;
+                                       to: "bg";
+                               }
+                               rel2 {
+                                       relative: 1 1;
+                                       to: "bg";
+                               }
+                               image {
+                                       normal: "button/core_icon_back.png";
+                               }
+                       }
+               }
+       } /*parts*/
+       programs {
+               program {
+                       name:   "buttonclicked";
+                       signal: "mouse,clicked,1";
+                       source: "bg";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+               program {
+                       name:   "buttontextclicked";
+                       signal: "mouse,clicked,1";
+                       source: "icon";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+               program{
+                       name: "touch_snd";
+                       source: "bg";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+               program{
+                       name: "touch_snd1";
+                       source: "icon";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+       }
+
+}
+
diff --git a/playview/res/edje/custom/pv-custom-colorselector.edc b/playview/res/edje/custom/pv-custom-colorselector.edc
new file mode 100755 (executable)
index 0000000..19b8a9d
--- /dev/null
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+ group {
+        name: "colorplane";
+                parts{
+                        part {
+                                name: "bg";
+                                type: SPACER;
+                                scale: 1;
+                                description {
+                                        state: "default" 0.0;
+                                        min: 578 344;
+                                        max: 578 344;
+                                }
+                        }
+                        part {
+                                name: "top_padding";
+                                type: SPACER;
+                                scale: 1;
+                                description {
+                                        state: "default" 0.0;
+                                        min: 0 21;
+                                        fixed: 0 1;
+                                        rel1.to: "bg";
+                                        rel2 {
+                                                to: "bg";
+                                                relative: 1.0 0.0;
+                                        }
+                                        align: 0.0 0.0;
+                                }
+                        }
+                        part {
+                                name: "colorpalette";
+                                type: SWALLOW;
+                                scale: 1;
+                                description {
+                                        state: "default" 0.0;
+                                        fixed: 0 1;
+                                        rel1 {
+                                                relative: 0.0 1.0;
+                                                to_y: "top_padding";
+                                                to_x: "bg";
+                                        }
+                                        rel2 {
+                                                to_y: "top_padding";
+                                                to_x: "bg";
+                                        }
+                                        align: 0.0 0.0;
+                                }
+                        }
+                        part {
+                                name: "colorpalette_bottom_padding";
+                                type: SPACER;
+                                scale: 1;
+                                description {
+                                        state: "default" 0.0;
+                                        min: 0 12;
+                                        fixed: 0 1;
+                                        rel1 {
+                                                relative: 0.0 1.0;
+                                                to_y: "colorpalette";
+                                                to_x: "bg";
+                                        }
+                                        rel2 {
+                                                to_x: "bg";
+                                                to_y: "colorpalette";
+                                        }
+                                        align: 0.0 0.0;
+                                }
+                        }
+                }//end parts
+ }
diff --git a/playview/res/edje/custom/pv-custom-define.edc b/playview/res/edje/custom/pv-custom-define.edc
new file mode 100755 (executable)
index 0000000..6d43fee
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+
+
+#define VIDEO_TITLE_FONT_STYLE                         "Tizen:style=Medium"
+#define VIDEO_TITLE_FONT_SIZE                          40
+#define VIDEO_TITLE_FONT_DEFAULT_COLOR         255 255 255 204
+
+
diff --git a/playview/res/edje/custom/pv-custom-gengrid-item.edc b/playview/res/edje/custom/pv-custom-gengrid-item.edc
new file mode 100755 (executable)
index 0000000..9d9cdbd
--- /dev/null
@@ -0,0 +1,514 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#define GENGRID_PART_BG_COLOR_INC 0 0 0 0
+#define GENGRID_PART_REORDER_BG_COLOR_INC 0 0 0 128
+
+
+group {
+       name: "elm/gengrid/item/bookmark/default";
+       data.item: "contents" "elm.swallow.icon elm.swallow.end";
+       parts {
+               part {
+                       name: "bg";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: GENGRID_PART_BG_COLOR_INC;
+                       }
+               }
+
+               part {
+                       name: "left_top_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 8 18;
+                               align: 0.0 0.0;
+                               visible: 0;
+                               rel1.to: "bg";
+                               rel2 { relative: 0.0 0.0; to: "bg"; }
+                       }
+               }
+
+               part {
+                       name: "right_bottom_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 8 0;
+                               align: 1.0 1.0;
+                               visible: 0;
+                               rel1 { relative: 1.0 1.0; to: "bg"; }
+                               rel2.to: "bg";
+                       }
+               }
+
+               part {
+                       name: "item_bg";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 1.0 1.0; to: "left_top_padding"; }
+                               rel2 { relative: 0.0 0.0; to: "right_bottom_padding"; }
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "item_bg_left_top_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 2 0;
+                               align: 0.0 0.0;
+                               visible: 0;
+                               rel1.to: "item_bg";
+                               rel2 { relative: 0.0 0.0; to: "item_bg"; }
+                       }
+               }
+
+               part {
+                       name: "item_bg_right_bottom_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 2 6;
+                               align: 1.0 1.0;
+                               visible: 0;
+                               rel1 { relative: 1.0 1.0; to: "item_bg"; }
+                               rel2.to: "item_bg";
+                       }
+               }
+
+               part {
+                       name: "item_real_bg";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1 { relative: 1.0 1.0; to: "item_bg_left_top_padding"; }
+                               rel2 { relative: 0.0 0.0; to: "item_bg_right_bottom_padding"; }
+                       }
+               }
+
+               part {
+                       name: "item_real_bg_left_top_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 2 2;
+                               align: 0.0 0.0;
+                               visible: 0;
+                               rel1.to: "item_real_bg";
+                               rel2 { relative: 0.0 0.0; to: "item_real_bg"; }
+                       }
+               }
+
+
+               part {
+                       name: "item_real_bg_right_bottom_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 2 2;
+                               align: 1.0 1.0;
+                               visible: 0;
+                               rel1 { relative: 1.0 1.0; to: "item_real_bg"; }
+                               rel2.to: "item_real_bg";
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.icon";
+                       type: SWALLOW;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 1.0 1.0; to: "item_real_bg_left_top_padding"; }
+                               rel2 { relative: 0.0 0.0; to: "item_real_bg_right_bottom_padding"; }
+                       }
+               }
+
+
+               part {
+                       name: "elm.swallow.end";
+                       type: SWALLOW;
+                       description {
+                               state: "default" 0.0;
+                               rel1.to: "elm.swallow.icon";
+                               rel2.to: "elm.swallow.icon";
+                       }
+               }
+
+
+               part {
+                       name: "reorder_bg";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: GENGRID_PART_BG_COLOR_INC;
+                               rel1.to: "item_bg";
+                               rel2.to: "item_bg";
+                       }
+                       description {
+                               state: "enabled" 0.0;
+                               inherit: "default" 0.0;
+                               color: GENGRID_PART_REORDER_BG_COLOR_INC;
+                       }
+               }
+
+
+               part {
+                       name: "focus_bg_left_top_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 8 16;
+                               align: 0.0 0.0;
+                               visible: 0;
+                               rel1.to: "bg";
+                               rel2 { relative: 0.0 0.0; to: "bg"; }
+                       }
+               }
+
+
+               part {
+                       name: "focus_bg_right_bottom_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 8 4;
+                               align: 1.0 1.0;
+                               visible: 0;
+                               rel1 {  relative: 1.0 1.0; to: "bg"; }
+                               rel2.to: "bg";
+                       }
+               }
+
+
+               part {
+                       name: "focus_bg";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 1.0 1.0; to: "focus_bg_left_top_padding"; }
+                               rel2 { relative: 0.0 0.0; to: "focus_bg_right_bottom_padding"; }
+                       }
+                       description {
+                               state: "enabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+       } /* parts */
+
+
+       programs {
+               program {
+                       name: "go_mouse_down";
+                       signal: "mouse,down,1";
+                       source: "reorder_bg";
+                       action: STATE_SET "enabled" 0.0;
+                       target: "focus_bg";
+                       transition: ACCELERATE 0.2;
+               }
+               program {
+                       name: "go_mouse_up";
+                       signal: "mouse,up,1";
+                       source: "reorder_bg";
+                       action: STATE_SET "default" 0.0;
+                       target: "focus_bg";
+                       transition: DECELERATE 0.2;
+               }
+               program {
+                       name: "go_reorder_disabled";
+                       signal: "elm,state,reorder,disabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "reorder_bg";
+                       target: "focus_bg";
+                       transition: ACCELERATE 0.3;
+               }
+               program {
+                       name: "go_reorder_enabled";
+                       signal: "elm,state,reorder,enabled";
+                       source: "elm";
+                       action: STATE_SET "enabled" 0.0;
+                       target: "reorder_bg";
+                       target: "focus_bg";
+                       transition: DECELERATE 0.3;
+               }
+       }
+}
+
+
+group {
+       name: "elm/gengrid/item/trim_thumb/default";
+       data.item: "contents" "elm.swallow.icon elm.swallow.end";
+       parts {
+               part {
+                       name: "bg";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: GENGRID_PART_BG_COLOR_INC;
+                       }
+               }
+
+               part {
+                       name: "left_top_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 8 18;
+                               align: 0.0 0.0;
+                               visible: 0;
+                               rel1.to: "bg";
+                               rel2 { relative: 0.0 0.0; to: "bg"; }
+                       }
+               }
+
+               part {
+                       name: "right_bottom_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 8 0;
+                               align: 1.0 1.0;
+                               visible: 0;
+                               rel1 { relative: 1.0 1.0; to: "bg"; }
+                               rel2.to: "bg";
+                       }
+               }
+
+               part {
+                       name: "item_bg";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 1.0 1.0; to: "left_top_padding"; }
+                               rel2 { relative: 0.0 0.0; to: "right_bottom_padding"; }
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "item_bg_left_top_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 2 0;
+                               align: 0.0 0.0;
+                               visible: 0;
+                               rel1.to: "item_bg";
+                               rel2 { relative: 0.0 0.0; to: "item_bg"; }
+                       }
+               }
+
+               part {
+                       name: "item_bg_right_bottom_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 2 6;
+                               align: 1.0 1.0;
+                               visible: 0;
+                               rel1 { relative: 1.0 1.0; to: "item_bg"; }
+                               rel2.to: "item_bg";
+                       }
+               }
+
+               part {
+                       name: "item_real_bg";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1 { relative: 1.0 1.0; to: "item_bg_left_top_padding"; }
+                               rel2 { relative: 0.0 0.0; to: "item_bg_right_bottom_padding"; }
+                       }
+               }
+
+               part {
+                       name: "item_real_bg_left_top_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 2 2;
+                               align: 0.0 0.0;
+                               visible: 0;
+                               rel1.to: "item_real_bg";
+                               rel2 { relative: 0.0 0.0; to: "item_real_bg"; }
+                       }
+               }
+
+
+               part {
+                       name: "item_real_bg_right_bottom_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 2 2;
+                               align: 1.0 1.0;
+                               visible: 0;
+                               rel1 { relative: 1.0 1.0; to: "item_real_bg"; }
+                               rel2.to: "item_real_bg";
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.icon";
+                       type: SWALLOW;
+                       description {
+                               state: "default" 0.0;
+                               min: 100 100;
+                               align: 0.0 0.0;
+                               rel1.to: "bg";
+                               rel2 { relative: 0.0 0.0; to: "bg"; }
+                       }
+               }
+
+
+               part {
+                       name: "elm.swallow.end";
+                       type: SWALLOW;
+                       description {
+                               state: "default" 0.0;
+                               rel1.to: "elm.swallow.icon";
+                               rel2.to: "elm.swallow.icon";
+                       }
+               }
+
+
+               part {
+                       name: "reorder_bg";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: GENGRID_PART_BG_COLOR_INC;
+                               rel1.to: "item_bg";
+                               rel2.to: "item_bg";
+                       }
+                       description {
+                               state: "enabled" 0.0;
+                               inherit: "default" 0.0;
+                               color: GENGRID_PART_REORDER_BG_COLOR_INC;
+                       }
+               }
+
+
+               part {
+                       name: "focus_bg_left_top_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 8 16;
+                               align: 0.0 0.0;
+                               visible: 0;
+                               rel1.to: "bg";
+                               rel2 { relative: 0.0 0.0; to: "bg"; }
+                       }
+               }
+
+
+               part {
+                       name: "focus_bg_right_bottom_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 8 4;
+                               align: 1.0 1.0;
+                               visible: 0;
+                               rel1 {  relative: 1.0 1.0; to: "bg"; }
+                               rel2.to: "bg";
+                       }
+               }
+
+
+               part {
+                       name: "focus_bg";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 1.0 1.0; to: "focus_bg_left_top_padding"; }
+                               rel2 { relative: 0.0 0.0; to: "focus_bg_right_bottom_padding"; }
+                       }
+                       description {
+                               state: "enabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+       } /* parts */
+
+
+       programs {
+               program {
+                       name: "go_mouse_down";
+                       signal: "mouse,down,1";
+                       source: "reorder_bg";
+                       action: STATE_SET "enabled" 0.0;
+                       target: "focus_bg";
+                       transition: ACCELERATE 0.2;
+               }
+               program {
+                       name: "go_mouse_up";
+                       signal: "mouse,up,1";
+                       source: "reorder_bg";
+                       action: STATE_SET "default" 0.0;
+                       target: "focus_bg";
+                       transition: DECELERATE 0.2;
+               }
+               program {
+                       name: "go_reorder_disabled";
+                       signal: "elm,state,reorder,disabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "reorder_bg";
+                       target: "focus_bg";
+                       transition: ACCELERATE 0.3;
+               }
+               program {
+                       name: "go_reorder_enabled";
+                       signal: "elm,state,reorder,enabled";
+                       source: "elm";
+                       action: STATE_SET "enabled" 0.0;
+                       target: "reorder_bg";
+                       target: "focus_bg";
+                       transition: DECELERATE 0.3;
+               }
+       }
+}
diff --git a/playview/res/edje/custom/pv-custom-genlist-item.edc b/playview/res/edje/custom/pv-custom-genlist-item.edc
new file mode 100755 (executable)
index 0000000..fec9aee
--- /dev/null
@@ -0,0 +1,2068 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#define GENLIST_HEIGHT_MULTILINE_SUB      38
+#define GENLIST_HEIGHT_2LINE_SUB          42
+#define GENLIST_LIST_SUB_TEXT_SIZE        32
+#define GENLIST_TREESIZE_DEFAULT          26
+#define GENLIST_PART_LIST_LINE_HEIGHT     1
+#define GENLIST_HEIGHT_2LINE_MAIN         57
+#define GENLIST_PADDING_SIZE_DEFAULT            16
+#define GENLIST_PADDING_SIZE_LEFT               62
+#define GENLIST_PADDING_SIZE_RIGHT              GENLIST_PADDING_SIZE_LEFT
+#define GENLIST_PADDING_SIZE_TOP_2LINE          19
+#define GENLIST_PADDING_SIZE_BOTTOM_2LINE       19
+#define GENLIST_HEIGHT_1LINE                    112  // (114 - top/bottom padding)
+#define GENLIST_PADDING_SIZE_TOP                5
+#define GENLIST_PADDING_SIZE_BOTTOM             5
+#define GENLIST_ICON_MEDIUM_SIZE                       81
+#define GENLIST_BTN_01_HEIGHT                   74
+
+#define GENLIST_LIST_MAIN_TEXT_SIZE                         44
+
+//popup
+#define POPUP_ITEM_BG_PRESSED_BORDER_INC 8 8 8 8
+#define POPUP_ITEM_BG_LEFT_TOP_PAD_MIN_INC 4 4
+#define POPUP_ITEM_BG_RIGHT_BOTTOM_PAD_MIN_INC 4 6
+
+
+//white
+///---------------------------------------------------------------start
+#define GENLIST_LIST_BG_COLOR                       248 246 239 0
+#define GENLIST_LIST_PRESS_COLOR                    87 135 194 255
+#define GENLIST_LIST_DIM_COLOR                      248 246 239 255
+#define GENLIST_LIST_LINE2_COLOR                    204 203 199 255
+#define GENLIST_LIST_LINE1_COLOR                    250 250 250 255
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR         0 0 0 255
+#define GENLIST_LIST_GROUP_TEXT_COLOR                  14 104 173 255
+
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE           "#4F4F4FFF"
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE       "#A3A99FFF"
+//#define GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE                 "#FFFFFFFF"
+#define GENLIST_PART_MATCH_TAG_COLOR                    "+ color=#1382FF"
+
+
+// Genlist Text
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE           "#000000FF"
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR             124 123 119 255
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE       "#7C7B77FF"
+#define GENLIST_LIST_MAIN_TEXT_READ_COLOR                   128 128 128 255
+#define GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR               188 187 183 255
+#define GENLIST_LIST_TEXT_FOCUS_COLOR                       255 255 255 255
+#define GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE                 "#FAFAFAFF"
+
+
+//popup
+#define GENLIST_LIST_BG_POPUP_COLOR                 0 0 0 0
+#define GENLIST_LIST_BG_POPUP_PRESS_COLOR           255 255 255 255
+#define GENLIST_LIST_LINE1_POPUP_COLOR              211 209 203 255
+#define GENLIST_LIST_LINE2_POPUP_COLOR              250 250 250 255
+
+
+#define PV_POPUP_TITLE_LINE_WIDTH_HEIGHT_MIN           0 4
+#define PV_GENLIST_LIST_LINE1_POPUP_COLOR           211 209 203 255
+
+//----------------------------------------------------------------end
+
+#define GENLIST_PARAM_ICON_MEDIUM \
+         min: GENLIST_ICON_MEDIUM_SIZE GENLIST_ICON_MEDIUM_SIZE; \
+         max: GENLIST_ICON_MEDIUM_SIZE GENLIST_ICON_MEDIUM_SIZE;
+
+#define GENLIST_PARAM_ICON_BTN_01 \
+         min: 0 GENLIST_BTN_01_HEIGHT; \
+         max: -1 GENLIST_BTN_01_HEIGHT;
+
+
+#define STYLE_TAG \
+      tag:  "br" "\n";\
+      tag:  "ps" "ps";\
+      tag:  "tab" "\t";\
+      tag:  "b" "+ font_weight=Bold";
+
+#define STYLE_TAG_MATCH \
+      tag:  "match" GENLIST_PART_MATCH_TAG_COLOR;
+
+
+styles {
+               style { name: "genlist_style_list_sub_text_default_wrap";
+                  base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+               style { name: "genlist_style_list_main_multiline_text_default_wrap";
+                  base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+               style { name: "genlist_style_list_sub_multiline_text_default_wrap";
+                  base: "font=Tizen:style=Light font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+               style { name: "genlist_style_list_sub_text_default_dim_wrap";
+                  base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+               style { name: "genlist_style_list_sub_text_focus_wrap";
+                  base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+
+               style { name: "genlist_style_list_main_text_default_wrap";
+                  base: "font=Tizen:style=Bold font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+               style { name: "genlist_style_list_main_text_default_dim_wrap";
+                  base: "font=Tizen:style=Bold font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+               style { name: "genlist_style_list_main_text_focus_wrap";
+                  base: "font=Tizen:style=Bold font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+               style { name: "genlist_style_list_main_text_custom_wrap";
+                  base: "font=Tizen:style=Roman font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+               style { name: "genlist_style_list_main_1_text_default_wrap";
+                  base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+               style { name: "genlist_style_list_main_1_text_default_dim_wrap";
+                  base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+               style { name: "genlist_style_list_main_1_text_focus_wrap";
+                  base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+}
+
+
+#define GENLIST_NAME(NAME) \
+          name: "elm/genlist/item/"NAME; \
+          alias: "elm/genlist/item_compress/"NAME; \
+          alias: "elm/genlist/tree/"NAME; \
+          alias: "elm/genlist/tree_compress/"NAME;
+
+ // |  PART == HERE  |
+ // ------------------
+ #define GENLIST_DESCRIPTION_ENVELOP( PART, PARAM ) \
+          description { state: "default" 0.0;\
+                 rel1 { \
+                        relative: 0 0; \
+                        to: PART; \
+                 }\
+                 rel2 {\
+                        relative: 1 1;\
+                        to: PART; \
+                 }\
+                 PARAM\
+          }
+
+
+ //     |       top  |
+ // ---------------------
+ // left |     HERE  | right
+ // ---------------------
+ //     | bottom |
+#define GENLIST_DESCRIPTION( left, right, top, bottom, param ) \
+          description { state: "default" 0.0;\
+                 rel1 { \
+                        relative: 1 1; \
+                        to_x: left; \
+                        to_y: top; \
+                 }\
+                 rel2 {\
+                        relative: 0 0;\
+                        to_x: right;\
+                        to_y: bottom;\
+                 }\
+                 param\
+          }
+
+
+//      |   top  |
+// ---------------------
+// left |  HERE  | right
+#define GENLIST_DESCRIPTION_LRT( left, right, top, param ) \
+      description { state: "default" 0.0;\
+         align: 0.5 0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: top;\
+         }\
+         param\
+      }
+
+// ---------------------
+// left |--> HERE
+// ---------------------
+#define GENLIST_DESCRIPTION_L( left, param ) \
+      description { state: "default" 0.0;\
+         align: 0 0.5; \
+         fixed: 1 0; \
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         rel2 { \
+            relative: 1 1;\
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+//   |  top     |
+// -----------------
+//  |  HERE  <--| right
+// -----------------
+//  | bottom   |
+#define GENLIST_DESCRIPTION_RTB( right, top, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 1 0.5;\
+         rel1 { \
+            relative: 0 1; \
+            to_x: right; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+// --------------------------
+// left |--> HERE  <--| right
+// --------------------------
+#define GENLIST_DESCRIPTION_LR( left, right, param ) \
+      description { state: "default" 0.0;\
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+//      |     top  |
+// ---------------------
+// left |--> HERE  |
+// ---------------------
+//      |   bottom |
+#define GENLIST_DESCRIPTION_LTB( left, top, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0 0.5;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 1 0;\
+            to_x: left;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+
+#define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP \
+       description { state: "disabled" 0.0; \
+          inherit: "default" 0.0; \
+          text.style: "genlist_style_list_sub_text_default_dim_wrap"; \
+       } \
+       description { state: "selected" 0.0; \
+          inherit: "default" 0.0; \
+          text.style: "genlist_style_list_sub_text_focus_wrap"; \
+       }
+
+#define GENLIST_PARAM_SUBITEM_DEFAULT_TB_WRAP \
+        text { \
+               min: 0 1; \
+               style: "genlist_style_list_sub_text_default_wrap"; \
+        }
+
+#define GENLIST_PARAM_MULTI_MAINITEM_DEFAULT_TB_WRAP \
+        text { \
+               min: 0 1; \
+               style: "genlist_style_list_main_multiline_text_default_wrap"; \
+        }
+
+#define GENLIST_PARAM_MULTI_SUBITEM_DEFAULT_TB_WRAP \
+        text { \
+               min: 0 1; \
+               style: "genlist_style_list_sub_multiline_text_default_wrap"; \
+        }
+
+#define GENLIST_PARAM_MAINITEM_DEFAULT_TB_WRAP \
+        text { \
+               min: 0 1; \
+               style: "genlist_style_list_main_text_default_wrap"; \
+        }
+
+#define GENLIST_PARAM_MAINITEM_CUSTOM_TB_WRAP \
+        text { \
+               min: 0 1; \
+               style: "genlist_style_list_main_text_custom_wrap"; \
+        }
+
+#define GENLIST_PARAM_MAINITEM_1TEXT_DEFAULT_TB_WRAP \
+        text { \
+               min: 0 1; \
+               style: "genlist_style_list_main_1_text_default_wrap"; \
+        }
+
+#define GENLIST_DESCRIPTION_MAINITEM_1TEXT_DEFAULT_OTHERS_TB_WRAP \
+       description { state: "disabled" 0.0; \
+          inherit: "default" 0.0; \
+          text.style: "genlist_style_list_main_1_text_default_dim_wrap"; \
+       } \
+       description { state: "selected" 0.0; \
+          inherit: "default" 0.0; \
+          text.style: "genlist_style_list_main_1_text_focus_wrap"; \
+       }
+
+
+#define GENLIST_DESCRIPTION_MAINITEM_DEFAULT_OTHERS_TB_WRAP \
+       description { state: "disabled" 0.0; \
+          inherit: "default" 0.0; \
+          text.style: "genlist_style_list_main_text_default_dim_wrap"; \
+       } \
+       description { state: "selected" 0.0; \
+          inherit: "default" 0.0; \
+          text.style: "genlist_style_list_main_text_focus_wrap"; \
+       }
+
+#define GENLIST_PART_TEXTBLOCK(NAME, DESCRIPION) \
+        part { name: NAME; \
+          scale: 1; \
+          type: TEXTBLOCK; \
+          repeat_events: 1; \
+          DESCRIPION \
+       }
+
+#define GENLIST_PART_TEXT(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      type: TEXT; \
+      repeat_events: 1; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_SPACER(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      mouse_events: 0; \
+      type: SPACER; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_RECT(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      type: RECT; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_IMAGE(NAME, DESCRIPION) \
+   part { name: NAME; \
+      scale: 1; \
+      type: IMAGE; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_ICON(NAME, DESCRIPION) \
+   part { name: NAME; \
+      scale: 1; \
+      type: SWALLOW; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_ICON_MEDIUM_L(NAME, LEFT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.top", "elm.padding.bottom", \
+         GENLIST_PARAM_ICON_MEDIUM \
+         fixed: 1 1; \
+      ) \
+   )
+
+
+// list main text
+#define GENLIST_PARAM_LISTITEM \
+   color: 8 8 8 255; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "Tizen:style=Regular"; \
+      size: GENLIST_LIST_MAIN_TEXT_SIZE; \
+   }
+
+// list main text
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR; \
+   } \
+   description { state: "read" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_MAIN_TEXT_READ_COLOR; \
+   } \
+   description { state: "read,disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_TEXT_FOCUS_COLOR; \
+   }
+
+#define GENLIST_PART_PADDING_T_SIZE( NAME, TOP, SIZE ) \
+                 GENLIST_PART_SPACER(NAME, \
+                        description { state: "default" 0.0; \
+                               min: 0 SIZE; \
+                               max: -1 SIZE; \
+                               fixed: 0 1; \
+                               align: 0.5 0; \
+                               rel1 { \
+                                  relative: 0 1; \
+                                  to: TOP; \
+                               } \
+                               rel2 { \
+                                  relative: 1 1; \
+                                  to: TOP; \
+                               } \
+                        } \
+                 )
+
+#define GENLIST_PART_EXPANDED_PAD \
+         part { name: "elm.swallow.pad"; \
+            type: SWALLOW; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               visible: 0; \
+               min: 0 0; \
+               fixed: 1 0; \
+               align: 0.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel2.relative: 0.0 1.0; \
+            } \
+         } \
+
+#define GENLIST_PROLOG \
+      data.item: "selectraise" "on"; \
+      data.item: "treesize" 0;
+
+
+#define GENLIST_PROLOG_NORMAL \
+      GENLIST_PROLOG \
+      data.item: "treesize" GENLIST_TREESIZE_DEFAULT; \
+      data.item: "flips" "elm.flip.icon elm.flip.content"; \
+      images { \
+         image : "genlist/00_list_group_bg.png" COMP; \
+         image : "genlist/00_list_group_bg_press.png" COMP; \
+      }
+
+#define GENLIST_PART_BASE_SIZE(HEIGHT) \
+         part { name: "base"; \
+            type: RECT; \
+            mouse_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+               min: 0 HEIGHT; \
+            } \
+         } \
+         part { name: "state"; \
+            type: RECT; \
+            mouse_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+            description { state: "decorate" 0.0; \
+               inherit: "default"; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default"; \
+            } \
+            description { state: "decorate_reorder" 0.0; \
+               inherit: "default"; \
+            } \
+         }
+
+#define GENLIST_PART_BASE \
+         GENLIST_PART_BASE_SIZE(0)
+
+#define GENLIST_DESCRIPTION_DECORATE_PADDING \
+   description { state: "decorate" 0.0; \
+      inherit: "default" 0.0; \
+      min: 0 0; \
+      max: 0 0; \
+   }
+
+#define GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+   description { state: "decorate_reorder" 0.0; \
+      inherit: "default" 0.0; \
+      min: 0 0; \
+      max: 0 0; \
+   }
+
+#define GENLIST_DESCRIPTION_REORDER_PADDING \
+   description { state: "reorder" 0.0; \
+      inherit: "default" 0.0; \
+      min: 32 0; \
+      max: 32 -1; \
+   }
+
+
+#define GENLIST_PART_PADDING_LEFT \
+                 GENLIST_PART_EXPANDED_PAD \
+                 GENLIST_PART_SPACER("elm.padding.left", \
+                        GENLIST_DESCRIPTION_L("elm.swallow.pad",  \
+                               min: GENLIST_PADDING_SIZE_LEFT 0; \
+                               max: GENLIST_PADDING_SIZE_LEFT -1; \
+                               fixed: 1 0; \
+                        ) \
+                        GENLIST_DESCRIPTION_DECORATE_PADDING \
+                        GENLIST_DESCRIPTION_REORDER_PADDING \
+                        GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+                 )
+
+#define GENLIST_PART_PADDING_RIGHT \
+         GENLIST_PART_SPACER("elm.padding.right", \
+            description { state: "default" 0.0; \
+               min: GENLIST_PADDING_SIZE_RIGHT 0; \
+               max: GENLIST_PADDING_SIZE_RIGHT -1; \
+               fixed: 1 0; \
+               align: 1.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 1 0; \
+            } \
+            GENLIST_DESCRIPTION_DECORATE_PADDING \
+            GENLIST_DESCRIPTION_REORDER_PADDING \
+            GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+         )
+
+
+#define GENLIST_PART_PADDING_R( NAME, RIGHT ) \
+         GENLIST_PART_SPACER(NAME, \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+               max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+               align: 1 0.5; \
+               rel1 { \
+                  relative: 0 0; \
+                  to_x: RIGHT; \
+               } \
+               rel2 { \
+                  relative: 0 1; \
+                  to_x: RIGHT; \
+               } \
+            } \
+         )
+
+#define GENLIST_PART_ICON_BTN_01_LTB(NAME, LEFT, TOP, BOTTOM) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_LTB(LEFT, TOP, BOTTOM,\
+         GENLIST_PARAM_ICON_BTN_01 \
+         fixed: 1 1; \
+      ) \
+   )
+
+#define GENLIST_PART_BG_NORMAL \
+          GENLIST_PART_RECT("bg_clip", \
+                 mouse_events: 0; \
+                 description { state: "default" 0.0; \
+                        visible: 1; \
+                        color: 255 255 255 255; \
+                 } \
+                 description { state: "decorate" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                 } \
+                 description { state: "reorder" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                 } \
+                 description { state: "decorate_reorder" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                 } \
+          ) \
+          GENLIST_PART_RECT("bg_reorder_clip", \
+                 mouse_events: 0; \
+                 description { state: "default" 0.0; \
+                        visible: 0; \
+                 } \
+                 description { state: "reorder" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 1; \
+                        color: 255 255 255 255; \
+                 } \
+                 description { state: "decorate_reorder" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                 } \
+                 description { state: "decorate" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                 } \
+                 description { state: "reorder_flip" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                 } \
+          ) \
+          GENLIST_PART_RECT("bg",      \
+                 clip_to: "bg_clip"; \
+                 description { state: "default" 0.0; \
+                        color: GENLIST_LIST_BG_COLOR; \
+                 } \
+                 description { state: "selected" 0.0; \
+                        inherit: "default" 0.0; \
+                        color: GENLIST_LIST_PRESS_COLOR; \
+                 } \
+                 description { state: "disabled" 0.0; \
+                        inherit: "default" 0.0; \
+                        color: GENLIST_LIST_DIM_COLOR; \
+                 } \
+          ) \
+          GENLIST_PART_SPACER("bg_reorder_left", \
+                 description { state: "default" 0.0; \
+                        min: 16 0; \
+                        max: 16 -1; \
+                        fixed: 1 0; \
+                        align: 0 0.5; \
+                        rel2.relative: 0 1; \
+                 } \
+          ) \
+          GENLIST_PART_SPACER("bg_reorder_right", \
+                 description { state: "default" 0.0; \
+                        min: 16 0; \
+                        max: 16 -1; \
+                        fixed: 1 0; \
+                        align: 1.0 0.5; \
+                        rel1.relative: 1 0; \
+                 } \
+          ) \
+          GENLIST_PART_SPACER("bg_reorder_top", \
+                 description { state: "default" 0.0; \
+                        min: 0 2; \
+                        max: -1 2; \
+                        fixed: 0 1; \
+                        align: 0.5 0; \
+                        rel2.relative: 1 0; \
+                 } \
+          ) \
+          GENLIST_PART_SPACER("bg_reorder_bottom", \
+                 description { state: "default" 0.0; \
+                        min: 0 2; \
+                        max: -1 2; \
+                        fixed: 0 1; \
+                        align: 0.5 1.0; \
+                        rel1.relative: 0 1; \
+                 } \
+          ) \
+          GENLIST_PART_IMAGE("bg_reorder", \
+                 clip_to: "bg_reorder_clip"; \
+                 description { state: "default" 0.0; \
+                        rel1 { \
+                               relative: 1 1; \
+                               to_x: "bg_reorder_left"; \
+                               to_y: "bg_reorder_top"; \
+                        } \
+                        rel2 { \
+                               relative: 0 0; \
+                               to_x: "bg_reorder_right"; \
+                               to_y: "bg_reorder_bottom"; \
+                        } \
+                        image { \
+                               normal: "genlist/00_list_group_bg.png"; \
+                               border: 17 17 8 8; \
+                               border_scale: 1; \
+                        } \
+                 } \
+                 description { state: "selected" 0.0; \
+                        inherit: "default"; \
+                        image { \
+                               normal: "genlist/00_list_group_bg_press.png"; \
+                               border: 17 17 8 8; \
+                               border_scale: 1; \
+                        } \
+                 } \
+                 description { state: "flipped" 0.0; \
+                        inherit: "default"; \
+                        visible: 0; \
+                 } \
+          ) \
+          GENLIST_PART_RECT("sound",  \
+                 repeat_events: 1;  /*for play_sound to check selected state*/ \
+                 description { state: "default" 0.0; \
+                        color: 0 0 0 0; \
+                 } \
+          ) \
+
+
+#define GENLIST_PART_BOTTOM_LINE \
+                 GENLIST_PART_RECT("bottom_line_clip", \
+                        description { state: "default" 0.0; \
+                               color: 255 255 255 255; \
+                        } \
+                        description { state: "decorate" 0.0; \
+                               inherit: "default" 0.0; \
+                               color: 0 0 0 0; \
+                        } \
+                        description { state: "reorder" 0.0; \
+                               inherit: "default" 0.0; \
+                               color: 0 0 0 0; \
+                        } \
+                        description { state: "decorate_reorder" 0.0; \
+                               inherit: "default" 0.0; \
+                               color: 0 0 0 0; \
+                        } \
+                 ) \
+                 GENLIST_PART_RECT("bottom_line", \
+                        mouse_events: 0; \
+                        clip_to: "bottom_line_clip"; \
+                        description { state: "default" 0.0; \
+                               min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+                               max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+                               fixed: 0 1; \
+                               align: 0.5 1; \
+                               color: GENLIST_LIST_LINE1_COLOR; \
+                               rel1.to: "bottom_line2"; \
+                               rel2.to: "bottom_line2"; \
+                               rel2.relative: 1 0; \
+                               rel1.offset: -1 -1; \
+                        } \
+                        description { state: "flipped" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 0; \
+                        } \
+                 ) \
+                 GENLIST_PART_RECT("bottom_line2", \
+                        mouse_events: 0; \
+                        clip_to: "bottom_line_clip"; \
+                        description { state: "default" 0.0; \
+                               min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+                               max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+                               fixed: 0 1; \
+                               align: 0.5 1; \
+                               color: GENLIST_LIST_LINE2_COLOR; \
+                               rel1.to_x: "base"; \
+                               rel1.relative: 0 0; \
+                               rel2.to_x: "base"; \
+                               rel2.relative: 1 1; \
+                               rel1.offset: -1 -1; \
+                        } \
+                        description { state: "flipped" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 0; \
+                        } \
+                 )
+
+#define GENLIST_PART_PADDING_TOP_2LINE \
+                 GENLIST_PART_SPACER("elm.padding.top", \
+                        description { \
+                               state: "default" 0.0; \
+                               min: 0 GENLIST_PADDING_SIZE_TOP_2LINE; \
+                               max: -1 GENLIST_PADDING_SIZE_TOP_2LINE; \
+                               fixed: 0 1; \
+                               rel1.to: "base"; \
+                               rel2.to: "base"; \
+                               rel2.relative: 1.0 0.0; \
+                               align: 0.5 0.0; \
+                        } \
+                        description { state: "reorder" 0.0; \
+                               inherit: "default" 0.0; \
+                               min: 0 (GENLIST_PADDING_SIZE_TOP_2LINE+2); \
+                               max: -1 (GENLIST_PADDING_SIZE_TOP_2LINE+2); \
+                        } \
+                 )
+
+#define GENLIST_PART_PADDING_BOTTOM_2LINE \
+                 GENLIST_PART_SPACER("elm.padding.bottom", \
+                        description { state: "default" 0.0; \
+                               min: 0 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
+                               max: -1 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
+                               fixed: 0 1; \
+                               rel1.to: "base"; \
+                               rel2.to: "base"; \
+                               rel1.relative: 0.0 1.0; \
+                               align: 0.5 1.0; \
+                        } \
+                        description { state: "reorder" 0.0; \
+                               inherit: "default" 0.0; \
+                               min: 0 (GENLIST_PADDING_SIZE_BOTTOM_2LINE+2); \
+                               max: -1 (GENLIST_PADDING_SIZE_BOTTOM_2LINE+2); \
+                        } \
+                 )
+
+#define GENLIST_PART_PADDING_TOP \
+         GENLIST_PART_SPACER("elm.padding.top", \
+            description { \
+               state: "default" 0.0; \
+               min: 0 GENLIST_PADDING_SIZE_TOP; \
+               max: -1 GENLIST_PADDING_SIZE_TOP; \
+               fixed: 0 1; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel2.relative: 1.0 0.0; \
+               align: 0.5 0.0; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               min: 0 (GENLIST_PADDING_SIZE_TOP+2); \
+               max: -1 (GENLIST_PADDING_SIZE_TOP+2); \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_BOTTOM \
+                        GENLIST_PART_SPACER("elm.padding.bottom", \
+                               description { state: "default" 0.0; \
+                                  min: 0 GENLIST_PADDING_SIZE_BOTTOM; \
+                                  max: -1 GENLIST_PADDING_SIZE_BOTTOM; \
+                                  fixed: 0 1; \
+                                  rel1.to: "base"; \
+                                  rel2.to: "base"; \
+                                  rel1.relative: 0.0 1.0; \
+                                  align: 0.5 1.0; \
+                               } \
+                               description { state: "reorder" 0.0; \
+                                  inherit: "default" 0.0; \
+                                  min: 0 (GENLIST_PADDING_SIZE_BOTTOM+2); \
+                                  max: -1 (GENLIST_PADDING_SIZE_BOTTOM+2); \
+                               } \
+                        )
+
+
+#define GENLIST_PART_FLIP \
+                 GENLIST_PART_RECT("elm.flip.bg", \
+                        mouse_events: 0; \
+                        description { state: "default" 0.0;\
+                               color: 0 0 0 0;\
+                        } \
+                        description { state: "flipped" 0.0; \
+                               inherit: "default" 0.0; \
+                               rel2.offset: 0 -3; \
+                               color: GENLIST_LIST_BG_COLOR;\
+                        }\
+                 ) \
+                 GENLIST_PART_SPACER("elm.flip.padding.right", \
+                        description { state: "default" 0.0; \
+                               min: 26 0; \
+                               max: 26 -1; \
+                               fixed: 1 0; \
+                               align: 1 0.5; \
+                               rel1.relative: 1 0; \
+                        } \
+                 ) \
+                 GENLIST_PART_ICON("elm.flip.content", \
+                        GENLIST_DESCRIPTION("elm.padding.left", "elm.flip.padding.icon.left",  \
+                               "elm.padding.top", "elm.padding.bottom", \
+                               visible: 0; \
+                               aspect: 1 1; \
+                               min: 0 96; \
+                        ) \
+                        description { state: "flipped" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 1; \
+                        } \
+                 ) \
+                 GENLIST_PART_PADDING_R("elm.flip.padding.icon.left", "elm.flip.icon") \
+                 GENLIST_PART_ICON( "elm.flip.icon", \
+                        GENLIST_DESCRIPTION_RTB("elm.flip.padding.right", \
+                               "elm.padding.top", "elm.padding.bottom", \
+                               visible: 0; \
+                               aspect: 1 1; \
+                               align: 1 0.5; \
+                               max: 158 74; \
+                        ) \
+                        description { state: "flipped" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 1; \
+                        } \
+                 )
+
+#define GENLIST_PART_FOCUS \
+   GENLIST_PART_IMAGE("focus_part", \
+      mouse_events: 0; \
+      description { state: "default" 0.0; \
+         visible: 0; \
+         image { \
+            normal: "genlist/00_focus.png"; \
+            border: 6 6 6 6; \
+            border_scale: 1; \
+         } \
+      } \
+      description { state: "focused" 0.0; \
+         inherit: "default" 0.0; \
+         visible: 1; \
+      } \
+   ) \
+   GENLIST_PART_ICON("elm.icon.focus", \
+      repeat_events: 1; \
+      GENLIST_DESCRIPTION_ENVELOP("focus_part", \
+         fixed: 1 1; \
+      ) \
+   )
+
+#define GENLIST_PART_FOCUS_REORDER \
+   GENLIST_PART_IMAGE("focus_part_reorder", \
+      mouse_events: 0; \
+         description { state: "default" 0.0; \
+            rel1 { \
+               relative: 1 1; \
+               to_x: "bg_reorder_left"; \
+               to_y: "bg_reorder_top"; \
+            } \
+            rel2 { \
+               relative: 0 0; \
+               to_x: "bg_reorder_right"; \
+               to_y: "bg_reorder_bottom"; \
+            } \
+         visible: 0; \
+         image { \
+            normal: "genlist/00_focus.png"; \
+            border: 6 6 6 6; \
+            border_scale: 1; \
+         } \
+      } \
+      description { state: "focused" 0.0; \
+         inherit: "default" 0.0; \
+         visible: 1; \
+      } \
+   )
+
+#define GENLIST_PART_PADDING_L( NAME, LEFT ) \
+         GENLIST_PART_SPACER(NAME, \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+               max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+               align: 0 0.5; \
+               rel1 { \
+                  relative: 1 0; \
+                  to_x: LEFT; \
+               } \
+               rel2 { \
+                  relative: 1 1; \
+                  to_x: LEFT; \
+               } \
+            } \
+         )
+
+
+#define GENLIST_PART_FOCUS_NORMAL \
+       GENLIST_PART_FOCUS \
+       GENLIST_PART_FOCUS_REORDER
+
+
+#define GENLIST_PROGRAM_DEFAULT( TARGET ) \
+         program { name: "default"; \
+            signal: "elm,state,default"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         } \
+
+#define GENLIST_PROGRAM_DISABLED( TARGET ) \
+         program { name: "enabled"; \
+            signal: "elm,state,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         } \
+         program { name: "disabled"; \
+            signal: "elm,state,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "disabled" 0.0; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_FOCUS \
+      program { name: "focused"; \
+         signal: "elm,state,focused"; \
+         source: "elm"; \
+         action: STATE_SET "focused" 0.0; \
+         target: "focus_part"; \
+      } \
+      program { name: "unfocused"; \
+         signal: "elm,state,unfocused"; \
+         source: "elm"; \
+         action: STATE_SET "default" 0.0; \
+         target: "focus_part"; \
+      }
+
+#define GENLIST_PROGRAM_FOCUS_NORMAL \
+      program { name: "focused"; \
+         signal: "elm,action,focus_highlight,show"; \
+         source: "elm"; \
+         script { \
+            new st[31]; \
+            new Float:vl; \
+            get_state(PART:"bg_reorder_clip", st, 30, vl); \
+            if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) \
+               set_state(PART:"focus_part_reorder", "focused", 0.0); \
+            else \
+               set_state(PART:"focus_part", "focused", 0.0); \
+         } \
+      } \
+      program { name: "unfocused"; \
+         signal: "elm,action,focus_highlight,hide"; \
+         source: "elm"; \
+         action: STATE_SET "default" 0.0; \
+         target: "focus_part_reorder"; \
+         target: "focus_part"; \
+      }
+
+#define GENLIST_PROGRAM_FOCUS_DIALOGUE \
+      program { name: "focused"; \
+         signal: "elm,state,focused"; \
+         source: "elm"; \
+         script { \
+            new st[31]; \
+            new Float:vl; \
+            get_state(PART:"bg_dialogue", st, 30, vl); \
+            if (!strcmp(st, "top") || !strcmp(st, "top_selected") || !strcmp(st, "2depth_top")) \
+               set_state(PART:"focus_part_dialogue", "top_focused", 0.0); \
+            else if (!strcmp(st, "center") || !strcmp(st, "center_selected") || !strcmp(st, "2depth_center")) \
+               set_state(PART:"focus_part_dialogue", "center_focused", 0.0); \
+            else if (!strcmp(st, "bottom") || !strcmp(st, "bottom_selected") || !strcmp(st, "2depth_bottom")) \
+               set_state(PART:"focus_part_dialogue", "bottom_focused", 0.0); \
+            else if (!strcmp(st, "default") || !strcmp(st, "selected") || !strcmp(st, "2depth")) \
+               set_state(PART:"focus_part_dialogue", "focused", 0.0); \
+         } \
+      } \
+      program { name: "unfocused"; \
+         signal: "elm,state,unfocused"; \
+         source: "elm"; \
+         action: STATE_SET "default" 0.0; \
+         target: "focus_part_dialogue"; \
+      }
+
+#define GENLIST_PROGRAM_SOUND( SRC ) \
+      program { name: "play_sound"SRC; \
+         signal: "mouse,clicked,1"; \
+         source: SRC; \
+         script { \
+            new st[31]; \
+            new Float:vl; \
+            get_state(PART:SRC, st, 30, vl); \
+         } \
+      }
+
+#define GENLIST_PROGRAM_SELECT( TARGET ) \
+         program { name: "selected"; \
+            signal: "elm,state,selected"; \
+            source: "elm"; \
+            action: STATE_SET "selected" 0.0; \
+            TARGET \
+         } \
+         program { name: "unselected"; \
+            signal: "elm,state,unselected"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_DECORATE_REORDER( NAME, TARGET ) \
+         program { name: "reorder_enabled"NAME; \
+            signal: "elm,state,reorder,mode_set"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"decorate_reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"reorder_set"NAME); \
+               } \
+            } \
+         } \
+         program { name: "reorder_disabled"NAME; \
+            signal: "elm,state,reorder,mode_unset"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"decorate_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"default_set"NAME); \
+               } \
+            } \
+         } \
+         program { name: "decorate_enabled_effect"NAME; \
+            signal: "elm,state,decorate,enabled,effect";\
+            source: "elm";\
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"decorate_reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"decorate_set"NAME); \
+               } \
+            } \
+         }\
+         program { name: "decorate_disabled_effect"NAME;\
+            signal: "elm,state,decorate,disabled,effect";\
+            source: "elm";\
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"default_set"NAME); \
+               } \
+            } \
+         }\
+         program { name: "decorate_enabled"NAME;\
+            signal: "elm,state,decorate,enabled";\
+            source: "elm";\
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"decorate_reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"decorate_set"NAME); \
+               } \
+            } \
+         }\
+         program { name: "decorate_disabled"NAME;\
+            signal: "elm,state,decorate,disabled";\
+            source: "elm";\
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"default_set"NAME); \
+               } \
+            } \
+         } \
+         program { name: "default_set"NAME; \
+            action: STATE_SET "default" 0.0;\
+            target: "state"; \
+            TARGET \
+         } \
+         program { name: "decorate_set"NAME; \
+            action: STATE_SET "decorate" 0.0;\
+            target: "state"; \
+            TARGET \
+         } \
+         program { name: "reorder_set"NAME; \
+            action: STATE_SET "reorder" 0.0;\
+            target: "state"; \
+            TARGET \
+         } \
+         program { name: "decorate_reorder_set"NAME; \
+            action: STATE_SET "decorate_reorder" 0.0;\
+            target: "state"; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_FLIP \
+         program { name: "flip_enabled"; \
+            signal:  "elm,state,flip,enabled"; \
+            source:  "elm"; \
+            transition: DECELERATE 0.5; \
+            action:  STATE_SET "flipped" 0.0; \
+            target: "elm.flip.content"; \
+            target: "elm.flip.icon"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal:  "elm,state,flip,disabled"; \
+            source:  "elm"; \
+            transition: DECELERATE 0.5; \
+            action:  STATE_SET "default" 0.0; \
+            target: "elm.flip.content"; \
+            target: "elm.flip.icon"; \
+         } \
+         program { name: "flip_enabled_bg"; \
+            signal:  "elm,state,flip,enabled"; \
+            source:  "elm"; \
+            action:  STATE_SET "flipped" 0.0; \
+            target: "elm.flip.bg"; \
+         } \
+         program { name: "flip_disabled_bg"; \
+            signal:  "elm,state,flip,disabled"; \
+            source:  "elm"; \
+            action:  STATE_SET "default" 0.0; \
+            target: "elm.flip.bg"; \
+         }
+
+
+#define GENLIST_PROGRAMS_NORMAL( TARGET ) \
+   programs { \
+      GENLIST_PROGRAM_DEFAULT( TARGET \
+         target: "bg"; \
+         target: "bg_clip"; \
+         target: "bottom_line"; \
+         target: "bottom_line2"; \
+         target: "bottom_line_clip"; \
+         target: "bg_reorder"; \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+         target: "elm.padding.top"; \
+         target: "elm.padding.bottom"; \
+      ) \
+      GENLIST_PROGRAM_DISABLED( TARGET \
+         target: "bg"; \
+         target: "bg_reorder"; \
+      ) \
+      GENLIST_PROGRAM_FOCUS_NORMAL \
+      GENLIST_PROGRAM_SELECT( TARGET \
+         target: "bg"; \
+         target: "bg_reorder"; \
+      ) \
+      GENLIST_PROGRAM_SOUND("bg") \
+      GENLIST_PROGRAM_SOUND("bg_reorder") \
+      GENLIST_PROGRAM_DECORATE_REORDER("normal", TARGET \
+         target: "bg_clip"; \
+         target: "bg_reorder_clip"; \
+         target: "bottom_line_clip"; \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+         target: "elm.padding.top"; \
+         target: "elm.padding.bottom"; \
+      ) \
+      GENLIST_PROGRAM_FLIP \
+   }
+
+ group { GENLIST_NAME("video.multiline/2text/default")
+       GENLIST_PROLOG_NORMAL
+       data.item: "texts" "elm.text.1 elm.text.2";
+
+       parts {
+          GENLIST_PART_BASE
+          GENLIST_PART_BG_NORMAL
+          GENLIST_PART_BOTTOM_LINE
+          GENLIST_PART_PADDING_LEFT
+          GENLIST_PART_PADDING_RIGHT
+          GENLIST_PART_PADDING_TOP_2LINE
+          GENLIST_PART_PADDING_BOTTOM_2LINE
+
+          GENLIST_PART_TEXT("elm.text.1",
+                 GENLIST_DESCRIPTION_LRT("elm.padding.left", "elm.padding.right", "elm.padding.top",
+                        GENLIST_PARAM_LISTITEM
+                        min: 0 GENLIST_HEIGHT_2LINE_MAIN;
+                        fixed: 0 1;
+                 )
+                 GENLIST_DESCRIPTION_LISTITEM_OTHERS
+          )
+          //GENLIST_PART_PADDING_T_SIZE("elm.padding.text1.bottom", "elm.text.1", 0)
+          GENLIST_PART_TEXTBLOCK("elm.text.2",
+                 GENLIST_DESCRIPTION("elm.padding.left", "elm.padding.right", "elm.text.1", "elm.padding.bottom",
+                        GENLIST_PARAM_SUBITEM_DEFAULT_TB_WRAP
+                        min: 0 GENLIST_HEIGHT_MULTILINE_SUB;
+                 )
+                 GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP
+          )
+          GENLIST_PART_FLIP
+          GENLIST_PART_FOCUS_NORMAL
+       }
+       GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; )
+ }
+
+ group { GENLIST_NAME("video.multiline/1text.2icon/default")
+       GENLIST_PROLOG_NORMAL
+       data.item: "texts" "elm.text";
+       data.item: "contents" "elm.icon.1 elm.icon.2";
+
+       parts {
+          GENLIST_PART_BASE
+          GENLIST_PART_BG_NORMAL
+          GENLIST_PART_BOTTOM_LINE
+          GENLIST_PART_PADDING_LEFT
+          GENLIST_PART_PADDING_RIGHT
+          GENLIST_PART_PADDING_TOP
+          GENLIST_PART_PADDING_BOTTOM
+
+          GENLIST_PART_ICON_BTN_01_LTB("elm.icon.2", "elm.padding.left", "elm.padding.top", "elm.padding.bottom")
+          GENLIST_PART_PADDING_L("elm.padding.icon2.right", "elm.icon.2")
+          GENLIST_PART_ICON_MEDIUM_L( "elm.icon.1", "elm.padding.icon2.right")
+          GENLIST_PART_PADDING_L("elm.padding.icon1.right", "elm.icon.1")
+          GENLIST_PART_TEXTBLOCK("elm.text",
+                        GENLIST_DESCRIPTION_LR("elm.padding.icon1.right", "elm.padding.right",
+                        GENLIST_PARAM_MAINITEM_1TEXT_DEFAULT_TB_WRAP
+                        min: 0 GENLIST_HEIGHT_1LINE;
+                 )
+                 GENLIST_DESCRIPTION_MAINITEM_1TEXT_DEFAULT_OTHERS_TB_WRAP
+          )
+          GENLIST_PART_FLIP
+          GENLIST_PART_FOCUS_NORMAL
+       }
+       GENLIST_PROGRAMS_NORMAL( target: "elm.text"; target: "elm.icon.1"; target: "elm.icon.2"; )
+ }
+
+ group { GENLIST_NAME("video.multiline/2text.1icon/default")
+       GENLIST_PROLOG_NORMAL
+       data.item: "texts" "elm.text.1 elm.text.2" ;
+       data.item: "contents" "elm.icon";
+       parts {
+          GENLIST_PART_BASE
+          GENLIST_PART_BG_NORMAL
+          GENLIST_PART_BOTTOM_LINE
+          GENLIST_PART_PADDING_LEFT
+          GENLIST_PART_PADDING_RIGHT
+          GENLIST_PART_PADDING_TOP_2LINE
+          GENLIST_PART_PADDING_BOTTOM_2LINE
+
+          GENLIST_PART_ICON_MEDIUM_L( "elm.icon", "elm.padding.left")
+          GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon")
+          GENLIST_PART_TEXTBLOCK("elm.text.1",
+                       GENLIST_DESCRIPTION_LRT("elm.padding.icon.right", "elm.padding.right", "elm.padding.top",
+                        GENLIST_PARAM_MAINITEM_DEFAULT_TB_WRAP
+                        min: 0 GENLIST_HEIGHT_2LINE_MAIN;
+                 )
+                 GENLIST_DESCRIPTION_MAINITEM_DEFAULT_OTHERS_TB_WRAP
+          )
+          GENLIST_PART_TEXTBLOCK("elm.text.2",
+                        GENLIST_DESCRIPTION("elm.padding.icon.right", "elm.padding.right",  "elm.text.1", "elm.padding.bottom",
+                        GENLIST_PARAM_MULTI_SUBITEM_DEFAULT_TB_WRAP
+                        min: 0 GENLIST_HEIGHT_MULTILINE_SUB;
+                 )
+                 GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP
+          )
+          GENLIST_PART_FLIP
+          GENLIST_PART_FOCUS_NORMAL
+       }
+       GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.icon";)
+ }
+
+
+ group { GENLIST_NAME("video.multiline/1text.1icon/default")
+       GENLIST_PROLOG_NORMAL
+       data.item: "texts" "elm.text";
+       data.item: "contents" "elm.icon";
+       parts {
+          GENLIST_PART_BASE
+          GENLIST_PART_BG_NORMAL
+          GENLIST_PART_BOTTOM_LINE
+          GENLIST_PART_PADDING_LEFT
+          GENLIST_PART_PADDING_RIGHT
+          GENLIST_PART_PADDING_TOP
+          GENLIST_PART_PADDING_BOTTOM
+
+          GENLIST_PART_ICON_MEDIUM_L( "elm.icon", "elm.padding.left")
+          GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon")
+          GENLIST_PART_TEXTBLOCK("elm.text",
+                 GENLIST_DESCRIPTION_LR("elm.padding.icon.right", "elm.padding.right",
+                        GENLIST_PARAM_MAINITEM_CUSTOM_TB_WRAP
+                        min: 0 GENLIST_HEIGHT_1LINE;
+                 )
+                 GENLIST_DESCRIPTION_MAINITEM_DEFAULT_OTHERS_TB_WRAP
+          )
+          GENLIST_PART_FLIP
+          GENLIST_PART_FOCUS_NORMAL
+       }
+       GENLIST_PROGRAMS_NORMAL( target: "elm.text"; target: "elm.icon";)
+ }
+
+ group {
+       name: "elm/genlist/item/custom.subtitle/default";
+       alias: "elm/genlist/item_compress/custom.subtitle/default";
+       alias: "elm/genlist/tree/custom.subtitle/default";
+       alias: "elm/genlist/tree_compress/custom.subtitle/default";
+       data.item: "stacking" "above";
+       data.item: "selectraise" "on";
+       data.item: "texts" "elm.text";
+       data.item: "contents" "elm.icon";
+       parts {
+               part {
+                       name: "base";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               //color: 22 28 45 255;
+                               color: GENLIST_LIST_BG_POPUP_COLOR;
+                               min: 0 76;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       scale: 1;
+                       type: TEXT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 0.0;
+                               rel1 {
+                                       relative: 26/618 0.0; offset: 0 0; to: "base";
+                               }
+                               rel2 {
+                                       relative: 556/618 1.0; to: "base";
+                               }
+                               text {
+                                       align: 0.0 0.5;
+                                       min: 0 1;
+                                       size: 27;
+                               }
+                               color: 21 108 148 255;
+                       }
+               }
+               part {
+                       name: "elm.icon";
+                       scale: 0;
+                       type: SWALLOW;
+                       description {
+                               state: "default" 0.0;
+                               align: 1.0 0.0;
+                               fixed: 1 1;
+                               rel1 {
+                                       relative: 1.0 23/76; to: "base";
+                               }
+                               rel2 {
+                                       relative: 1.0 59/76; to: "base"; offset:-26 0;
+                               }
+                               min: 36 36;
+                               max: 36 36;
+                       }
+               }
+
+               part {
+                       name:"bottom.line";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               //min: PV_POPUP_TITLE_LINE_WIDTH_HEIGHT_MIN;
+                               //color: PV_GENLIST_LIST_LINE1_POPUP_COLOR;
+                               color: 217 217 217 255;
+                               fixed: 0 1;
+                               align: 0.5 1.0;
+                               rel1 { relative: 0.0 1.0; to_x: "base"; to_y: "elm.icon"; offset:4 13;}
+                               rel2 { relative: 1.0 1.0; to_x: "base"; to_y: "elm.icon"; offset:-5 17;}
+                       }
+               }
+       }
+}/* group */
+
+
+#define GENLIST_POPUP_STYLE(NAME) \
+        group { GENLIST_NAME(NAME"/popup/default") \
+               inherit: "elm/genlist/item/"NAME"/default"; \
+               images { \
+                  image: "genlist/00_popup_list_press.png" COMP; \
+               } \
+               parts { \
+                  GENLIST_PART_SPACER("bg_left_top_padding", \
+                         description { state: "default" 0.0; \
+                                min: POPUP_ITEM_BG_LEFT_TOP_PAD_MIN_INC; \
+                                fixed: 1 1; \
+                                align: 0 0; \
+                                rel2.relative: 0 0; \
+                         } \
+                  ) \
+                  GENLIST_PART_SPACER("bg_right_bottom_padding", \
+                         description { state: "default" 0.0; \
+                                min: POPUP_ITEM_BG_RIGHT_BOTTOM_PAD_MIN_INC; \
+                                fixed: 1 1; \
+                                align: 1 1; \
+                                rel1.relative: 1 1; \
+                         } \
+                  ) \
+                  GENLIST_PART_IMAGE("bg", \
+                         description { state: "default" 0.0; \
+                                image { \
+                                       normal: "genlist/00_popup_list_press.png"; \
+                                       border: POPUP_ITEM_BG_PRESSED_BORDER_INC; \
+                                       border_scale: 1; \
+                                } \
+                                rel1 { \
+                                       relative: 1 1; \
+                                       to_x: "bg_left_top_padding"; \
+                                       to_y: "bg_left_top_padding"; \
+                                } \
+                                rel2 { \
+                                       relative: 0 0; \
+                                       to_x: "bg_right_bottom_padding"; \
+                                       to_y: "bg_right_bottom_padding"; \
+                                } \
+                                color: GENLIST_LIST_BG_POPUP_COLOR; \
+                         } \
+                         description { state: "disabled" 0.0; \
+                                inherit: "default" 0.0; \
+                                color: GENLIST_LIST_BG_POPUP_COLOR; \
+                         } \
+                         description { state: "selected" 0.0; \
+                                inherit: "default" 0.0; \
+                                color: GENLIST_LIST_BG_POPUP_PRESS_COLOR; \
+                         } \
+                  ) \
+                  GENLIST_PART_RECT("bottom_line", \
+                         description { state: "default" 0.0; \
+                                color: GENLIST_LIST_LINE1_POPUP_COLOR; \
+                                rel1.to: "bottom_line2"; \
+                                rel2.to: "bottom_line2"; \
+                                rel2.relative: 1 0; \
+                         } \
+                         description { state: "disabled" 0.0; \
+                                inherit: "default" 0.0; \
+                                visible: 0; \
+                         } \
+                  ) \
+                  GENLIST_PART_RECT("bottom_line2", \
+                         description { state: "default" 0.0; \
+                                color: GENLIST_LIST_LINE2_POPUP_COLOR; \
+                                rel1.to_x: "bg"; \
+                                rel2.to_x: "bg"; \
+                                rel1.offset: 1 0; \
+                                rel2.offset: -2 -1; \
+                         } \
+                         description { state: "disabled" 0.0; \
+                                inherit: "default" 0.0; \
+                                visible: 0; \
+                         } \
+                  ) \
+               } \
+               programs { \
+                  program { name : "hide_bottomline"; \
+                         signal: "elm,state,bottomline,hide"; \
+                         source: ""; \
+                         action: STATE_SET "disabled" 0.0; \
+                         target: "bottom_line"; \
+                         target: "bottom_line2"; \
+                  } \
+                  program { name : "show_bottomline"; \
+                         signal: "elm,state,bottomline,show"; \
+                         source: ""; \
+                         action: STATE_SET "default" 0.0; \
+                         target: "bottom_line"; \
+                         target: "bottom_line2"; \
+                  } \
+               } \
+        }
+
+
+//popup
+GENLIST_POPUP_STYLE("video.multiline/2text")
+GENLIST_POPUP_STYLE("video.multiline/1text.2icon")
+GENLIST_POPUP_STYLE("video.multiline/1text.1icon")
+GENLIST_POPUP_STYLE("video.multiline/2text.1icon")
+
+#define POPUP_FS_OUTSIDE_PADDING "500"
+#define POPUP_FS_TITLE_AREA_HEIGHT "72"
+
+#define POPUP_FS_TITLE_LEFT_PADDING 15
+#define POPUP_FS_TITLE_RIGHT_PADDING 15
+#define POPUP_FS_TITLE_TOP_PADDING 3
+#define POPUP_FS_TITLE_BOTTOM_PADDING 3
+#define POPUP_SUBTITLE_HEIGHT 28
+
+
+#define POPUP_FS_DEFAULT_TEXT_FONT_SIZE_INC 30
+#define POPUP_FS_SUBTITLE_TEXT_FONT_SIZE_INC 21
+
+#define POPUP_FS_DEFAULT_BASE_DEFAULT_MIN_INC 480 0
+#define POPUP_FS_DEFAULT_BASE_DEFAULT_MAX_INC 480 800
+#define POPUP_FS_DEFAULT_BASE_LANDSCAPE_MIN_INC 800 0
+#define POPUP_FS_DEFAULT_BASE_LANDSCAPE_MAX_INC 800 480
+#define POPUP_FS_DEFAULT_TITLE_DEFAULT_MIN_INC 480 72
+#define POPUP_FS_DEFAULT_TITLE_DEFAULT_MAX_INC 800 72
+#define POPUP_FS_DEFAULT_BUTTON_BG_DEFAULT_MIN_INC 480 0
+#define POPUP_FS_DEFAULT_TEXT_SHADOW_COLOR_INC "#08080855"
+#define POPUP_FS_SUBTITLE_TEXT_SHADOW_COLOR_INC "#08080855"
+
+       group { name: "elm/popup/fullsrceen/default";
+          data {
+             item: "focus_highlight" "on";
+             item: "default_orient" "2"; //top, center:1 bottom:2
+             item: "title_height" POPUP_FS_TITLE_AREA_HEIGHT;
+             item: "popup_outside_pad" POPUP_FS_OUTSIDE_PADDING;
+          }
+          styles {
+             style { name: "popup_fs_title_style";
+                base: "font=Tizen:style=Regular align=center font_size="POPUP_FS_DEFAULT_TEXT_FONT_SIZE_INC" color=#FFFFFF wrap=mixed ellipsis=1.0 style=far_shadow,bottom shadow_color="POPUP_FS_DEFAULT_TEXT_SHADOW_COLOR_INC"";
+                tag:  "br" "\n";
+                tag:  "tab" "\t";
+             }
+             style { name: "popup_subtitle_style";
+                base: "font=Tizen:style=Regular align=center font_size="POPUP_FS_SUBTITLE_TEXT_FONT_SIZE_INC" color=#FFFFFF wrap=mixed ellipsis=1.0 style=far_shadow,bottom shadow_color="POPUP_FS_SUBTITLE_TEXT_SHADOW_COLOR_INC"";
+                tag:  "br" "\n";
+                tag:  "tab" "\t";
+             }
+          }
+          parts {
+             part { name: "base";
+                scale: 1;
+                type: RECT;
+                description { state: "default" 0.0;
+                   min: POPUP_FS_DEFAULT_BASE_DEFAULT_MAX_INC;
+                   max: POPUP_FS_DEFAULT_BASE_DEFAULT_MAX_INC;
+                   fixed: 1 0;
+                }
+                description { state: "landscape" 0.0;
+                   inherit: "default" 0.0;
+                   min: POPUP_FS_DEFAULT_BASE_LANDSCAPE_MAX_INC;
+                   max: POPUP_FS_DEFAULT_BASE_LANDSCAPE_MAX_INC;
+                }
+             }
+             part { name: "bg";
+                type: RECT;
+                scale: 1;
+                description { state: "default" 0.0;
+                   rel1.to: "base";
+                   rel2.to: "base";
+                   color: 255 255 255 255;
+                }
+             }
+             part { name: "access.outline";
+                type: RECT;
+                repeat_events: 1;
+                description { state: "default" 0.0;
+                   fixed: 1 1;
+                   rel1.to: "base";
+                   rel2.to: "base";
+                   color: 0 0 0 0;
+                }
+             }
+             part { name: "elm.bg.title";
+                type: RECT;
+                scale: 1;
+                description { state: "default" 0.0;
+                   min: 0 0;
+                   max: 0 0;
+                   fixed: 1 1;
+                   align: 0.5 0.0;
+                               rel1.relative: 0.0 0.0;
+                   rel2.relative: 0.0 1.0;
+                   color: 115 167 191 255;
+                }
+                       description { state: "visible" 0.0;
+                                inherit: "default" 0.0;
+                                min: POPUP_FS_DEFAULT_TITLE_DEFAULT_MAX_INC;
+                                max: POPUP_FS_DEFAULT_TITLE_DEFAULT_MAX_INC;
+                        }
+                       description { state: "landscape" 0.0;
+                                inherit: "default" 0.0;
+                                min: POPUP_FS_DEFAULT_TITLE_DEFAULT_MAX_INC;
+                                max: POPUP_FS_DEFAULT_TITLE_DEFAULT_MAX_INC;
+                        }
+             }
+             part { name: "title_left_top_padding";
+                type: SPACER;
+                scale: 1;
+                description { state: "default" 0.0;
+                   align: 0.0 0.0;
+                   rel1.to: "elm.bg.title";
+                   fixed: 1 1;
+                   min: POPUP_FS_TITLE_LEFT_PADDING POPUP_FS_TITLE_TOP_PADDING;
+                   max: POPUP_FS_TITLE_LEFT_PADDING POPUP_FS_TITLE_TOP_PADDING;
+                }
+             }
+             part { name: "title_right_bottom_padding";
+                type: SPACER;
+                scale: 1;
+                description { state: "default" 0.0;
+                   align: 1.0 1.0;
+                   rel2.to: "elm.bg.title";
+                   fixed: 1 1;
+                   min: POPUP_FS_TITLE_RIGHT_PADDING POPUP_FS_TITLE_BOTTOM_PADDING;
+                   max: POPUP_FS_TITLE_RIGHT_PADDING POPUP_FS_TITLE_BOTTOM_PADDING;
+                }
+             }
+             part { name: "elm.text.title";
+                type: TEXTBLOCK;
+                scale:1;
+                description { state: "default" 0.0;
+                   fixed: 1 1;
+                   text {
+                     style: "popup_fs_title_style";
+                     size: POPUP_FS_DEFAULT_TEXT_FONT_SIZE_INC;
+                   }
+                   rel1 {
+                      relative: 1.0 1.0;
+                      to: "title_left_top_padding";
+                   }
+                   rel2 {
+                      relative: 0.0 0.0;
+                      to: "title_right_bottom_padding";
+                   }
+                }
+                description { state: "subtitle_visible" 0.0;
+                   inherit: "default" 0.0;
+                   rel2 {
+                      relative: 1.0 0.0;
+                      to: "elm.text.subtitle";
+                   }
+                }
+             }
+
+             part { name: "elm.text.subtitle";
+                type: TEXTBLOCK;
+                scale: 1;
+                description { state: "default" 0.0;
+                   min: 0 POPUP_SUBTITLE_HEIGHT;
+                   max: -1 POPUP_SUBTITLE_HEIGHT;
+                   text.style: "popup_subtitle_style";
+                   rel1 {
+                      relative: 1.0 0.0;
+                      to_x: "title_left_top_padding";
+                      to_y: "title_right_bottom_padding";
+                   }
+                   rel2 {
+                      relative: 0.0 0.0;
+                      to: "title_right_bottom_padding";
+                   }
+                   align: 0.5 1.0;
+                   fixed: 1 1;
+                   visible: 0;
+                }
+                description { state: "subtitle_visible" 0.0;
+                   inherit: "default" 0.0;
+                   visible: 1;
+                }
+             }
+             part { name: "access.title";
+                type: RECT;
+                repeat_events: 1;
+                description { state: "default" 0.0;
+                   rel1.to: "elm.bg.title";
+                   rel2.to: "elm.bg.title";
+                   color: 0 0 0 0;
+                }
+             }
+             part { name: "elm.swallow.content";
+                type: SWALLOW;
+                scale: 1;
+                description { state: "default" 0.0;
+                   fixed: 1 0;
+                   rel1.to: "base";
+                   rel2.to: "base";
+                }
+                description { state: "show_title_area" 0.0;
+                   inherit: "default" 0.0;
+                   rel1 {
+                      relative: 0.0 1.0;
+                      to_x: "base";
+                      to_y: "elm.bg.title";
+                   }
+                   rel2.to: "base";
+                }
+                description { state: "show_action_area" 0.0;
+                   inherit: "default" 0.0;
+                   rel1.to: "base";
+                   rel2 {
+                      relative: 1.0 0.0;
+                      to_x: "base";
+                      to_y: "elm.swallow.action_area.bg";
+                   }
+                }
+                description { state: "show_action_title_area" 0.0;
+                   inherit: "default" 0.0;
+                   rel1 {
+                      relative: 0.0 1.0;
+                      to_x: "base";
+                      to_y: "elm.bg.title";
+                   }
+                   rel2 {
+                      relative: 1.0 0.0;
+                      to_x: "base";
+                      to_y: "elm.swallow.action_area.bg";
+                   }
+                }
+             }
+             part { name: "access.body";
+                type: RECT;
+                repeat_events: 1;
+                description { state: "default" 0.0;
+                   fixed: 1 1;
+                   rel1.to: "elm.swallow.content";
+                   rel2.to: "elm.swallow.content";
+                   color: 0 0 0 0;
+                }
+             }
+             part { name: "elm.swallow.action_area.bg";
+                type: RECT;
+                scale : 1;
+                description { state: "default" 0.0;
+                   fixed : 1 1;
+                   align: 0.5 1.0;
+                   visible: 0;
+                   rel1 {
+                      relative: 0.0 1.0;
+                      to: "base";
+                   }
+                   rel2.to: "base";
+                }
+                description { state: "visible" 0.0;
+                   inherit: "default" 0.0;
+                   min: POPUP_FS_DEFAULT_BUTTON_BG_DEFAULT_MIN_INC;
+                   visible: 1;
+                   color: 245 245 242 255;
+                }
+             }
+             part { name: "elm.swallow.action_area";
+                type: SWALLOW;
+                scale : 1;
+                description { state: "default" 0.0;
+                   rel1.to: "elm.swallow.action_area.bg";
+                   rel2.to: "elm.swallow.action_area.bg";
+                }
+             }
+          }
+          programs {
+             program { name: "show_subtitle";
+                signal: "elm,state,subtitle,text,visible";
+                source: "elm";
+                action: STATE_SET "subtitle_visible" 0.0;
+                target: "elm.text.title";
+                target: "elm.text.subtitle";
+             }
+             program { name: "hide_subtitle";
+                signal: "elm,state,subtitle,text,hidden";
+                source: "elm";
+                action: STATE_SET "default" 0.0;
+                target: "elm.text.title";
+                target: "elm.text.subtitle";
+             }
+             program { name: show_title_area;
+                signal: "elm,state,title_area,visible";
+                source: "elm";
+                script {
+                   new st[31];
+                   new Float:vl;
+                   get_state(PART:"elm.swallow.action_area.bg", st, 30, vl);
+                   if (!strcmp(st, "visible"))
+                     set_state(PART:"elm.swallow.content", "show_action_title_area", 0.0);
+                   else
+                     set_state(PART:"elm.swallow.content", "show_title_area", 0.0);
+                   set_state(PART:"elm.bg.title", "visible", 0.0);
+                }
+             }
+             program { name: hide_title_area;
+                signal: "elm,state,title_area,hidden";
+                source: "elm";
+                action: STATE_SET "default" 0.0;
+                script {
+                   new st[31];
+                   new Float:vl;
+                   get_state(PART:"elm.swallow.action_area.bg", st, 30, vl);
+                   if ((!strcmp(st, "visible")) || (!strcmp(st, "landscape_visible")))
+                     set_state(PART:"elm.swallow.content", "show_action_area", 0.0);
+                   else
+                     set_state(PART:"elm.swallow.content", "default", 0.0);
+                   set_state(PART:"elm.bg.title", "default", 0.0);
+                }
+             }
+             program { name: show_action_area;
+                signal: "elm,state,action_area,visible";
+                source: "elm";
+                script {
+                   new st[31];
+                   new Float:vl;
+                   get_state(PART:"elm.bg.title", st, 30, vl);
+                   if ((!strcmp(st, "visible")))
+                     set_state(PART:"elm.swallow.content", "show_action_title_area", 0.0);
+                   else
+                     set_state(PART:"elm.swallow.content", "show_action_area", 0.0);
+                   set_state(PART:"elm.swallow.action_area.bg", "visible", 0.0);
+                }
+             }
+             program { name: hide_action_area;
+                signal: "elm,state,action_area,hidden";
+                source: "elm";
+                action: STATE_SET "default" 0.0;
+                script {
+                   new st[31];
+                   new Float:vl;
+                   get_state(PART:"elm.bg.title", st, 30, vl);
+                   if ((!strcmp(st, "visible")))
+                     set_state(PART:"elm.swallow.content", "show_title_area", 0.0);
+                   else
+                     set_state(PART:"elm.swallow.content", "default", 0.0);
+                   set_state(PART:"elm.swallow.action_area.bg", "default", 0.0);
+                }
+             }
+             program { name: "change_to_landscape";
+                action: STATE_SET "landscape" 0.0;
+                target: "base";
+                        target: "elm.bg.title";
+                after: "orientation_change";
+             }
+                 program { name: "title_change_to_portrait";
+                        action: STATE_SET "visible" 0.0;
+                        target: "elm.bg.title";
+                 }
+             program { name: "orientation_change";
+                action: SIGNAL_EMIT "elm,state,orientation,changed" "";
+                        after: "title_change_to_portrait";
+             }
+             program { name: "change_to_portrait";
+                action: STATE_SET "default" 0.0;
+                target: "base";
+                after: "orientation_change";
+             }
+             program { name: "landscape_mode";
+                source: "elm";
+                signal: "elm,state,orient,90";
+                after: "change_to_landscape";
+             }
+             program { name: "landscape_mode2";
+                source: "elm";
+                signal: "elm,state,orient,270";
+                after: "change_to_landscape";
+             }
+             program { name: "portrait_mode";
+                source: "elm";
+                signal: "elm,state,orient,0";
+                after: "change_to_portrait";
+             }
+             program { name: "portrait_mode2";
+                source: "elm";
+                signal: "elm,state,orient,180";
+                after: "change_to_portrait";
+             }
+          } /* end of programs */
+       }
+       group { name: "elm/popup/fullsrceen/notitle/default";
+          data {
+             item: "focus_highlight" "on";
+             item: "default_orient" "2"; //top, center:1 bottom:2
+             item: "title_height" POPUP_FS_TITLE_AREA_HEIGHT;
+             item: "popup_outside_pad" POPUP_FS_OUTSIDE_PADDING;
+          }
+          parts {
+             part { name: "base";
+                scale: 1;
+                type: RECT;
+                description { state: "default" 0.0;
+                   min: POPUP_FS_DEFAULT_BASE_DEFAULT_MAX_INC;
+                   max: POPUP_FS_DEFAULT_BASE_DEFAULT_MAX_INC;
+                   fixed: 1 0;
+                }
+                description { state: "landscape" 0.0;
+                   inherit: "default" 0.0;
+                   min: POPUP_FS_DEFAULT_BASE_LANDSCAPE_MAX_INC;
+                   max: POPUP_FS_DEFAULT_BASE_LANDSCAPE_MAX_INC;
+                }
+             }
+             part { name: "bg";
+                type: RECT;
+                scale: 1;
+                description { state: "default" 0.0;
+                   rel1.to: "base";
+                   rel2.to: "base";
+                   color: 255 255 255 255;
+                }
+             }
+
+               part { name: "elm.bg.title";
+                type: RECT;
+                scale: 1;
+                description { state: "default" 0.0;
+                   min: 0 0;
+                   max: 0 0;
+                   fixed: 1 1;
+                   align: 0.5 0.0;
+                               rel1.relative: 0.0 0.0;
+                   rel2.relative: 0.0 1.0;
+                               visible: 0;
+                }
+             }
+             part { name: "elm.swallow.content";
+                type: SWALLOW;
+                scale: 1;
+
+                description { state: "default" 0.0;
+                   rel1 {
+                      relative: 0.0 1.0;
+                      to_x: "base";
+                      to_y: "elm.bg.title";
+                   }
+                   rel2.to: "base";
+                }
+             }
+          }
+
+          programs {
+             program { name: "change_to_landscape";
+                action: STATE_SET "landscape" 0.0;
+                target: "base";
+                after: "orientation_change";
+             }
+             program { name: "orientation_change";
+                action: SIGNAL_EMIT "elm,state,orientation,changed" "";
+             }
+             program { name: "change_to_portrait";
+                action: STATE_SET "default" 0.0;
+                target: "base";
+                after: "orientation_change";
+             }
+             program { name: "landscape_mode";
+                source: "elm";
+                signal: "elm,state,orient,90";
+                after: "change_to_landscape";
+             }
+             program { name: "landscape_mode2";
+                source: "elm";
+                signal: "elm,state,orient,270";
+                after: "change_to_landscape";
+             }
+             program { name: "portrait_mode";
+                source: "elm";
+                signal: "elm,state,orient,0";
+                after: "change_to_portrait";
+             }
+             program { name: "portrait_mode2";
+                source: "elm";
+                signal: "elm,state,orient,180";
+                after: "change_to_portrait";
+             }
+          } /* end of programs */
+       }
diff --git a/playview/res/edje/custom/pv-custom-image.edc b/playview/res/edje/custom/pv-custom-image.edc
new file mode 100755 (executable)
index 0000000..48b3805
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+images
+{
+       /* multi window */
+       image: "multi/T01_2_mw_control_bg_left.png" COMP;
+       image: "multi/T01_2_mw_control_bg_left_press.png" COMP;
+       image: "multi/T01_2_mw_control_bg_center.png" COMP;
+       image: "multi/T01_2_mw_control_bg_center_press.png" COMP;
+       image: "multi/T01_2_mw_control_bg_right.png" COMP;
+       image: "multi/T01_2_mw_control_bg_right_press.png" COMP;
+
+       /* button images */
+       image: "button/T01_2_icon_Near_by_device.png" COMP;
+       image: "button/T01_2_icon_Near_by_device_press.png" COMP;
+       image: "button/T01_2_icon_bluetooth_headset.png" COMP;
+       image: "button/T01_2_icon_bluetooth_headset_press.png" COMP;
+
+       image: "button/T01_2_icon_check.png" COMP;
+       image: "button/T01_2_icon_check_press.png" COMP;
+       image: "button/T01_2_icon_close.png" COMP;
+       image: "button/T01_2_icon_close_press.png" COMP;
+       image: "button/T01-2_control_circle_button_01.png" COMP;
+       image: "button/T01-2_control_circle_button_01_press.png" COMP;
+       image: "button/T01-2_control_circle_button_01_focus.png" COMP;
+       image: "button/T01-2_control_circle_button_02.png" COMP;
+       image: "button/T01-2_control_circle_button_02_press.png" COMP;
+       image: "button/T01-2_control_circle_button_02_focus.png" COMP;
+       image: "button/T01-2_control_circle_button_03.png" COMP;
+       image: "button/T01-2_control_circle_button_03_press.png" COMP;
+       image: "button/core_icon_back.png" COMP;
+       image: "control/T01-2_control_circle_icon_rewind.png" COMP;
+       image: "control/T01-2_control_circle_icon_next.png" COMP;
+       /*genlist*/
+       image: "genlist/00_focus.png" COMP;
+       image: "genlist/00_list_group_bg.png" COMP;
+       image: "genlist/00_list_group_bg_press.png" COMP;
+       image: "genlist/00_popup_list_press.pngg" COMP;
+
+}
diff --git a/playview/res/edje/custom/pv-custom-layout.edc b/playview/res/edje/custom/pv-custom-layout.edc
new file mode 100755 (executable)
index 0000000..dd78f5f
--- /dev/null
@@ -0,0 +1,110 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+ group {
+       name: "elm/layout/application/play_view";
+       parts {
+               part {
+                       name: "elm.swallow.bg";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 255;
+                       }
+               }
+               part {
+                       name: "elm.swallow.event";
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                       }
+               }
+       } /* parts */
+} /* group */
+
+ group {
+       name: "elm/layout/application/multi_view";
+       parts {
+               part {
+                       name: "elm.swallow.bg";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 255;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       repeat_events : 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                       }
+               }
+       } /* parts */
+} /* group */
+group {
+       name: "elm/layout/application/detail_view";
+       parts {
+               part {
+                       name: "elm.swallow.bg";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 255;
+                       }
+               }
+               part {
+                       name: "elm.swallow.event";
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                       }
+               }
+       } /* parts */
+} /* group */
+
diff --git a/playview/res/edje/custom/pv-custom-naviframe.edc b/playview/res/edje/custom/pv-custom-naviframe.edc
new file mode 100755 (executable)
index 0000000..98f6e08
--- /dev/null
@@ -0,0 +1,2839 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+
+#define NAVIFRAME_TITLE_BG_COLOR_INC                           0 0 0 0
+#define NAVIFRAME_TOOLBAR_BG_COLOR_INC                         0 0 0 0
+#define NAVIFRAME_TITLE_TOP_PADDING_INC                                0 16
+#define NAVIFRAME_TITLE_H_INC                                          50
+#define NAVIFRAME_TOOLBAR_HEIGHT_INC                           0
+#define NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC                      63 63
+
+#define NAVIFRAME_PADDING_INC                                          20 0
+#define NAVIFRAME_PADDING2_INC                                                 6 0
+#define NAVIFRAME_PADDING3_INC                                                 8 0
+
+#define NAVIFRAME_BOTTOM_TEXT_PADDING_INC                      0 11
+#define NAVIFRAME_BOTTOM_RIGHT_PADDING_INC             26 11
+#define NAVIFRAME_BOTTOM_PADDING_INC                           0 10
+
+#define NAVIFRAME_VIEW_TRANS_TIME                                      0.3
+
+#define NAVIFRAME_TOP_LINE_COLOR                                       0 0 0 0
+
+//tag buddy
+#define NAVIFRAME_TAG_TOP_PADDING                                      116
+#define NAVIFRAME_TAG_RIGHT_PADDING                                    26
+#define NAVIFRAME_TAG_LEFT_PADDING                                     26
+#define NAVIFRAME_TAG_HEIGHT                                           192
+
+
+group {
+       name:"elm/naviframe/item/playview/basic/default";
+       alias:"elm/naviframe/item/playview/1line/default";
+       script  {
+               public tbar_bg = 0;                                     //Toolbar BG Show call count
+               public buttons_visible = 0;                     //when both buttons are visible
+               public toolbar_buttons_visible = 0;     //when both toolbar buttons are visible
+       }
+       parts {
+               part {
+                       name: "base";
+                       type: RECT;
+                       mouse_events:  0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "left" 0.0;
+                               inherit: "default" 0.0;
+                               rel1.relative: -1.0 0.0;
+                               rel2.relative: 0.0 1.0;
+                       }
+                       description {
+                               state: "right" 0.0;
+                               inherit: "default" 0.0;
+                               rel1.relative: 1.0 0.0;
+                               rel2.relative: 2.0 1.0;
+                       }
+               }
+
+               part {
+                       name: "title_swallow";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               align: 0.0 1.0;
+                               fixed: 0 1;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2 { relative: 1.0 0.0; to: "base"; }
+                               color: NAVIFRAME_TITLE_BG_COLOR_INC;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 NAVIFRAME_TITLE_H_INC;
+                               fixed: 0 1;
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2 { relative: 1.0 0.0; to: "base"; }
+                       }
+               }
+
+               part {
+                       name: "title_bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 NAVIFRAME_TITLE_H_INC;
+                               align: 0.0 0.0;
+                               fixed: 0 1;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0; to: "title_swallow"; }
+                               rel2 { relative: 1.0 0.0; to: "title_swallow"; }
+                               color: NAVIFRAME_TITLE_BG_COLOR_INC;
+                       }
+/*
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                               fixed: 0 1;
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2 { relative: 1.0 0.0; to: "base"; }
+                       }
+*/
+               }
+               part {
+                       name: "title_line";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 2;
+                               align: 0.0 0.0;
+                               fixed: 0 1;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0; to: "title_swallow"; }
+                               rel2 { relative: 1.0 0.0; to: "title_swallow"; }
+                               color: NAVIFRAME_TOP_LINE_COLOR;
+                       }
+/*
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                       }
+*/
+               }
+               part {
+                       name: "title_clip";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                       }
+               }
+               part {
+                       name: "top_padding";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_TITLE_TOP_PADDING_INC;
+                               fixed: 0 1;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 0.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }/*
+               part {
+                       name: "padding_center_text1";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_PADDING_INC;
+                               visible: 0;
+                               fixed: 1 0;
+                               align: 0.0 0.0;
+                               rel1 { relative: 1.0 0.0; to: "title_left_btn"; }
+                               rel2 { relative: 1.0 1.0; to: "title_left_btn"; }
+                       }
+               }*/
+               part {
+                       name: "padding_center_text1";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 45 0;
+                               fixed: 1 0;
+                               align: 0.0 0.5;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 0.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       repeat_events: 0;
+                       clip_to: "content_clip";
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 0.0;
+                               // _NATIVE_BUFFER_SYNC
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2 { relative: 1.0 1.0; to: "base"; }
+                               /*
+                               rel1.relative: 0.0 1.0;
+                               rel1.to_x: "base";
+                               rel1.to_y: "title_bg";
+                               rel2.relative: 1.0 0.0;
+                               rel2.to_x: "base";
+                               rel2.to_y: "toolbar_bg";
+                               */
+                       }
+                       description {
+                               state: "sip_visible" 0.0;
+                               inherit: "default" 0.0;
+                               rel2.relative: 1.0 1.0;
+                               rel2.to: "base";
+                       }
+               }
+               part {
+                       name: "content_clip";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1.to: "elm.swallow.content";
+                               rel2.to: "elm.swallow.content";
+                       }
+               }
+               part {
+                       name: "padding_center_text2";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 45 0;
+                               fixed: 1 0;
+                               align: 1.0 0.5;
+                               rel1 { relative: 1.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "padding_bottom_text";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_BOTTOM_TEXT_PADDING_INC;
+                               fixed: 0 1;
+                               align: 0.0 1.0;
+                               rel1 { relative: 0.0 1.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.text.title";
+                       type: TEXT;
+                       effect: FAR_SHADOW BOTTOM;
+                       scale: 1;
+                       repeat_events: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               text {
+                                       min: 0 0;
+                                       max: 1 0;
+                                       size: 18;
+                               }
+/*     chageable GUI
+                               color: VIDEO_TITLE_FONT_DEFAULT_COLOR;
+                               color3: 0 0 0 255;
+                               align: 0.5 0.5;
+*/
+                               color: 240 240 240 255;
+
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 1.0; to_x: "padding_center_text1"; to_y: "top_padding"; }
+                               rel2 { relative: 0.0 0.0; to_x: "padding_center_text2"; to_y: "padding_bottom_text"; }
+                       }
+               }
+               part {
+                       name: "access.title";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               rel1.to: "title_bg";
+                               rel2.to: "title_bg";
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "padding_before_text";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.0; to: "elm.text.title"; }
+                               rel2 { relative: 0.0 1.0; to: "elm.text.title"; }
+                               fixed: 1 0;
+                               min: NAVIFRAME_PADDING_INC;
+                               visible: 0;
+                       }
+               }
+
+               part {
+                       name: "click_event_area";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+
+               part {
+                       name: "title_btns_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_PADDING2_INC;
+                               fixed: 1 1;
+                               align: 0.0 0.5;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 0.0 1.0; to: "title_bg"; }
+                       }
+               }
+
+               part {
+                       name: "bottom_right_padding";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 1;
+                               align: 1.0 1.0;
+                               rel1 { relative: 1.0 1.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: NAVIFRAME_BOTTOM_RIGHT_PADDING_INC;
+                       }
+               }
+
+               part {
+                       name: "title_left_btn";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+                               fixed: 1 1;
+                               align: 0.0 0.5;
+                               rel1 { relative: 0.5 0.0; to: "title_btns_padding"; }
+                               rel2 { relative: 0.5 1.0; to: "title_btns_padding"; }
+                       }
+               }
+               part {
+                       name: "title_right_btn";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+                               align: 1 0.5;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 1.0; to_x: "title_bg"; to_y: "top_padding"; }
+                               rel2 { relative: 0.0 0.0; to: "bottom_right_padding"; }
+                       }
+               }
+               part {
+                       name: "toolbar_bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               max: 999999 0;
+                               fixed: 0 1;
+                               align: 0.0 1.0;
+                               visible: 0;
+                               rel1 { to: "base"; }
+                               rel2 { to: "base"; }
+                               color: NAVIFRAME_TOOLBAR_BG_COLOR_INC;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 NAVIFRAME_TOOLBAR_HEIGHT_INC;
+                               max: 999999 NAVIFRAME_TOOLBAR_HEIGHT_INC;
+                               visible: 1;
+                       }
+                       description {
+                               state: "sip_visible" 0.0;
+                               inherit: "default" 0.0;
+                               align: 0.0 0.0;
+                               min: 1 NAVIFRAME_TITLE_H_INC;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "pv.tag.left.padding";
+                       type: SPACER;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_TAG_LEFT_PADDING 0;
+                               fixed: 1 0;
+                               align: 0.0 0.5;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 1.0;}
+                       }
+               }
+               part {
+                       name: "pv.tag.right.padding";
+                       type: SPACER;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_TAG_RIGHT_PADDING 0;
+                               fixed: 1 0;
+                               align: 1.0 0.5;
+                               rel1 { relative: 1.0 0.0;}
+                               rel2 { relative: 1.0 1.0;}
+                       }
+               }
+               part {
+                       name: "pv.tag.top.padding";
+                       type: SPACER;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 NAVIFRAME_TAG_TOP_PADDING;
+                               fixed: 0 1;
+                               align: 0.5 0.0;
+                               rel1 { relative: 1.0 0.0; to: "pv.tag.left.padding";}
+                               rel2 { relative: 0.0 0.0; to: "pv.tag.right.padding";}
+                       }
+               }
+               part {
+                       name: "pv.tag.bg";
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 0 NAVIFRAME_TAG_HEIGHT;
+                               fixed: 0 1;
+                               align: 0.5 0.0;
+                               rel1 { relative: 0.0 1.0;  to:"pv.tag.top.padding";}
+                               rel2 { relative: 1.0 1.0;  to:"pv.tag.top.padding";}
+                               color: 90 46 7 255;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "content_new_pushed";
+                       signal: "elm,state,new,pushed,internal";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "show_finished";
+               }
+               program {
+                       name: "content_cur_pushed";
+                       signal: "elm,state,cur,pushed,internal";
+                       source: "";
+                       action: STATE_SET "left" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "pushed_finished";
+               }
+               program {
+                       name: "content_prev_popped";
+                       signal: "elm,state,prev,popped,internal";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "show_finished";
+               }
+               program {
+                       name: "content_cur_popped";
+                       signal: "elm,state,cur,popped,internal";
+                       source: "";
+                       action: STATE_SET "right" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "popped_finished";
+               }
+               program {
+                       name: "cur_pushed";
+                       signal: "elm,state,cur,pushed";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "default", 0.0);
+                               emit("elm,state,cur,pushed,internal", "");
+                       }
+               }
+               program {
+                       name: "new_pushed";
+                       signal: "elm,state,new,pushed";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "right", 0.0);
+                               emit("elm,state,new,pushed,internal", "");
+                       }
+               }
+               program {
+                       name: "prev_popped";
+                       signal: "elm,state,prev,popped";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "left", 0.0);
+                               emit("elm,state,prev,popped,internal", "");
+                       }
+               }
+               program {
+                       name: "cur_popped";
+                       signal: "elm,state,cur,popped";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "default", 0.0);
+                               emit("elm,state,cur,popped,internal", "");
+                       }
+               }
+               program {
+                       name: "visible";
+                       signal: "elm,state,visible";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+               }
+               program {
+                       name: "title_show";
+                       signal: "elm,state,title,show";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "title_swallow";
+                       transition: LINEAR 0.2;
+                       after: "show_finished";
+               }
+               program {
+                       name: "title_hide";
+                       signal: "elm,state,title,hide";
+                       source: "elm";
+                       action: STATE_SET "hide" 0.0;
+                       target: "title_swallow";
+                       transition: LINEAR 0.2;
+                       after: "hide_finished";
+               }
+               program {
+                       name: "no_effect_title_hide";
+                       signal: "elm,state,title,no,effect,hide";
+                       source: "elm";
+                       action: STATE_SET "hide" 0.0;
+                       target: "title_swallow";
+                       transition: LINEAR 0.0;
+                       after: "hide_finished";
+               }
+               program {
+                       name: "subtitle_show";
+                       signal: "elm,state,subtitle,show";
+                       source: "elm";
+                       script {
+                               set_state(PART:"elm.text.title", "subtitle_is_set", 0.0);
+                       }
+               }
+               program {
+                       name: "subtitle_hide";
+                       signal: "elm,state,subtitle,hide";
+                       source: "elm";
+                       script {
+                               set_state(PART:"elm.text.title", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "prev_btn_show";
+                       signal: "elm,state,prev_btn,show";
+                       source: "elm";
+                       script {
+                               emit("elm,state,toolbar_bg,show", "elm");
+                       }
+               }
+               program {
+                       name: "prev_btn_hide";
+                       signal: "elm,state,prev_btn,hide";
+                       source: "elm";
+                       script {
+                               emit("elm,state,toolbar_bg,hide", "elm");
+                       }
+               }
+               program {
+                       name: "sip_show";
+                       signal: "elm,state,sip,shown";
+                       source: "";
+                       script {
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                               else
+                               {
+                                       set_state(PART:"toolbar_bg", "sip_visible", 0.0);
+                                       set_state(PART:"elm.swallow.content", "sip_visible", 0.0);
+                               }
+                       }
+               }
+
+               program {
+                       name: "sip_hide";
+                       signal: "elm,state,sip,hidden";
+                       source: "";
+                       script {
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                               else
+                               {
+                                       set_state(PART:"toolbar_bg", "visible", 0.0);
+                                       set_state(PART:"elm.swallow.content", "default", 0.0);
+                               }
+                       }
+               }
+               program {
+                       name: "left_btn_show";
+                       signal: "elm,state,title_left_btn,show";
+                       source: "elm";
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) + 1);
+                               set_state(PART:"bottom_right_padding", "visible", 0.0);
+                       }
+               }
+               program {
+                       name: "left_btn_hide";
+                       signal: "elm,state,title_left_btn,hide";
+                       source: "elm";
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) - 1);
+                               if (get_int(buttons_visible) == 0)
+                                       set_state(PART:"bottom_right_padding", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "right_btn_show";
+                       signal: "elm,state,title_right_btn,show";
+                       source: "elm";
+                       action: STATE_SET "visible" 0.0;
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) + 1);
+                               set_state(PART:"bottom_right_padding", "visible", 0.0);
+                       }
+               }
+               program {
+                       name: "right_btn_hide";
+                       signal: "elm,state,title_right_btn,hide";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) - 1);
+                               if (get_int(buttons_visible) == 0)
+                                       set_state(PART:"bottom_right_padding", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "toolbar_bg_show";
+                       signal: "elm,state,toolbar_bg,show";
+                       source: "elm";
+                       script {
+                               set_state(PART:"toolbar_bg", "visible", 0.0);
+                               set_int(tbar_bg, get_int(tbar_bg) + 1);
+                       }
+               }
+               program {
+                       name: "toolbar_bg_hide";
+                       signal: "elm,state,toolbar_bg,hide";
+                       source: "elm";
+                       script {
+                               set_int(tbar_bg, get_int(tbar_bg) - 1);
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "toolbar_open";
+                       signal: "elm,state,toolbar,open";
+                       source: "";
+                       action: STATE_SET "visible" 0.0;
+                       target: "toolbar_bg";
+                       transition: LINEAR 0.2;
+               }
+               program {
+                       name: "toolbar_close";
+                       signal: "elm,state,toolbar,close";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "toolbar_bg";
+                       transition: LINEAR 0.2;
+               }
+
+               program {
+                       name: "show_finished";
+                       action: SIGNAL_EMIT "elm,action,show,finished" "";
+               }
+               program {
+                       name: "hide_finished";
+                       action: SIGNAL_EMIT "elm,action,hide,finished" "";
+               }
+
+               program {
+                       name: "pushed_finished";
+                       action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+               }
+               program {
+                       name: "popped_finished";
+                       action: SIGNAL_EMIT "elm,action,popped,finished" "";
+               }
+               program {
+                       name: "title_clicked";
+                       signal: "mouse,clicked,1";
+                       source: "click_event_area";
+                       action: SIGNAL_EMIT "elm,action,title,clicked" "";
+               }
+               program {
+                       name: "display_mode_compress";
+                       signal: "display,mode,compress";
+                       source: "";
+                       action: SIGNAL_EMIT "elm,state,toolbar,instant_close" "";
+               }
+               program {
+                       name: "display_mode_default";
+                       signal: "display,mode,default";
+                       source: "";
+                       action: SIGNAL_EMIT "elm,state,toolbar,instant_open" "";
+               }
+               program {
+                       name: "pv.tag.bg.hide";
+                       signal: "signal.pv.tag.bg.hide";
+                       source: "*";
+                       action: STATE_SET "hide" 0.0;
+                       target: "pv.tag.bg";
+               }
+               program {
+                       name: "pv.tag.bg.show";
+                       signal: "signal.pv.tag.bg.show";
+                       source: "*";
+                       action: STATE_SET "default" 0.0;
+                       target: "pv.tag.bg";
+               }
+       }
+}
+
+
+
+group {
+       name:"elm/naviframe/item/playview/multiwin/default";
+       script  {
+               public tbar_bg = 0;                                     //Toolbar BG Show call count
+               public buttons_visible = 0;                     //when both buttons are visible
+               public toolbar_buttons_visible = 0;     //when both toolbar buttons are visible
+       }
+       parts {
+               part {
+                       name: "base";
+                       type: RECT;
+                       mouse_events:  0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "left" 0.0;
+                               inherit: "default" 0.0;
+                               rel1.relative: -1.0 0.0;
+                               rel2.relative: 0.0 1.0;
+                       }
+                       description {
+                               state: "right" 0.0;
+                               inherit: "default" 0.0;
+                               rel1.relative: 1.0 0.0;
+                               rel2.relative: 2.0 1.0;
+                       }
+               }
+               part {
+                       name: "title_bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               align: 0.0 0.0;
+                               fixed: 0 1;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2 { relative: 1.0 0.0; to: "base"; }
+                               color: NAVIFRAME_TITLE_BG_COLOR_INC;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                               fixed: 0 1;
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2 { relative: 1.0 0.0; to: "base"; }
+                       }
+               }
+               part {
+                       name: "title_clip";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                       }
+               }
+               part {
+                       name: "top_padding";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 0 1;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 0.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "padding_center_text1";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 0;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 0.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       repeat_events: 0;
+                       clip_to: "content_clip";
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 0.0;
+                               rel1.relative: 0.0 1.0;
+                               rel1.to_x: "base";
+                               rel1.to_y: "title_bg";
+                               rel2.relative: 1.0 0.0;
+                               rel2.to_x: "base";
+                               rel2.to_y: "toolbar_bg";
+                       }
+                       description {
+                               state: "sip_visible" 0.0;
+                               inherit: "default" 0.0;
+                               rel2.relative: 1.0 1.0;
+                               rel2.to: "base";
+                       }
+               }
+               part {
+                       name: "content_clip";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1.to: "elm.swallow.content";
+                               rel2.to: "elm.swallow.content";
+                       }
+               }
+               part {
+                       name: "padding_center_text2";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 0;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.0; to: "title_btns_padding_ext"; }
+                               rel2 { relative: 0.0 1.0; to: "title_btns_padding_ext"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "padding_bottom_text";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 0 1;
+                               align: 0.0 1.0;
+                               rel1 { relative: 0.0 1.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.text.title";
+                       type: TEXT;
+                       effect: FAR_SHADOW BOTTOM;
+                       scale: 1;
+                       repeat_events: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               text {
+                                       font: VIDEO_TITLE_FONT_STYLE;
+                                       size: VIDEO_TITLE_FONT_SIZE;
+                                       min: 0 0;
+                                       max: 1 0;
+                                       align: 0.0 0.5;
+                               }
+                               color: VIDEO_TITLE_FONT_DEFAULT_COLOR;
+                               color3: 0 0 0 255;
+                               align: 0.0 0.5;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 1.0; to_x: "padding_center_text1"; to_y: "top_padding"; }
+                               rel2 { relative: 0.0 0.0; to_x: "padding_center_text2"; to_y: "padding_bottom_text"; }
+                       }
+               }
+               part {
+                       name: "access.title";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               rel1.to: "title_bg";
+                               rel2.to: "title_bg";
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "padding_before_text";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.0; to: "elm.text.title"; }
+                               rel2 { relative: 0.0 1.0; to: "elm.text.title"; }
+                               fixed: 1 0;
+                               min: 0 0;
+                               visible: 0;
+                       }
+               }
+
+               part {
+                       name: "click_event_area";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "title_left_btn_ext";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: 0 0;
+                               fixed: 1 1;
+                               align: 1 0.5;
+                               rel1 { relative: 0.0 0.0; to: "title_btns_padding_ext"; }
+                               rel2 { relative: 0.0 1.0; to: "title_btns_padding_ext"; }
+                       }
+               }
+               part {
+                       name: "title_btns_padding_ext";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 1;
+                               align: 1 0.5;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0; to: "title_left_btn"; }
+                               rel2 { relative: 0.0 1.0; to: "title_left_btn"; }
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                       }
+               }
+               part {
+                       name: "title_left_btn";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: 0 0;
+                               fixed: 1 1;
+                               align: 1 0.5;
+                               rel1 { relative: 0.0 0.0; to: "title_btns_padding"; }
+                               rel2 { relative: 0.0 1.0; to: "title_btns_padding"; }
+                       }
+               }
+               part {
+                       name: "title_btns_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 1;
+                               align: 1 0.5;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0; to: "title_right_btn"; }
+                               rel2 { relative: 0.0 1.0; to: "title_right_btn"; }
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                       }
+               }
+               part {
+                       name: "bottom_right_padding";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 1;
+                               align: 1.0 1.0;
+                               rel1 { relative: 1.0 1.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                       }
+               }
+               part {
+                       name: "title_right_btn";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: 0 0;
+                               align: 1 0.5;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 1.0; to_x: "title_bg"; to_y: "top_padding"; }
+                               rel2 { relative: 0.0 0.0; to: "bottom_right_padding"; }
+                       }
+               }
+               part {
+                       name: "toolbar_bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               max: 999999 0;
+                               fixed: 0 1;
+                               align: 0.0 1.0;
+                               visible: 0;
+                               rel1 { to: "base"; }
+                               rel2 { to: "base"; }
+                               color: 0 0 0 0;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                               max: 999999 0;
+                               visible: 1;
+                       }
+                       description {
+                               state: "sip_visible" 0.0;
+                               inherit: "default" 0.0;
+                               align: 0.0 0.0;
+                               min: 1 0;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                               visible: 1;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "content_new_pushed";
+                       signal: "elm,state,new,pushed,internal";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "show_finished";
+               }
+               program {
+                       name: "content_cur_pushed";
+                       signal: "elm,state,cur,pushed,internal";
+                       source: "";
+                       action: STATE_SET "left" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "pushed_finished";
+               }
+               program {
+                       name: "content_prev_popped";
+                       signal: "elm,state,prev,popped,internal";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "show_finished";
+               }
+               program {
+                       name: "content_cur_popped";
+                       signal: "elm,state,cur,popped,internal";
+                       source: "";
+                       action: STATE_SET "right" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "popped_finished";
+               }
+               program {
+                       name: "cur_pushed";
+                       signal: "elm,state,cur,pushed";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "default", 0.0);
+                               emit("elm,state,cur,pushed,internal", "");
+                       }
+               }
+               program {
+                       name: "new_pushed";
+                       signal: "elm,state,new,pushed";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "right", 0.0);
+                               emit("elm,state,new,pushed,internal", "");
+                       }
+               }
+               program {
+                       name: "prev_popped";
+                       signal: "elm,state,prev,popped";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "left", 0.0);
+                               emit("elm,state,prev,popped,internal", "");
+                       }
+               }
+               program {
+                       name: "cur_popped";
+                       signal: "elm,state,cur,popped";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "default", 0.0);
+                               emit("elm,state,cur,popped,internal", "");
+                       }
+               }
+               program {
+                       name: "visible";
+                       signal: "elm,state,visible";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+               }
+               program {
+                       name: "title_show";
+                       signal: "elm,state,title,show";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "title_bg";
+                       transition: LINEAR 0.4;
+                       after: "show_finished";
+               }
+               program {
+                       name: "title_hide";
+                       signal: "elm,state,title,hide";
+                       source: "elm";
+                       action: STATE_SET "hide" 0.0;
+                       target: "title_bg";
+                       transition: LINEAR 0.4;
+                       after: "hide_finished";
+               }
+               program {
+                       name: "subtitle_show";
+                       signal: "elm,state,subtitle,show";
+                       source: "elm";
+                       script {
+                               set_state(PART:"elm.text.title", "subtitle_is_set", 0.0);
+                       }
+               }
+               program {
+                       name: "subtitle_hide";
+                       signal: "elm,state,subtitle,hide";
+                       source: "elm";
+                       script {
+                               set_state(PART:"elm.text.title", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "prev_btn_show";
+                       signal: "elm,state,prev_btn,show";
+                       source: "elm";
+                       script {
+                               emit("elm,state,toolbar_bg,show", "elm");
+                       }
+               }
+               program {
+                       name: "prev_btn_hide";
+                       signal: "elm,state,prev_btn,hide";
+                       source: "elm";
+                       script {
+                               emit("elm,state,toolbar_bg,hide", "elm");
+                       }
+               }
+               program {
+                       name: "sip_show";
+                       signal: "elm,state,sip,shown";
+                       source: "";
+                       script {
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                               else
+                               {
+                                       set_state(PART:"toolbar_bg", "sip_visible", 0.0);
+                                       set_state(PART:"elm.swallow.content", "sip_visible", 0.0);
+                               }
+                       }
+               }
+
+               program {
+                       name: "sip_hide";
+                       signal: "elm,state,sip,hidden";
+                       source: "";
+                       script {
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                               else
+                               {
+                                       set_state(PART:"toolbar_bg", "visible", 0.0);
+                                       set_state(PART:"elm.swallow.content", "default", 0.0);
+                               }
+                       }
+               }
+               program {
+                       name: "left_btn_show";
+                       signal: "elm,state,title_left_btn,show";
+                       source: "elm";
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) + 1);
+                               set_state(PART:"bottom_right_padding", "visible", 0.0);
+                               if (get_int(buttons_visible) >= 2)
+                                       set_state(PART:"title_btns_padding", "visible", 0.0);
+                       }
+               }
+               program {
+                       name: "left_btn_hide";
+                       signal: "elm,state,title_left_btn,hide";
+                       source: "elm";
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) - 1);
+                               set_state(PART:"title_btns_padding", "default", 0.0);
+                               if (get_int(buttons_visible) == 0)
+                                       set_state(PART:"bottom_right_padding", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "right_btn_show";
+                       signal: "elm,state,title_right_btn,show";
+                       source: "elm";
+                       action: STATE_SET "visible" 0.0;
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) + 1);
+                               set_state(PART:"bottom_right_padding", "visible", 0.0);
+                               if (get_int(buttons_visible) >= 2)
+                                       set_state(PART:"title_btns_padding", "visible", 0.0);
+                       }
+               }
+               program {
+                       name: "right_btn_hide";
+                       signal: "elm,state,title_right_btn,hide";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) - 1);
+                               set_state(PART:"title_btns_padding", "default", 0.0);
+                               if (get_int(buttons_visible) == 0)
+                                       set_state(PART:"bottom_right_padding", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "toolbar_bg_show";
+                       signal: "elm,state,toolbar_bg,show";
+                       source: "elm";
+                       script {
+                               set_state(PART:"toolbar_bg", "visible", 0.0);
+                               set_int(tbar_bg, get_int(tbar_bg) + 1);
+                       }
+               }
+               program {
+                       name: "toolbar_bg_hide";
+                       signal: "elm,state,toolbar_bg,hide";
+                       source: "elm";
+                       script {
+                               set_int(tbar_bg, get_int(tbar_bg) - 1);
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "toolbar_open";
+                       signal: "elm,state,toolbar,open";
+                       source: "";
+                       action: STATE_SET "visible" 0.0;
+                       target: "toolbar_bg";
+                       transition: LINEAR 0.2;
+               }
+               program {
+                       name: "toolbar_close";
+                       signal: "elm,state,toolbar,close";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "toolbar_bg";
+                       transition: LINEAR 0.2;
+               }
+
+               program {
+                       name: "show_finished";
+                       action: SIGNAL_EMIT "elm,action,show,finished" "";
+               }
+               program {
+                       name: "hide_finished";
+                       action: SIGNAL_EMIT "elm,action,hide,finished" "";
+               }
+
+               program {
+                       name: "pushed_finished";
+                       action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+               }
+               program {
+                       name: "popped_finished";
+                       action: SIGNAL_EMIT "elm,action,popped,finished" "";
+               }
+               program {
+                       name: "title_clicked";
+                       signal: "mouse,clicked,1";
+                       source: "click_event_area";
+                       action: SIGNAL_EMIT "elm,action,title,clicked" "";
+               }
+               program {
+                       name: "display_mode_compress";
+                       signal: "display,mode,compress";
+                       source: "";
+                       action: SIGNAL_EMIT "elm,state,toolbar,instant_close" "";
+               }
+               program {
+                       name: "display_mode_default";
+                       signal: "display,mode,default";
+                       source: "";
+                       action: SIGNAL_EMIT "elm,state,toolbar,instant_open" "";
+               }
+       }
+}
+
+group {
+       name:"elm/naviframe/item/playview/trim/default";
+       script  {
+               public tbar_bg = 0;                                     //Toolbar BG Show call count
+               public buttons_visible = 0;                     //when both buttons are visible
+               public toolbar_buttons_visible = 0;     //when both toolbar buttons are visible
+       }
+       parts {
+               part {
+                       name: "base";
+                       type: RECT;
+                       mouse_events:  0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "left" 0.0;
+                               inherit: "default" 0.0;
+                               rel1.relative: -1.0 0.0;
+                               rel2.relative: 0.0 1.0;
+                       }
+                       description {
+                               state: "right" 0.0;
+                               inherit: "default" 0.0;
+                               rel1.relative: 1.0 0.0;
+                               rel2.relative: 2.0 1.0;
+                       }
+               }
+               part {
+                       name: "title_bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 NAVIFRAME_TITLE_H_INC;
+                               align: 0.0 0.0;
+                               fixed: 0 1;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2 { relative: 1.0 0.0; to: "base"; }
+                               color: NAVIFRAME_TITLE_BG_COLOR_INC;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                               fixed: 0 1;
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2 { relative: 1.0 0.0; to: "base"; }
+                       }
+               }
+               part {
+                       name: "title_line";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 6;
+                               align: 0.0 0.0;
+                               fixed: 0 1;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 0.0; to: "title_bg"; }
+                               color: NAVIFRAME_TOP_LINE_COLOR;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                               min: 0 0;
+                       }
+               }
+               part {
+                       name: "title_clip";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                       }
+               }
+               part {
+                       name: "top_padding";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_TITLE_TOP_PADDING_INC;
+                               fixed: 0 1;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 0.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "padding_center_text1";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_PADDING_INC;
+                               visible: 0;
+                               fixed: 1 0;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 0.0 1.0; to: "title_bg"; }
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       repeat_events: 0;
+                       clip_to: "content_clip";
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 0.0;
+                               rel1.relative: 0.0 1.0;
+                               rel1.to_x: "base";
+                               rel1.to_y: "title_bg";
+                               rel2.relative: 1.0 0.0;
+                               rel2.to_x: "base";
+                               rel2.to_y: "toolbar_bg";
+                       }
+                       description {
+                               state: "sip_visible" 0.0;
+                               inherit: "default" 0.0;
+                               rel2.relative: 1.0 1.0;
+                               rel2.to: "base";
+                       }
+               }
+               part {
+                       name: "content_clip";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1.to: "elm.swallow.content";
+                               rel2.to: "elm.swallow.content";
+                       }
+               }
+               part {
+                       name: "padding_center_text2";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_PADDING2_INC;
+                               fixed: 1 0;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.0; to: "title_left_btn"; }
+                               rel2 { relative: 0.0 1.0; to: "title_left_btn"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "padding_bottom_text";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_BOTTOM_TEXT_PADDING_INC;
+                               fixed: 0 1;
+                               align: 0.0 1.0;
+                               rel1 { relative: 0.0 1.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.text.title";
+                       type: TEXT;
+                       effect: FAR_SHADOW BOTTOM;
+                       scale: 1;
+                       repeat_events: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               text {
+                                       font: VIDEO_TITLE_FONT_STYLE;
+                                       size: VIDEO_TITLE_FONT_SIZE;
+                                       min: 0 0;
+                                       max: 1 0;
+                                       align: 0.0 0.5;
+                               }
+                               color: VIDEO_TITLE_FONT_DEFAULT_COLOR;
+                               color3: 0 0 0 255;
+                               align: 0.0 0.5;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 1.0; to_x: "padding_center_text1"; to_y: "top_padding"; }
+                               rel2 { relative: 0.0 0.0; to_x: "padding_center_text2"; to_y: "padding_bottom_text"; }
+                       }
+               }
+
+               part {
+                       name: "access.title";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               rel1.to: "title_bg";
+                               rel2.to: "title_bg";
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "padding_before_text";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.0; to: "elm.text.title"; }
+                               rel2 { relative: 0.0 1.0; to: "elm.text.title"; }
+                               fixed: 1 0;
+                               min: NAVIFRAME_PADDING_INC;
+                               visible: 0;
+                       }
+               }
+
+               part {
+                       name: "click_event_area";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "title_left_btn_line_shadow";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 1 48;
+                               fixed: 1 1;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.5; to_x: "title_left_btn_line"; to_y: "title_bg"; }
+                               rel2 { relative: 0.0 0.5; to_x: "title_left_btn_line"; to_y: "title_bg"; }
+                               color: 0 0 0 81;
+                       }
+               }
+
+               part {
+                       name: "title_left_btn_line";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 2 48;
+                               fixed: 1 1;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.5; to_x: "title_left_btns_padding"; to_y: "title_bg"; }
+                               rel2 { relative: 0.0 0.5; to_x: "title_left_btns_padding"; to_y: "title_bg"; }
+                               color: 255 255 255 81;
+                       }
+               }
+
+               part {
+                       name: "title_left_btns_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_PADDING2_INC;
+                               fixed: 1 1;
+                               align: 1.0 0.5;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0; to_x: "title_left_btn"; to_y: "title_bg"; }
+                               rel2 { relative: 0.0 1.0; to_x: "title_left_btn"; to_y: "title_bg"; }
+                       }
+               }
+
+               part {
+                       name: "title_left_btn";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+                               fixed: 1 1;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.0; to: "title_btns_padding"; }
+                               rel2 { relative: 0.0 1.0; to: "title_btns_padding"; }
+                       }
+               }
+
+               part {
+                       name: "title_btns_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_PADDING2_INC;
+                               fixed: 1 1;
+                               align: 1.0 0.5;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0; to_x: "title_right_btn_line"; to_y: "title_bg"; }
+                               rel2 { relative: 0.0 1.0; to_x: "title_right_btn_line"; to_y: "title_bg"; }
+                       }
+               }
+
+               part {
+                       name: "title_right_btn_line_shadow";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 1 48;
+                               fixed: 1 1;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.5; to_x: "title_right_btn_line"; to_y: "title_bg"; }
+                               rel2 { relative: 0.0 0.5; to_x: "title_right_btn_line"; to_y: "title_bg"; }
+                               color: 0 0 0 81;
+                       }
+               }
+
+               part {
+                       name: "title_right_btn_line";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 2 48;
+                               fixed: 1 1;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.5; to_x: "title_btns_line_padding"; to_y: "title_bg"; }
+                               rel2 { relative: 0.0 0.5; to_x: "title_btns_line_padding"; to_y: "title_bg"; }
+                               color: 255 255 255 81;
+                       }
+               }
+
+               part {
+                       name: "title_btns_line_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_PADDING2_INC;
+                               fixed: 1 1;
+                               align: 1.0 0.5;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0; to_x: "title_right_btn"; to_y: "title_bg"; }
+                               rel2 { relative: 0.0 1.0; to_x: "title_right_btn"; to_y: "title_bg"; }
+                       }
+               }
+
+               part {
+                       name: "bottom_right_padding";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 1;
+                               align: 1.0 1.0;
+                               rel1 { relative: 1.0 1.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: NAVIFRAME_PADDING2_INC;
+                       }
+               }
+
+
+               part {
+                       name: "title_right_btn";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+                               align: 1.0 0.5;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 0.5; to_x: "bottom_right_padding"; to_y: "title_bg"; }
+                               rel2 { relative: 0.0 0.5; to_x: "bottom_right_padding"; to_y: "title_bg"; }
+                       }
+               }
+
+               part {
+                       name: "toolbar_bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               max: 999999 0;
+                               fixed: 0 1;
+                               align: 0.0 1.0;
+                               visible: 0;
+                               rel1 { to: "base"; }
+                               rel2 { to: "base"; }
+                               color: NAVIFRAME_TOOLBAR_BG_COLOR_INC;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 NAVIFRAME_TOOLBAR_HEIGHT_INC;
+                               max: 999999 NAVIFRAME_TOOLBAR_HEIGHT_INC;
+                               visible: 1;
+                       }
+                       description {
+                               state: "sip_visible" 0.0;
+                               inherit: "default" 0.0;
+                               align: 0.0 0.0;
+                               min: 1 NAVIFRAME_TITLE_H_INC;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                               visible: 1;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "content_new_pushed";
+                       signal: "elm,state,new,pushed,internal";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "show_finished";
+               }
+               program {
+                       name: "content_cur_pushed";
+                       signal: "elm,state,cur,pushed,internal";
+                       source: "";
+                       action: STATE_SET "left" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "pushed_finished";
+               }
+               program {
+                       name: "content_prev_popped";
+                       signal: "elm,state,prev,popped,internal";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "show_finished";
+               }
+               program {
+                       name: "content_cur_popped";
+                       signal: "elm,state,cur,popped,internal";
+                       source: "";
+                       action: STATE_SET "right" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "popped_finished";
+               }
+               program {
+                       name: "cur_pushed";
+                       signal: "elm,state,cur,pushed";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "default", 0.0);
+                               emit("elm,state,cur,pushed,internal", "");
+                       }
+               }
+               program {
+                       name: "new_pushed";
+                       signal: "elm,state,new,pushed";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "right", 0.0);
+                               emit("elm,state,new,pushed,internal", "");
+                       }
+               }
+               program {
+                       name: "prev_popped";
+                       signal: "elm,state,prev,popped";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "left", 0.0);
+                               emit("elm,state,prev,popped,internal", "");
+                       }
+               }
+               program {
+                       name: "cur_popped";
+                       signal: "elm,state,cur,popped";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "default", 0.0);
+                               emit("elm,state,cur,popped,internal", "");
+                       }
+               }
+               program {
+                       name: "visible";
+                       signal: "elm,state,visible";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+               }
+               program {
+                       name: "title_show";
+                       signal: "elm,state,title,show";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "title_bg";
+                       target: "title_line";
+               }
+               program {
+                       name: "title_hide";
+                       signal: "elm,state,title,hide";
+                       source: "elm";
+                       action: STATE_SET "hide" 0.0;
+                       target: "title_bg";
+                       target: "title_line";
+               }
+               program {
+                       name: "subtitle_show";
+                       signal: "elm,state,subtitle,show";
+                       source: "elm";
+                       script {
+                               set_state(PART:"elm.text.title", "subtitle_is_set", 0.0);
+                       }
+               }
+               program {
+                       name: "subtitle_hide";
+                       signal: "elm,state,subtitle,hide";
+                       source: "elm";
+                       script {
+                               set_state(PART:"elm.text.title", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "prev_btn_show";
+                       signal: "elm,state,prev_btn,show";
+                       source: "elm";
+                       script {
+                               emit("elm,state,toolbar_bg,show", "elm");
+                       }
+               }
+               program {
+                       name: "prev_btn_hide";
+                       signal: "elm,state,prev_btn,hide";
+                       source: "elm";
+                       script {
+                               emit("elm,state,toolbar_bg,hide", "elm");
+                       }
+               }
+               program {
+                       name: "sip_show";
+                       signal: "elm,state,sip,shown";
+                       source: "";
+                       script {
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                               else
+                               {
+                                       set_state(PART:"toolbar_bg", "sip_visible", 0.0);
+                                       set_state(PART:"elm.swallow.content", "sip_visible", 0.0);
+                               }
+                       }
+               }
+
+               program {
+                       name: "sip_hide";
+                       signal: "elm,state,sip,hidden";
+                       source: "";
+                       script {
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                               else
+                               {
+                                       set_state(PART:"toolbar_bg", "visible", 0.0);
+                                       set_state(PART:"elm.swallow.content", "default", 0.0);
+                               }
+                       }
+               }
+               program {
+                       name: "left_btn_show";
+                       signal: "elm,state,title_left_btn,show";
+                       source: "elm";
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) + 1);
+                               set_state(PART:"bottom_right_padding", "visible", 0.0);
+                       }
+               }
+               program {
+                       name: "left_btn_hide";
+                       signal: "elm,state,title_left_btn,hide";
+                       source: "elm";
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) - 1);
+                               if (get_int(buttons_visible) == 0)
+                                       set_state(PART:"bottom_right_padding", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "right_btn_show";
+                       signal: "elm,state,title_right_btn,show";
+                       source: "elm";
+                       action: STATE_SET "visible" 0.0;
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) + 1);
+                               set_state(PART:"bottom_right_padding", "visible", 0.0);
+                       }
+               }
+               program {
+                       name: "right_btn_hide";
+                       signal: "elm,state,title_right_btn,hide";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) - 1);
+                               if (get_int(buttons_visible) == 0)
+                                       set_state(PART:"bottom_right_padding", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "toolbar_bg_show";
+                       signal: "elm,state,toolbar_bg,show";
+                       source: "elm";
+                       script {
+                               set_state(PART:"toolbar_bg", "visible", 0.0);
+                               set_int(tbar_bg, get_int(tbar_bg) + 1);
+                       }
+               }
+               program {
+                       name: "toolbar_bg_hide";
+                       signal: "elm,state,toolbar_bg,hide";
+                       source: "elm";
+                       script {
+                               set_int(tbar_bg, get_int(tbar_bg) - 1);
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "toolbar_open";
+                       signal: "elm,state,toolbar,open";
+                       source: "";
+                       action: STATE_SET "visible" 0.0;
+                       target: "toolbar_bg";
+                       transition: LINEAR 0.2;
+               }
+               program {
+                       name: "toolbar_close";
+                       signal: "elm,state,toolbar,close";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "toolbar_bg";
+                       transition: LINEAR 0.2;
+               }
+
+               program {
+                       name: "show_finished";
+                       action: SIGNAL_EMIT "elm,action,show,finished" "";
+               }
+               program {
+                       name: "hide_finished";
+                       action: SIGNAL_EMIT "elm,action,hide,finished" "";
+               }
+
+               program {
+                       name: "pushed_finished";
+                       action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+               }
+               program {
+                       name: "popped_finished";
+                       action: SIGNAL_EMIT "elm,action,popped,finished" "";
+               }
+               program {
+                       name: "title_clicked";
+                       signal: "mouse,clicked,1";
+                       source: "click_event_area";
+                       action: SIGNAL_EMIT "elm,action,title,clicked" "";
+               }
+               program {
+                       name: "display_mode_compress";
+                       signal: "display,mode,compress";
+                       source: "";
+                       action: SIGNAL_EMIT "elm,state,toolbar,instant_close" "";
+               }
+               program {
+                       name: "display_mode_default";
+                       signal: "display,mode,default";
+                       source: "";
+                       action: SIGNAL_EMIT "elm,state,toolbar,instant_open" "";
+               }
+       }
+}
+
+
+
+group {
+       name:"elm/naviframe/item/playview/chapter/default";
+       script  {
+               public tbar_bg = 0;                                     //Toolbar BG Show call count
+               public buttons_visible = 0;                     //when both buttons are visible
+               public toolbar_buttons_visible = 0;     //when both toolbar buttons are visible
+       }
+       parts {
+               part {
+                       name: "base";
+                       type: RECT;
+                       mouse_events:  0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "left" 0.0;
+                               inherit: "default" 0.0;
+                               rel1.relative: -1.0 0.0;
+                               rel2.relative: 0.0 1.0;
+                       }
+                       description {
+                               state: "right" 0.0;
+                               inherit: "default" 0.0;
+                               rel1.relative: 1.0 0.0;
+                               rel2.relative: 2.0 1.0;
+                       }
+               }
+               part {
+                       name: "title_bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               align: 0.0 0.0;
+                               fixed: 0 1;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2 { relative: 1.0 0.0; to: "base"; }
+                               color: NAVIFRAME_TITLE_BG_COLOR_INC;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                               fixed: 0 1;
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2 { relative: 1.0 0.0; to: "base"; }
+                       }
+               }
+               part {
+                       name: "title_line";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 6;
+                               align: 0.0 0.0;
+                               fixed: 0 1;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 0.0; to: "title_bg"; }
+                               color: NAVIFRAME_TOP_LINE_COLOR;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                       }
+               }
+               part {
+                       name: "title_clip";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                       }
+               }
+               part {
+                       name: "top_padding";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 0 1;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 0.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "padding_center_text1";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 0;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 0.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       repeat_events: 0;
+                       clip_to: "content_clip";
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 0.0;
+                               rel1.relative: 0.0 1.0;
+                               rel1.to_x: "base";
+                               rel1.to_y: "title_bg";
+                               rel2.relative: 1.0 0.0;
+                               rel2.to_x: "base";
+                               rel2.to_y: "toolbar_bg";
+                       }
+                       description {
+                               state: "sip_visible" 0.0;
+                               inherit: "default" 0.0;
+                               rel2.relative: 1.0 1.0;
+                               rel2.to: "base";
+                       }
+               }
+               part {
+                       name: "content_clip";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1.to: "elm.swallow.content";
+                               rel2.to: "elm.swallow.content";
+                       }
+               }
+               part {
+                       name: "padding_center_text2";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 0;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.0; to: "title_btns_padding_ext"; }
+                               rel2 { relative: 0.0 1.0; to: "title_btns_padding_ext"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "padding_bottom_text";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 0 1;
+                               align: 0.0 1.0;
+                               rel1 { relative: 0.0 1.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+
+               part {
+                       name: "elm.text.title";
+                       type: TEXT;
+                       effect: FAR_SHADOW BOTTOM;
+                       scale: 1;
+                       repeat_events: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               text {
+                                       font: VIDEO_TITLE_FONT_STYLE;
+                                       size: VIDEO_TITLE_FONT_SIZE;
+                                       min: 0 0;
+                                       max: 1 0;
+                                       align: 0.5 0.5;
+                               }
+                               color: VIDEO_TITLE_FONT_DEFAULT_COLOR;
+                               color3: 0 0 0 255;
+                               align: 0.5 0.5;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 1.0; to_x: "padding_center_text1"; to_y: "top_padding"; }
+                               rel2 { relative: 0.0 0.0; to_x: "padding_center_text2"; to_y: "padding_bottom_text"; }
+                       }
+               }
+
+               part {
+                       name: "access.title";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               rel1.to: "title_bg";
+                               rel2.to: "title_bg";
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "padding_before_text";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.0; to: "elm.text.title"; }
+                               rel2 { relative: 0.0 1.0; to: "elm.text.title"; }
+                               fixed: 1 0;
+                               min: 0 0;
+                               visible: 0;
+                       }
+               }
+
+               part {
+                       name: "click_event_area";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "title_left_btn_ext";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: 0 0;
+                               fixed: 1 1;
+                               align: 1 0.5;
+                               rel1 { relative: 0.0 0.0; to: "title_btns_padding_ext"; }
+                               rel2 { relative: 0.0 1.0; to: "title_btns_padding_ext"; }
+                       }
+               }
+               part {
+                       name: "title_btns_padding_ext";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 1;
+                               align: 1 0.5;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0; to: "title_left_btn"; }
+                               rel2 { relative: 0.0 1.0; to: "title_left_btn"; }
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                       }
+               }
+               part {
+                       name: "title_left_btn";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: 0 0;
+                               fixed: 1 1;
+                               align: 1 0.5;
+                               rel1 { relative: 0.0 0.0; to: "title_btns_padding"; }
+                               rel2 { relative: 0.0 1.0; to: "title_btns_padding"; }
+                       }
+               }
+               part {
+                       name: "title_btns_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 1;
+                               align: 1 0.5;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0; to: "title_right_btn"; }
+                               rel2 { relative: 0.0 1.0; to: "title_right_btn"; }
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                       }
+               }
+               part {
+                       name: "bottom_right_padding";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 1;
+                               align: 1.0 1.0;
+                               rel1 { relative: 1.0 1.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                       }
+               }
+               part {
+                       name: "title_right_btn";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: 0 0;
+                               align: 1 0.5;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 1.0; to_x: "title_bg"; to_y: "top_padding"; }
+                               rel2 { relative: 0.0 0.0; to: "bottom_right_padding"; }
+                       }
+               }
+               part {
+                       name: "toolbar_bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               max: 999999 0;
+                               fixed: 0 1;
+                               align: 0.0 1.0;
+                               visible: 0;
+                               rel1 { to: "base"; }
+                               rel2 { to: "base"; }
+                               color: 0 0 0 255;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 98;
+                               max: 999999 98;
+                               visible: 1;
+                       }
+                       description {
+                               state: "sip_visible" 0.0;
+                               inherit: "default" 0.0;
+                               align: 0.0 0.0;
+                               min: 1 0;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "prev_btn_bg";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 112 0;
+                               fixed: 1 0;
+                               align: 1.0 0.0;
+                               rel1 { relative: 1.0 0.0; to: "toolbar_bg"; }
+                               rel2.to: "toolbar_bg";
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.prev_btn";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "toolbar_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: 85 98;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1.to: "prev_btn_bg";
+                               rel2.to: "prev_btn_bg";
+                       }
+               }
+               part {
+                       name: "toolbar_clip";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "toolbar_bg"; }
+                               rel2 { to: "toolbar_bg"; }
+                       }
+               }
+       }
+
+       programs {
+               program {
+                       name: "content_new_pushed";
+                       signal: "elm,state,new,pushed,internal";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "show_finished";
+               }
+               program {
+                       name: "content_cur_pushed";
+                       signal: "elm,state,cur,pushed,internal";
+                       source: "";
+                       action: STATE_SET "left" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "pushed_finished";
+               }
+               program {
+                       name: "content_prev_popped";
+                       signal: "elm,state,prev,popped,internal";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "show_finished";
+               }
+               program {
+                       name: "content_cur_popped";
+                       signal: "elm,state,cur,popped,internal";
+                       source: "";
+                       action: STATE_SET "right" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "popped_finished";
+               }
+               program {
+                       name: "cur_pushed";
+                       signal: "elm,state,cur,pushed";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "default", 0.0);
+                               emit("elm,state,cur,pushed,internal", "");
+                       }
+               }
+               program {
+                       name: "new_pushed";
+                       signal: "elm,state,new,pushed";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "right", 0.0);
+                               emit("elm,state,new,pushed,internal", "");
+                       }
+               }
+               program {
+                       name: "prev_popped";
+                       signal: "elm,state,prev,popped";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "left", 0.0);
+                               emit("elm,state,prev,popped,internal", "");
+                       }
+               }
+               program {
+                       name: "cur_popped";
+                       signal: "elm,state,cur,popped";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "default", 0.0);
+                               emit("elm,state,cur,popped,internal", "");
+                       }
+               }
+               program {
+                       name: "visible";
+                       signal: "elm,state,visible";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+               }
+               program {
+                       name: "title_show";
+                       signal: "elm,state,title,show";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "title_bg";
+                       target: "title_line";
+                       transition: LINEAR 0.4;
+                       after: "show_finished";
+               }
+               program {
+                       name: "title_hide";
+                       signal: "elm,state,title,hide";
+                       source: "elm";
+                       action: STATE_SET "hide" 0.0;
+                       target: "title_bg";
+                       target: "title_line";
+                       transition: LINEAR 0.4;
+                       after: "hide_finished";
+               }
+               program {
+                       name: "subtitle_show";
+                       signal: "elm,state,subtitle,show";
+                       source: "elm";
+                       script {
+                               set_state(PART:"elm.text.title", "subtitle_is_set", 0.0);
+                       }
+               }
+               program {
+                       name: "subtitle_hide";
+                       signal: "elm,state,subtitle,hide";
+                       source: "elm";
+                       script {
+                               set_state(PART:"elm.text.title", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "prev_btn_show";
+                       signal: "elm,state,prev_btn,show";
+                       source: "elm";
+                       script {
+                               emit("elm,state,toolbar_bg,show", "elm");
+                       }
+               }
+               program {
+                       name: "prev_btn_hide";
+                       signal: "elm,state,prev_btn,hide";
+                       source: "elm";
+                       script {
+                               emit("elm,state,toolbar_bg,hide", "elm");
+                       }
+               }
+               program {
+                       name: "sip_show";
+                       signal: "elm,state,sip,shown";
+                       source: "";
+                       script {
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                               else
+                               {
+                                       set_state(PART:"toolbar_bg", "sip_visible", 0.0);
+                                       set_state(PART:"elm.swallow.content", "sip_visible", 0.0);
+                               }
+                       }
+               }
+
+               program {
+                       name: "sip_hide";
+                       signal: "elm,state,sip,hidden";
+                       source: "";
+                       script {
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                               else
+                               {
+                                       set_state(PART:"toolbar_bg", "visible", 0.0);
+                                       set_state(PART:"elm.swallow.content", "default", 0.0);
+                               }
+                       }
+               }
+               program {
+                       name: "left_btn_show";
+                       signal: "elm,state,title_left_btn,show";
+                       source: "elm";
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) + 1);
+                               set_state(PART:"bottom_right_padding", "visible", 0.0);
+                               if (get_int(buttons_visible) >= 2)
+                                       set_state(PART:"title_btns_padding", "visible", 0.0);
+                       }
+               }
+               program {
+                       name: "left_btn_hide";
+                       signal: "elm,state,title_left_btn,hide";
+                       source: "elm";
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) - 1);
+                               set_state(PART:"title_btns_padding", "default", 0.0);
+                               if (get_int(buttons_visible) == 0)
+                                       set_state(PART:"bottom_right_padding", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "right_btn_show";
+                       signal: "elm,state,title_right_btn,show";
+                       source: "elm";
+                       action: STATE_SET "visible" 0.0;
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) + 1);
+                               set_state(PART:"bottom_right_padding", "visible", 0.0);
+                               if (get_int(buttons_visible) >= 2)
+                                       set_state(PART:"title_btns_padding", "visible", 0.0);
+                       }
+               }
+               program {
+                       name: "right_btn_hide";
+                       signal: "elm,state,title_right_btn,hide";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) - 1);
+                               set_state(PART:"title_btns_padding", "default", 0.0);
+                               if (get_int(buttons_visible) == 0)
+                                       set_state(PART:"bottom_right_padding", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "toolbar_bg_show";
+                       signal: "elm,state,toolbar_bg,show";
+                       source: "elm";
+                       script {
+                               set_state(PART:"toolbar_bg", "visible", 0.0);
+                               set_int(tbar_bg, get_int(tbar_bg) + 1);
+                       }
+               }
+               program {
+                       name: "toolbar_bg_hide";
+                       signal: "elm,state,toolbar_bg,hide";
+                       source: "elm";
+                       script {
+                               set_int(tbar_bg, get_int(tbar_bg) - 1);
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "toolbar_open";
+                       signal: "elm,state,toolbar,open";
+                       source: "";
+                       action: STATE_SET "visible" 0.0;
+                       target: "toolbar_bg";
+                       transition: LINEAR 0.2;
+               }
+               program {
+                       name: "toolbar_close";
+                       signal: "elm,state,toolbar,close";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "toolbar_bg";
+                       transition: LINEAR 0.2;
+               }
+
+               program {
+                       name: "show_finished";
+                       action: SIGNAL_EMIT "elm,action,show,finished" "";
+               }
+               program {
+                       name: "hide_finished";
+                       action: SIGNAL_EMIT "elm,action,hide,finished" "";
+               }
+
+               program {
+                       name: "pushed_finished";
+                       action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+               }
+               program {
+                       name: "popped_finished";
+                       action: SIGNAL_EMIT "elm,action,popped,finished" "";
+               }
+               program {
+                       name: "title_clicked";
+                       signal: "mouse,clicked,1";
+                       source: "click_event_area";
+                       action: SIGNAL_EMIT "elm,action,title,clicked" "";
+               }
+               program {
+                       name: "display_mode_compress";
+                       signal: "display,mode,compress";
+                       source: "";
+                       action: SIGNAL_EMIT "elm,state,toolbar,instant_close" "";
+               }
+               program {
+                       name: "display_mode_default";
+                       signal: "display,mode,default";
+                       source: "";
+                       action: SIGNAL_EMIT "elm,state,toolbar,instant_open" "";
+               }
+       }
+}
+
diff --git a/playview/res/edje/images/00_color_picker_palette_bg.png b/playview/res/edje/images/00_color_picker_palette_bg.png
new file mode 100755 (executable)
index 0000000..462be08
Binary files /dev/null and b/playview/res/edje/images/00_color_picker_palette_bg.png differ
diff --git a/playview/res/edje/images/T01_2_video_thumbnail_default.png b/playview/res/edje/images/T01_2_video_thumbnail_default.png
new file mode 100755 (executable)
index 0000000..4b83dc8
Binary files /dev/null and b/playview/res/edje/images/T01_2_video_thumbnail_default.png differ
diff --git a/playview/res/edje/images/T01_no_video.png b/playview/res/edje/images/T01_no_video.png
new file mode 100755 (executable)
index 0000000..9cb28a1
Binary files /dev/null and b/playview/res/edje/images/T01_no_video.png differ
diff --git a/playview/res/edje/images/allshare/device/120x120/U04_device_AC_Wall.png b/playview/res/edje/images/allshare/device/120x120/U04_device_AC_Wall.png
new file mode 100755 (executable)
index 0000000..4d55d0c
Binary files /dev/null and b/playview/res/edje/images/allshare/device/120x120/U04_device_AC_Wall.png differ
diff --git a/playview/res/edje/images/allshare/device/120x120/U04_device_BD.png b/playview/res/edje/images/allshare/device/120x120/U04_device_BD.png
new file mode 100755 (executable)
index 0000000..660d972
Binary files /dev/null and b/playview/res/edje/images/allshare/device/120x120/U04_device_BD.png differ
diff --git a/playview/res/edje/images/allshare/device/120x120/U04_device_Camcorder.png b/playview/res/edje/images/allshare/device/120x120/U04_device_Camcorder.png
new file mode 100755 (executable)
index 0000000..d6103c1
Binary files /dev/null and b/playview/res/edje/images/allshare/device/120x120/U04_device_Camcorder.png differ
diff --git a/playview/res/edje/images/allshare/device/120x120/U04_device_Camera.png b/playview/res/edje/images/allshare/device/120x120/U04_device_Camera.png
new file mode 100755 (executable)
index 0000000..fcbb254
Binary files /dev/null and b/playview/res/edje/images/allshare/device/120x120/U04_device_Camera.png differ
diff --git a/playview/res/edje/images/allshare/device/120x120/U04_device_Dongle.png b/playview/res/edje/images/allshare/device/120x120/U04_device_Dongle.png
new file mode 100755 (executable)
index 0000000..09158a1
Binary files /dev/null and b/playview/res/edje/images/allshare/device/120x120/U04_device_Dongle.png differ
diff --git a/playview/res/edje/images/allshare/device/120x120/U04_device_LFD.png b/playview/res/edje/images/allshare/device/120x120/U04_device_LFD.png
new file mode 100755 (executable)
index 0000000..0c1feb5
Binary files /dev/null and b/playview/res/edje/images/allshare/device/120x120/U04_device_LFD.png differ
diff --git a/playview/res/edje/images/allshare/device/120x120/U04_device_Mobile.png b/playview/res/edje/images/allshare/device/120x120/U04_device_Mobile.png
new file mode 100755 (executable)
index 0000000..5eaf414
Binary files /dev/null and b/playview/res/edje/images/allshare/device/120x120/U04_device_Mobile.png differ
diff --git a/playview/res/edje/images/allshare/device/120x120/U04_device_None_DNS.png b/playview/res/edje/images/allshare/device/120x120/U04_device_None_DNS.png
new file mode 100755 (executable)
index 0000000..62e2fa3
Binary files /dev/null and b/playview/res/edje/images/allshare/device/120x120/U04_device_None_DNS.png differ
diff --git a/playview/res/edje/images/allshare/device/120x120/U04_device_PC.png b/playview/res/edje/images/allshare/device/120x120/U04_device_PC.png
new file mode 100755 (executable)
index 0000000..ddda068
Binary files /dev/null and b/playview/res/edje/images/allshare/device/120x120/U04_device_PC.png differ
diff --git a/playview/res/edje/images/allshare/device/120x120/U04_device_REF.png b/playview/res/edje/images/allshare/device/120x120/U04_device_REF.png
new file mode 100755 (executable)
index 0000000..236881f
Binary files /dev/null and b/playview/res/edje/images/allshare/device/120x120/U04_device_REF.png differ
diff --git a/playview/res/edje/images/allshare/device/120x120/U04_device_ROBOT_VC.png b/playview/res/edje/images/allshare/device/120x120/U04_device_ROBOT_VC.png
new file mode 100755 (executable)
index 0000000..cd17475
Binary files /dev/null and b/playview/res/edje/images/allshare/device/120x120/U04_device_ROBOT_VC.png differ
diff --git a/playview/res/edje/images/allshare/device/120x120/U04_device_STB.png b/playview/res/edje/images/allshare/device/120x120/U04_device_STB.png
new file mode 100755 (executable)
index 0000000..c3b8434
Binary files /dev/null and b/playview/res/edje/images/allshare/device/120x120/U04_device_STB.png differ
diff --git a/playview/res/edje/images/allshare/device/120x120/U04_device_TV.png b/playview/res/edje/images/allshare/device/120x120/U04_device_TV.png
new file mode 100755 (executable)
index 0000000..8a5877a
Binary files /dev/null and b/playview/res/edje/images/allshare/device/120x120/U04_device_TV.png differ
diff --git a/playview/res/edje/images/allshare/device/120x120/U04_device_Tablet.png b/playview/res/edje/images/allshare/device/120x120/U04_device_Tablet.png
new file mode 100755 (executable)
index 0000000..244b3b5
Binary files /dev/null and b/playview/res/edje/images/allshare/device/120x120/U04_device_Tablet.png differ
diff --git a/playview/res/edje/images/allshare/device/120x120/U04_device_WM.png b/playview/res/edje/images/allshare/device/120x120/U04_device_WM.png
new file mode 100755 (executable)
index 0000000..f5f9194
Binary files /dev/null and b/playview/res/edje/images/allshare/device/120x120/U04_device_WM.png differ
diff --git a/playview/res/edje/images/allshare/device/81x81/U04_device_AC_Wall.png b/playview/res/edje/images/allshare/device/81x81/U04_device_AC_Wall.png
new file mode 100755 (executable)
index 0000000..74690f5
Binary files /dev/null and b/playview/res/edje/images/allshare/device/81x81/U04_device_AC_Wall.png differ
diff --git a/playview/res/edje/images/allshare/device/81x81/U04_device_BD.png b/playview/res/edje/images/allshare/device/81x81/U04_device_BD.png
new file mode 100755 (executable)
index 0000000..1b2989d
Binary files /dev/null and b/playview/res/edje/images/allshare/device/81x81/U04_device_BD.png differ
diff --git a/playview/res/edje/images/allshare/device/81x81/U04_device_Camcorder.png b/playview/res/edje/images/allshare/device/81x81/U04_device_Camcorder.png
new file mode 100755 (executable)
index 0000000..43ee93b
Binary files /dev/null and b/playview/res/edje/images/allshare/device/81x81/U04_device_Camcorder.png differ
diff --git a/playview/res/edje/images/allshare/device/81x81/U04_device_Camera.png b/playview/res/edje/images/allshare/device/81x81/U04_device_Camera.png
new file mode 100755 (executable)
index 0000000..35cb8f8
Binary files /dev/null and b/playview/res/edje/images/allshare/device/81x81/U04_device_Camera.png differ
diff --git a/playview/res/edje/images/allshare/device/81x81/U04_device_Dongle.png b/playview/res/edje/images/allshare/device/81x81/U04_device_Dongle.png
new file mode 100755 (executable)
index 0000000..9255146
Binary files /dev/null and b/playview/res/edje/images/allshare/device/81x81/U04_device_Dongle.png differ
diff --git a/playview/res/edje/images/allshare/device/81x81/U04_device_LFD.png b/playview/res/edje/images/allshare/device/81x81/U04_device_LFD.png
new file mode 100755 (executable)
index 0000000..d910c09
Binary files /dev/null and b/playview/res/edje/images/allshare/device/81x81/U04_device_LFD.png differ
diff --git a/playview/res/edje/images/allshare/device/81x81/U04_device_Mobile.png b/playview/res/edje/images/allshare/device/81x81/U04_device_Mobile.png
new file mode 100755 (executable)
index 0000000..36c0620
Binary files /dev/null and b/playview/res/edje/images/allshare/device/81x81/U04_device_Mobile.png differ
diff --git a/playview/res/edje/images/allshare/device/81x81/U04_device_None_DNS.png b/playview/res/edje/images/allshare/device/81x81/U04_device_None_DNS.png
new file mode 100755 (executable)
index 0000000..a468d9c
Binary files /dev/null and b/playview/res/edje/images/allshare/device/81x81/U04_device_None_DNS.png differ
diff --git a/playview/res/edje/images/allshare/device/81x81/U04_device_PC.png b/playview/res/edje/images/allshare/device/81x81/U04_device_PC.png
new file mode 100755 (executable)
index 0000000..1df39f3
Binary files /dev/null and b/playview/res/edje/images/allshare/device/81x81/U04_device_PC.png differ
diff --git a/playview/res/edje/images/allshare/device/81x81/U04_device_REF.png b/playview/res/edje/images/allshare/device/81x81/U04_device_REF.png
new file mode 100755 (executable)
index 0000000..c5ad8f5
Binary files /dev/null and b/playview/res/edje/images/allshare/device/81x81/U04_device_REF.png differ
diff --git a/playview/res/edje/images/allshare/device/81x81/U04_device_ROBOT_VC.png b/playview/res/edje/images/allshare/device/81x81/U04_device_ROBOT_VC.png
new file mode 100755 (executable)
index 0000000..21fefb0
Binary files /dev/null and b/playview/res/edje/images/allshare/device/81x81/U04_device_ROBOT_VC.png differ
diff --git a/playview/res/edje/images/allshare/device/81x81/U04_device_STB.png b/playview/res/edje/images/allshare/device/81x81/U04_device_STB.png
new file mode 100755 (executable)
index 0000000..24385f0
Binary files /dev/null and b/playview/res/edje/images/allshare/device/81x81/U04_device_STB.png differ
diff --git a/playview/res/edje/images/allshare/device/81x81/U04_device_TV.png b/playview/res/edje/images/allshare/device/81x81/U04_device_TV.png
new file mode 100755 (executable)
index 0000000..faffe24
Binary files /dev/null and b/playview/res/edje/images/allshare/device/81x81/U04_device_TV.png differ
diff --git a/playview/res/edje/images/allshare/device/81x81/U04_device_Tablet.png b/playview/res/edje/images/allshare/device/81x81/U04_device_Tablet.png
new file mode 100755 (executable)
index 0000000..0cd0b7b
Binary files /dev/null and b/playview/res/edje/images/allshare/device/81x81/U04_device_Tablet.png differ
diff --git a/playview/res/edje/images/allshare/device/81x81/U04_device_WM.png b/playview/res/edje/images/allshare/device/81x81/U04_device_WM.png
new file mode 100755 (executable)
index 0000000..fe23494
Binary files /dev/null and b/playview/res/edje/images/allshare/device/81x81/U04_device_WM.png differ
diff --git a/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_bg.png b/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_bg.png
new file mode 100755 (executable)
index 0000000..7d553c8
Binary files /dev/null and b/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_bg.png differ
diff --git a/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus.png b/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus.png
new file mode 100755 (executable)
index 0000000..98bb3c0
Binary files /dev/null and b/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus.png differ
diff --git a/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus_dim.png b/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus_dim.png
new file mode 100755 (executable)
index 0000000..93de255
Binary files /dev/null and b/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus_dim.png differ
diff --git a/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus_press.png b/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus_press.png
new file mode 100755 (executable)
index 0000000..507476d
Binary files /dev/null and b/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus_press.png differ
diff --git a/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute.png b/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute.png
new file mode 100755 (executable)
index 0000000..428d10a
Binary files /dev/null and b/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute.png differ
diff --git a/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute_dim.png b/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute_dim.png
new file mode 100755 (executable)
index 0000000..97e0fc1
Binary files /dev/null and b/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute_dim.png differ
diff --git a/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute_press.png b/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute_press.png
new file mode 100755 (executable)
index 0000000..dcf2447
Binary files /dev/null and b/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute_press.png differ
diff --git a/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus.png b/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus.png
new file mode 100755 (executable)
index 0000000..6632065
Binary files /dev/null and b/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus.png differ
diff --git a/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus_dim.png b/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus_dim.png
new file mode 100755 (executable)
index 0000000..906d101
Binary files /dev/null and b/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus_dim.png differ
diff --git a/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus_press.png b/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus_press.png
new file mode 100755 (executable)
index 0000000..0293b1e
Binary files /dev/null and b/playview/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus_press.png differ
diff --git a/playview/res/edje/images/bookmark/T01_2_button_remove.png b/playview/res/edje/images/bookmark/T01_2_button_remove.png
new file mode 100755 (executable)
index 0000000..b60da84
Binary files /dev/null and b/playview/res/edje/images/bookmark/T01_2_button_remove.png differ
diff --git a/playview/res/edje/images/bookmark/T01_2_button_remove_press.png b/playview/res/edje/images/bookmark/T01_2_button_remove_press.png
new file mode 100755 (executable)
index 0000000..b39e22e
Binary files /dev/null and b/playview/res/edje/images/bookmark/T01_2_button_remove_press.png differ
diff --git a/playview/res/edje/images/bookmark/T01_2_icon_bookmark_add.png b/playview/res/edje/images/bookmark/T01_2_icon_bookmark_add.png
new file mode 100755 (executable)
index 0000000..4102187
Binary files /dev/null and b/playview/res/edje/images/bookmark/T01_2_icon_bookmark_add.png differ
diff --git a/playview/res/edje/images/bookmark/T01_2_icon_bookmark_add_press.png b/playview/res/edje/images/bookmark/T01_2_icon_bookmark_add_press.png
new file mode 100755 (executable)
index 0000000..42c0938
Binary files /dev/null and b/playview/res/edje/images/bookmark/T01_2_icon_bookmark_add_press.png differ
diff --git a/playview/res/edje/images/brightness/quick_icon_brightness_00.png b/playview/res/edje/images/brightness/quick_icon_brightness_00.png
new file mode 100755 (executable)
index 0000000..ef550f0
Binary files /dev/null and b/playview/res/edje/images/brightness/quick_icon_brightness_00.png differ
diff --git a/playview/res/edje/images/brightness/quick_icon_brightness_01.png b/playview/res/edje/images/brightness/quick_icon_brightness_01.png
new file mode 100755 (executable)
index 0000000..d6c4b37
Binary files /dev/null and b/playview/res/edje/images/brightness/quick_icon_brightness_01.png differ
diff --git a/playview/res/edje/images/brightness/quick_icon_brightness_02.png b/playview/res/edje/images/brightness/quick_icon_brightness_02.png
new file mode 100755 (executable)
index 0000000..5c4a0b5
Binary files /dev/null and b/playview/res/edje/images/brightness/quick_icon_brightness_02.png differ
diff --git a/playview/res/edje/images/brightness/quick_icon_brightness_03.png b/playview/res/edje/images/brightness/quick_icon_brightness_03.png
new file mode 100755 (executable)
index 0000000..7b7f7b8
Binary files /dev/null and b/playview/res/edje/images/brightness/quick_icon_brightness_03.png differ
diff --git a/playview/res/edje/images/brightness/quick_icon_brightness_04.png b/playview/res/edje/images/brightness/quick_icon_brightness_04.png
new file mode 100755 (executable)
index 0000000..36da3d8
Binary files /dev/null and b/playview/res/edje/images/brightness/quick_icon_brightness_04.png differ
diff --git a/playview/res/edje/images/brightness/quick_icon_brightness_05.png b/playview/res/edje/images/brightness/quick_icon_brightness_05.png
new file mode 100755 (executable)
index 0000000..a4c17bf
Binary files /dev/null and b/playview/res/edje/images/brightness/quick_icon_brightness_05.png differ
diff --git a/playview/res/edje/images/brightness/quick_icon_brightness_06.png b/playview/res/edje/images/brightness/quick_icon_brightness_06.png
new file mode 100755 (executable)
index 0000000..8435df0
Binary files /dev/null and b/playview/res/edje/images/brightness/quick_icon_brightness_06.png differ
diff --git a/playview/res/edje/images/brightness/quick_icon_brightness_07.png b/playview/res/edje/images/brightness/quick_icon_brightness_07.png
new file mode 100755 (executable)
index 0000000..74cb9bd
Binary files /dev/null and b/playview/res/edje/images/brightness/quick_icon_brightness_07.png differ
diff --git a/playview/res/edje/images/brightness/quick_icon_brightness_08.png b/playview/res/edje/images/brightness/quick_icon_brightness_08.png
new file mode 100755 (executable)
index 0000000..7b2e428
Binary files /dev/null and b/playview/res/edje/images/brightness/quick_icon_brightness_08.png differ
diff --git a/playview/res/edje/images/brightness/quick_icon_brightness_09.png b/playview/res/edje/images/brightness/quick_icon_brightness_09.png
new file mode 100755 (executable)
index 0000000..922a35b
Binary files /dev/null and b/playview/res/edje/images/brightness/quick_icon_brightness_09.png differ
diff --git a/playview/res/edje/images/brightness/quick_icon_brightness_10.png b/playview/res/edje/images/brightness/quick_icon_brightness_10.png
new file mode 100755 (executable)
index 0000000..2548db7
Binary files /dev/null and b/playview/res/edje/images/brightness/quick_icon_brightness_10.png differ
diff --git a/playview/res/edje/images/brightness/quick_icon_brightness_11.png b/playview/res/edje/images/brightness/quick_icon_brightness_11.png
new file mode 100755 (executable)
index 0000000..d8eae46
Binary files /dev/null and b/playview/res/edje/images/brightness/quick_icon_brightness_11.png differ
diff --git a/playview/res/edje/images/button/T01-2_control_circle_button_01.png b/playview/res/edje/images/button/T01-2_control_circle_button_01.png
new file mode 100755 (executable)
index 0000000..6db9120
Binary files /dev/null and b/playview/res/edje/images/button/T01-2_control_circle_button_01.png differ
diff --git a/playview/res/edje/images/button/T01-2_control_circle_button_01_focus.png b/playview/res/edje/images/button/T01-2_control_circle_button_01_focus.png
new file mode 100755 (executable)
index 0000000..6ef09c6
Binary files /dev/null and b/playview/res/edje/images/button/T01-2_control_circle_button_01_focus.png differ
diff --git a/playview/res/edje/images/button/T01-2_control_circle_button_01_press.png b/playview/res/edje/images/button/T01-2_control_circle_button_01_press.png
new file mode 100755 (executable)
index 0000000..91666cb
Binary files /dev/null and b/playview/res/edje/images/button/T01-2_control_circle_button_01_press.png differ
diff --git a/playview/res/edje/images/button/T01-2_control_circle_button_02.png b/playview/res/edje/images/button/T01-2_control_circle_button_02.png
new file mode 100755 (executable)
index 0000000..52c1349
Binary files /dev/null and b/playview/res/edje/images/button/T01-2_control_circle_button_02.png differ
diff --git a/playview/res/edje/images/button/T01-2_control_circle_button_02_focus.png b/playview/res/edje/images/button/T01-2_control_circle_button_02_focus.png
new file mode 100755 (executable)
index 0000000..89c4db3
Binary files /dev/null and b/playview/res/edje/images/button/T01-2_control_circle_button_02_focus.png differ
diff --git a/playview/res/edje/images/button/T01-2_control_circle_button_02_press.png b/playview/res/edje/images/button/T01-2_control_circle_button_02_press.png
new file mode 100755 (executable)
index 0000000..098299d
Binary files /dev/null and b/playview/res/edje/images/button/T01-2_control_circle_button_02_press.png differ
diff --git a/playview/res/edje/images/button/T01-2_control_circle_button_03.png b/playview/res/edje/images/button/T01-2_control_circle_button_03.png
new file mode 100755 (executable)
index 0000000..a0c4105
Binary files /dev/null and b/playview/res/edje/images/button/T01-2_control_circle_button_03.png differ
diff --git a/playview/res/edje/images/button/T01-2_control_circle_button_03_focus.png b/playview/res/edje/images/button/T01-2_control_circle_button_03_focus.png
new file mode 100755 (executable)
index 0000000..e131fce
Binary files /dev/null and b/playview/res/edje/images/button/T01-2_control_circle_button_03_focus.png differ
diff --git a/playview/res/edje/images/button/T01-2_control_circle_button_03_press.png b/playview/res/edje/images/button/T01-2_control_circle_button_03_press.png
new file mode 100755 (executable)
index 0000000..5ad0e86
Binary files /dev/null and b/playview/res/edje/images/button/T01-2_control_circle_button_03_press.png differ
diff --git a/playview/res/edje/images/button/T01-2_play_popup_icon_minus.png b/playview/res/edje/images/button/T01-2_play_popup_icon_minus.png
new file mode 100755 (executable)
index 0000000..eb7f6c2
Binary files /dev/null and b/playview/res/edje/images/button/T01-2_play_popup_icon_minus.png differ
diff --git a/playview/res/edje/images/button/T01-2_play_popup_icon_minus_press.png b/playview/res/edje/images/button/T01-2_play_popup_icon_minus_press.png
new file mode 100755 (executable)
index 0000000..099735a
Binary files /dev/null and b/playview/res/edje/images/button/T01-2_play_popup_icon_minus_press.png differ
diff --git a/playview/res/edje/images/button/T01-2_play_popup_icon_plus.png b/playview/res/edje/images/button/T01-2_play_popup_icon_plus.png
new file mode 100755 (executable)
index 0000000..342d9eb
Binary files /dev/null and b/playview/res/edje/images/button/T01-2_play_popup_icon_plus.png differ
diff --git a/playview/res/edje/images/button/T01-2_play_popup_icon_plus_press.png b/playview/res/edje/images/button/T01-2_play_popup_icon_plus_press.png
new file mode 100755 (executable)
index 0000000..db4ca27
Binary files /dev/null and b/playview/res/edje/images/button/T01-2_play_popup_icon_plus_press.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_Near_by_device.png b/playview/res/edje/images/button/T01_2_icon_Near_by_device.png
new file mode 100755 (executable)
index 0000000..6610276
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_Near_by_device.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_Near_by_device_dim.png b/playview/res/edje/images/button/T01_2_icon_Near_by_device_dim.png
new file mode 100755 (executable)
index 0000000..88f7ba4
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_Near_by_device_dim.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_Near_by_device_press.png b/playview/res/edje/images/button/T01_2_icon_Near_by_device_press.png
new file mode 100755 (executable)
index 0000000..12e1ede
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_Near_by_device_press.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_back.png b/playview/res/edje/images/button/T01_2_icon_back.png
new file mode 100755 (executable)
index 0000000..ba8ad4d
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_back.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_bluetooth_headset.png b/playview/res/edje/images/button/T01_2_icon_bluetooth_headset.png
new file mode 100755 (executable)
index 0000000..df28789
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_bluetooth_headset.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_bluetooth_headset_press.png b/playview/res/edje/images/button/T01_2_icon_bluetooth_headset_press.png
new file mode 100755 (executable)
index 0000000..fb92314
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_bluetooth_headset_press.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_check.png b/playview/res/edje/images/button/T01_2_icon_check.png
new file mode 100755 (executable)
index 0000000..7fde44c
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_check.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_check_dim.png b/playview/res/edje/images/button/T01_2_icon_check_dim.png
new file mode 100755 (executable)
index 0000000..56cd9d1
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_check_dim.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_check_press.png b/playview/res/edje/images/button/T01_2_icon_check_press.png
new file mode 100755 (executable)
index 0000000..9125e88
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_check_press.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_close.png b/playview/res/edje/images/button/T01_2_icon_close.png
new file mode 100755 (executable)
index 0000000..6309ae0
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_close.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_close_dim.png b/playview/res/edje/images/button/T01_2_icon_close_dim.png
new file mode 100755 (executable)
index 0000000..c78ced9
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_close_dim.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_close_press.png b/playview/res/edje/images/button/T01_2_icon_close_press.png
new file mode 100755 (executable)
index 0000000..5408b0c
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_close_press.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_lock.png b/playview/res/edje/images/button/T01_2_icon_lock.png
new file mode 100755 (executable)
index 0000000..ca2ae28
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_lock.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_lock_dim.png b/playview/res/edje/images/button/T01_2_icon_lock_dim.png
new file mode 100755 (executable)
index 0000000..0eb519f
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_lock_dim.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_lock_press.png b/playview/res/edje/images/button/T01_2_icon_lock_press.png
new file mode 100755 (executable)
index 0000000..ca2ae28
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_lock_press.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_more.png b/playview/res/edje/images/button/T01_2_icon_more.png
new file mode 100755 (executable)
index 0000000..1f58790
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_more.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_more_dim_web.png b/playview/res/edje/images/button/T01_2_icon_more_dim_web.png
new file mode 100755 (executable)
index 0000000..8aa7a9d
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_more_dim_web.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_more_press_web.png b/playview/res/edje/images/button/T01_2_icon_more_press_web.png
new file mode 100755 (executable)
index 0000000..275ec6e
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_more_press_web.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_more_web.png b/playview/res/edje/images/button/T01_2_icon_more_web.png
new file mode 100755 (executable)
index 0000000..ebff3db
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_more_web.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_rotate.png b/playview/res/edje/images/button/T01_2_icon_rotate.png
new file mode 100755 (executable)
index 0000000..a9e0cdb
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_rotate.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_rotate_dim.png b/playview/res/edje/images/button/T01_2_icon_rotate_dim.png
new file mode 100755 (executable)
index 0000000..c676948
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_rotate_dim.png differ
diff --git a/playview/res/edje/images/button/T01_2_icon_rotate_press.png b/playview/res/edje/images/button/T01_2_icon_rotate_press.png
new file mode 100755 (executable)
index 0000000..bd613a7
Binary files /dev/null and b/playview/res/edje/images/button/T01_2_icon_rotate_press.png differ
diff --git a/playview/res/edje/images/button/T02_icon_soundPath.png b/playview/res/edje/images/button/T02_icon_soundPath.png
new file mode 100755 (executable)
index 0000000..a9b7d26
Binary files /dev/null and b/playview/res/edje/images/button/T02_icon_soundPath.png differ
diff --git a/playview/res/edje/images/button/T02_icon_speaker.png b/playview/res/edje/images/button/T02_icon_speaker.png
new file mode 100755 (executable)
index 0000000..f56f688
Binary files /dev/null and b/playview/res/edje/images/button/T02_icon_speaker.png differ
diff --git a/playview/res/edje/images/button/T02_icon_speaker_dim.png b/playview/res/edje/images/button/T02_icon_speaker_dim.png
new file mode 100755 (executable)
index 0000000..39990bd
Binary files /dev/null and b/playview/res/edje/images/button/T02_icon_speaker_dim.png differ
diff --git a/playview/res/edje/images/button/T02_icon_speaker_press.png b/playview/res/edje/images/button/T02_icon_speaker_press.png
new file mode 100755 (executable)
index 0000000..5d391af
Binary files /dev/null and b/playview/res/edje/images/button/T02_icon_speaker_press.png differ
diff --git a/playview/res/edje/images/button/core_icon_back.png b/playview/res/edje/images/button/core_icon_back.png
new file mode 100755 (executable)
index 0000000..baf1df0
Binary files /dev/null and b/playview/res/edje/images/button/core_icon_back.png differ
diff --git a/playview/res/edje/images/capture/T01-2_icon_left.png b/playview/res/edje/images/capture/T01-2_icon_left.png
new file mode 100755 (executable)
index 0000000..6b3138f
Binary files /dev/null and b/playview/res/edje/images/capture/T01-2_icon_left.png differ
diff --git a/playview/res/edje/images/capture/T01-2_icon_left_dim.png b/playview/res/edje/images/capture/T01-2_icon_left_dim.png
new file mode 100755 (executable)
index 0000000..8cce261
Binary files /dev/null and b/playview/res/edje/images/capture/T01-2_icon_left_dim.png differ
diff --git a/playview/res/edje/images/capture/T01-2_icon_left_press.png b/playview/res/edje/images/capture/T01-2_icon_left_press.png
new file mode 100755 (executable)
index 0000000..2715a3d
Binary files /dev/null and b/playview/res/edje/images/capture/T01-2_icon_left_press.png differ
diff --git a/playview/res/edje/images/capture/T01-2_icon_right.png b/playview/res/edje/images/capture/T01-2_icon_right.png
new file mode 100755 (executable)
index 0000000..d0af401
Binary files /dev/null and b/playview/res/edje/images/capture/T01-2_icon_right.png differ
diff --git a/playview/res/edje/images/capture/T01-2_icon_right_dim.png b/playview/res/edje/images/capture/T01-2_icon_right_dim.png
new file mode 100755 (executable)
index 0000000..43acd99
Binary files /dev/null and b/playview/res/edje/images/capture/T01-2_icon_right_dim.png differ
diff --git a/playview/res/edje/images/capture/T01-2_icon_right_press.png b/playview/res/edje/images/capture/T01-2_icon_right_press.png
new file mode 100755 (executable)
index 0000000..b5c566f
Binary files /dev/null and b/playview/res/edje/images/capture/T01-2_icon_right_press.png differ
diff --git a/playview/res/edje/images/capture/T01_2_icon_capture.png b/playview/res/edje/images/capture/T01_2_icon_capture.png
new file mode 100755 (executable)
index 0000000..f54451f
Binary files /dev/null and b/playview/res/edje/images/capture/T01_2_icon_capture.png differ
diff --git a/playview/res/edje/images/capture/T01_2_icon_capture_dim.png b/playview/res/edje/images/capture/T01_2_icon_capture_dim.png
new file mode 100755 (executable)
index 0000000..c8d2b4f
Binary files /dev/null and b/playview/res/edje/images/capture/T01_2_icon_capture_dim.png differ
diff --git a/playview/res/edje/images/capture/T01_2_icon_capture_press.png b/playview/res/edje/images/capture/T01_2_icon_capture_press.png
new file mode 100755 (executable)
index 0000000..b162bd6
Binary files /dev/null and b/playview/res/edje/images/capture/T01_2_icon_capture_press.png differ
diff --git a/playview/res/edje/images/chapter/T01_2_thumbnail_shadow.png b/playview/res/edje/images/chapter/T01_2_thumbnail_shadow.png
new file mode 100755 (executable)
index 0000000..90d5ede
Binary files /dev/null and b/playview/res/edje/images/chapter/T01_2_thumbnail_shadow.png differ
diff --git a/playview/res/edje/images/chapter/T01_2_thumbnail_shadow_h.png b/playview/res/edje/images/chapter/T01_2_thumbnail_shadow_h.png
new file mode 100755 (executable)
index 0000000..5cbcd11
Binary files /dev/null and b/playview/res/edje/images/chapter/T01_2_thumbnail_shadow_h.png differ
diff --git a/playview/res/edje/images/control/T01-2_control_bg.png b/playview/res/edje/images/control/T01-2_control_bg.png
new file mode 100755 (executable)
index 0000000..4c7a0cf
Binary files /dev/null and b/playview/res/edje/images/control/T01-2_control_bg.png differ
diff --git a/playview/res/edje/images/control/T01-2_control_bg_h.png b/playview/res/edje/images/control/T01-2_control_bg_h.png
new file mode 100755 (executable)
index 0000000..6042922
Binary files /dev/null and b/playview/res/edje/images/control/T01-2_control_bg_h.png differ
diff --git a/playview/res/edje/images/control/T01-2_control_circle_icon_next.png b/playview/res/edje/images/control/T01-2_control_circle_icon_next.png
new file mode 100755 (executable)
index 0000000..a113871
Binary files /dev/null and b/playview/res/edje/images/control/T01-2_control_circle_icon_next.png differ
diff --git a/playview/res/edje/images/control/T01-2_control_circle_icon_pause.png b/playview/res/edje/images/control/T01-2_control_circle_icon_pause.png
new file mode 100755 (executable)
index 0000000..6806d10
Binary files /dev/null and b/playview/res/edje/images/control/T01-2_control_circle_icon_pause.png differ
diff --git a/playview/res/edje/images/control/T01-2_control_circle_icon_play.png b/playview/res/edje/images/control/T01-2_control_circle_icon_play.png
new file mode 100755 (executable)
index 0000000..68570ac
Binary files /dev/null and b/playview/res/edje/images/control/T01-2_control_circle_icon_play.png differ
diff --git a/playview/res/edje/images/control/T01-2_control_circle_icon_reverse.png b/playview/res/edje/images/control/T01-2_control_circle_icon_reverse.png
new file mode 100755 (executable)
index 0000000..97681f1
Binary files /dev/null and b/playview/res/edje/images/control/T01-2_control_circle_icon_reverse.png differ
diff --git a/playview/res/edje/images/control/T01-2_control_circle_icon_rewind.png b/playview/res/edje/images/control/T01-2_control_circle_icon_rewind.png
new file mode 100755 (executable)
index 0000000..155955e
Binary files /dev/null and b/playview/res/edje/images/control/T01-2_control_circle_icon_rewind.png differ
diff --git a/playview/res/edje/images/control/T01_2_control_circle_icon_forward.png b/playview/res/edje/images/control/T01_2_control_circle_icon_forward.png
new file mode 100755 (executable)
index 0000000..55de668
Binary files /dev/null and b/playview/res/edje/images/control/T01_2_control_circle_icon_forward.png differ
diff --git a/playview/res/edje/images/control/T01_2_control_circle_icon_reverse.png b/playview/res/edje/images/control/T01_2_control_circle_icon_reverse.png
new file mode 100755 (executable)
index 0000000..e01e0a9
Binary files /dev/null and b/playview/res/edje/images/control/T01_2_control_circle_icon_reverse.png differ
diff --git a/playview/res/edje/images/dmc/T01_2_device_connect_arrow_01.png b/playview/res/edje/images/dmc/T01_2_device_connect_arrow_01.png
new file mode 100755 (executable)
index 0000000..7441c0a
Binary files /dev/null and b/playview/res/edje/images/dmc/T01_2_device_connect_arrow_01.png differ
diff --git a/playview/res/edje/images/dmc/T01_2_device_connect_arrow_02.png b/playview/res/edje/images/dmc/T01_2_device_connect_arrow_02.png
new file mode 100755 (executable)
index 0000000..c211a0c
Binary files /dev/null and b/playview/res/edje/images/dmc/T01_2_device_connect_arrow_02.png differ
diff --git a/playview/res/edje/images/dmc/T01_2_device_connect_arrow_03.png b/playview/res/edje/images/dmc/T01_2_device_connect_arrow_03.png
new file mode 100755 (executable)
index 0000000..70c8356
Binary files /dev/null and b/playview/res/edje/images/dmc/T01_2_device_connect_arrow_03.png differ
diff --git a/playview/res/edje/images/dmc/T01_2_device_connect_arrow_04.png b/playview/res/edje/images/dmc/T01_2_device_connect_arrow_04.png
new file mode 100755 (executable)
index 0000000..da069dc
Binary files /dev/null and b/playview/res/edje/images/dmc/T01_2_device_connect_arrow_04.png differ
diff --git a/playview/res/edje/images/dmc/T01_2_image_mydevice.png b/playview/res/edje/images/dmc/T01_2_image_mydevice.png
new file mode 100755 (executable)
index 0000000..56c90fc
Binary files /dev/null and b/playview/res/edje/images/dmc/T01_2_image_mydevice.png differ
diff --git a/playview/res/edje/images/dmc/T01_2_image_tv.png b/playview/res/edje/images/dmc/T01_2_image_tv.png
new file mode 100755 (executable)
index 0000000..e0fbe2b
Binary files /dev/null and b/playview/res/edje/images/dmc/T01_2_image_tv.png differ
diff --git a/playview/res/edje/images/dmc/T02_player_all_share.png b/playview/res/edje/images/dmc/T02_player_all_share.png
new file mode 100755 (executable)
index 0000000..71c89c2
Binary files /dev/null and b/playview/res/edje/images/dmc/T02_player_all_share.png differ
diff --git a/playview/res/edje/images/function/T01-2_control_icon_mute.png b/playview/res/edje/images/function/T01-2_control_icon_mute.png
new file mode 100755 (executable)
index 0000000..63533f4
Binary files /dev/null and b/playview/res/edje/images/function/T01-2_control_icon_mute.png differ
diff --git a/playview/res/edje/images/function/T01-2_control_icon_mute_dim.png b/playview/res/edje/images/function/T01-2_control_icon_mute_dim.png
new file mode 100755 (executable)
index 0000000..da5474c
Binary files /dev/null and b/playview/res/edje/images/function/T01-2_control_icon_mute_dim.png differ
diff --git a/playview/res/edje/images/function/T01-2_control_icon_mute_press.png b/playview/res/edje/images/function/T01-2_control_icon_mute_press.png
new file mode 100755 (executable)
index 0000000..95e82ee
Binary files /dev/null and b/playview/res/edje/images/function/T01-2_control_icon_mute_press.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_bookmark.png b/playview/res/edje/images/function/T01_2_control_icon_bookmark.png
new file mode 100755 (executable)
index 0000000..c1a65f9
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_bookmark.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_bookmark_dim.png b/playview/res/edje/images/function/T01_2_control_icon_bookmark_dim.png
new file mode 100755 (executable)
index 0000000..98167f9
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_bookmark_dim.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_bookmark_press.png b/playview/res/edje/images/function/T01_2_control_icon_bookmark_press.png
new file mode 100755 (executable)
index 0000000..7a99b31
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_bookmark_press.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_detail.png b/playview/res/edje/images/function/T01_2_control_icon_detail.png
new file mode 100755 (executable)
index 0000000..5122ecf
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_detail.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_detail_dim.png b/playview/res/edje/images/function/T01_2_control_icon_detail_dim.png
new file mode 100755 (executable)
index 0000000..8a61671
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_detail_dim.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_detail_press.png b/playview/res/edje/images/function/T01_2_control_icon_detail_press.png
new file mode 100755 (executable)
index 0000000..095439a
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_detail_press.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_multi_window.png b/playview/res/edje/images/function/T01_2_control_icon_multi_window.png
new file mode 100755 (executable)
index 0000000..df95e5b
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_multi_window.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_multi_window_dim.png b/playview/res/edje/images/function/T01_2_control_icon_multi_window_dim.png
new file mode 100755 (executable)
index 0000000..488d04d
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_multi_window_dim.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_multi_window_press.png b/playview/res/edje/images/function/T01_2_control_icon_multi_window_press.png
new file mode 100755 (executable)
index 0000000..69d520e
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_multi_window_press.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_repeat_all.png b/playview/res/edje/images/function/T01_2_control_icon_repeat_all.png
new file mode 100755 (executable)
index 0000000..8c99880
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_repeat_all.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_repeat_all_dim.png b/playview/res/edje/images/function/T01_2_control_icon_repeat_all_dim.png
new file mode 100755 (executable)
index 0000000..5ba6557
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_repeat_all_dim.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_repeat_all_press.png b/playview/res/edje/images/function/T01_2_control_icon_repeat_all_press.png
new file mode 100755 (executable)
index 0000000..0545637
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_repeat_all_press.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_repeat_mode.png b/playview/res/edje/images/function/T01_2_control_icon_repeat_mode.png
new file mode 100755 (executable)
index 0000000..05b608a
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_repeat_mode.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_repeat_mode_dim.png b/playview/res/edje/images/function/T01_2_control_icon_repeat_mode_dim.png
new file mode 100755 (executable)
index 0000000..6bfe188
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_repeat_mode_dim.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_repeat_mode_press.png b/playview/res/edje/images/function/T01_2_control_icon_repeat_mode_press.png
new file mode 100755 (executable)
index 0000000..a4057f2
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_repeat_mode_press.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_repeat_once.png b/playview/res/edje/images/function/T01_2_control_icon_repeat_once.png
new file mode 100755 (executable)
index 0000000..1fe6626
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_repeat_once.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_repeat_once_dim.png b/playview/res/edje/images/function/T01_2_control_icon_repeat_once_dim.png
new file mode 100755 (executable)
index 0000000..d77a34c
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_repeat_once_dim.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_repeat_once_press.png b/playview/res/edje/images/function/T01_2_control_icon_repeat_once_press.png
new file mode 100755 (executable)
index 0000000..e199523
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_repeat_once_press.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_screenmode.png b/playview/res/edje/images/function/T01_2_control_icon_screenmode.png
new file mode 100755 (executable)
index 0000000..5f0d011
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_screenmode.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_screenmode02.png b/playview/res/edje/images/function/T01_2_control_icon_screenmode02.png
new file mode 100755 (executable)
index 0000000..d56760c
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_screenmode02.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_screenmode02_dim.png b/playview/res/edje/images/function/T01_2_control_icon_screenmode02_dim.png
new file mode 100755 (executable)
index 0000000..d98a961
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_screenmode02_dim.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_screenmode02_press.png b/playview/res/edje/images/function/T01_2_control_icon_screenmode02_press.png
new file mode 100755 (executable)
index 0000000..fee5177
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_screenmode02_press.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_screenmode03.png b/playview/res/edje/images/function/T01_2_control_icon_screenmode03.png
new file mode 100755 (executable)
index 0000000..fc8aade
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_screenmode03.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_screenmode03_dim.png b/playview/res/edje/images/function/T01_2_control_icon_screenmode03_dim.png
new file mode 100755 (executable)
index 0000000..f4e213d
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_screenmode03_dim.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_screenmode03_press.png b/playview/res/edje/images/function/T01_2_control_icon_screenmode03_press.png
new file mode 100755 (executable)
index 0000000..38a9e0d
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_screenmode03_press.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_screenmode04.png b/playview/res/edje/images/function/T01_2_control_icon_screenmode04.png
new file mode 100755 (executable)
index 0000000..a2e5c80
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_screenmode04.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_screenmode04_dim.png b/playview/res/edje/images/function/T01_2_control_icon_screenmode04_dim.png
new file mode 100755 (executable)
index 0000000..7915c17
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_screenmode04_dim.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_screenmode04_press.png b/playview/res/edje/images/function/T01_2_control_icon_screenmode04_press.png
new file mode 100755 (executable)
index 0000000..e953141
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_screenmode04_press.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_screenmode_dim.png b/playview/res/edje/images/function/T01_2_control_icon_screenmode_dim.png
new file mode 100755 (executable)
index 0000000..0e5f397
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_screenmode_dim.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_screenmode_press.png b/playview/res/edje/images/function/T01_2_control_icon_screenmode_press.png
new file mode 100755 (executable)
index 0000000..b870966
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_screenmode_press.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_share.png b/playview/res/edje/images/function/T01_2_control_icon_share.png
new file mode 100755 (executable)
index 0000000..4fa103b
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_share.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_share_dim.png b/playview/res/edje/images/function/T01_2_control_icon_share_dim.png
new file mode 100755 (executable)
index 0000000..dca23cc
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_share_dim.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_share_press.png b/playview/res/edje/images/function/T01_2_control_icon_share_press.png
new file mode 100755 (executable)
index 0000000..32697eb
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_share_press.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_soundalive.png b/playview/res/edje/images/function/T01_2_control_icon_soundalive.png
new file mode 100755 (executable)
index 0000000..25f976e
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_soundalive.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_soundalive_dim.png b/playview/res/edje/images/function/T01_2_control_icon_soundalive_dim.png
new file mode 100755 (executable)
index 0000000..bfda60f
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_soundalive_dim.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_soundalive_press.png b/playview/res/edje/images/function/T01_2_control_icon_soundalive_press.png
new file mode 100755 (executable)
index 0000000..59a27ee
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_soundalive_press.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_trim.png b/playview/res/edje/images/function/T01_2_control_icon_trim.png
new file mode 100755 (executable)
index 0000000..98cf3e8
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_trim.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_trim_dim.png b/playview/res/edje/images/function/T01_2_control_icon_trim_dim.png
new file mode 100755 (executable)
index 0000000..1ddf444
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_trim_dim.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_trim_press.png b/playview/res/edje/images/function/T01_2_control_icon_trim_press.png
new file mode 100755 (executable)
index 0000000..7fd0240
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_trim_press.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_volume.png b/playview/res/edje/images/function/T01_2_control_icon_volume.png
new file mode 100755 (executable)
index 0000000..e4424a2
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_volume.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_volume_dim.png b/playview/res/edje/images/function/T01_2_control_icon_volume_dim.png
new file mode 100755 (executable)
index 0000000..8d525b8
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_volume_dim.png differ
diff --git a/playview/res/edje/images/function/T01_2_control_icon_volume_press.png b/playview/res/edje/images/function/T01_2_control_icon_volume_press.png
new file mode 100755 (executable)
index 0000000..26ffc61
Binary files /dev/null and b/playview/res/edje/images/function/T01_2_control_icon_volume_press.png differ
diff --git a/playview/res/edje/images/function/player_popup_view_icon_nomal.png b/playview/res/edje/images/function/player_popup_view_icon_nomal.png
new file mode 100755 (executable)
index 0000000..8258ad3
Binary files /dev/null and b/playview/res/edje/images/function/player_popup_view_icon_nomal.png differ
diff --git a/playview/res/edje/images/genlist/00_focus.png b/playview/res/edje/images/genlist/00_focus.png
new file mode 100755 (executable)
index 0000000..4f46811
Binary files /dev/null and b/playview/res/edje/images/genlist/00_focus.png differ
diff --git a/playview/res/edje/images/genlist/00_focus_dark.png b/playview/res/edje/images/genlist/00_focus_dark.png
new file mode 100755 (executable)
index 0000000..fed29db
Binary files /dev/null and b/playview/res/edje/images/genlist/00_focus_dark.png differ
diff --git a/playview/res/edje/images/genlist/00_list_group_bg.png b/playview/res/edje/images/genlist/00_list_group_bg.png
new file mode 100755 (executable)
index 0000000..612fbc5
Binary files /dev/null and b/playview/res/edje/images/genlist/00_list_group_bg.png differ
diff --git a/playview/res/edje/images/genlist/00_list_group_bg_dark.png b/playview/res/edje/images/genlist/00_list_group_bg_dark.png
new file mode 100755 (executable)
index 0000000..31f109b
Binary files /dev/null and b/playview/res/edje/images/genlist/00_list_group_bg_dark.png differ
diff --git a/playview/res/edje/images/genlist/00_list_group_bg_press.png b/playview/res/edje/images/genlist/00_list_group_bg_press.png
new file mode 100755 (executable)
index 0000000..01edbc1
Binary files /dev/null and b/playview/res/edje/images/genlist/00_list_group_bg_press.png differ
diff --git a/playview/res/edje/images/genlist/00_list_group_bg_press_dark.png b/playview/res/edje/images/genlist/00_list_group_bg_press_dark.png
new file mode 100755 (executable)
index 0000000..e0c84fa
Binary files /dev/null and b/playview/res/edje/images/genlist/00_list_group_bg_press_dark.png differ
diff --git a/playview/res/edje/images/genlist/00_popup_list_press.png b/playview/res/edje/images/genlist/00_popup_list_press.png
new file mode 100755 (executable)
index 0000000..a19964e
Binary files /dev/null and b/playview/res/edje/images/genlist/00_popup_list_press.png differ
diff --git a/playview/res/edje/images/genlist/00_popup_list_press_dark.png b/playview/res/edje/images/genlist/00_popup_list_press_dark.png
new file mode 100755 (executable)
index 0000000..a1ce14f
Binary files /dev/null and b/playview/res/edje/images/genlist/00_popup_list_press_dark.png differ
diff --git a/playview/res/edje/images/genlist/preview_settings_bg.png b/playview/res/edje/images/genlist/preview_settings_bg.png
new file mode 100755 (executable)
index 0000000..45ab09c
Binary files /dev/null and b/playview/res/edje/images/genlist/preview_settings_bg.png differ
diff --git a/playview/res/edje/images/jump/T01_2_jump_L_01.png b/playview/res/edje/images/jump/T01_2_jump_L_01.png
new file mode 100755 (executable)
index 0000000..d41b576
Binary files /dev/null and b/playview/res/edje/images/jump/T01_2_jump_L_01.png differ
diff --git a/playview/res/edje/images/jump/T01_2_jump_L_02.png b/playview/res/edje/images/jump/T01_2_jump_L_02.png
new file mode 100755 (executable)
index 0000000..52440f2
Binary files /dev/null and b/playview/res/edje/images/jump/T01_2_jump_L_02.png differ
diff --git a/playview/res/edje/images/jump/T01_2_jump_L_03.png b/playview/res/edje/images/jump/T01_2_jump_L_03.png
new file mode 100755 (executable)
index 0000000..16714b1
Binary files /dev/null and b/playview/res/edje/images/jump/T01_2_jump_L_03.png differ
diff --git a/playview/res/edje/images/jump/T01_2_jump_R_01.png b/playview/res/edje/images/jump/T01_2_jump_R_01.png
new file mode 100755 (executable)
index 0000000..ed79a92
Binary files /dev/null and b/playview/res/edje/images/jump/T01_2_jump_R_01.png differ
diff --git a/playview/res/edje/images/jump/T01_2_jump_R_02.png b/playview/res/edje/images/jump/T01_2_jump_R_02.png
new file mode 100755 (executable)
index 0000000..1cd5468
Binary files /dev/null and b/playview/res/edje/images/jump/T01_2_jump_R_02.png differ
diff --git a/playview/res/edje/images/jump/T01_2_jump_R_03.png b/playview/res/edje/images/jump/T01_2_jump_R_03.png
new file mode 100755 (executable)
index 0000000..5006e98
Binary files /dev/null and b/playview/res/edje/images/jump/T01_2_jump_R_03.png differ
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/micro_control/T01-2_Control_detail_text_bg.png b/playview/res/edje/images/micro_control/T01-2_Control_detail_text_bg.png
new file mode 100755 (executable)
index 0000000..b85e609
Binary files /dev/null and b/playview/res/edje/images/micro_control/T01-2_Control_detail_text_bg.png differ
diff --git a/playview/res/edje/images/micro_control/T01_2_micro_control_up_01.png b/playview/res/edje/images/micro_control/T01_2_micro_control_up_01.png
new file mode 100755 (executable)
index 0000000..66b6f5a
Binary files /dev/null and b/playview/res/edje/images/micro_control/T01_2_micro_control_up_01.png differ
diff --git a/playview/res/edje/images/micro_control/T01_2_micro_control_up_02.png b/playview/res/edje/images/micro_control/T01_2_micro_control_up_02.png
new file mode 100755 (executable)
index 0000000..5b81ce3
Binary files /dev/null and b/playview/res/edje/images/micro_control/T01_2_micro_control_up_02.png differ
diff --git a/playview/res/edje/images/micro_control/T01_2_micro_control_up_03.png b/playview/res/edje/images/micro_control/T01_2_micro_control_up_03.png
new file mode 100755 (executable)
index 0000000..c0faa11
Binary files /dev/null and b/playview/res/edje/images/micro_control/T01_2_micro_control_up_03.png differ
diff --git a/playview/res/edje/images/mini_controller/A01_15_popup_No_device.png b/playview/res/edje/images/mini_controller/A01_15_popup_No_device.png
new file mode 100755 (executable)
index 0000000..930d2a9
Binary files /dev/null and b/playview/res/edje/images/mini_controller/A01_15_popup_No_device.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_close_dim.png b/playview/res/edje/images/mini_controller/btn_close_dim.png
new file mode 100755 (executable)
index 0000000..9d815ce
Binary files /dev/null and b/playview/res/edje/images/mini_controller/btn_close_dim.png differ
diff --git a/playview/res/edje/images/mini_controller/btn_close_nor.png b/playview/res/edje/images/mini_controller/btn_close_nor.png
new file mode 100755 (executable)
index 0000000..afb665a
Binary files /dev/null and b/playview/res/edje/images/mini_controller/btn_close_nor.png differ
diff --git a/playview/res/edje/images/mini_controller/btn_close_press.png b/playview/res/edje/images/mini_controller/btn_close_press.png
new file mode 100755 (executable)
index 0000000..9282d96
Binary files /dev/null and b/playview/res/edje/images/mini_controller/btn_close_press.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/btn_video_close_nor.png b/playview/res/edje/images/mini_controller/btn_video_close_nor.png
new file mode 100755 (executable)
index 0000000..2cced24
Binary files /dev/null and b/playview/res/edje/images/mini_controller/btn_video_close_nor.png differ
diff --git a/playview/res/edje/images/mini_controller/btn_video_close_press.png b/playview/res/edje/images/mini_controller/btn_video_close_press.png
new file mode 100755 (executable)
index 0000000..557cd76
Binary files /dev/null and b/playview/res/edje/images/mini_controller/btn_video_close_press.png differ
diff --git a/playview/res/edje/images/mini_controller/btn_video_next_nor.png b/playview/res/edje/images/mini_controller/btn_video_next_nor.png
new file mode 100755 (executable)
index 0000000..eff2815
Binary files /dev/null and b/playview/res/edje/images/mini_controller/btn_video_next_nor.png differ
diff --git a/playview/res/edje/images/mini_controller/btn_video_next_press.png b/playview/res/edje/images/mini_controller/btn_video_next_press.png
new file mode 100755 (executable)
index 0000000..c626d0b
Binary files /dev/null and b/playview/res/edje/images/mini_controller/btn_video_next_press.png differ
diff --git a/playview/res/edje/images/mini_controller/btn_video_pause_nor.png b/playview/res/edje/images/mini_controller/btn_video_pause_nor.png
new file mode 100755 (executable)
index 0000000..5c1b020
Binary files /dev/null and b/playview/res/edje/images/mini_controller/btn_video_pause_nor.png differ
diff --git a/playview/res/edje/images/mini_controller/btn_video_pause_press.png b/playview/res/edje/images/mini_controller/btn_video_pause_press.png
new file mode 100755 (executable)
index 0000000..7e4b313
Binary files /dev/null and b/playview/res/edje/images/mini_controller/btn_video_pause_press.png differ
diff --git a/playview/res/edje/images/mini_controller/btn_video_play_nor.png b/playview/res/edje/images/mini_controller/btn_video_play_nor.png
new file mode 100755 (executable)
index 0000000..7bff225
Binary files /dev/null and b/playview/res/edje/images/mini_controller/btn_video_play_nor.png differ
diff --git a/playview/res/edje/images/mini_controller/btn_video_play_press.png b/playview/res/edje/images/mini_controller/btn_video_play_press.png
new file mode 100755 (executable)
index 0000000..f58c2ff
Binary files /dev/null and b/playview/res/edje/images/mini_controller/btn_video_play_press.png differ
diff --git a/playview/res/edje/images/mini_controller/btn_video_prev_nor.png b/playview/res/edje/images/mini_controller/btn_video_prev_nor.png
new file mode 100755 (executable)
index 0000000..8da4589
Binary files /dev/null and b/playview/res/edje/images/mini_controller/btn_video_prev_nor.png differ
diff --git a/playview/res/edje/images/mini_controller/btn_video_prev_press.png b/playview/res/edje/images/mini_controller/btn_video_prev_press.png
new file mode 100755 (executable)
index 0000000..faab5f0
Binary files /dev/null and b/playview/res/edje/images/mini_controller/btn_video_prev_press.png differ
diff --git a/playview/res/edje/images/mini_controller/control_circle_icon_stop.png b/playview/res/edje/images/mini_controller/control_circle_icon_stop.png
new file mode 100755 (executable)
index 0000000..992538e
Binary files /dev/null and b/playview/res/edje/images/mini_controller/control_circle_icon_stop.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 100755 (executable)
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 100755 (executable)
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 100755 (executable)
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 100755 (executable)
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/images/mini_controller/video_progress.png b/playview/res/edje/images/mini_controller/video_progress.png
new file mode 100755 (executable)
index 0000000..f3386d9
Binary files /dev/null and b/playview/res/edje/images/mini_controller/video_progress.png differ
diff --git a/playview/res/edje/images/mini_controller/video_progress_bg.png b/playview/res/edje/images/mini_controller/video_progress_bg.png
new file mode 100755 (executable)
index 0000000..b54c7db
Binary files /dev/null and b/playview/res/edje/images/mini_controller/video_progress_bg.png differ
diff --git a/playview/res/edje/images/more/icon_add_to_home.png b/playview/res/edje/images/more/icon_add_to_home.png
new file mode 100755 (executable)
index 0000000..0367025
Binary files /dev/null and b/playview/res/edje/images/more/icon_add_to_home.png differ
diff --git a/playview/res/edje/images/more/icon_chapter_preview.png b/playview/res/edje/images/more/icon_chapter_preview.png
new file mode 100755 (executable)
index 0000000..3d18d77
Binary files /dev/null and b/playview/res/edje/images/more/icon_chapter_preview.png differ
diff --git a/playview/res/edje/images/more/icon_detail.png b/playview/res/edje/images/more/icon_detail.png
new file mode 100755 (executable)
index 0000000..2bbd312
Binary files /dev/null and b/playview/res/edje/images/more/icon_detail.png differ
diff --git a/playview/res/edje/images/more/icon_download.png b/playview/res/edje/images/more/icon_download.png
new file mode 100755 (executable)
index 0000000..ceb91db
Binary files /dev/null and b/playview/res/edje/images/more/icon_download.png differ
diff --git a/playview/res/edje/images/more/icon_nearbydevices.png b/playview/res/edje/images/more/icon_nearbydevices.png
new file mode 100755 (executable)
index 0000000..1611c96
Binary files /dev/null and b/playview/res/edje/images/more/icon_nearbydevices.png differ
diff --git a/playview/res/edje/images/more/icon_setting.png b/playview/res/edje/images/more/icon_setting.png
new file mode 100755 (executable)
index 0000000..992a1aa
Binary files /dev/null and b/playview/res/edje/images/more/icon_setting.png differ
diff --git a/playview/res/edje/images/more/icon_share_via.png b/playview/res/edje/images/more/icon_share_via.png
new file mode 100755 (executable)
index 0000000..eb9bc07
Binary files /dev/null and b/playview/res/edje/images/more/icon_share_via.png differ
diff --git a/playview/res/edje/images/more/icon_trim.png b/playview/res/edje/images/more/icon_trim.png
new file mode 100755 (executable)
index 0000000..ffb8ae2
Binary files /dev/null and b/playview/res/edje/images/more/icon_trim.png differ
diff --git a/playview/res/edje/images/multi/Mw_title_icon_press_bg.png b/playview/res/edje/images/multi/Mw_title_icon_press_bg.png
new file mode 100755 (executable)
index 0000000..77c12d9
Binary files /dev/null and b/playview/res/edje/images/multi/Mw_title_icon_press_bg.png differ
diff --git a/playview/res/edje/images/multi/T01-2_multiscreen_player_bg.png b/playview/res/edje/images/multi/T01-2_multiscreen_player_bg.png
new file mode 100755 (executable)
index 0000000..3ff5c9f
Binary files /dev/null and b/playview/res/edje/images/multi/T01-2_multiscreen_player_bg.png differ
diff --git a/playview/res/edje/images/multi/T01_2_mw_control_bg_center.png b/playview/res/edje/images/multi/T01_2_mw_control_bg_center.png
new file mode 100755 (executable)
index 0000000..94a06e1
Binary files /dev/null and b/playview/res/edje/images/multi/T01_2_mw_control_bg_center.png differ
diff --git a/playview/res/edje/images/multi/T01_2_mw_control_bg_center_press.png b/playview/res/edje/images/multi/T01_2_mw_control_bg_center_press.png
new file mode 100755 (executable)
index 0000000..a93b093
Binary files /dev/null and b/playview/res/edje/images/multi/T01_2_mw_control_bg_center_press.png differ
diff --git a/playview/res/edje/images/multi/T01_2_mw_control_bg_left.png b/playview/res/edje/images/multi/T01_2_mw_control_bg_left.png
new file mode 100755 (executable)
index 0000000..cf134e4
Binary files /dev/null and b/playview/res/edje/images/multi/T01_2_mw_control_bg_left.png differ
diff --git a/playview/res/edje/images/multi/T01_2_mw_control_bg_left_press.png b/playview/res/edje/images/multi/T01_2_mw_control_bg_left_press.png
new file mode 100755 (executable)
index 0000000..9ca72a7
Binary files /dev/null and b/playview/res/edje/images/multi/T01_2_mw_control_bg_left_press.png differ
diff --git a/playview/res/edje/images/multi/T01_2_mw_control_bg_right.png b/playview/res/edje/images/multi/T01_2_mw_control_bg_right.png
new file mode 100755 (executable)
index 0000000..5ade040
Binary files /dev/null and b/playview/res/edje/images/multi/T01_2_mw_control_bg_right.png differ
diff --git a/playview/res/edje/images/multi/T01_2_mw_control_bg_right_press.png b/playview/res/edje/images/multi/T01_2_mw_control_bg_right_press.png
new file mode 100755 (executable)
index 0000000..baa989b
Binary files /dev/null and b/playview/res/edje/images/multi/T01_2_mw_control_bg_right_press.png differ
diff --git a/playview/res/edje/images/multi/T01_2_mw_control_icon_ff.png b/playview/res/edje/images/multi/T01_2_mw_control_icon_ff.png
new file mode 100755 (executable)
index 0000000..74d5486
Binary files /dev/null and b/playview/res/edje/images/multi/T01_2_mw_control_icon_ff.png differ
diff --git a/playview/res/edje/images/multi/T01_2_mw_control_icon_ff_press.png b/playview/res/edje/images/multi/T01_2_mw_control_icon_ff_press.png
new file mode 100755 (executable)
index 0000000..91c7cb7
Binary files /dev/null and b/playview/res/edje/images/multi/T01_2_mw_control_icon_ff_press.png differ
diff --git a/playview/res/edje/images/multi/T01_2_mw_control_icon_pause.png b/playview/res/edje/images/multi/T01_2_mw_control_icon_pause.png
new file mode 100755 (executable)
index 0000000..927b17a
Binary files /dev/null and b/playview/res/edje/images/multi/T01_2_mw_control_icon_pause.png differ
diff --git a/playview/res/edje/images/multi/T01_2_mw_control_icon_pause_press.png b/playview/res/edje/images/multi/T01_2_mw_control_icon_pause_press.png
new file mode 100755 (executable)
index 0000000..065d1d7
Binary files /dev/null and b/playview/res/edje/images/multi/T01_2_mw_control_icon_pause_press.png differ
diff --git a/playview/res/edje/images/multi/T01_2_mw_control_icon_play.png b/playview/res/edje/images/multi/T01_2_mw_control_icon_play.png
new file mode 100755 (executable)
index 0000000..40dfd5a
Binary files /dev/null and b/playview/res/edje/images/multi/T01_2_mw_control_icon_play.png differ
diff --git a/playview/res/edje/images/multi/T01_2_mw_control_icon_play_press.png b/playview/res/edje/images/multi/T01_2_mw_control_icon_play_press.png
new file mode 100755 (executable)
index 0000000..cf27bf7
Binary files /dev/null and b/playview/res/edje/images/multi/T01_2_mw_control_icon_play_press.png differ
diff --git a/playview/res/edje/images/multi/T01_2_mw_control_icon_rew.png b/playview/res/edje/images/multi/T01_2_mw_control_icon_rew.png
new file mode 100755 (executable)
index 0000000..ac94645
Binary files /dev/null and b/playview/res/edje/images/multi/T01_2_mw_control_icon_rew.png differ
diff --git a/playview/res/edje/images/multi/T01_2_mw_control_icon_rew_press.png b/playview/res/edje/images/multi/T01_2_mw_control_icon_rew_press.png
new file mode 100755 (executable)
index 0000000..f4b087f
Binary files /dev/null and b/playview/res/edje/images/multi/T01_2_mw_control_icon_rew_press.png differ
diff --git a/playview/res/edje/images/multi/mw_frame.png b/playview/res/edje/images/multi/mw_frame.png
new file mode 100755 (executable)
index 0000000..5c644c6
Binary files /dev/null and b/playview/res/edje/images/multi/mw_frame.png differ
diff --git a/playview/res/edje/images/multi/mw_frame_handler.png b/playview/res/edje/images/multi/mw_frame_handler.png
new file mode 100755 (executable)
index 0000000..f2eff75
Binary files /dev/null and b/playview/res/edje/images/multi/mw_frame_handler.png differ
diff --git a/playview/res/edje/images/multi/mw_frame_handler_press.png b/playview/res/edje/images/multi/mw_frame_handler_press.png
new file mode 100755 (executable)
index 0000000..415aad8
Binary files /dev/null and b/playview/res/edje/images/multi/mw_frame_handler_press.png differ
diff --git a/playview/res/edje/images/multi/mw_title_bg.#.png b/playview/res/edje/images/multi/mw_title_bg.#.png
new file mode 100755 (executable)
index 0000000..e8ce44b
Binary files /dev/null and b/playview/res/edje/images/multi/mw_title_bg.#.png differ
diff --git a/playview/res/edje/images/multi/mw_title_bg_ef.#.png b/playview/res/edje/images/multi/mw_title_bg_ef.#.png
new file mode 100755 (executable)
index 0000000..07f8f89
Binary files /dev/null and b/playview/res/edje/images/multi/mw_title_bg_ef.#.png differ
diff --git a/playview/res/edje/images/multi/mw_title_bg_focus.#.png b/playview/res/edje/images/multi/mw_title_bg_focus.#.png
new file mode 100755 (executable)
index 0000000..e8ce44b
Binary files /dev/null and b/playview/res/edje/images/multi/mw_title_bg_focus.#.png differ
diff --git a/playview/res/edje/images/multi/mw_title_bg_focus_ef.#.png b/playview/res/edje/images/multi/mw_title_bg_focus_ef.#.png
new file mode 100755 (executable)
index 0000000..9b7678e
Binary files /dev/null and b/playview/res/edje/images/multi/mw_title_bg_focus_ef.#.png differ
diff --git a/playview/res/edje/images/multi/mw_title_bg_press.png b/playview/res/edje/images/multi/mw_title_bg_press.png
new file mode 100755 (executable)
index 0000000..d7e7a1c
Binary files /dev/null and b/playview/res/edje/images/multi/mw_title_bg_press.png differ
diff --git a/playview/res/edje/images/multi/mw_title_divider.png b/playview/res/edje/images/multi/mw_title_divider.png
new file mode 100755 (executable)
index 0000000..491aeda
Binary files /dev/null and b/playview/res/edje/images/multi/mw_title_divider.png differ
diff --git a/playview/res/edje/images/multi/mw_title_focus.#.png b/playview/res/edje/images/multi/mw_title_focus.#.png
new file mode 100755 (executable)
index 0000000..a04f8e0
Binary files /dev/null and b/playview/res/edje/images/multi/mw_title_focus.#.png differ
diff --git a/playview/res/edje/images/multi/mw_title_focus_bg_press.#.png b/playview/res/edje/images/multi/mw_title_focus_bg_press.#.png
new file mode 100755 (executable)
index 0000000..53a6fb5
Binary files /dev/null and b/playview/res/edje/images/multi/mw_title_focus_bg_press.#.png differ
diff --git a/playview/res/edje/images/multi/my_title_icon_delete.png b/playview/res/edje/images/multi/my_title_icon_delete.png
new file mode 100755 (executable)
index 0000000..93eefd2
Binary files /dev/null and b/playview/res/edje/images/multi/my_title_icon_delete.png differ
diff --git a/playview/res/edje/images/multi/my_title_icon_delete_ef_press.png b/playview/res/edje/images/multi/my_title_icon_delete_ef_press.png
new file mode 100755 (executable)
index 0000000..06278ed
Binary files /dev/null and b/playview/res/edje/images/multi/my_title_icon_delete_ef_press.png differ
diff --git a/playview/res/edje/images/multi/my_title_icon_delete_press.png b/playview/res/edje/images/multi/my_title_icon_delete_press.png
new file mode 100755 (executable)
index 0000000..759f493
Binary files /dev/null and b/playview/res/edje/images/multi/my_title_icon_delete_press.png differ
diff --git a/playview/res/edje/images/multi/my_title_icon_maximize.png b/playview/res/edje/images/multi/my_title_icon_maximize.png
new file mode 100755 (executable)
index 0000000..7fce9c6
Binary files /dev/null and b/playview/res/edje/images/multi/my_title_icon_maximize.png differ
diff --git a/playview/res/edje/images/multi/my_title_icon_maximize_ef_press.png b/playview/res/edje/images/multi/my_title_icon_maximize_ef_press.png
new file mode 100755 (executable)
index 0000000..af41bea
Binary files /dev/null and b/playview/res/edje/images/multi/my_title_icon_maximize_ef_press.png differ
diff --git a/playview/res/edje/images/multi/my_title_icon_maximize_press.png b/playview/res/edje/images/multi/my_title_icon_maximize_press.png
new file mode 100755 (executable)
index 0000000..5cac9d9
Binary files /dev/null and b/playview/res/edje/images/multi/my_title_icon_maximize_press.png differ
diff --git a/playview/res/edje/images/multi/my_title_icon_mimimize.png b/playview/res/edje/images/multi/my_title_icon_mimimize.png
new file mode 100755 (executable)
index 0000000..c980242
Binary files /dev/null and b/playview/res/edje/images/multi/my_title_icon_mimimize.png differ
diff --git a/playview/res/edje/images/multi/my_title_icon_mimimize_ef_press.png b/playview/res/edje/images/multi/my_title_icon_mimimize_ef_press.png
new file mode 100755 (executable)
index 0000000..5a35ba1
Binary files /dev/null and b/playview/res/edje/images/multi/my_title_icon_mimimize_ef_press.png differ
diff --git a/playview/res/edje/images/multi/my_title_icon_mimimize_press.png b/playview/res/edje/images/multi/my_title_icon_mimimize_press.png
new file mode 100755 (executable)
index 0000000..2b98639
Binary files /dev/null and b/playview/res/edje/images/multi/my_title_icon_mimimize_press.png differ
diff --git a/playview/res/edje/images/nearby_device/T02_Player_Nearby_device_01.png b/playview/res/edje/images/nearby_device/T02_Player_Nearby_device_01.png
new file mode 100755 (executable)
index 0000000..96e22b0
Binary files /dev/null and b/playview/res/edje/images/nearby_device/T02_Player_Nearby_device_01.png differ
diff --git a/playview/res/edje/images/nearby_device/T02_Player_Nearby_device_02.png b/playview/res/edje/images/nearby_device/T02_Player_Nearby_device_02.png
new file mode 100755 (executable)
index 0000000..d8828b6
Binary files /dev/null and b/playview/res/edje/images/nearby_device/T02_Player_Nearby_device_02.png differ
diff --git a/playview/res/edje/images/nearby_device/U04_connecting_ani_01.png b/playview/res/edje/images/nearby_device/U04_connecting_ani_01.png
new file mode 100755 (executable)
index 0000000..17b5dcd
Binary files /dev/null and b/playview/res/edje/images/nearby_device/U04_connecting_ani_01.png differ
diff --git a/playview/res/edje/images/nearby_device/U04_connecting_ani_02.png b/playview/res/edje/images/nearby_device/U04_connecting_ani_02.png
new file mode 100755 (executable)
index 0000000..23e086a
Binary files /dev/null and b/playview/res/edje/images/nearby_device/U04_connecting_ani_02.png differ
diff --git a/playview/res/edje/images/nearby_device/U04_connecting_ani_03.png b/playview/res/edje/images/nearby_device/U04_connecting_ani_03.png
new file mode 100755 (executable)
index 0000000..3c20025
Binary files /dev/null and b/playview/res/edje/images/nearby_device/U04_connecting_ani_03.png differ
diff --git a/playview/res/edje/images/nearby_device/U04_connecting_ani_04.png b/playview/res/edje/images/nearby_device/U04_connecting_ani_04.png
new file mode 100755 (executable)
index 0000000..2d9e9b1
Binary files /dev/null and b/playview/res/edje/images/nearby_device/U04_connecting_ani_04.png differ
diff --git a/playview/res/edje/images/player_error_screen.png b/playview/res/edje/images/player_error_screen.png
new file mode 100755 (executable)
index 0000000..27ee84e
Binary files /dev/null and b/playview/res/edje/images/player_error_screen.png differ
diff --git a/playview/res/edje/images/popup/T01-2_volume_popup_icon_brightness.png b/playview/res/edje/images/popup/T01-2_volume_popup_icon_brightness.png
new file mode 100755 (executable)
index 0000000..228e3a4
Binary files /dev/null and b/playview/res/edje/images/popup/T01-2_volume_popup_icon_brightness.png differ
diff --git a/playview/res/edje/images/popup/T01-2_volume_popup_icon_volume01.png b/playview/res/edje/images/popup/T01-2_volume_popup_icon_volume01.png
new file mode 100755 (executable)
index 0000000..fd96325
Binary files /dev/null and b/playview/res/edje/images/popup/T01-2_volume_popup_icon_volume01.png differ
diff --git a/playview/res/edje/images/popup/T01-2_volume_popup_icon_volume02.png b/playview/res/edje/images/popup/T01-2_volume_popup_icon_volume02.png
new file mode 100755 (executable)
index 0000000..ee5340f
Binary files /dev/null and b/playview/res/edje/images/popup/T01-2_volume_popup_icon_volume02.png differ
diff --git a/playview/res/edje/images/popup/U05_help_popup_sbeam.png b/playview/res/edje/images/popup/U05_help_popup_sbeam.png
new file mode 100755 (executable)
index 0000000..aee263a
Binary files /dev/null and b/playview/res/edje/images/popup/U05_help_popup_sbeam.png differ
diff --git a/playview/res/edje/images/progressbar/T01_2_control_progress_handle.png b/playview/res/edje/images/progressbar/T01_2_control_progress_handle.png
new file mode 100755 (executable)
index 0000000..c4e7a4f
Binary files /dev/null and b/playview/res/edje/images/progressbar/T01_2_control_progress_handle.png differ
diff --git a/playview/res/edje/images/progressbar/T01_2_control_progress_handle_press.png b/playview/res/edje/images/progressbar/T01_2_control_progress_handle_press.png
new file mode 100755 (executable)
index 0000000..b1977db
Binary files /dev/null and b/playview/res/edje/images/progressbar/T01_2_control_progress_handle_press.png differ
diff --git a/playview/res/edje/images/progressbar/core_progress_bar.#.png b/playview/res/edje/images/progressbar/core_progress_bar.#.png
new file mode 100755 (executable)
index 0000000..ead779c
Binary files /dev/null and b/playview/res/edje/images/progressbar/core_progress_bar.#.png differ
diff --git a/playview/res/edje/images/sensor/B15_turn_over_01.png b/playview/res/edje/images/sensor/B15_turn_over_01.png
new file mode 100755 (executable)
index 0000000..2bc3166
Binary files /dev/null and b/playview/res/edje/images/sensor/B15_turn_over_01.png differ
diff --git a/playview/res/edje/images/sensor/B15_turn_over_02.png b/playview/res/edje/images/sensor/B15_turn_over_02.png
new file mode 100755 (executable)
index 0000000..d8d7c84
Binary files /dev/null and b/playview/res/edje/images/sensor/B15_turn_over_02.png differ
diff --git a/playview/res/edje/images/sensor/B15_turn_over_03.png b/playview/res/edje/images/sensor/B15_turn_over_03.png
new file mode 100755 (executable)
index 0000000..81481d8
Binary files /dev/null and b/playview/res/edje/images/sensor/B15_turn_over_03.png differ
diff --git a/playview/res/edje/images/sound_only.png b/playview/res/edje/images/sound_only.png
new file mode 100755 (executable)
index 0000000..0849699
Binary files /dev/null and b/playview/res/edje/images/sound_only.png differ
diff --git a/playview/res/edje/images/tag/T01-1_Tag_buddy_settings_bg.png b/playview/res/edje/images/tag/T01-1_Tag_buddy_settings_bg.png
new file mode 100755 (executable)
index 0000000..b1d05eb
Binary files /dev/null and b/playview/res/edje/images/tag/T01-1_Tag_buddy_settings_bg.png differ
diff --git a/playview/res/edje/images/tag/T01-1_logo_accuweather.png b/playview/res/edje/images/tag/T01-1_logo_accuweather.png
new file mode 100755 (executable)
index 0000000..4a5874c
Binary files /dev/null and b/playview/res/edje/images/tag/T01-1_logo_accuweather.png differ
diff --git a/playview/res/edje/images/tag/T01_2_icon_tag_buddy_cplogo.PNG b/playview/res/edje/images/tag/T01_2_icon_tag_buddy_cplogo.PNG
new file mode 100755 (executable)
index 0000000..d6905eb
Binary files /dev/null and b/playview/res/edje/images/tag/T01_2_icon_tag_buddy_cplogo.PNG differ
diff --git a/playview/res/edje/images/tag/U07_weather_logo.png b/playview/res/edje/images/tag/U07_weather_logo.png
new file mode 100755 (executable)
index 0000000..86ce5b5
Binary files /dev/null and b/playview/res/edje/images/tag/U07_weather_logo.png differ
diff --git a/playview/res/edje/images/trim/T01_2_trim_left.png b/playview/res/edje/images/trim/T01_2_trim_left.png
new file mode 100755 (executable)
index 0000000..f0d3e36
Binary files /dev/null and b/playview/res/edje/images/trim/T01_2_trim_left.png differ
diff --git a/playview/res/edje/images/trim/T01_2_trim_picker.png b/playview/res/edje/images/trim/T01_2_trim_picker.png
new file mode 100755 (executable)
index 0000000..153d9e2
Binary files /dev/null and b/playview/res/edje/images/trim/T01_2_trim_picker.png differ
diff --git a/playview/res/edje/images/trim/T01_2_trim_right.png b/playview/res/edje/images/trim/T01_2_trim_right.png
new file mode 100755 (executable)
index 0000000..a8b7935
Binary files /dev/null and b/playview/res/edje/images/trim/T01_2_trim_right.png differ
diff --git a/playview/res/edje/images/volume/T01_2_volume_popup_bg.png b/playview/res/edje/images/volume/T01_2_volume_popup_bg.png
new file mode 100755 (executable)
index 0000000..2069958
Binary files /dev/null and b/playview/res/edje/images/volume/T01_2_volume_popup_bg.png differ
diff --git a/playview/res/edje/images/volume/T01_2_volume_popup_progress_bar.png b/playview/res/edje/images/volume/T01_2_volume_popup_progress_bar.png
new file mode 100755 (executable)
index 0000000..509ecbb
Binary files /dev/null and b/playview/res/edje/images/volume/T01_2_volume_popup_progress_bar.png differ
diff --git a/playview/res/edje/images/volume/T01_2_volume_popup_progress_bg.png b/playview/res/edje/images/volume/T01_2_volume_popup_progress_bg.png
new file mode 100755 (executable)
index 0000000..f789938
Binary files /dev/null and b/playview/res/edje/images/volume/T01_2_volume_popup_progress_bg.png differ
diff --git a/playview/res/edje/images/volume/T01_2_volume_popup_progress_handle.png b/playview/res/edje/images/volume/T01_2_volume_popup_progress_handle.png
new file mode 100755 (executable)
index 0000000..68105d1
Binary files /dev/null and b/playview/res/edje/images/volume/T01_2_volume_popup_progress_handle.png differ
diff --git a/playview/res/edje/images/volume/T01_2_volume_popup_progress_handle_press.png b/playview/res/edje/images/volume/T01_2_volume_popup_progress_handle_press.png
new file mode 100755 (executable)
index 0000000..88eb56f
Binary files /dev/null and b/playview/res/edje/images/volume/T01_2_volume_popup_progress_handle_press.png differ
diff --git a/playview/res/edje/pv-bookmark-item.edc b/playview/res/edje/pv-bookmark-item.edc
new file mode 100755 (executable)
index 0000000..df279bf
--- /dev/null
@@ -0,0 +1,276 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define VP_BOOKMARK_ITEM_RECT_MIN_MAX_INC              152 132
+#define VP_BOOKMARK_ITEM_ICON_MIN_MAX_INC              146 88
+
+#define BOOKMARK_ITEM_SELECT_VI_EFFECT \
+} \
+description { state: "pressed" 0.0; \
+   inherit: "default" 0.0; \
+   map { \
+         on: 1; \
+         perspective: "persp1"; \
+         smooth: 0; \
+   } \
+} \
+description { state: "selected" 0.0; \
+   inherit: "default" 0.0; \
+   map { \
+         on: 1; \
+         perspective: "persp"; \
+         smooth: 1; \
+   }
+
+#define BOOKMARK_PROGRAM_ITEM_SELECT_VI_EFFECT( TARGET ) \
+         program { name: "vi_pressed"; \
+                action: STATE_SET "pressed" 0.0; \
+                TARGET \
+                after: "vi_zoom_in"; \
+         } \
+         program { name: "vi_zoom_in"; \
+                action: STATE_SET "selected" 0.0; \
+                TARGET \
+                transition: SIN_FAC 0.167 1.1; \
+         } \
+         program { name: "vi_zoom_out"; \
+                action: STATE_SET "pressed" 0.0; \
+                TARGET \
+                transition: SIN_FAC 0.167 1.1; \
+                after: "vi_default"; \
+         } \
+         program { name: "vi_default"; \
+                action: STATE_SET "default" 0.0; \
+                TARGET \
+         }
+
+
+collections {
+       group {
+               name: "pv.bookmark.item";
+               script {
+                  public selected = 0;
+               }
+               parts {
+                       part {
+                               name: "pv.bookmark.item.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: VP_BOOKMARK_ITEM_RECT_MIN_MAX_INC;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 0;
+                                       BOOKMARK_ITEM_SELECT_VI_EFFECT
+                               }
+                       }
+                       part { name: "persp";
+                          type: RECT;
+                          description { state: "default" 0.0;
+                                 min: 32 32;
+                                 max: 32 32;
+                                 fixed: 1 1;
+                                 align: 0.5 0.5;
+                                 color: 0 0 0 0;
+                                 visible: 1;
+                                 perspective {
+                                        zplane: -70;
+                                        focal: 1000;
+                                 }
+                          }
+                       }
+                       part { name: "persp1";
+                          type: RECT;
+                          description { state: "default" 0.0;
+                                 min: 32 32;
+                                 max: 32 32;
+                                 fixed: 1 1;
+                                 align: 0.5 0.5;
+                                 color: 0 0 0 0;
+                                 visible: 1;
+                                 perspective {
+                                        zplane: 0;
+                                        focal: 1000;
+                                 }
+                          }
+                       }
+                       part {
+                               name: "pv.bookmark.item.top.padding";
+                               scale: 1;
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 6 ;
+                                       fixed: 0 1;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: pv.bookmark.item.rect; }
+                                       rel2 { relative: 0.0 0.0; to: pv.bookmark.item.rect; }
+                               }
+                       }
+                       part {
+                               name: "pv.bookmark.item.bottom.padding";
+                               scale: 1;
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 18 ;
+                                       fixed: 0 1;
+                                       visible: 0;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: pv.bookmark.item.rect; }
+                                       rel2 { relative: 0.0 1.0; to: pv.bookmark.item.rect; }
+                               }
+                       }
+                       part {
+                               name: "pv.bookmark.item.icon";
+                               scale: 1;
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: VP_BOOKMARK_ITEM_ICON_MIN_MAX_INC;
+                                       max: VP_BOOKMARK_ITEM_ICON_MIN_MAX_INC;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_x: pv.bookmark.item.rect; to_y: pv.bookmark.item.top.padding;}
+                                       rel2 { relative: 0.0 1.0; to_x: pv.bookmark.item.rect; to_y: pv.bookmark.item.top.padding;}
+                                       color: 255 255 255 255;
+                                       BOOKMARK_ITEM_SELECT_VI_EFFECT
+                               }
+                       }
+                       part {
+                               name: "pv.bookmark.item.txt";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_x: pv.bookmark.item.rect; to_y: pv.bookmark.item.icon;}
+                                       rel2 { relative: 1.0 0.0; to_x: pv.bookmark.item.rect; to_y: pv.bookmark.item.bottom.padding;}
+                                       color: 248 246 240 255;
+                                       text {
+                                               font: "Tizen:style=Regular";
+                                               size: 24;
+                                               align: 0.5 0.0;
+                                       }
+                               }
+                       }
+                       part {
+                               name: "pv.bookmark.item.event";
+                               scale: 1;
+                               type: RECT;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.0; to: pv.bookmark.item.icon;}
+                                       rel2 { relative: 1.0 1.0; to: pv.bookmark.item.icon;}
+                                       color: 255 255 255 0;
+                               }
+                       }
+               } /* parts */
+               programs {
+                       BOOKMARK_PROGRAM_ITEM_SELECT_VI_EFFECT(
+                          target: "pv.bookmark.item.rect";
+                          target: "pv.bookmark.item.icon";
+                       )
+                       program {
+                               name: "mouse_down";
+                               signal: "mouse,down,1";
+                               source: "pv.bookmark.item.event";
+                               action: SIGNAL_EMIT "down" "*";
+                               script {
+                                  if (!get_int(selected)) {
+                                         set_int(selected, 1);
+                                         run_program(PROGRAM:"vi_pressed");
+                                  }
+                               }
+                       }
+                       program {
+                               name: "mouse_up";
+                               signal: "mouse,up,1";
+                               source: "pv.bookmark.item.event";
+                               action: SIGNAL_EMIT "up" "*";
+                               script {
+                                  if (get_int(selected)) {
+                                         set_int(selected, 0);
+                                         run_program(PROGRAM:"vi_zoom_out");
+                                  }
+                               }
+                       }
+               }
+       }       /* group */
+       group {
+               name: "pv.bookmark.item.end";
+               parts {
+                       part {
+                               name: "pv.bookmark.item.end.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               repeat_events : 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: VP_BOOKMARK_ITEM_RECT_MIN_MAX_INC;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 255 128;
+                               }
+                       }
+                       part {
+                               name: "pv.bookmark.item.del.rect";
+                               scale: 1;
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 48 48;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: pv.bookmark.item.end.bg;}
+                                       rel2 { relative: 1.0 0.0; to: pv.bookmark.item.end.bg;}
+                                       color: 255 255 255 255;
+                               }
+                       }
+                       part {
+                               name: "pv.bookmark.item.del";
+                               scale: 1;
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               repeat_events : 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 48 48;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to: pv.bookmark.item.del.rect;}
+                                       rel2 { relative: 1.0 1.0; to: pv.bookmark.item.del.rect;}
+                               }
+                       }
+               } /* parts */
+       } /* group */
+} /* collections */
diff --git a/playview/res/edje/pv-bookmark.edc b/playview/res/edje/pv-bookmark.edc
new file mode 100755 (executable)
index 0000000..5929798
--- /dev/null
@@ -0,0 +1,136 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+collections {
+       group {
+               name: "pv.bookmark";
+               parts {
+                       part {
+                               name: "pv.bookmark.rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events : 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       fixed: 0 1;
+                                       min: 0 150;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 0.0;}
+                                       color: 0 0 0 128;
+                               }
+                       }
+
+                       part {
+                               name: "pv.bookmark.top.padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_y : "pv.bookmark.rect"; }
+                                       rel2 { relative: 0.0 0.0; to_y : "pv.bookmark.rect"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.bookmark.bottom.padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       fixed: 0 1;
+                                       min: 0 2;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to_y : "pv.bookmark.rect"; }
+                                       rel2 { relative: 1.0 1.0; to_y : "pv.bookmark.rect"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "pv.bookmark.left.padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 26 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 0.0 1.0;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.bookmark.add.button";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: 44 44;
+                                       max: 44 44;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.0; to_x : "pv.bookmark.left.padding"; to_y: "pv.bookmark.rect"; }
+                                       rel2 { relative: 1.0 0.0; to_x : "pv.bookmark.left.padding"; to_y: "pv.bookmark.bottom.padding"; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.bookmark.right.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: 20 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to_x : "pv.bookmark.add.button"; }
+                                       rel2 { relative: 1.0 1.0; to_x : "pv.bookmark.add.button"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.bookmark.item.list";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to_x : "pv.bookmark.right.padding"; to_y: "pv.bookmark.top.padding"; }
+                                       rel2 { relative: 1.0 1.0; to_x : "pv.bookmark.rect"; to_y: "pv.bookmark.bottom.padding"; }
+                               }
+                       }
+               } /* parts */
+       }       /* group */
+} /* collections */
+
diff --git a/playview/res/edje/pv-brightness-popup.edc b/playview/res/edje/pv-brightness-popup.edc
new file mode 100755 (executable)
index 0000000..0e0be15
--- /dev/null
@@ -0,0 +1,338 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define FONT_BOLD_TYPE                 "Tizen:style=Bold"
+
+#define FONT_VOLUME_COLOR              255 255 255 255
+
+
+collections {
+       base_scale : 1.6;
+       group {
+               name: "pv.brightness.popup";
+               parts {
+                       part {
+                               name: "pv.brightness.popup.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               repeat_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: 58 286;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 0.0 0.5;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.bg";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: 58 286;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 0.0 0.5;}
+                                       color: 255 255 255 255;
+                                       image { normal: "volume/T01_2_volume_popup_bg.png"; border: 0 0 29 29;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.icon.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: 0 12;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.brightness.popup.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.brightness.popup.bg";}
+                                       color: 255 0 0 255;
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.icon";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: 22 22;
+                                       fixed: 1 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.5 1.0; to_x: "pv.brightness.popup.bg"; to_y: "pv.brightness.popup.icon.padding";}
+                                       rel2 { relative: 0.5 1.0; to_x: "pv.brightness.popup.bg"; to_y: "pv.brightness.popup.icon.padding";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.top.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: 0 11;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.brightness.popup.icon";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.brightness.popup.icon";}
+                                       color: 255 0 0 255;
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.bottom.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: 0 18;
+                                       fixed: 1 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.brightness.popup.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.brightness.popup.bg";}
+                                       color: 255 0 0 255;
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               effect: FAR_SHADOW BOTTOM;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: 0 23;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.brightness.popup.bottom.padding";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.brightness.popup.bottom.padding";}
+                                       color: FONT_VOLUME_COLOR;
+                                       color3: 51 57 72 255;
+                                       text {
+                                               font: FONT_BOLD_TYPE;
+                                               size: 21;
+                                               text: "3";
+                                               align: 0.5 0.5;
+                                       }
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.txt.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: 0 11;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.brightness.popup.txt";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.brightness.popup.txt";}
+                                       color: 255 0 0 255;
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.bar.bg";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 6 0;
+                                       fixed: 1 0;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 1.0; to_x : "pv.brightness.popup.bg";  to_y : "pv.brightness.popup.top.padding";}
+                                       rel2 { relative: 0.5 0.0; to_x : "pv.brightness.popup.bg";  to_y : "pv.brightness.popup.txt.padding";}
+                                       image { normal: "volume/T01_2_volume_popup_progress_bg.png"; border: 0 0 19 19;}
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.bar.bg.top.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 22;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 0.0; to : "pv.brightness.popup.bar.bg"; }
+                                       rel2 { relative: 1.0 0.0; to : "pv.brightness.popup.bar.bg"; }
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.bar.bg.bottom.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 22;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 1.0; to : "pv.brightness.popup.bar.bg"; }
+                                       rel2 { relative: 1.0 1.0; to : "pv.brightness.popup.bar.bg"; }
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.bar.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 13;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 1.0; to_x : "pv.brightness.popup.bar.bg"; to_y : "pv.brightness.popup.bar.bg.top.padding";}
+                                       rel2 { relative: 1.0 0.0; to_x : "pv.brightness.popup.bar.bg"; to_y : "pv.brightness.popup.bar.bg.bottom.padding";}
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+
+                       part {
+                               name: "pv.brightness.popup.step";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 6 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.5; to_x : "pv.brightness.popup.bar.bg"; to_y: "pv.brightness.popup.circle"; }
+                                       rel2 { relative: 1.0 1.0; to_x : "pv.brightness.popup.bar.bg"; to_y: "pv.brightness.popup.bar.bg"; offset: 0 2; }
+                                       color: 255 255 255 255;
+                                       image { normal: "volume/T01_2_volume_popup_progress_bar.png"; border: 0 0 10 10;}
+                                       color: 255 255 255 255;
+                               }
+                       }
+                       part {
+                               name: "pv.brightness.popup.confine.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.5 0.0;
+                                       min: 24 0;
+                                       rel1 { relative: 0.5 0.0;  to: "pv.brightness.popup.bar.bg"; offset: 0 -11; }
+                                       rel2 { relative: 0.5 1.0;  to: "pv.brightness.popup.bar.bg"; offset: 0 11; }
+                                       color: 255 255 255 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.circle";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 24 24;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to_x: "pv.brightness.popup.bar.rect"; to_y: "pv.brightness.popup.playing"; }
+                                       rel2 { relative: 0.5 0.5; to_x: "pv.brightness.popup.bar.rect"; to_y: "pv.brightness.popup.playing"; }
+                                       color: 255 255 255 255;
+                               }
+                       }
+                       part {
+                               name: "pv.brightness.popup.playing";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 24 24;
+                                       fixed: 0 0;
+                                       align: 0.0 0.0;
+                               }
+                               dragable {
+                                       confine:  "pv.brightness.popup.confine.rect";
+                                       x: 0 0 0;
+                                       y: -1 1 0;
+                               }
+                       }
+
+
+                       part {
+                               name: "pv.brightness.popup.point";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 24 24;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to: "pv.brightness.popup.playing"; }
+                                       rel2 { relative: 0.5 0.5; to: "pv.brightness.popup.playing"; }
+                                       image { normal: "volume/T01_2_volume_popup_progress_handle.png";}
+                                       color: 255 255 255 255;
+                               }
+                       }
+               } /* parts */
+       }       /* group */
+} /* collections */
+
diff --git a/playview/res/edje/pv-chapter-main-new.edc b/playview/res/edje/pv-chapter-main-new.edc
new file mode 100755 (executable)
index 0000000..b3a918f
--- /dev/null
@@ -0,0 +1,1921 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define ITEM_LINE_WIDTH                                1
+#define ITEM_TEXT_BG_COLOR                     8 8 8 255
+#define ITEM_LINE_COLOR                                109 109 109 255
+#define ITEM_TEXT_COLOR                                212 212 212 255
+
+
+#define CHAPTER_ITEM_SELECT_VI_EFFECT \
+} \
+description { state: "pressed" 0.0; \
+   inherit: "default" 0.0; \
+   map { \
+         on: 1; \
+         perspective: "persp1"; \
+         smooth: 0; \
+   } \
+} \
+description { state: "selected" 0.0; \
+   inherit: "default" 0.0; \
+   map { \
+         on: 1; \
+         perspective: "persp"; \
+         smooth: 1; \
+   }
+
+#define CHAPTER_PROGRAM_ITEM_SELECT_VI_EFFECT( TARGET ) \
+         program { name: "vi_pressed"; \
+                action: STATE_SET "pressed" 0.0; \
+                TARGET \
+                after: "vi_zoom_in"; \
+         } \
+         program { name: "vi_zoom_in"; \
+                action: STATE_SET "selected" 0.0; \
+                TARGET \
+                transition: SIN_FAC 0.167 1.1; \
+         } \
+         program { name: "vi_zoom_out"; \
+                action: STATE_SET "pressed" 0.0; \
+                TARGET \
+                transition: SIN_FAC 0.167 1.1; \
+                after: "vi_default"; \
+         } \
+         program { name: "vi_default"; \
+                action: STATE_SET "default" 0.0; \
+                TARGET \
+         }
+
+
+collections {
+       group {
+               name: "pv.chapter.main";
+               parts {
+                       part {
+                               name: "pv.chapter.main.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 8 8 8 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.01.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.016 0.01;}
+                                       rel2 { relative: 0.246 0.33;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.01 0.016 ;}
+                                       rel2 { relative: 0.33 0.246;}
+                               }
+
+                       }
+                       part {
+                               name: "pv.chapter.main.item.02.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.262 0.01;}
+                                       rel2 { relative: 0.492 0.33;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.34 0.016;}
+                                       rel2 { relative: 0.66 0.246;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.03.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.508 0.01;}
+                                       rel2 { relative: 0.738 0.33;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.67 0.016;}
+                                       rel2 { relative: 0.99 0.246;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.04.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.754 0.01;}
+                                       rel2 { relative: 0.984 0.33;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.01 0.262;}
+                                       rel2 { relative: 0.33 0.492;}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.item.05.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.016 0.34;}
+                                       rel2 { relative: 0.246 0.66;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.34 0.262;}
+                                       rel2 { relative: 0.66 0.492;}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.item.06.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.262 0.34;}
+                                       rel2 { relative: 0.492 0.66;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.67 0.262;}
+                                       rel2 { relative: 0.99 0.492;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.07.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.508 0.34;}
+                                       rel2 { relative: 0.738 0.66;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.01 0.508;}
+                                       rel2 { relative: 0.33 0.738;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.08.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.754 0.34;}
+                                       rel2 { relative: 0.984 0.66;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.34 0.508;}
+                                       rel2 { relative: 0.66 0.738;}
+                               }
+                       }
+
+
+                       part {
+                               name: "pv.chapter.main.item.09.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.016 0.67;}
+                                       rel2 { relative: 0.246 0.99;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.67 0.508;}
+                                       rel2 { relative: 0.99 0.738;}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.item.10.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.262 0.67;}
+                                       rel2 { relative: 0.492 0.99;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.01 0.754;}
+                                       rel2 { relative: 0.33 0.984;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.11.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.508 0.67;}
+                                       rel2 { relative: 0.738 0.99;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.34 0.754;}
+                                       rel2 { relative: 0.66 0.984;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.12.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.754 0.67;}
+                                       rel2 { relative: 0.984 0.99;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.67 0.754;}
+                                       rel2 { relative: 0.99 0.984;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.01";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.01.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.01.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.02";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.02.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.02.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.03";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.03.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.03.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.04";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.04.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.04.bg";}
+                               }
+                       }
+
+
+                       part {
+                               name: "pv.chapter.main.item.05";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.05.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.05.bg";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.item.06";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.06.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.06.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.07";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.07.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.07.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.08";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.08.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.08.bg";}
+                               }
+                       }
+
+
+                       part {
+                               name: "pv.chapter.main.item.09";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.09.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.09.bg";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.item.10";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.10.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.10.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.11";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.11.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.11.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.12";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.12.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.12.bg";}
+                               }
+                       }
+                       //shadow
+                       part {
+                               name: "pv.chapter.main.shadow.01";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.01.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.01.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.02";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.02.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.02.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.03";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.03.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.03.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.04";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.04.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.04.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.05";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.05.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.05.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.06";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.06.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.06.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.07";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.07.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.07.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.08";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.08.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.08.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.09";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.09.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.09.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.10";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.10.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.10.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.11";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.11.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.11.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.12";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.12.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.12.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.01.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.01.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.01.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "01";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.02.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.02.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.02.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "02";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.03.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.03.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.03.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "03";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.04.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.04.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.04.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "04";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.05.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.05.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.05.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "05";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.06.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.06.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.06.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "06";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.07.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.07.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.07.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "07";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.08.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.08.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.08.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "08";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.09.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.09.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.09.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "09";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.10.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.10.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.10.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "10";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.11.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.11.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.11.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "11";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.12.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.12.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.12.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "12";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.01.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.01.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.01.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.01.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.01.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.01.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.01.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.01.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.01.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.01.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.01.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.01.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.02.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.02.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.02.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.02.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.02.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.02.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.02.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.02.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.02.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.02.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.02.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.02.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.03.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.03.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.03.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.03.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.03.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.03.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.03.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.03.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.03.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.03.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.03.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.03.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.04.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.04.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.04.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.04.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.04.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.04.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.04.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.04.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.04.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.04.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.04.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.04.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.05.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.05.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.05.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.05.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.05.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.05.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.05.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.05.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.05.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.05.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.05.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.05.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.item.06.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.06.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.06.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.06.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.06.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.06.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.06.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.06.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.06.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.06.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.06.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.06.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.item.07.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.07.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.07.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.07.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.07.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.07.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.07.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.07.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.07.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.07.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.07.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.07.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.08.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.08.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.08.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.08.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.08.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.08.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.08.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.08.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.08.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.08.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.08.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.08.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.09.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.09.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.09.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.09.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.09.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.09.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.09.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.09.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.09.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.09.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.09.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.09.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.10.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.10.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.10.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.10.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.10.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.10.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.10.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.10.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.10.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.10.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.10.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.10.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.11.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.11.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.11.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.11.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.11.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.11.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.11.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.11.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.11.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.11.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.11.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.11.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.12.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.12.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.12.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.12.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.12.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.12.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.12.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.12.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.12.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.12.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.12.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.12.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+               } /* parts */
+               programs {
+                       program {
+                               name: "portrait_mode";
+                               signal: "signal.pv.chapter.portrait.mode";
+                               source: "*";
+                               action: STATE_SET "portrait" 0.0;
+                               target: "pv.chapter.main.item.01.bg";
+                               target: "pv.chapter.main.item.02.bg";
+                               target: "pv.chapter.main.item.03.bg";
+                               target: "pv.chapter.main.item.04.bg";
+                               target: "pv.chapter.main.item.05.bg";
+                               target: "pv.chapter.main.item.06.bg";
+                               target: "pv.chapter.main.item.07.bg";
+                               target: "pv.chapter.main.item.08.bg";
+                               target: "pv.chapter.main.item.09.bg";
+                               target: "pv.chapter.main.item.10.bg";
+                               target: "pv.chapter.main.item.11.bg";
+                               target: "pv.chapter.main.item.12.bg";
+                               target: "pv.chapter.main.shadow.01";
+                               target: "pv.chapter.main.shadow.02";
+                               target: "pv.chapter.main.shadow.03";
+                               target: "pv.chapter.main.shadow.04";
+                               target: "pv.chapter.main.shadow.05";
+                               target: "pv.chapter.main.shadow.06";
+                               target: "pv.chapter.main.shadow.07";
+                               target: "pv.chapter.main.shadow.08";
+                               target: "pv.chapter.main.shadow.09";
+                               target: "pv.chapter.main.shadow.10";
+                               target: "pv.chapter.main.shadow.11";
+                               target: "pv.chapter.main.shadow.12";
+                       }
+
+                       program {
+                               name: "landscape_mode";
+                               signal: "signal.pv.chapter.landscape.mode";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.chapter.main.item.01.bg";
+                               target: "pv.chapter.main.item.02.bg";
+                               target: "pv.chapter.main.item.03.bg";
+                               target: "pv.chapter.main.item.04.bg";
+                               target: "pv.chapter.main.item.05.bg";
+                               target: "pv.chapter.main.item.06.bg";
+                               target: "pv.chapter.main.item.07.bg";
+                               target: "pv.chapter.main.item.08.bg";
+                               target: "pv.chapter.main.item.09.bg";
+                               target: "pv.chapter.main.item.10.bg";
+                               target: "pv.chapter.main.item.11.bg";
+                               target: "pv.chapter.main.item.12.bg";
+                               target: "pv.chapter.main.shadow.01";
+                               target: "pv.chapter.main.shadow.02";
+                               target: "pv.chapter.main.shadow.03";
+                               target: "pv.chapter.main.shadow.04";
+                               target: "pv.chapter.main.shadow.05";
+                               target: "pv.chapter.main.shadow.06";
+                               target: "pv.chapter.main.shadow.07";
+                               target: "pv.chapter.main.shadow.08";
+                               target: "pv.chapter.main.shadow.09";
+                               target: "pv.chapter.main.shadow.10";
+                               target: "pv.chapter.main.shadow.11";
+                               target: "pv.chapter.main.shadow.12";
+                       }
+               }
+       } /* group */
+
+       group {
+               name: "pv.chapter.main.item";
+               script {
+                  public selected = 0;
+               }
+               parts {
+                       part {
+                               name: "pv.chapter.main.item.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       color: 0 0 0 0;
+                                       CHAPTER_ITEM_SELECT_VI_EFFECT
+                               }
+                       }
+                       part { name: "persp";
+                          type: RECT;
+                          description { state: "default" 0.0;
+                                 min: 32 32;
+                                 max: 32 32;
+                                 fixed: 1 1;
+                                 align: 0.5 0.5;
+                                 color: 0 0 0 0;
+                                 visible: 1;
+                                 perspective {
+                                        zplane: -70;
+                                        focal: 1000;
+                                 }
+                          }
+                       }
+                       part { name: "persp1";
+                          type: RECT;
+                          description { state: "default" 0.0;
+                                 min: 32 32;
+                                 max: 32 32;
+                                 fixed: 1 1;
+                                 align: 0.5 0.5;
+                                 color: 0 0 0 0;
+                                 visible: 1;
+                                 perspective {
+                                        zplane: 0;
+                                        focal: 1000;
+                                 }
+                          }
+                       }
+                       part {
+                               name: "pv.chapter.main.item.image";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       align: 0.5 0.5;
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.bg"; }
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.bg"; }
+                                       CHAPTER_ITEM_SELECT_VI_EFFECT
+                               }
+                       }
+               }
+               programs {
+                       CHAPTER_PROGRAM_ITEM_SELECT_VI_EFFECT(
+                          target: "pv.chapter.main.item.bg";
+                          target: "pv.chapter.main.item.image";
+                       )
+                       program {
+                               name: "mouse_down";
+                               signal: "mouse,down,1";
+                               source: "pv.chapter.main.item.bg";
+                               action: SIGNAL_EMIT "down" "*";
+                               script {
+                                  if (!get_int(selected)) {
+                                         set_int(selected, 1);
+                                         run_program(PROGRAM:"vi_pressed");
+                                  }
+                               }
+                       }
+                       program {
+                               name: "mouse_up";
+                               signal: "mouse,up,1";
+                               source: "pv.chapter.main.item.bg";
+                               action: SIGNAL_EMIT "up" "*";
+                               script {
+                                  if (get_int(selected)) {
+                                         set_int(selected, 0);
+                                         run_program(PROGRAM:"vi_zoom_out");
+                                  }
+                               }
+                       }
+               }
+       }
+} /* collections */
+
diff --git a/playview/res/edje/pv-colorselector.edc b/playview/res/edje/pv-colorselector.edc
new file mode 100755 (executable)
index 0000000..8a3d489
--- /dev/null
@@ -0,0 +1,203 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+collections {
+       group {
+        name: "colorpalette/rect";
+                parts{
+                        part {
+                                name: "bg";
+                                type: RECT;
+                                scale: 1;
+                                description {
+                                        state: "default" 0.0;
+                                        visible: 0;
+                                        min: 0 233;
+                                        max: -1 233;
+                                }
+                        }
+                        part {
+                                name: "top_padding";
+                                type: SPACER;
+                                scale: 1;
+                                description {
+                                        state: "default" 0.0;
+                                        min: 0 33;
+                                        fixed: 0 1;
+                                        rel1.to: "bg";
+                                        rel2 {
+                                                relative: 1.0 0.0;
+                                                to: "bg";
+                                        }
+                                        align: 0.0 0.0;
+                                }
+                        }
+                        part {
+                                name: "rect";
+                                type: SWALLOW;
+                                scale: 1;
+                                description {
+                                        state: "default" 0.0;
+                                        min: 0 168;
+                                        fixed: 0 1;
+                                        rel1 {
+                                                relative: 0.2 1.0;
+                                                to_x: "bg";
+                                                to_y: "top_padding";
+                                        }
+                                        rel2 {
+                                                relative: 0.8 1.0;
+                                                to_x: "bg";
+                                                to_y: "top_padding";
+                                        }
+                                        align: 0.0 0.0;
+                                }
+                        }
+                        part {
+                                name: "bottom_padding";
+                                type: SPACER;
+                                scale: 1;
+                                description {
+                                        state: "default" 0.0;
+                                        min: 0 33;
+                                        fixed: 0 1;
+                                        rel1 {
+                                                relative: 0.0 1.0;
+                                                to_x: "bg";
+                                                to_y: "rect";
+                                        }
+                                        rel2 {
+                                                to_x: "bg";
+                                                to_y: "rect";
+                                        }
+                                        align: 0.0 0.0;
+                                }
+                        }
+                }//end parts
+        } //end group
+
+        group {
+                name: "colorpalette";
+                        parts{
+                                part {
+                                        name: "bg";
+                                        type: SPACER;
+                                        scale: 1;
+                                        description {
+                                                state: "default" 0.0;
+                                                min: 0 274;
+                                                max: -1 274;
+                                        }
+                                        description {
+                                                state: "landscape" 0.0;
+                                                inherit: "default" 0.0;
+                                                min: 0 162;
+                                                max: -1 162;
+                                        }
+                                }
+                                part {
+                                        name: "top_left_padding";
+                                        type: SPACER;
+                                        scale: 1;
+                                        description {
+                                                state: "default" 0.0;
+                                                min: 8 32;
+                                                fixed: 1 1;
+                                                rel1.to: "bg";
+                                                rel2 {
+                                                        to: "bg";
+                                                        relative: 0.0 0.0;
+                                                }
+                                                align: 0.0 0.0;
+                                        }
+                                }
+                                part {
+                                        name: "colorpalette";
+                                        type: SWALLOW;
+                                        scale: 1;
+                                        description {
+                                                state: "default" 0.0;
+                                                fixed: 0 1;
+                                                rel1 {
+                                                        relative: 1.0 1.0;
+                                                        to: "top_left_padding";
+                                                }
+                                                align: 0.0 0.0;
+                                        }
+                                }
+                                part {
+                                        name: "bottom_padding";
+                                        type: SPACER;
+                                        scale: 1;
+                                        description {
+                                                state: "default" 0.0;
+                                                min: 0 44;
+                                                fixed: 0 1;
+                                                rel1 {
+                                                        relative: 0.0 1.0;
+                                                        to_x: "bg";
+                                                        to_y: "colorpalette";
+                                                }
+                                                rel2 {
+                                                        to_x: "bg";
+                                                        to_y: "colorpalette";
+                                                }
+                                                align: 1.0 1.0;
+                                        }
+                                }
+                        }//end parts
+                        programs {
+                                program {
+                                        name: "landscape";
+                                        signal: "landscape";
+                                        source: "";
+                                        action: STATE_SET "landscape" 0.0;
+                                        target: "bg";
+                                }
+                                program {
+                                        name: "portrait";
+                                        signal: "portrait";
+                                        source: "";
+                                        action: STATE_SET "default" 0.0;
+                                        target: "bg";
+                                }
+                        }
+        } //end group
+
+        group {
+                name: "item/colorpalette";
+                images {
+                        image: "00_color_picker_palette_bg.png" COMP;
+                }
+                parts {
+                        part {
+                                name: "color_rect";
+                                type: IMAGE;
+                                scale: 1;
+                                description{
+                                        state: "default" 0.0;
+                                        image.normal: "00_color_picker_palette_bg.png";
+                                        image.border: 13 13 13 13;
+                                        image.border_scale: 1;
+                                }
+                        }
+                }
+        }
+
+} /* collections */
+
diff --git a/playview/res/edje/pv-custom-winset.edc b/playview/res/edje/pv-custom-winset.edc
new file mode 100755 (executable)
index 0000000..e0022c3
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2020 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 "custom/pv-custom-define.edc"
+#include "custom/pv-custom-image.edc"
+externals {
+          external: "elm";
+          external: "feedback";
+       }
+collections {
+       plugins {
+       plugin {
+               name: "touch_sound_plugin";
+               source: "feedback";
+               param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+               }
+       }
+       #include "custom/pv-custom-layout.edc"
+       #include "custom/pv-custom-naviframe.edc"
+       #include "custom/pv-custom-button.edc"
+       #include "custom/pv-custom-gengrid-item.edc"
+       #include "custom/pv-custom-genlist-item.edc"
+       #include "custom/pv-custom-colorselector.edc"
+}
diff --git a/playview/res/edje/pv-gesture.edc b/playview/res/edje/pv-gesture.edc
new file mode 100755 (executable)
index 0000000..a425bda
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+collections {
+       group {
+               name: "pv.gesture";
+               parts {
+                       part {
+                               name: "pv.gesture.bg";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: 0 0 0 0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+       }
+}
+
diff --git a/playview/res/edje/pv-image.edc b/playview/res/edje/pv-image.edc
new file mode 100755 (executable)
index 0000000..0a774b5
--- /dev/null
@@ -0,0 +1,138 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+images
+{
+       /* main */
+       image: "T01_2_video_thumbnail_default.png" COMP;
+       image: "T01_no_video.png" COMP;
+
+       /* multi window */
+       image: "multi/mw_frame.png" COMP;
+       image: "multi/mw_title_bg.#.png" COMP;
+       image: "multi/mw_title_bg_ef.#.png" COMP;
+       image: "multi/mw_title_bg_focus.#.png" COMP;
+       image: "multi/mw_title_bg_focus_ef.#.png" COMP;
+       image: "multi/mw_title_bg_press.png" COMP;
+       image: "multi/mw_title_focus.#.png" COMP;
+       image: "multi/mw_title_focus_bg_press.#.png" COMP;
+       image: "multi/mw_title_divider.png" COMP;
+       image: "multi/Mw_title_icon_press_bg.png" COMP;
+       image: "multi/my_title_icon_delete.png" COMP;
+       image: "multi/my_title_icon_delete_press.png" COMP;
+       image: "multi/my_title_icon_delete_ef_press.png" COMP;
+       image: "multi/my_title_icon_maximize.png" COMP;
+       image: "multi/my_title_icon_maximize_press.png" COMP;
+       image: "multi/my_title_icon_maximize_ef_press.png" COMP;
+       image: "multi/my_title_icon_mimimize.png" COMP;
+       image: "multi/my_title_icon_mimimize_press.png" COMP;
+       image: "multi/my_title_icon_mimimize_ef_press.png" COMP;
+
+       /* genlist */
+       image: "genlist/preview_settings_bg.png" COMP;
+
+       /* main controller */
+       image: "control/T01-2_control_bg.png" COMP;
+
+       /* normal progressbar */
+       image: "progressbar/T01_2_control_progress_handle.png" COMP;
+       image: "progressbar/T01_2_control_progress_handle_press.png" COMP;
+       image: "progressbar/core_progress_bar.#.png" COMP;
+
+       /* volume */
+    image: "volume/T01_2_volume_popup_bg.png" COMP;
+    image: "volume/T01_2_volume_popup_progress_bar.png" COMP;
+    image: "volume/T01_2_volume_popup_progress_bg.png" COMP;
+    image: "volume/T01_2_volume_popup_progress_handle.png" COMP;
+    image: "volume/T01_2_volume_popup_progress_handle_press.png" COMP;
+
+       /* popup */
+       image: "popup/T01-2_volume_popup_icon_brightness.png" COMP;
+       image: "popup/T01-2_volume_popup_icon_volume01.png" COMP;
+       image: "popup/T01-2_volume_popup_icon_volume02.png" COMP;
+       image: "popup/U05_help_popup_sbeam.png" COMP;
+
+
+       /* dmc */
+       image: "dmc/T01_2_device_connect_arrow_01.png" COMP;
+       image: "dmc/T01_2_device_connect_arrow_02.png" COMP;
+       image: "dmc/T01_2_device_connect_arrow_03.png" COMP;
+       image: "dmc/T01_2_device_connect_arrow_04.png" COMP;
+       image: "dmc/T01_2_image_mydevice.png" COMP;
+       image: "dmc/T01_2_image_tv.png" COMP;
+       image: "dmc/T02_player_all_share.png" COMP;
+
+       /* trim */
+       image: "trim/T01_2_trim_left.png" COMP;
+       image: "trim/T01_2_trim_right.png" COMP;
+       image: "trim/T01_2_trim_picker.png" COMP;
+
+       /* tag */
+       image: "tag/T01-1_logo_accuweather.png" COMP;
+       image: "tag/U07_weather_logo.png" COMP;
+
+       /* nearby device */
+       image: "nearby_device/U04_connecting_ani_01.png" COMP;
+       image: "nearby_device/U04_connecting_ani_02.png" COMP;
+       image: "nearby_device/U04_connecting_ani_03.png" COMP;
+       image: "nearby_device/U04_connecting_ani_04.png" COMP;
+
+       /* chapter */
+       image: "chapter/T01_2_thumbnail_shadow.png" COMP;
+       image: "chapter/T01_2_thumbnail_shadow_h.png" COMP;
+
+       /* allshare voice control*/
+       image: "allshare/voice/T01-2_icon_volume_control_minus.png" COMP;
+       image: "allshare/voice/T01-2_icon_volume_control_minus_dim.png" COMP;
+       image: "allshare/voice/T01-2_icon_volume_control_minus_press.png" COMP;
+       image: "allshare/voice/T01-2_icon_volume_control_mute.png" COMP;
+       image: "allshare/voice/T01-2_icon_volume_control_mute_dim.png" COMP;
+       image: "allshare/voice/T01-2_icon_volume_control_mute_press.png" COMP;
+       image: "allshare/voice/T01-2_icon_volume_control_plus.png" COMP;
+       image: "allshare/voice/T01-2_icon_volume_control_plus_dim.png" COMP;
+       image: "allshare/voice/T01-2_icon_volume_control_plus_press.png" COMP;
+       image: "allshare/voice/T01-2_icon_volume_control_bg.png" COMP;
+
+       /*minicontroller*/
+       image: "mini_controller/btn_video_prev_nor.png" COMP;
+       image: "mini_controller/btn_music_prev_press.png" COMP;
+       image: "mini_controller/btn_music_play_nor.png" COMP;
+       image: "mini_controller/btn_music_play_press.png" COMP;
+       image: "mini_controller/btn_music_pause_nor.png" COMP;
+       image: "mini_controller/btn_music_next_nor.png" COMP;
+       image: "mini_controller/btn_music_next_press.png" COMP;
+       image: "mini_controller/btn_close_nor.png" COMP;
+       image: "mini_controller/btn_close_press.png" COMP;
+       image: "mini_controller/music_progress_bg.png" COMP;
+       image: "mini_controller/music_progress.png" COMP;
+
+       /* micro controller */
+       image: "micro_control/T01_2_micro_control_down_01.png" COMP;
+       image: "micro_control/T01_2_micro_control_down_02.png" COMP;
+       image: "micro_control/T01_2_micro_control_down_03.png" COMP;
+       image: "micro_control/T01_2_micro_control_up_01.png" COMP;
+       image: "micro_control/T01_2_micro_control_up_02.png" COMP;
+       image: "micro_control/T01_2_micro_control_up_03.png" COMP;
+
+       /* jump */
+       image: "jump/T01_2_jump_L_01.png" COMP;
+       image: "jump/T01_2_jump_L_02.png" COMP;
+       image: "jump/T01_2_jump_L_03.png" COMP;
+       image: "jump/T01_2_jump_R_01.png" COMP;
+       image: "jump/T01_2_jump_R_02.png" COMP;
+       image: "jump/T01_2_jump_R_03.png" COMP;
+}
+
diff --git a/playview/res/edje/pv-lockscreenmini.edc b/playview/res/edje/pv-lockscreenmini.edc
new file mode 100755 (executable)
index 0000000..3e9c7d0
--- /dev/null
@@ -0,0 +1,1064 @@
+/*
+ * Copyright (c) 2020 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_STOP_BTN "lock_screen/control_circle_icon_stop.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 40;
+                               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 45;}
+                          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");
+                  }
+               }
+       }
+
+}
+
+group {
+       name: "video-lockscreenmini-live-streaming";
+       images {
+               image: MC_LOCKSCREEN_PLAY COMP;
+               image: MC_MUSIC_STOP_BTN COMP;
+               image: MC_LOCKSCREEN_PLAY_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 40;
+                               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 45;}
+                          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: "left_side_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: "left_side_area"; }
+                               rel2 { relative: 1.0 1.0; to: "left_side_area"; }
+                               min: LOCKSCREEN_BUTTON_SIZE_MIN_MAX;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                       }
+               }
+
+               MC_LOCKSCREEN_PART_AREA_FROM_LEFT("left_area_padding", "left_area", LOCKSCREEN_INTERVAL, 134)
+
+               MC_LOCKSCREEN_PART_AREA_FROM_LEFT("play_pause_btn_area", "left_area_padding", 126, 134)
+
+               MC_LOCKSCREEN_PART_BUTTON("play_btn", "play_pause_btn_area", MC_MUSIC_STOP_BTN, MC_MUSIC_STOP_BTN, 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)
+       }
+
+       programs {
+               MC_LOCKSCREEN_BUTTON_PROGRAM("play_btn")
+               MC_LOCKSCREEN_BUTTON_VISIVBLE_PROGRAM("play_btn")
+               MC_LOCKSCREEN_BUTTON_PROGRAM("pause_btn")
+               MC_LOCKSCREEN_BUTTON_VISIVBLE_PROGRAM("pause_btn")
+
+               program { name: "set_pause_icon";
+                  signal: "set_pause";
+                  source: "*";
+                  script{
+                               emit("hide_play_btn", "edje");
+                               emit("show_pause_btn", "edje");
+                  }
+               }
+               program { name: "set_play_icon";
+                  signal: "set_play";
+                  source: "*";
+                  script{
+                               emit("show_play_btn", "edje");
+                               emit("hide_pause_btn", "edje");
+                  }
+               }
+       }
+
+}
+
+} // collection
+
diff --git a/playview/res/edje/pv-macro.edc b/playview/res/edje/pv-macro.edc
new file mode 100755 (executable)
index 0000000..cee0730
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+
+
diff --git a/playview/res/edje/pv-minicontroller.edc b/playview/res/edje/pv-minicontroller.edc
new file mode 100755 (executable)
index 0000000..2c064ff
--- /dev/null
@@ -0,0 +1,2140 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#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 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 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_STOP_BTN                  "mini_controller/control_circle_icon_stop.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_PLAY_PRESSED                            "mini_controller/btn_video_play_press.png"
+#define MC_IMG_PAUSE_NORMAL                            "mini_controller/btn_video_pause_nor.png"
+#define MC_IMG_PAUSE_PRESSED                   "mini_controller/btn_video_pause_press.png"
+#define MC_IMG_FF_NORMAL                               "mini_controller/btn_video_next_nor.png"
+#define MC_IMG_FF_PRESSED                              "mini_controller/btn_video_next_press.png"
+#define MC_IMG_CLOSE_NORMAL                            "mini_controller/btn_close_nor.png"
+#define MC_IMG_CLOSE_PRESSED                   "mini_controller/btn_close_press.png"
+#define MC_IMG_PROGRESS_BG                             "mini_controller/video_progress_bg.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; \
+       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_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; \
+       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; \
+               image.normal: __pressed; \
+       } \
+} \
+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_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"; \
+                       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_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_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_PROGRAM_BTN_ACTION(__btn, __down_emission, __down_src, __up_emission, __up_src, __clicked_emission, __clicked_src) \
+program { \
+       name: __btn"_after_down"; \
+       signal: "mouse,down,1"; \
+       source: __btn; \
+       script { \
+               set_state(PART:__btn"_bg", "pressed", 0.0); \
+               emit(__down_emission, __down_src); \
+       } \
+} \
+program { \
+       source: __btn; \
+       signal: "mouse,down,1"; \
+       action: PLAY_SAMPLE "button-pressed" 1.0; \
+       after:  __btn"_after_down"; \
+       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_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 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_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";
+                       type : RECT;
+                       scale : 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min : 0 MINI_H_PORT;
+                               fixed: 1 1;
+                               rel1{ relative : 0 0;}
+                               rel2{ relative : 1 1;}
+                               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";
+                               }
+                       }
+               }
+
+               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 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: 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: 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 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 15;
+                               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: "right_area";
+                       type: SPACER;
+                       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;
+                       }
+               }
+
+               part { name: "elm.text";                // title
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                          rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "padding.top"; offset: 38 0;}
+                          rel2 { relative: 0.83 1.0; to_x: "right_area"; to_y: "padding.top";}
+                          min: 143 17;
+                          fixed: 1 1;
+                          align: 0.5 0.0;
+                       }
+               }
+
+               part { name: "close_btn_area";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 1.0; to_x: "padding.right"; to_y: "elm.text";offset: -25 1;}
+                               rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "elm.text"; offset: -25 1;}
+                               min: BUTTON_CLOSE_SIZE_MAX;
+                max: BUTTON_CLOSE_SIZE_MAX;
+                               color: 255 0 0 0;
+                               fixed: 1 1;
+                       }
+               }
+               MC_IMAGE_PART("close_btn","close_btn_area",MC_MUSIC_CLOSE_BTN,61,185,204,255,61,185,204,255,BUTTON_CLOSE_SIZE_MAX)
+                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;
+                               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;
+                       }
+               }
+
+               part { name: "button_area";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0 1; to: "mid_padding";}
+                               rel2 { relative: 1 0; to_x: "elm.text"; to_y: "padding.bottom"; }
+                                visible: 1;
+                       }
+               }
+
+               part { name: "rew_btn_area";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 0.5; to: "button_area"; offset: 10 0;}
+                               rel2 { relative: 0.0 0.5; to: "button_area"; offset: 10 -16;}
+                               min: BUTTON_SIZE_MIN_MAX;
+                               fixed: 1 1;
+                               align: 0.0 0.5;
+                               visible: 0;
+                       }
+               }
+
+               MC_IMAGE_PART("rew_btn_bg","rew_btn_area",MC_MUSIC_SMALL_BTN_BG,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
+               MC_IMAGE_PART("rew_btn_ef","rew_btn_area",MC_MUSIC_SMALL_BTN_EF,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
+               MC_IMAGE_PART("rew_btn","rew_btn_area",MC_MUSIC_PREV_BTN,61,185,204,255,34,104,115,255,FF_BTN_SIZE_MIN_MAX)
+               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");
+
+               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_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_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,down,1";
+                  source: "albumart_image";
+                       script{
+                          emit("albumart_clicked", "edje");
+                  }
+               }
+
+               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: "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);
+                  }
+               }
+
+               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: "close_btn_touch_area";
+                       script{
+                          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: 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{
+                               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{
+                               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";
+                }
+*/
+       }
+
+}
+
+group {
+       name: "video-minicontroller-live-streaming";
+       images {
+               image: MC_MUSIC_LAGRE_BTN_EF COMP;
+               image: MC_MUSIC_LAGRE_BTN_BG COMP;
+               image: MC_MUSIC_PLAY_BTN COMP;
+               image: MC_MUSIC_STOP_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_ALBUM_FRAME       COMP;
+       }
+       parts {
+               part{ name: "bg";
+                       type : RECT;
+                       scale : 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min : 0 MINI_H_PORT;
+                               fixed: 1 1;
+                               rel1{ relative : 0 0;}
+                               rel2{ relative : 1 1;}
+                               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";
+                               }
+                       }
+               }
+
+               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 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: 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: 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 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 15;
+                               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: "right_area";
+                       type: SPACER;
+                       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;
+                       }
+               }
+
+               part { name: "elm.text";                // title
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                          rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "padding.top"; offset: 38 0;}
+                          rel2 { relative: 0.83 1.0; to_x: "right_area"; to_y: "padding.top";}
+                          min: 143 17;
+                          fixed: 1 1;
+                          align: 0.5 0.0;
+                       }
+               }
+
+               part { name: "close_btn_area";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 1.0; to_x: "padding.right"; to_y: "elm.text";offset: -25 1;}
+                               rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "elm.text"; offset: -25 1;}
+                               min: BUTTON_CLOSE_SIZE_MAX;
+                max: BUTTON_CLOSE_SIZE_MAX;
+                               color: 255 0 0 0;
+                               fixed: 1 1;
+                       }
+               }
+               MC_IMAGE_PART("close_btn","close_btn_area",MC_MUSIC_CLOSE_BTN,61,185,204,255,61,185,204,255,BUTTON_CLOSE_SIZE_MAX)
+                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;
+                               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;
+                       }
+               }
+
+               part { name: "button_area";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0 1; to: "mid_padding";}
+                               rel2 { relative: 1 0; to_x: "elm.text"; to_y: "padding.bottom"; }
+                                visible: 1;
+                       }
+               }
+
+               part { name: "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_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_STOP_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");
+       }
+
+       programs {
+               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,down,1";
+                  source: "albumart_image";
+                       script{
+                          emit("albumart_clicked", "edje");
+                  }
+               }
+
+               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: "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: "close_area_btn_clicked";
+                  signal: "mouse,clicked,1";
+                  source: "close_btn_touch_area";
+                       script{
+                          emit("close_btn_clicked", "edje");
+                  }
+               }
+
+               program { name: "set_pause_icon";
+                  signal: "set_pause";
+                  source: "*";
+                  script{
+                               set_state(PART:"play_btn", "hide", 0.0);
+                               set_state(PART:"pause_btn", "default",0.0);
+                               set_state(PART:"play_btn_ef", "focus", 0.0);
+                  }
+               }
+               program { name: "set_play_icon";
+                  signal: "set_play";
+                  source: "*";
+                  script{
+                               set_state(PART:"play_btn", "default", 0.0);
+                               set_state(PART:"pause_btn", "hide",0.0);
+                               set_state(PART:"play_btn_ef", "default", 0.0);
+                  }
+               }
+       }
+}
+
+group {
+       name: "video-minicontroller-ld";
+       images {
+               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";
+                       type : RECT;
+                       scale : 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min : 0 MINI_H;
+                               fixed: 1 1;
+                               rel1{ relative : 0 0;}
+                               rel2{ relative : 1 1;}
+                               color: MC_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 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: 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: 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 BOTTOM_PADDING;
+                               fixed: 0 1;
+                               align: 0 1;
+                       }
+               }
+
+               part { name: "padding_for_albumart.top";
+                       type: SPACER;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel2 { relative: 1.0 0.0; }
+                               min: 0 7;
+                               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 7;
+                               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: "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: 1;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                          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.5 0.0;
+                       }
+               }
+
+               part { name: "mid_padding";
+                       type: RECT;
+                       mouse_events: 0;
+                       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;
+                       }
+               }
+
+               part { name: "close_btn_area";
+                       type: SPACER;
+                       scale: 1;
+                       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;
+                       }
+               }
+               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: 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: RECT;
+                       scale: 1;
+                       mouse_events: 1;
+                       description { state: "default" 0.0;
+                               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_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");
+
+
+
+               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_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);
+                  }
+               }
+
+               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: "albumart_cb";
+                  signal: "mouse,down,1";
+                  source: "albumart_image";
+                       script{
+                          emit("albumart_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: 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{
+                               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{
+                               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";
+                }
+*/
+       }
+}
+
+group {
+       name: "video-minicontroller-live-streaming-ld";
+       images {
+               image: MC_MUSIC_LAGRE_BTN_EF COMP;
+               image: MC_MUSIC_LAGRE_BTN_BG COMP;
+               image: MC_MUSIC_PLAY_BTN COMP;
+               image: MC_MUSIC_STOP_BTN COMP;
+               image: MC_MUSIC_SMALL_BTN_EF COMP;
+               image: MC_MUSIC_SMALL_BTN_BG COMP;
+               image: MC_MUSIC_CLOSE_BTN  COMP;
+       }
+       parts {
+               part{ name: "bg";
+                       type : RECT;
+                       scale : 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min : 0 MINI_H;
+                               fixed: 1 1;
+                               rel1{ relative : 0 0;}
+                               rel2{ relative : 1 1;}
+                               color: MC_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 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: 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: 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 BOTTOM_PADDING;
+                               fixed: 0 1;
+                               align: 0 1;
+                       }
+               }
+
+               part { name: "padding_for_albumart.top";
+                       type: SPACER;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel2 { relative: 1.0 0.0; }
+                               min: 0 7;
+                               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 7;
+                               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: "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: 1;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                          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.5 0.0;
+                       }
+               }
+
+               part { name: "mid_padding";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description
+                       {
+                               state: "default" 0.0;
+                               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;
+                       }
+               }
+
+               part { name: "close_btn_area";
+                       type: SPACER;
+                       scale: 1;
+                       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;
+                       }
+               }
+               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: 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: "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_STOP_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");
+       }
+
+       programs {
+
+               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: "albumart_cb";
+                  signal: "mouse,down,1";
+                  source: "albumart_image";
+                       script{
+                          emit("albumart_clicked", "edje");
+                  }
+               }
+
+               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{
+                               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{
+                               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);
+                  }
+               }
+       }
+}
+
+} // collection
diff --git a/playview/res/edje/pv-multi-main.edc b/playview/res/edje/pv-multi-main.edc
new file mode 100755 (executable)
index 0000000..6b46902
--- /dev/null
@@ -0,0 +1,1036 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define FONT_REGULAR_TYPE              "Tizen:style=Regular"
+
+#define FONT_COLOR                             255 255 255 255
+
+collections {
+       group {
+               name: "pv.multi.main";
+
+               parts {
+                       part {
+                               name: "pv.multi.bg";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       fixed: 1 1;
+                                       min: 3+60+342+3 3+60+342+3;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 255;
+                               }
+                       }
+                       part {
+                               name: "pv.multi.rect.left.padding";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       fixed: 1 0;
+                                       min: 3 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.multi.bg"; }
+                                       rel2 { relative: 0.0 1.0; to: "pv.multi.bg"; }
+                                       color: 255 0 0 255;
+                               }
+                       }
+                       part {
+                               name: "pv.multi.rect.right.padding";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       fixed: 1 0;
+                                       min: 3 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.multi.bg"; }
+                                       rel2 { relative: 1.0 1.0; to: "pv.multi.bg"; }
+                                       color: 255 0 0 255;
+                               }
+                       }
+                       part {
+                               name: "pv.multi.rect.top.padding";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       fixed: 0 1;
+                                       min: 0 3;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.multi.bg"; }
+                                       rel2 { relative: 1.0 0.0; to: "pv.multi.bg"; }
+                                       color: 255 0 0 255;
+                               }
+                       }
+                       part {
+                               name: "pv.multi.rect.bottom.padding";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       fixed: 0 1;
+                                       min: 0 3;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.multi.bg"; }
+                                       rel2 { relative: 1.0 1.0; to: "pv.multi.bg"; }
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.frame";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.0; to: "pv.multi.bg"; }
+                                       rel2 { relative: 1.0 1.0; to: "pv.multi.bg"; }
+                                       image { normal: "multi/mw_frame.png"; border: 73 73 73 73;}
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.frame.title";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 60;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.multi.rect"; }
+                                       rel2 { relative: 1.0 0.0; to: "pv.multi.rect"; }
+                                       image { normal: "multi/mw_title_bg_focus.#.png"; }
+                                       color: 21 108 148 255;
+                               }
+                               description {
+                                       state: "focus_out" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "multi/mw_title_bg.#.png"; }
+                                       color: 21 108 148 255;
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "multi/mw_title_focus_bg_press.#.png"; }
+                                       color: 17 89 122 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.frame.title.ef";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 60;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.multi.rect"; }
+                                       rel2 { relative: 1.0 0.0; to: "pv.multi.rect"; }
+                                       image { normal: "multi/mw_title_bg_focus_ef.#.png"; }
+                               }
+                               description {
+                                       state: "focus_out" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "multi/mw_title_bg_ef.#.png"; }
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "multi/mw_title_focus.#.png"; }
+                                       color: 36 186 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 1.0; to_x : "pv.multi.rect.left.padding"; to_y : "pv.multi.rect.top.padding"; }
+                                       rel2 { relative: 0.0 0.0; to_x : "pv.multi.rect.right.padding"; to_y : "pv.multi.rect.bottom.padding"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "pv.multi.image.buffer";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 1.0; to_x : "pv.multi.rect.left.padding"; to_y: "pv.multi.frame.title"; }
+                                       rel2 { relative: 0.0 0.0; to_x : "pv.multi.rect.right.padding"; to_y : "pv.multi.rect.bottom.padding"; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.videosink";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 1.0; to_x : "pv.multi.rect.left.padding"; to_y: "pv.multi.frame.title"; }
+                                       rel2 { relative: 0.0 0.0; to_x : "pv.multi.rect.right.padding"; to_y : "pv.multi.rect.bottom.padding"; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.close.icon.bg";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 94 58;
+                                       max: 94 58;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to_x: "pv.multi.rect"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 1.0 0.0; to_x: "pv.multi.rect"; to_y : "pv.multi.frame.title";}
+                                       image { normal: "multi/Mw_title_icon_press_bg.png"; }
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.close.icon";
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 54 54;
+                                       max: 54 54;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.multi.close.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 1.0 1.0; to_x: "pv.multi.close.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       image { normal: "multi/my_title_icon_delete.png"; }
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image { normal: "multi/my_title_icon_delete_press.png"; }
+                                       color: 21 108 148 77;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.close.icon.ef";
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 54 54;
+                                       max: 54 54;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.multi.close.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 1.0 1.0; to_x: "pv.multi.close.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       image { normal: "multi/my_title_icon_delete_ef_press.png"; }
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.close";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 94 60;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 1.0 0.5; to_x: "pv.multi.rect"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 1.0 0.5; to_x: "pv.multi.rect"; to_y : "pv.multi.frame.title";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.close.line";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 2 42;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x: "pv.multi.close"; to_y: "pv.multi.frame.title"; }
+                                       rel2 { relative: 0.0 0.5; to_x: "pv.multi.close"; to_y: "pv.multi.frame.title"; }
+                                       image { normal: "multi/mw_title_divider.png"; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.full.size.icon.bg";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 94 58;
+                                       max: 94 58;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.multi.close.line"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 0.0 0.0; to_x: "pv.multi.close.line"; to_y : "pv.multi.frame.title";}
+                                       image { normal: "multi/Mw_title_icon_press_bg.png"; }
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.full.size.icon";
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 54 54;
+                                       max: 54 54;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.multi.full.size.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 1.0 1.0; to_x: "pv.multi.full.size.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       image { normal: "multi/my_title_icon_maximize.png"; }
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image { normal: "multi/my_title_icon_maximize_press.png"; }
+                                       color: 21 108 148 77;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.full.size.icon.ef";
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 54 54;
+                                       max: 54 54;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.multi.full.size.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 1.0 1.0; to_x: "pv.multi.full.size.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       image { normal: "multi/my_title_icon_maximize_ef_press.png"; }
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.full.size";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 94 60;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x: "pv.multi.close.line"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 0.0 0.5; to_x: "pv.multi.close.line"; to_y : "pv.multi.frame.title";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.full.size.line";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 2 42;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x: "pv.multi.full.size"; to_y: "pv.multi.frame.title"; }
+                                       rel2 { relative: 0.0 0.5; to_x: "pv.multi.full.size"; to_y: "pv.multi.frame.title"; }
+                                       image { normal: "multi/mw_title_divider.png"; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.minimize.icon.bg";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 94 58;
+                                       max: 94 58;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.multi.full.size.line"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 0.0 0.0; to_x: "pv.multi.full.size.line"; to_y : "pv.multi.frame.title";}
+                                       image { normal: "multi/Mw_title_icon_press_bg.png"; }
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.minimize.icon";
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 54 54;
+                                       max: 54 54;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.multi.minimize.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 1.0 1.0; to_x: "pv.multi.minimize.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       image { normal: "multi/my_title_icon_mimimize.png"; }
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image { normal: "multi/my_title_icon_mimimize_press.png"; }
+                                       color: 21 108 148 77;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.minimize.icon.ef";
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 54 54;
+                                       max: 54 54;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.multi.minimize.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 1.0 1.0; to_x: "pv.multi.minimize.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       image { normal: "multi/my_title_icon_mimimize_ef_press.png"; }
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.minimize";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 94 60;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x: "pv.multi.full.size.line"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 0.0 0.5; to_x: "pv.multi.full.size.line"; to_y : "pv.multi.frame.title";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.title.txt.left.padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 0;
+                                       fixed: 0 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.multi.rect";}
+                                       rel2 { relative: 0.0 1.0; to_x: "pv.multi.rect";}
+                                       color: 0 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.title.txt.right.padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 3 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.multi.minimize";}
+                                       rel2 { relative: 0.0 1.0; to_x: "pv.multi.minimize";}
+                                       color: 0 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.title.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 60;
+                                       fixed: 0 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.5; to_x : "pv.multi.title.txt.left.padding"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 0.0 0.5; to_x : "pv.multi.title.txt.right.padding"; to_y : "pv.multi.frame.title";}
+                                       color: FONT_COLOR;
+                                       text {
+                                               font: FONT_REGULAR_TYPE;
+                                               size: 40;
+                                               text: "";
+                                               align: 0.0 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.event";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.multi.videosink";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.multi.videosink";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.main.subtitle";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.multi.rect";  }
+                                       rel2 { relative: 1.0 0.0; to_x: "pv.multi.rect";  to_y : "pv.multi.control.rect"; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.control.bottom.padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 1.0;
+                                       min: 0 16;
+                                       fixed: 0 1;
+                                       rel1 { relative: 0.0 1.0; to: "pv.multi.rect";  }
+                                       rel2 { relative: 1.0 1.0; to: "pv.multi.rect";  }
+                                       color: 255 0 0 0;
+                               }
+                       }
+
+
+                       part {
+                               name: "pv.multi.control.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 312 68;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.5 0.0; to_y : pv.multi.control.bottom.padding;}
+                                       rel2 { relative: 0.5 0.0; to_y : pv.multi.control.bottom.padding;}
+                                       color: 128 128 128 128;
+                               }
+
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 312 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.control.rew";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 104 68;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to : "pv.multi.control.rect";}
+                                       rel2 { relative: 0.0 1.0; to : "pv.multi.control.rect";}
+                                       color: 255 0 0 255;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "pv.multi.control.play";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 104 68;
+                                       fixed: 1 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.5 0.0; to : "pv.multi.control.rect";}
+                                       rel2 { relative: 0.5 1.0; to : "pv.multi.control.rect";}
+                                       color: 0 255 0 255;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.control.play.focus";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to : "pv.multi.control.play";}
+                                       rel2 { relative: 1.0 1.0; to : "pv.multi.control.play";}
+                                       color: 0 255 0 255;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+
+                       part {
+                               name: "pv.multi.control.ff";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 104 68;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to : "pv.multi.control.rect";}
+                                       rel2 { relative: 1.0 1.0; to : "pv.multi.control.rect";}
+                                       color: 255 0 0 255;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+/*
+                       part {
+                               name: "pv.multi.control.rew.line";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       max: 2 42;
+                                       min: 2 42;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.5; to_x : "pv.multi.control.rew"; to_y : "pv.multi.control.rect";}
+                                       rel2 { relative: 1.0 0.5; to_x : "pv.multi.control.rew"; to_y : "pv.multi.control.rect";}
+                                       color: 0 0 0 255;
+                               }
+
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.control.ff.line";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       max: 2 42;
+                                       min: 2 42;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x : "pv.multi.control.ff"; to_y : "pv.multi.control.rect";}
+                                       rel2 { relative: 0.0 0.5; to_x : "pv.multi.control.ff"; to_y : "pv.multi.control.rect";}
+                                       color: 0 0 0 255;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+*/
+                       part {
+                               name: "pv.multi.main.loading";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.2; to: "pv.multi.rect"; }
+                                       rel2 { relative: 1.0 1.0; to: "pv.multi.rect"; }
+                               }
+                       }
+                       part {
+                               name: "pv.multi.resize.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 36 36;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.multi.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.multi.bg";}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "pv.multi.resize";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 36 36;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 0.0; to: "pv.multi.resize.rect";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.multi.resize.rect";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.nocontents";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       fixed: 1 1;
+                                       min: 176 174;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to: "pv.multi.rect"; }
+                                       rel2 { relative: 0.5 0.5; to: "pv.multi.rect"; }
+                                       image { normal: "T01_no_video.png";}
+                                       color: 255 255 255 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "pv.multi.nocontents.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 40;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 1.0; to_y : pv.multi.nocontents;}
+                                       rel2 { relative: 1.0 1.0; to_y : pv.multi.nocontents;}
+                                       color: FONT_COLOR;
+                                       text {
+                                               font: FONT_REGULAR_TYPE;
+                                               size: 40;
+                                               text: "No Videos";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "pv.multi.main.speed.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 160 40;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.5 0.0; to_y : "pv.multi.control.rect"; }
+                                       rel2 { relative: 0.5 0.0; to_y : "pv.multi.control.rect"; }
+                                       color:  0 0 0 102;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.main.speed.txt";
+                               type: TEXT;
+                               effect: OUTLINE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to : "pv.multi.main.speed.rect";}
+                                       rel2 { relative: 1.0 1.0; to : "pv.multi.main.speed.rect";}
+                                       color: FONT_COLOR;
+                                       text {
+                                               font: FONT_REGULAR_TYPE;
+                                               size: 32;
+                                               text: "";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+               } /* parts */
+               programs {
+                       program {
+                               signal: "signal.pv.multi.show.control";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.control.rect", "default", 0.0);
+                                       set_state(PART:"pv.multi.control.play", "default", 0.0);
+                                       set_state(PART:"pv.multi.control.play.focus", "default", 0.0);
+                                       set_state(PART:"pv.multi.control.rew", "default", 0.0);
+                                       set_state(PART:"pv.multi.control.ff", "default", 0.0);
+                                       //set_state(PART:"pv.multi.control.rew.line", "default", 0.0);
+                                       //set_state(PART:"pv.multi.control.ff.line", "default", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.multi.hide.control";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.control.rect", "hide", 0.0);
+                                       set_state(PART:"pv.multi.control.play", "hide", 0.0);
+                                       set_state(PART:"pv.multi.control.play.focus", "hide", 0.0);
+                                       set_state(PART:"pv.multi.control.rew", "hide", 0.0);
+                                       set_state(PART:"pv.multi.control.ff", "hide", 0.0);
+                                       //set_state(PART:"pv.multi.control.rew.line", "hide", 0.0);
+                                       //set_state(PART:"pv.multi.control.ff.line", "hide", 0.0);
+                               }
+                       }
+
+                       program {
+                               signal: "signal.pv.multi.show.nocontents";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.nocontents", "show", 0.0);
+                                       set_state(PART:"pv.multi.nocontents.txt", "show", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.multi.hide.nocontents";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.nocontents", "default", 0.0);
+                                       set_state(PART:"pv.multi.nocontents.txt", "default", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.multi.focus.in.control";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.frame.title", "default", 0.0);
+                                       set_state(PART:"pv.multi.frame.title.ef", "default", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.multi.focus.out.control";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.frame.title", "focus_out", 0.0);
+                                       set_state(PART:"pv.multi.frame.title.ef", "focus_out", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.multi.close.pressed";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.close.icon.bg", "pressed", 0.0);
+                                       set_state(PART:"pv.multi.close.icon.ef", "pressed", 0.0);
+                                       set_state(PART:"pv.multi.frame.title", "pressed", 0.0);
+                                       set_state(PART:"pv.multi.frame.title.ef", "pressed", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.multi.close.released";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.close.icon.bg", "default", 0.0);
+                                       set_state(PART:"pv.multi.close.icon.ef", "pressed", 0.0);
+                                       set_state(PART:"pv.multi.frame.title", "default", 0.0);
+                                       set_state(PART:"pv.multi.frame.title.ef", "default", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.multi.fullsize.pressed";
+                               source: "*";
+                               script {
+                               set_state(PART:"pv.multi.full.size.icon.bg", "pressed", 0.0);
+                               set_state(PART:"pv.multi.full.size.icon.ef", "pressed", 0.0);
+                               set_state(PART:"pv.multi.frame.title", "pressed", 0.0);
+                               set_state(PART:"pv.multi.frame.title.ef", "pressed", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.multi.fullsize.released";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.full.size.icon.bg", "default", 0.0);
+                                       set_state(PART:"pv.multi.full.size.icon.ef", "default", 0.0);
+                                       set_state(PART:"pv.multi.frame.title", "default", 0.0);
+                                       set_state(PART:"pv.multi.frame.title.ef", "default", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.multi.minimize.pressed";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.minimize.icon.bg", "pressed", 0.0);
+                                       set_state(PART:"pv.multi.minimize.icon.ef", "pressed", 0.0);
+                                       set_state(PART:"pv.multi.frame.title", "pressed", 0.0);
+                                       set_state(PART:"pv.multi.frame.title.ef", "pressed", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.multi.minimize.released";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.minimize.icon.bg", "default", 0.0);
+                                       set_state(PART:"pv.multi.minimize.icon.ef", "default", 0.0);
+                                       set_state(PART:"pv.multi.frame.title", "default", 0.0);
+                                       set_state(PART:"pv.multi.frame.title.ef", "default", 0.0);
+                               }
+                       }
+                       program {
+                               name: "speed_on";
+                               signal: "signal.pv.multi.main.speed.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.multi.main.speed.rect";
+                               target: "pv.multi.main.speed.txt";
+                       }
+
+                       program {
+                               name: "speed_off";
+                               signal: "signal.pv.multi.main.speed.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.multi.main.speed.rect";
+                               target: "pv.multi.main.speed.txt";
+                       }
+               } /* programs */
+       }       /* group */
+} /* collections */
+
diff --git a/playview/res/edje/pv-normal-control.edc b/playview/res/edje/pv-normal-control.edc
new file mode 100755 (executable)
index 0000000..83d93c2
--- /dev/null
@@ -0,0 +1,559 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define PV_NORMAL_CONTROL_BG           "control/T01-2_control_bg.png"
+#define PV_NORMAL_CONTROL_LANDSCAPE_BG         "control/T01-2_control_bg_h.png"
+
+externals {
+          external: "elm";
+          external: "feedback";
+       }
+
+collections {
+
+#define PV_PART_DESCRIPTION_HIDE \
+                       description { \
+                               state: "hide" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 0; \
+                       } \
+
+#define PV_PART_DESCRIPTION_SHOW \
+                       description { \
+                               state: "show" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 1; \
+                       } \
+
+       plugins {
+               plugin {
+                       name: "touch_sound_plugin";
+                       source: "feedback";
+                       param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+                       }
+               }
+
+       group {
+               name: "pv.normal.control";
+               images {
+                       image: PV_NORMAL_CONTROL_BG COMP;
+                       image: PV_NORMAL_CONTROL_LANDSCAPE_BG COMP;
+               }
+
+               parts {
+                       part {
+                               name: "pv.normal.control.bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.control.bottom.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 12;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to_y : "pv.normal.control.bg"; }
+                                       rel2 { relative: 1.0 1.0; to_y : "pv.normal.control.bg"; }
+                                       color: 0 255 0 50;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 6;
+                               }
+                       }
+                       part {
+                               name: "pv.normal.control.bg.rect";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to: "pv.normal.control.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.normal.control.bg";}
+                                       color: 255 255 255 255;
+                               }
+                       }
+                       part {
+                               name: "pv.normal.control.function.top";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 0;
+                                       max: -1 0;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;  to_y: "pv.normal.control.bg";}
+                                       rel2 { relative: 1.0 0.0;  to_y: "pv.normal.control.bg";}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "pv.normal.control.function";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 14;
+                                       max: -1 14;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_y: "pv.normal.control.function.top"; }
+                                       rel2 { relative: 1.0 1.0; to_y: "pv.normal.control.function.top"; }
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 14;
+                                       max: -1 14;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.5;  to_x:  "pv.normal.control.toolbar.volume"; to_y: "pv.normal.control.toolbar.rect";}
+                                       rel2 { relative: 0.0 0.5;  to_x:  "pv.normal.control.toolbar.screensize"; to_y: "pv.normal.control.toolbar.rect";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.control.progress";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 46;//(26+11+12+34);
+                                       max: -1 46;//(26+11+12+34);
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_y: "pv.normal.control.function";}
+                                       rel2 { relative: 1.0 1.0; to_y: "pv.normal.control.function";}
+                               }
+
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 46;
+                                       rel1 { relative: 0.0 0.0; to_y: "pv.normal.control.bg.rect";}
+                                       rel2 { relative: 1.0 0.0; to_y: "pv.normal.control.bg.rect";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.control.toolbar.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 70;//(12+70+26+11+12+(34/2));
+                                       max: -1 70;//(12+70+26+11+12+(34/2));
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_y: "pv.normal.control.bg";}
+                                       rel2 { relative: 1.0 0.0; to_y: "pv.normal.control.bg";}
+                                       color: 255 0 0 125;
+                               }
+                       }
+                       part {
+                               name: "pv.normal.control.toolbar.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 80;
+                                       max: -1 80;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.6; to_y: "pv.normal.control.toolbar.top";}
+                                       rel2 { relative: 1.0 0.6; to_y: "pv.normal.control.toolbar.top";}
+                                       color: 255 0 0 255;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       visible: 0;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_y: "pv.normal.control.toolbar.top";}
+                                       rel2 { relative: 1.0 1.0; to_y: "pv.normal.control.toolbar.top";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.control.toolbar.left.padding";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 30 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.normal.control.toolbar.rect";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.normal.control.toolbar.rect";}
+                                       color: 0 0 0 0;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 30 0;
+                               }
+                       }
+                       part {
+                               name: "pv.normal.control.toolbar.right.padding";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 30 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.normal.control.toolbar.rect";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.normal.control.toolbar.rect";}
+                                       color: 0 0 0 0;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 30 0;
+                               }
+                       }
+                       part {
+                               name: "pv.normal.control.toolbar.volume";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 46 46;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.5; to_x: "pv.normal.control.toolbar.left.padding"; to_y: "pv.normal.control.toolbar.rect"; }
+                                       rel2 { relative: 1.0 0.5; to_x: "pv.normal.control.toolbar.left.padding"; to_y: "pv.normal.control.toolbar.rect"; }
+                                       color: 255 255 255 255;
+                               }
+                               PV_PART_DESCRIPTION_HIDE
+                               PV_PART_DESCRIPTION_SHOW
+                       }
+
+                       part {
+                               name: "pv.normal.control.toolbar.screensize";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 60 60;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.05 0.45; to_x: "pv.normal.control.bg"; to_y: "pv.normal.control.toolbar.rect"; offset: +18 0;}
+                                       rel2 { relative: 0.05 0.45; to_x: "pv.normal.control.bg"; to_y: "pv.normal.control.toolbar.rect"; offset: +78 0;}
+                                       color: 255 255 255 255;
+                               }
+                               PV_PART_DESCRIPTION_HIDE
+                               PV_PART_DESCRIPTION_SHOW
+                       }
+
+                       part {
+                               name: "pv.normal.control.toolbar.popupPlayer";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 60 60;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.95 0.55; to_x: "pv.normal.control.bg"; to_y: "pv.normal.control.toolbar.rect"; offset: -18 0;}
+                                       rel2 { relative: 0.95 0.55; to_x: "pv.normal.control.bg"; to_y: "pv.normal.control.toolbar.rect"; offset: -78 0;}
+                                       color: 255 255 255 255;
+                               }
+                               PV_PART_DESCRIPTION_HIDE
+                               PV_PART_DESCRIPTION_SHOW
+                       }
+
+                       part {
+                               name: "pv.normal.control.play";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 80 80;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.0; to_y: "pv.normal.control.toolbar.rect";}
+                                       rel2 { relative: 0.5 1.0; to_y: "pv.normal.control.toolbar.rect";}
+                                       color: 255 255 255 255;
+                               }
+                               PV_PART_DESCRIPTION_HIDE
+                               PV_PART_DESCRIPTION_SHOW
+                       }
+
+                       part {
+                               name: "pv.normal.control.play.focus";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.0; to : "pv.normal.control.play";}
+                                       rel2 { relative: 1.0 1.0; to : "pv.normal.control.play";}
+                                       color: 255 255 255 255;
+                               }
+                               PV_PART_DESCRIPTION_HIDE
+                               PV_PART_DESCRIPTION_SHOW
+                       }
+
+                       part {
+                               name: "pv.normal.control.play.left.padding";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 16 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.normal.control.play"; to_y: "pv.normal.control.toolbar.rect";}
+                                       rel2 { relative: 0.0 1.0; to_x: "pv.normal.control.play"; to_y: "pv.normal.control.toolbar.rect";}
+                                       color: 255 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.control.play.right.padding";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 16 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.0; to_x: "pv.normal.control.play"; to_y: "pv.normal.control.toolbar.rect";}
+                                       rel2 { relative: 1.0 1.0; to_x: "pv.normal.control.play"; to_y: "pv.normal.control.toolbar.rect";}
+                                       color: 255 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.control.rew";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 110 110;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x: "pv.normal.control.play.left.padding"; to_y: "pv.normal.control.toolbar.rect";}
+                                       rel2 { relative: 0.0 0.5; to_x: "pv.normal.control.play.left.padding"; to_y: "pv.normal.control.toolbar.rect";}
+                                       color: 255 255 255 255;
+                               }
+                               PV_PART_DESCRIPTION_HIDE
+                               PV_PART_DESCRIPTION_SHOW
+                       }
+
+                       part {
+                               name: "pv.normal.control.ff";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 110 110;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.5; to_x: "pv.normal.control.play.right.padding"; to_y: "pv.normal.control.toolbar.rect";}
+                                       rel2 { relative: 1.0 0.5; to_x: "pv.normal.control.play.right.padding"; to_y: "pv.normal.control.toolbar.rect";}
+                                       color: 255 255 255 255;
+                               }
+                               PV_PART_DESCRIPTION_HIDE
+                               PV_PART_DESCRIPTION_SHOW
+                       }
+
+                       part {
+                               name: "pv.normal.control.bookmark";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 (10+88+32+18);
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 0.0; to_y: "pv.normal.control.bg";}
+                                       rel2 { relative: 1.0 0.0; to_y: "pv.normal.control.bg";}
+                               }
+                       }
+
+               } /* parts */
+
+               programs {
+                       program {
+                               name: "portrait_mode";
+                               signal: "signal.pv.normal.control.portrait.mode";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.control.toolbar.left.padding";
+                               target: "pv.normal.control.toolbar.right.padding";
+                               target: "pv.normal.control.bottom.padding";
+                               target: "pv.normal.control.progress";
+                               target: "pv.normal.control.function.top";
+                               target: "pv.normal.control.function";
+                               target: "pv.normal.control.toolbar.rect";
+                       }
+
+                       program {
+                               name: "landscape_mode";
+                               signal: "signal.pv.normal.control.landscape.mode";
+                               source: "*";
+                               action: STATE_SET "landscape" 0.0;
+                               target: "pv.normal.control.toolbar.left.padding";
+                               target: "pv.normal.control.toolbar.right.padding";
+                               target: "pv.normal.control.bottom.padding";
+                               target: "pv.normal.control.progress";
+                               target: "pv.normal.control.function.top";
+                               target: "pv.normal.control.function";
+                               target: "pv.normal.control.toolbar.rect";
+                       }
+
+                       program {
+                               name: "hide_volume_screensize";
+                               signal: "signal.pv.normal.control.hide.v.s";
+                               source: "*";
+                               action: STATE_SET "hide" 0.0;
+                               target: "pv.normal.control.toolbar.volume";
+                               target: "pv.normal.control.toolbar.screensize";
+                       }
+
+                       program {
+                               name: "hide_volume_screensize_ff_rev";
+                               signal: "signal.pv.normal.control.hide.v.s.f.r";
+                               source: "*";
+                               action: STATE_SET "hide" 0.0;
+                               target: "pv.normal.control.toolbar.volume";
+                               target: "pv.normal.control.toolbar.screensize";
+                               target: "pv.normal.control.rew";
+                               target: "pv.normal.control.ff";
+                       }
+
+                       program {
+                               name: "hide_all_button";
+                               signal: "signal.pv.normal.control.hide.v.s.f.r.p";
+                               source: "*";
+                               action: STATE_SET "hide" 0.0;
+                               target: "pv.normal.control.toolbar.volume";
+                               target: "pv.normal.control.toolbar.screensize";
+                               target: "pv.normal.control.rew";
+                               target: "pv.normal.control.ff";
+                               target: "pv.normal.control.play";
+                       }
+
+                       program {
+                               name: "show_play_button";
+                               signal: "signal.pv.normal.control.show.p";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.control.play";
+                       }
+
+                       program {
+                               name: "show_volume_screensize_ff_rev";
+                               signal: "signal.pv.normal.control.show.r.f.p";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.control.rew";
+                               target: "pv.normal.control.ff";
+                               target: "pv.normal.control.play";
+                       }
+
+                       program {
+                               name: "show_all_button";
+                               signal: "signal.pv.normal.control.show.v.s.f.r.p";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.control.toolbar.volume";
+                               target: "pv.normal.control.toolbar.screensize";
+                               target: "pv.normal.control.rew";
+                               target: "pv.normal.control.ff";
+                               target: "pv.normal.control.play";
+                       }
+                       program{
+                               name: "touch_snd";
+                               signal: "mouse,clicked,1";
+                               source: "pv.normal.control.ff";
+                               action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+                       program{
+                               name: "touch_snd1";
+                               signal: "mouse,clicked,1";
+                               source: "pv.normal.control.rew";
+                               action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+                       program{
+                               name: "touch_snd2";
+                               signal: "mouse,clicked,1";
+                               source: "pv.normal.control.toolbar.screensize";
+                               action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+                       program{
+                               name: "touch_snd3";
+                               signal: "mouse,clicked,1";
+                               source: "pv.normal.control.play";
+                               action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+               } /* programs */
+       }       /* group */
+} /* collections */
diff --git a/playview/res/edje/pv-normal-function.edc b/playview/res/edje/pv-normal-function.edc
new file mode 100755 (executable)
index 0000000..9aea3a8
--- /dev/null
@@ -0,0 +1,218 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#define FUNCTION_BUTTON_MIN_MAX_VALUE          70 70
+
+collections {
+
+#define PV_PART_DESCRIPTION_HIDE \
+                               description { \
+                                       state: "hide" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       visible: 0; \
+                               } \
+
+#define PV_PART_DESCRIPTION_SHOW \
+                               description { \
+                                       state: "show" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       visible: 1; \
+                               } \
+
+       group {
+               name: "pv.normal.function";
+               parts {
+                       part {
+                               name: "pv.normal.function.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 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;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.function.left.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 26 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.normal.function.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.normal.function.bg";}
+                                       color: 0 255 0 255;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 42 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.function.right.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 26 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.normal.function.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.normal.function.bg";}
+                                       color: 0 255 0 255;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 42 0;
+                               }
+                       }
+                       part {
+                               name: "pv.normal.function.center.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 42 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.normal.function.button.3";}
+                                       rel2 { relative: 0.0 1.0; to_x: "pv.normal.function.button.3";}
+                                       color: 0 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.function.button.1";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: FUNCTION_BUTTON_MIN_MAX_VALUE;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.5; to_x: "pv.normal.function.left.padding"; to_y: "pv.normal.function.bg";}
+                                       rel2 { relative: 1.0 0.5; to_x: "pv.normal.function.left.padding"; to_y: "pv.normal.function.bg";}
+                                       color: 0 0 255 255;
+                               }
+                               PV_PART_DESCRIPTION_HIDE
+                               PV_PART_DESCRIPTION_SHOW
+                       }
+
+                       part {
+                               name: "pv.normal.function.button.2";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: FUNCTION_BUTTON_MIN_MAX_VALUE;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to: "pv.normal.function.bg";}
+                                       rel2 { relative: 0.5 0.5; to: "pv.normal.function.bg";}
+                                       color: 0 0 255 255;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to: "pv.normal.function.center.padding";}
+                                       rel2 { relative: 0.0 0.5; to: "pv.normal.function.center.padding";}
+                               }
+                               PV_PART_DESCRIPTION_HIDE
+                               PV_PART_DESCRIPTION_SHOW
+                       }
+
+                       part {
+                               name: "pv.normal.function.button.3";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: FUNCTION_BUTTON_MIN_MAX_VALUE;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x: "pv.normal.function.right.padding"; to_y: "pv.normal.function.bg";}
+                                       rel2 { relative: 0.0 0.5; to_x: "pv.normal.function.right.padding"; to_y: "pv.normal.function.bg";}
+                                       color: 0 0 255 255;
+                               }
+                               PV_PART_DESCRIPTION_HIDE
+                               PV_PART_DESCRIPTION_SHOW
+                       }
+               } /* parts */
+
+               programs {
+                       program {
+                               name: "portrait_mode";
+                               signal: "signal.pv.normal.function.portrait.mode";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.function.right.padding";
+                               target: "pv.normal.function.left.padding";
+                               target: "pv.normal.function.button.2";
+                       }
+
+                       program {
+                               name: "landscape_mode";
+                               signal: "signal.pv.normal.function.landscape.mode";
+                               source: "*";
+                               action: STATE_SET "landscape" 0.0;
+                               target: "pv.normal.function.right.padding";
+                               target: "pv.normal.function.left.padding";
+                               target: "pv.normal.function.button.2";
+                       }
+
+                       program {
+                               name: "hide_button.1.3";
+                               signal: "signal.pv.normal.function.hide.1.3";
+                               source: "*";
+                               action: STATE_SET "hide" 0.0;
+                               target: "pv.normal.function.button.1";
+                               target: "pv.normal.function.button.3";
+                       }
+
+                       program {
+                               name: "show_button.1.3";
+                               signal: "signal.pv.normal.function.show.1.3";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.function.button.1";
+                               target: "pv.normal.function.button.3";
+                       }
+
+               } /* programs */
+       } /* group */
+} /* collections */
diff --git a/playview/res/edje/pv-normal-main.edc b/playview/res/edje/pv-normal-main.edc
new file mode 100755 (executable)
index 0000000..1c219c0
--- /dev/null
@@ -0,0 +1,1737 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define FONT_BOLD_TYPE                 "Tizen:style=Bold"
+#define FONT_COLOR                             255 255 255 255
+
+#define MICRO_CONTROL_IMG_UP_1         "micro_control/T01_2_micro_control_up_01.png"
+#define MICRO_CONTROL_IMG_UP_2         "micro_control/T01_2_micro_control_up_02.png"
+#define MICRO_CONTROL_IMG_UP_3         "micro_control/T01_2_micro_control_up_03.png"
+#define MICRO_CONTROL_IMG_BG           "micro_control/T01-2_Control_detail_text_bg.png"
+#define JUMP_IMG_L_1                   "jump/T01_2_jump_L_01.png"
+#define JUMP_IMG_L_2                   "jump/T01_2_jump_L_02.png"
+#define JUMP_IMG_L_3                   "jump/T01_2_jump_L_03.png"
+#define JUMP_IMG_R_1                   "jump/T01_2_jump_R_01.png"
+#define JUMP_IMG_R_2                   "jump/T01_2_jump_R_02.png"
+#define JUMP_IMG_R_3                   "jump/T01_2_jump_R_03.png"
+#define LOCK_SCREEN_ICON_SIZE          46
+
+#define SUBTITLE_K_FEATURE
+
+externals {
+          external: "elm";
+          external: "feedback";
+       }
+
+collections {
+       plugins {
+               plugin {
+                       name: "touch_sound_plugin";
+                       source: "feedback";
+                       param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+                       }
+               }
+       group {
+               name: "pv.normal.main";
+
+               parts {
+                       part {
+                               name: "pv.normal.main.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 8 8 8 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.no.contents.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 8 8 8 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.lockscreen.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 20 14 ;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 0.0; offset: -24 -10;}
+                                       rel2 { relative: 1.0 0.0; offset: -24 -10;}
+                                       color:  255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.image.buffer.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       fixed: 0 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 0;
+                               }
+                               description {
+                                       state: "portrait.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       fixed: 0 1;
+                                       //min: 0 800;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                               description {
+                                       state: "landscape.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       fixed: 0 1;
+                                       //min: 0 480;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+                       // _NATIVE_BUFFER_SYNC
+                       part {
+                               name: "pv.normal.videosink";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to: "pv.normal.main.image.buffer.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.normal.main.image.buffer.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.image.buffer";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to: "pv.normal.main.image.buffer.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.normal.main.image.buffer.bg";}
+                               }
+                       }
+                       part {
+                               name: "pv.normal.main.no.contents";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 270 214;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.0; to_y: "pv.normal.main.no.contents.bottom";}
+                                       rel2 { relative: 0.5 0.0; to_y: "pv.normal.main.no.contents.bottom";}
+                                       image { normal: "dmc/T02_player_all_share.png"; }
+                                       color:  255 255 255 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.no.contents.bottom";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.5 0.5;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 0.5; }
+                                       rel2 { relative: 1.0 0.5; }
+                               }
+                               description {
+                                       state: "portrait.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 640;
+                                       align: 0.5 1.0;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                               description {
+                                       state: "landscape.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 360;
+                                       align: 0.5 1.0;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.lockscreen.text.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 16 56 ;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to_x: "pv.normal.main.lockscreen";}
+                                       rel2 { relative: 0.0 0.0;}
+                                       color:  255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.lockscreen.text";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 56;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 1.0; to_x: "pv.normal.main.lockscreen.text.rect"; to_y: "pv.normal.main.lockscreen.padding"; }
+                                       rel2 { relative: 1.0 0.0; }
+                                       color: 255 255 255 255;
+                                       text {
+                                               font: FONT_BOLD_TYPE;
+                                               size: 32;
+                                               text: "Press hold key to unlock";
+                                               align: 0.0 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.allshare.dmc";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 414;
+                                       fixed: 0 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 0.0 0.4; }
+                                       rel2 { relative: 1.0 0.4; }
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+
+                       part {
+                               name: "pv.normal.top.control";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 0;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 0.0; }
+                                       color: 0 0 0 0;
+                               }
+                               description {
+                                       state: "portrait.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 113;
+                               }
+                               description {
+                                       state: "landscape.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 113;
+                               }
+                       }
+
+                       part {
+                               name: "pv.allshare.voice.control";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 0;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                       }
+                                       rel2 {
+                                               relative: 1.0 0.0;
+                                       }
+                               }
+
+                               description {
+                                       state: "show" 0.0;
+                                       visible: 1;
+                                       min: 0 63;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                       }
+                                       rel2 {
+                                               relative: 1.0 0.0;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.zoom.guide.top";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 1280-144-210;    // total height - zoom guide height - top margin height(portrait)
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       color: 0 255 0 255;
+                               }
+                               description {
+                                       state: "portrait.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 1280-144-210;    // total height - zoom guide height - top margin height(portrait)
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                               description {
+                                       state: "landscape.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 720-144-104;     // total height - zoom guide height - top margin height(landscape)
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.zoom.guide.left";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 16 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 0.0 1.0; }
+                                       color: 0 0 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.zoom.guide.rect";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 256 144;
+                                       fixed: 1 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 1.0 0.0; to_x: "pv.normal.main.zoom.guide.left"; to_y: "pv.normal.main.zoom.guide.top"; }
+                                       rel2 { relative: 1.0 0.0; to_x: "pv.normal.main.zoom.guide.left"; to_y: "pv.normal.main.zoom.guide.top"; }
+                               }
+                       }
+
+#ifndef SUBTITLE_K_FEATURE
+                       part {
+                               name: "pv.normal.main.subtitle.top";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 0;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                               description {
+                                       state: "portrait.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 290;
+                               }
+                               description {
+                                       state: "landscape.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 190;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.subtitle.bottom";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_y : "pv.normal.main.subtitle.top";  }
+                                       rel2 { relative: 1.0 0.0; to_y : "pv.normal.main.subtitle.top"; }
+                                       color: 0 255 0 128;
+                               }
+                               description {
+                                       state: "bookmark.on" 0.0;
+                                       inherit: "default" 0.0;
+                                       align: 0.0 1.0;
+                                       fixed: 0 1;
+                                       min: 0 146;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.subtitle";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 0.0; to_y : "pv.normal.main.subtitle.bottom"; }
+                               }
+                       }
+#endif
+                       part {
+                               name: "pv.normal.main.control";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 0;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                               description {
+                                       state: "portrait.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 110;
+                               }
+                               description {
+                                       state: "landscape.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 100;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.lockscreen";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: LOCK_SCREEN_ICON_SIZE LOCK_SCREEN_ICON_SIZE;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.normal.main.lockscreen.padding"; }
+                                       rel2 { relative: 0.0 1.0; to: "pv.normal.main.lockscreen.padding"; }
+                                       color: 255 0 0 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.rotate.icon";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 60 60;
+                                       fixed: 1 1;
+                                       align: 0.0 1.0;
+                                       visible: 0;
+                                       rel1 { relative: 0.0 -0.02; to_y : "pv.normal.main.control";}
+                                       rel2 { relative: 0.1 -0.02; to_y : "pv.normal.main.control";}
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.volume.icon";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 60 60;
+                                       fixed: 1 1;
+                                       align: 0.0 1.0;
+                                       visible: 0;
+                                       rel1 { relative: 1.0 -0.02; to_y : "pv.normal.main.control"; offset: -134 0;}
+                                       rel2 { relative: 1.0 -0.02; to_y : "pv.normal.main.control"; offset: -194 0;}
+                               }
+                               description {
+                                       state: "portrait.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "landscape.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.speed.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 80;
+                                       fixed: 1 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 0.0; to_y : "pv.normal.main.control"; }
+                                       rel2 { relative: 1.0 0.0; to_y : "pv.normal.main.control"; }
+                                       color:  0 0 0 102;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.speed.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to : "pv.normal.main.speed.rect";}
+                                       rel2 { relative: 1.0 1.0; to : "pv.normal.main.speed.rect";}
+                                       color: FONT_COLOR;
+                                       text {
+                                               font: FONT_BOLD_TYPE;
+                                               size: 48;
+                                               text: "";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.playingspeed.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               repeat_events : 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 100 25;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.4 0.0; to_y : "pv.normal.main.control"; offset : 0 -20; }
+                                       rel2 { relative: 0.6 0.0; to_y : "pv.normal.main.control"; offset : 0 -20; }
+                                       color:  0 0 0 102;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.playingspeed.txt";
+                               type: TEXT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to : "pv.normal.main.playingspeed.rect";}
+                                       rel2 { relative: 1.0 1.0; to : "pv.normal.main.playingspeed.rect";}
+                                       color: FONT_COLOR;
+                                       text {
+                                               font: FONT_BOLD_TYPE;
+                                               size: 24;
+                                               text: "";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.screenshot.portrait.bottom";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 200;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.screenshot.landscape.bottom";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 100;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.screenshot.portrait.line";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 0;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.5 0.0; to_y: "pv.normal.main.screenshot.portrait.bottom";}
+                                       rel2 { relative: 0.5 0.0; to_y: "pv.normal.main.screenshot.portrait.bottom";}
+                                       color: 255 255 255 255;
+
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       min: 324 244;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.screenshot.portrait.rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 0;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to: "pv.normal.main.screenshot.portrait.line";}
+                                       rel2 { relative: 0.5 0.5; to: "pv.normal.main.screenshot.portrait.line";}
+                                       color: 0 0 0 255;
+
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       min: 320 240;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.screenshot.landscape.line";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 0;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.7 0.0; to_y: "pv.normal.main.screenshot.landscape.bottom";}
+                                       rel2 { relative: 0.7 0.0; to_y: "pv.normal.main.screenshot.landscape.bottom";}
+                                       color: 255 255 255 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       min: 324 244;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.screenshot.landscape.rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 0;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to: "pv.normal.main.screenshot.landscape.line";}
+                                       rel2 { relative: 0.5 0.5; to: "pv.normal.main.screenshot.landscape.line";}
+                                       color: 0 0 0 255;
+                               }
+
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       min: 320 240;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.screenshot.portrait";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 320 240;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.normal.main.screenshot.portrait.rect";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.normal.main.screenshot.portrait.rect";}
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.screenshot.landscape";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 320 240;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.normal.main.screenshot.landscape.rect";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.normal.main.screenshot.landscape.rect";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.error.image";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 130 130;
+                                       max: 130 130;
+                                       visible: 1;
+                                       fixed: 1 1;
+                                       color: 255 255 255 255;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to_y: "pv.normal.main.bg"; }
+                                       rel2 { relative: 1.0 0.0; to_y: "pv.normal.main.control"; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.loading.top";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 0;
+                                       fixed: 0 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.5; }
+                                       rel2 { relative: 1.0 0.5; }
+                               }
+                               description {
+                                       state: "portrait.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 400;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+
+                               }
+                               description {
+                                       state: "landscape.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 240;
+                                       fixed: 0 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.loading.bottom";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_y : "pv.normal.main.loading.top";  }
+                                       rel2 { relative: 1.0 0.0; to_y : "pv.normal.main.loading.top"; }
+                                       color: 0 255 0 128;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.loading";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 0.0; to_y : "pv.normal.main.loading.bottom"; }
+                                       rel2 { relative: 1.0 0.0; to_y : "pv.normal.main.loading.bottom"; }
+                               }
+                       }
+
+                       /*subtitle area*/
+                       part {
+                               name: "pv.normal.main.subtitle";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.5 1.0;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.1 0.0; }
+                                       rel2 { relative: 0.9 0.0; to_y: "pv.normal.main.control";}
+                               }
+                               description {
+                                       state: "portrait.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.1 0.0; }
+                                       rel2 { relative: 0.9 0.0; to_y: "pv.normal.main.volume.icon";}
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "landscape.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.1 0.0; }
+                                       rel2 { relative: 0.9 0.0; to_y: "pv.normal.main.volume.icon";}
+                                       visible: 1;
+                               }
+                       }
+               } /* parts */
+
+               programs {
+                       program {
+                               name: "video_off";
+                               signal: "signal.pv.normal.main.video.off";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.main.bg";
+                       }
+                       program {
+                               name: "video_on";
+                               signal: "signal.pv.normal.main.video.on";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.bg";
+                       }
+
+                       program {
+                               name: "control_portait_show";
+                               signal: "signal.pv.normal.main.portrait.show";
+                               source: "*";
+                               action: STATE_SET "portrait.show" 0.0;
+                               target: "pv.normal.main.control";
+                               target: "pv.normal.top.control";
+#ifndef SUBTITLE_K_FEATURE
+                               target: "pv.normal.main.subtitle.top";
+#endif
+                               transition: LINEAR 0.2;
+                               after: "control_show_finished";
+                       }
+
+                       program {
+                               name: "control_landscape_show";
+                               signal: "signal.pv.normal.main.landscape.show";
+                               source: "*";
+                               action: STATE_SET "landscape.show" 0.0;
+                               target: "pv.normal.main.control";
+                               target: "pv.normal.top.control";
+#ifdef SUBTITLE_K_FEATURE
+                               target: "pv.normal.main.subtitle";
+#endif
+                               transition: LINEAR 0.2;
+                               after: "control_show_finished";
+                       }
+
+                       program {
+                               name: "no_effect_portait_show";
+                               signal: "signal.pv.normal.main.no.effect.portrait.show";
+                               source: "*";
+                               action: STATE_SET "portrait.show" 0.0;
+                               target: "pv.normal.main.loading.top";
+                               target: "pv.normal.main.zoom.guide.top";
+                               target: "pv.normal.main.no.contents.bottom";
+                               target: "pv.normal.main.image.buffer.bg";
+                       }
+
+                       program {
+                               name: "no_effect_landscape_show";
+                               signal: "signal.pv.normal.main.no.effect.landscape.show";
+                               source: "*";
+                               action: STATE_SET "landscape.show" 0.0;
+                               target: "pv.normal.main.loading.top";
+                               target: "pv.normal.main.zoom.guide.top";
+                               target: "pv.normal.main.no.contents.bottom";
+                               target: "pv.normal.main.image.buffer.bg";
+                       }
+
+                       program {
+                               name: "no_effect_control_hide";
+                               signal : "signal.pv.normal.main.no.effect.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.control";
+                               target: "pv.normal.top.control";
+                               target: "pv.normal.main.image.buffer";
+                               transition: LINEAR 0.0;
+                               after: "control_hide_finished";
+                       }
+
+                       program {
+                               name: "control_hide";
+                               signal: "signal.pv.normal.main.control.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.control";
+                               target: "pv.normal.top.control";
+                               transition: LINEAR 0.2;
+                               after: "control_hide_finished";
+                       }
+#ifdef SUBTITLE_K_FEATURE
+                       program {
+                               name: "subtitle_portrait_show";
+                               signal: "signal.pv.normal.main.portrait.subtitle";
+                               source: "*";
+                               action: STATE_SET "portrait.show" 0.0;
+                               target: "pv.normal.main.subtitle";
+                       }
+                       program {
+                               name: "subtitle_landscape_show";
+                               signal: "signal.pv.subtitle.main.landscape.show";
+                               source: "*";
+                               action: STATE_SET "landscape.show" 0.0;
+                               target: "pv.normal.main.subtitle";
+                       }
+                       program {
+                               name: "subtitle_normal_hide";
+                               signal: "signal.pv.normal.main.subtitle.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.subtitle";
+                       }
+#endif
+                       program {
+                               name: "voice_control_show";
+                               signal: "signal.pv.allshare.voice.control.show";
+                               source: "pv.allshare.voice.control";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.allshare.voice.control";
+                               transition: LINEAR 0.6;
+                       }
+
+                       program {
+                               name: "voice_control_hide";
+                               signal: "signal.pv.allshare.voice.control.hide";
+                               source: "pv.allshare.voice.control";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.allshare.voice.control";
+                               transition: LINEAR 0.6;
+                       }
+
+                       program {
+                               name: "no_effect_voice_control_hide";
+                               signal: "signal.pv.allshare.noeffect.voice.control.hide";
+                               source: "pv.allshare.voice.control";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.allshare.voice.control";
+                               transition: LINEAR 0.0;
+                       }
+                       program {
+                               name: "rotate_icon_show";
+                               signal: "signal.pv.normal.main.rotate.icon.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.main.rotate.icon";
+                       }
+                       program {
+                               name: "volume_icon_show";
+                               signal: "signal.pv.normal.main.volume.icon.portrait.show";
+                               source: "*";
+                               action: STATE_SET "portrait.show" 0.0;
+                               target: "pv.normal.main.volume.icon";
+                               //target: "pv.normal.main.subtitle";
+                       }
+                       program {
+                               name: "volume_icon_show_landscape";
+                               signal: "signal.pv.normal.main.volume.icon.landscape.show";
+                               source: "*";
+                               action: STATE_SET "landscape.show" 0.0;
+                               target: "pv.normal.main.volume.icon";
+                               //target: "pv.normal.main.subtitle";
+                       }
+                       program {
+                               name: "rotate_icon_hide";
+                               signal: "signal.pv.normal.main.rotate.icon.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.rotate.icon";
+                       }
+                       program {
+                               name: "volume_icon_hide";
+                               signal: "signal.pv.normal.main.volume.icon.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.volume.icon";
+                               //target: "pv.normal.main.subtitle";
+                       }
+                       program{
+                               name: "touch_snd";
+                               signal: "mouse,clicked,1";
+                               source: "pv.normal.main.rotate.icon";
+                               action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+                       program{
+                               name: "touch_snd1";
+                               signal: "mouse,clicked,1";
+                               source: "pv.normal.main.volume.icon";
+                               action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+                       program{
+                               name: "touch_snd2";
+                               signal: "mouse,clicked,1";
+                               source: "pv.normal.main.lockscreen";
+                               action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+                       program {
+                               name: "speed_on";
+                               signal: "signal.pv.normal.main.speed.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.main.speed.rect";
+                               target: "pv.normal.main.speed.txt";
+                       }
+
+                       program {
+                               name: "speed_off";
+                               signal: "signal.pv.normal.main.speed.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.speed.rect";
+                               target: "pv.normal.main.speed.txt";
+                       }
+
+                       program {
+                               name: "speed_changed";
+                               signal: "signal.pv.normal.main.playingspeed.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.main.playingspeed.rect";
+                               target: "pv.normal.main.playingspeed.txt";
+                       }
+
+                       program {
+                               name: "speed_normal";
+                               signal: "signal.pv.normal.main.playingspeed.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.playingspeed.rect";
+                               target: "pv.normal.main.playingspeed.txt";
+                       }
+                       program {
+                               name:   "clicked_event";
+                               signal: "mouse,clicked,1";
+                               source: "pv.normal.main.playingspeed.rect";
+                               source: "pv.normal.main.playingspeed.txt";
+                               action: SIGNAL_EMIT "elm,action,click" "";
+                       }
+
+                       program {
+                               name: "screen_portrait_on";
+                               signal: "signal.pv.normal.main.screenshot.portrait.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.main.screenshot.portrait.line";
+                               target: "pv.normal.main.screenshot.portrait.rect";
+                       }
+
+                       program {
+                               name: "screen_landscape_on";
+                               signal: "signal.pv.normal.main.screenshot.landscape.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.main.screenshot.landscape.line";
+                               target: "pv.normal.main.screenshot.landscape.rect";
+                       }
+
+                       program {
+                               name: "screen_mode_off";
+                               signal: "signal.pv.normal.main.screenshot.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.screenshot.landscape.line";
+                               target: "pv.normal.main.screenshot.landscape.rect";
+                               target: "pv.normal.main.screenshot.portrait.line";
+                               target: "pv.normal.main.screenshot.portrait.rect";
+                       }
+#ifndef SUBTITLE_K_FEATURE
+                       program {
+                               name: "bookmark_on";
+                               signal: "signal.pv.normal.main.bookmark.on";
+                               source: "*";
+                               action: STATE_SET "bookmark.on" 0.0;
+                               target: "pv.normal.main.subtitle.bottom";
+                       }
+
+                       program {
+                               name: "bookmark_off";
+                               signal: "signal.pv.normal.main.bookmark.off";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.subtitle.bottom";
+                       }
+#endif
+                       program {
+                               name: "control_show_finished";
+                               action: SIGNAL_EMIT "signal.pv.normal.main.control.show.finish" "*";
+                       }
+
+                       program {
+                               name: "control_hide_finished";
+                               action: SIGNAL_EMIT "signal.pv.normal.main.control.hide.finish" "*";
+                       }
+
+                       program {
+                               signal: "signal.pv.normal.lockscreen.show";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.normal.main.lockscreen", "show", 0.0);
+                                       set_state(PART:"pv.normal.main.lockscreen.text", "show", 0.0);
+
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.normal.lockscreen.hide";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.normal.main.lockscreen", "default", 0.0);
+                                       set_state(PART:"pv.normal.main.lockscreen.text", "default", 0.0);
+                               }
+                       }
+
+                       program {
+                               signal: "signal.pv.normal.no.contents.show";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.normal.main.no.contents", "show", 0.0);
+                                       set_state(PART:"pv.normal.main.no.contents.rect", "show", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.normal.no.contents.hide";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.normal.main.no.contents", "default", 0.0);
+                                       set_state(PART:"pv.normal.main.no.contents.rect", "default", 0.0);
+                               }
+                       }
+               } /* programs */
+
+       }       /* group */
+
+       group {
+               name: "pv.normal.main.microseek.text";
+               images {
+                       image: MICRO_CONTROL_IMG_BG COMP;
+               }
+               parts {
+                       part {
+                               name: "pv.normal.main.microseek.text.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 1 46;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 255 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.microseek.speed.text.bg";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.normal.main.microseek.text.bg"; to_y: "pv.normal.main.microseek.speed.text.left.padding";}
+                                       rel2 { relative: 1.0 1.0; to_x: "pv.normal.main.microseek.text.bg"; to_y: "pv.normal.main.microseek.speed.text.left.padding";}
+                                       image { normal: MICRO_CONTROL_IMG_BG; border: 9 9 0 0; }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.microseek.speed.text.left.padding";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 16 46;
+                                       align: 0.0 0.0;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 0.0; to : "pv.normal.main.microseek.text.bg";}
+                                       rel2 { relative: 0.0 46/(46+6+70); to : "pv.normal.main.microseek.text.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.microseek.speed.text";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 { relative: 1.0 0.0; to : "pv.normal.main.microseek.speed.text.left.padding";}
+                                       rel2 { relative: 0.0 1.0; to : "pv.normal.main.microseek.speed.text.right.padding";}
+                                       color: 255 255 255 255;
+                                       text {
+                                               min: 1 0;
+                                               size: 32;
+                                               text: "";
+                                       }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+
+                       part {
+                               name: "pv.normal.main.microseek.speed.text.right.padding";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 16 46;
+                                       align: 1.0 0.0;
+                                       fixed: 1 1;
+                                       rel1 { relative: 1.0 0.0; to : "pv.normal.main.microseek.text.bg";}
+                                       rel2 { relative: 1.0 46/(46+6+70); to : "pv.normal.main.microseek.text.bg";}
+                               }
+                       }
+               }       /* parts */
+               programs {
+                       program {
+                               name: "microseek_text_show";
+                               signal: "signal.pv.normal.main.microseek.text.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.main.microseek.speed.text";
+                               target: "pv.normal.main.microseek.speed.text.bg";
+                       }
+                       program {
+                               name: "microseek_text_hide";
+                               signal: "signal.pv.normal.main.microseek.text.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.microseek.speed.text";
+                               target: "pv.normal.main.microseek.speed.text.bg";
+                       }
+               }       /* programs */
+       }       /* group */
+
+       group {
+               name: "pv.normal.main.microseek.image";
+               images {
+                       image: MICRO_CONTROL_IMG_UP_1 COMP;
+                       image: MICRO_CONTROL_IMG_UP_2 COMP;
+                       image: MICRO_CONTROL_IMG_UP_3 COMP;
+               }
+               parts {
+                       part {
+                               name: "pv.normal.main.microseek.image.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 46 70;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 255 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.microseek.image.1";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 46 24;
+                                       max: 46 24;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to : "pv.normal.main.microseek.image.bg";}
+                                       rel2 { relative: 1.0 0.0; to : "pv.normal.main.microseek.image.bg";}
+                                       image.normal: MICRO_CONTROL_IMG_UP_1;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.microseek.image.2";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 46 24;
+                                       max: 46 24;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_x : "pv.normal.main.microseek.image.bg"; to_y : "pv.normal.main.microseek.image.1"; offset: 0 -1;}
+                                       rel2 { relative: 1.0 1.0; to_x : "pv.normal.main.microseek.image.bg"; to_y : "pv.normal.main.microseek.image.1"; offset: 0 -1;}
+                                       image.normal: MICRO_CONTROL_IMG_UP_2;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.microseek.image.3";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 46 24;
+                                       max: 46 24;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_x : "pv.normal.main.microseek.image.bg"; to_y : "pv.normal.main.microseek.image.2"; offset: 0 -1;}
+                                       rel2 { relative: 1.0 1.0; to_x : "pv.normal.main.microseek.image.bg"; to_y : "pv.normal.main.microseek.image.2"; offset: 0 -1;}
+                                       image.normal: MICRO_CONTROL_IMG_UP_3;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+               }       /* parts */
+               programs {
+                       program {
+                               name: "microseek_image_show";
+                               signal: "signal.pv.normal.main.microseek.image.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.main.microseek.image.1";
+                               target: "pv.normal.main.microseek.image.2";
+                               target: "pv.normal.main.microseek.image.3";
+                       }
+                       program {
+                               name: "microseek_image_hide";
+                               signal: "signal.pv.normal.main.microseek.image.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.microseek.image.1";
+                               target: "pv.normal.main.microseek.image.2";
+                               target: "pv.normal.main.microseek.image.3";
+                       }
+               }       /* programs */
+       }       /* group */
+
+#ifdef FLICK_JUMP
+       group {
+               name: "pv.normal.main.flickjump.seek";
+               images {
+                       image: JUMP_IMG_L_1 COMP;
+                       image: JUMP_IMG_L_2 COMP;
+                       image: JUMP_IMG_L_3 COMP;
+                       image: JUMP_IMG_R_1 COMP;
+                       image: JUMP_IMG_R_2 COMP;
+                       image: JUMP_IMG_R_3 COMP;
+               }
+               parts {
+                       part {
+                               name: "pv.normal.main.flickjump.seek.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 80 60;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 255 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.flickjump.seek.img";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 0.0; to : "pv.normal.main.flickjump.seek.bg"; }
+                                       rel2 { relative: 1.0 1.0; to : "pv.normal.main.flickjump.seek.bg"; }
+                                       image.normal: JUMP_IMG_L_3;
+                               }
+                               description {
+                                       state: "ff_default" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                                       image.normal: JUMP_IMG_L_3;
+                               }
+                               description {
+                                       state: "rew_default" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                                       image.normal: JUMP_IMG_R_3;
+                               }
+                               description {
+                                       state: "ff.jump3" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image.normal: JUMP_IMG_L_3;
+                               }
+                               description {
+                                       state: "ff.jump2" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image.normal: JUMP_IMG_L_2;
+                               }
+                               description {
+                                       state: "ff.jump1" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image.normal: JUMP_IMG_L_1;
+                               }
+                               description {
+                                       state: "rew.jump3" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image.normal: JUMP_IMG_R_3;
+                               }
+                               description {
+                                       state: "rew.jump3" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image.normal: JUMP_IMG_R_3;
+                               }
+                               description {
+                                       state: "rew.jump2" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image.normal: JUMP_IMG_R_2;
+                               }
+                               description {
+                                       state: "rew.jump1" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image.normal: JUMP_IMG_R_1;
+                               }
+                       }
+                       part {
+                               name: "pv.normal.main.flickjump.seek.rewtext";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 88 34;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 ((60-34)/2)/60; to_x : "pv.normal.main.flickjump.seek.img"; to_y : "pv.normal.main.flickjump.seek.bg";}
+                                       rel2 { relative: 0.0 (60-((60-34)/2))/60; to_x : "pv.normal.main.flickjump.seek.img"; to_y : "pv.normal.main.flickjump.seek.bg";}
+                                       color: 255 255 255 255;
+                                       text {
+                                               min: 1 0;
+                                               size: 32;
+                                               text: "";
+                                       }
+                               }
+                               description {
+                                       state: "rew_default" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "pv.normal.main.flickjump.seek.fftext";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 88 34;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 ((60-34)/2)/60; to_x : "pv.normal.main.flickjump.seek.img"; to_y : "pv.normal.main.flickjump.seek.bg";}
+                                       rel2 { relative: 1.0 (60-((60-34)/2))/60; to_x : "pv.normal.main.flickjump.seek.img"; to_y : "pv.normal.main.flickjump.seek.bg";}
+                                       color: 255 255 255 255;
+                                       text {
+                                               min: 1 0;
+                                               size: 32;
+                                               text: "5 sec";
+                                       }
+                               }
+                               description {
+                                       state: "ff_default" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+               }       /* parts */
+               programs {
+                       program {
+                               name: "jump.ff.step3";
+                               signal: "signal.jump.ff.step3";
+                               source: "*";
+                               action: STATE_SET "ff.jump3" 0.0;
+                               target: "pv.normal.main.flickjump.seek.img";
+                               transition: LINEAR 0.2;
+                               after: "jump.ff.step2";
+                       }
+                       program {
+                               name: "jump.ff.step2";
+                               signal: "signal.jump.ff.step2";
+                               source: "*";
+                               action: STATE_SET "ff.jump2" 0.0;
+                               target: "pv.normal.main.flickjump.seek.img";
+                               transition: LINEAR 0.2;
+                               after: "jump.ff.step1";
+                       }
+                       program {
+                               name: "jump.ff.step1";
+                               signal: "signal.jump.ff.step1";
+                               source: "*";
+                               action: STATE_SET "ff.jump1" 0.0;
+                               target: "pv.normal.main.flickjump.seek.img";
+                               transition: LINEAR 0.2;
+                               after: "jump.ff.end";
+                       }
+                       program {
+                               name: "jump.ff.end";
+                               signal: "signal.jump.ff.end";
+                               source: "*";
+                               action: STATE_SET "ff_default" 0.0;
+                               target: "pv.normal.main.flickjump.seek.img";
+                               script{
+                                       emit("ff_animation_done", "edje");
+                               }
+                       }
+                       program {
+                               name: "pv.normal.main.flickjump.ff";
+                               signal: "signal.pv.normal.main.flickjump.ff";
+                               source: "*";
+                               action: STATE_SET "ff_default" 0.0;
+                               target: "pv.normal.main.flickjump.seek.img";
+                               target: "pv.normal.main.flickjump.seek.fftext";
+                               after: "jump.ff.step3";
+                       }
+
+                       program {
+                               name: "jump.rew.step3";
+                               signal: "signal.jump.rew.step3";
+                               source: "*";
+                               action: STATE_SET "rew.jump3" 0.0;
+                               target: "pv.normal.main.flickjump.seek.img";
+                               transition: LINEAR 0.2;
+                               after: "jump.rew.step2";
+                       }
+                       program {
+                               name: "jump.rew.step2";
+                               signal: "signal.jump.rew.step2";
+                               source: "*";
+                               action: STATE_SET "rew.jump2" 0.0;
+                               target: "pv.normal.main.flickjump.seek.img";
+                               transition: LINEAR 0.2;
+                               after: "jump.rew.step1";
+                       }
+                       program {
+                               name: "jump.rew.step1";
+                               signal: "signal.jump.rew.step1";
+                               source: "*";
+                               action: STATE_SET "rew.jump1" 0.0;
+                               target: "pv.normal.main.flickjump.seek.img";
+                               transition: LINEAR 0.2;
+                               after: "jump.rew.end";
+                       }
+                       program {
+                               name: "jump.rew.end";
+                               signal: "signal.jump.rew.end";
+                               source: "*";
+                               action: STATE_SET "rew_default" 0.0;
+                               target: "pv.normal.main.flickjump.seek.img";
+                               script{
+                                       emit("rew_animation_done", "edje");
+                               }
+                       }
+                       program {
+                               name: "pv.normal.main.flickjump.rew";
+                               signal: "signal.pv.normal.main.flickjump.rew";
+                               source: "*";
+                               action: STATE_SET "rew_default" 0.0;
+                               target: "pv.normal.main.flickjump.seek.img";
+                               target: "pv.normal.main.flickjump.seek.rewtext";
+                               after: "jump.rew.step3";
+                       }
+               }       /* programs */
+       }       /* group */
+#endif
+
+} /* collections */
+
diff --git a/playview/res/edje/pv-normal-top-control.edc b/playview/res/edje/pv-normal-top-control.edc
new file mode 100755 (executable)
index 0000000..1d71349
--- /dev/null
@@ -0,0 +1,135 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+collections {
+       group {
+               name: "pv.normal.top";
+
+               parts {
+                       part {
+                               name: "pv.normal.top.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.top.capture";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 63 63;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.5 1.0; to_y: "pv.normal.top.bg";}
+                                       rel2 { relative: 0.5 1.0; to_y: "pv.normal.top.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.top.capture.right.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 30 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to_x : "pv.normal.top.capture";}
+                                       rel2 { relative: 1.0 1.0; to_x : "pv.normal.top.capture";}
+                                       color: 0 255 0 255;
+                               }
+                       }
+                       part {
+                               name: "pv.normal.top.capture.left.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 30 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_x : "pv.normal.top.capture";}
+                                       rel2 { relative: 0.0 1.0; to_x : "pv.normal.top.capture";}
+                                       color: 0 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.top.capture.rew";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 63 63;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x : "pv.normal.top.capture.left.padding"; to_y: "pv.normal.top.capture"; }
+                                       rel2 { relative: 0.0 0.5; to_x : "pv.normal.top.capture.left.padding"; to_y: "pv.normal.top.capture"; }
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.top.capture.ff";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 63 63;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.5; to_x : "pv.normal.top.capture.right.padding"; to_y: "pv.normal.top.capture"; }
+                                       rel2 { relative: 1.0 0.5; to_x : "pv.normal.top.capture.right.padding"; to_y: "pv.normal.top.capture"; }
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.top.rotate.right.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 26 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to_y: "pv.normal.top.bg";}
+                                       rel2 { relative: 1.0 1.0; to_y: "pv.normal.top.bg";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+               } /* parts */
+       } /* group */
+} /* collections */
diff --git a/playview/res/edje/pv-popup.edc b/playview/res/edje/pv-popup.edc
new file mode 100755 (executable)
index 0000000..39a2cc1
--- /dev/null
@@ -0,0 +1,390 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define PV_POPUP_PROGRESSVIEW_CONTENT_MIN                              0 93
+#define PV_POPUP_PROGRESSVIEW_WIDTH_HEIGHT_MIN                         0 163
+#define PV_POPUP_PROGRESSVIEW_TEXT_LEFT_RIGHT_MAX              120 60
+
+#define PV_POPUP_ENTRY_CONTENT_MIN                                             0 100
+
+#define PV_POPUP_CAPTION_WIDTH_HEIGHT_MIN                              614 135
+#define PV_POPUP_CAPTION_WIN_WIDTH_HEIGHT_MIN                  514 95
+#define PV_POPUP_BG_WIDTH_HEIGHT_MIN                                   270 60
+#define PV_POPUP_LANDSCAPE_BG_WIDTH_HEIGHT_MIN                         760 60
+#define PV_POPUP_LINE_WIDTH_HEIGHT_MIN                                         0 1
+#define PV_POPUP_TITLE_WIDTH_HEIGHT_MIN                                        0 72
+#define PV_GENLIST_LIST_LINE1_POPUP_COLOR              211 209 203 255
+
+#define POPUP_BASE_DEFAULT_TEXT_FONT_SIZE_INC  20
+collections {
+       group {
+               name: "pv.popup.progress";
+               parts {
+                       part {
+                               name:"bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: PV_POPUP_PROGRESSVIEW_WIDTH_HEIGHT_MIN;
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pad_l";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 20 0;
+                                       max: 20 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "bg";}
+                                       rel2 { relative: 0.0 1.0; to: "bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pad_r";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 20 0;
+                                       max: 20 0;
+                                       fixed: 1 0;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 0.0; to: "bg";}
+                                       rel2 { relative: 1.0 1.0; to: "bg";}
+                               }
+                       }
+
+                       part {
+                               name: "elm.swallow.content";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: PV_POPUP_PROGRESSVIEW_CONTENT_MIN;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 1.0 0.0; to_x: "pad_l"; to_y: "bg"; }
+                                       rel2 { relative: 0.0 0.0; to_x: "pad_r"; to_y: "bg"; }
+                               }
+                       }
+
+                       part {
+                               name: "elm.text.right";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: PV_POPUP_PROGRESSVIEW_TEXT_LEFT_RIGHT_MAX;
+                                       fixed: 1 1;
+                                       color: 0 0 0 255;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 1.0;  to_x: "pad_r"; to_y: "elm.swallow.content"; }
+                                       rel2 { relative: 0.0 1.0;  to_x: "pad_r"; to_y: "elm.swallow.content"; }
+                                       text {
+                                               font: "Tizen:style=Medium";
+                                               size: 36;
+                                               min: 0 0;
+                                               align: 1.0 0.0;
+                                       }
+
+                               }
+                       }
+
+               }
+       } /* group */
+
+       group {
+               name: "pv.popup.entry";
+               parts {
+                       part {
+                               name:"bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: PV_POPUP_PROGRESSVIEW_WIDTH_HEIGHT_MIN;
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pad_l";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 26 0;
+                                       max: 32 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "bg";}
+                                       rel2 { relative: 0.0 1.0; to: "bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pad_r";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 26 0;
+                                       max: 26 0;
+                                       fixed: 1 0;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 0.0; to: "bg";}
+                                       rel2 { relative: 1.0 1.0; to: "bg";}
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.content";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: PV_POPUP_PROGRESSVIEW_CONTENT_MIN;
+                                       fixed: 0 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.5; to_x: "pad_l"; to_y: "bg"; }
+                                       rel2 { relative: 0.0 0.5; to_x: "pad_r"; to_y: "bg"; }
+                               }
+                       }
+
+               }
+       } /* group */
+
+       group {
+               name: "pv.popup.caption";
+               parts {
+                       part {
+                               name:"bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: PV_POPUP_BG_WIDTH_HEIGHT_MIN;
+                                       color: 0 0 0 0;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       min: PV_POPUP_LANDSCAPE_BG_WIDTH_HEIGHT_MIN;
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "elm.caption.preview.bg";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.5;
+                                       //rel1 { relative: 1.0 0.0; to_x: "pad_l"; to_y: "bg"; }
+                                       //rel2 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "bg"; }
+                                       rel1 { relative: 0.0 0.0; to: "bg";}
+                                       rel2 { relative: 0.85 1.0; to: "bg";}
+                                       image { normal: "genlist/preview_settings_bg.png";}
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.content";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.5;
+                                       //rel1 { relative: 1.0 0.0; to_x: "pad_l"; to_y: "bg"; }
+                                       //rel2 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "bg"; }
+                                       rel1 { relative: 0.0 0.0; to: "elm.caption.preview.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "elm.caption.preview.bg";}
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+                       }
+               } /* parts*/
+       }
+       group
+       {
+               name: "navi_texts";
+               styles {
+                       style { name: "navi_title_style";
+                               base: "font=Tizen:style=Regular font_size=15 align=center color=#FFFFFF  wrap=mixed ellipsis=1.0";
+                               tag:  "br" "\n";
+                               tag:  "tab" "\t";
+                       }
+               }
+               parts{
+                       part{
+                               name: "navi_bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       color: 115 167 191 255;
+                               rel1 {
+                                               relative: 0.0 0.0;
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                       }
+                               }
+                       }
+                       part { name: "navi_text";
+                               type: TEXTBLOCK;
+                               mouse_events: 1;
+                               scale:1;
+                               description { state: "default" 0.0;
+                                       text {
+                                               style: "navi_title_style";
+                                               align: 0.5 0.5;
+                                       }
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                       }
+                                       align: 0.5 0.5;
+                               }
+                       }
+               } /* parts */
+               programs
+          {
+           program
+          {
+                name: "state_changer";
+                               signal: "mouse,down,1";
+                               source: "navi_text";
+                               action: SIGNAL_EMIT "elm,action,click1" "navi_text";
+                       }
+       } /* programs */
+       }
+       group {
+               name: "pv.popup.title";
+               styles {
+                       style { name: "popup_title_style";
+                               base: "font=Tizen:style=Regular align=center font_size="POPUP_BASE_DEFAULT_TEXT_FONT_SIZE_INC" color=#FFFFFF  wrap=mixed ellipsis=1.0";
+                               tag:  "br" "\n";
+                               tag:  "tab" "\t";
+                       }
+               }
+
+               parts {
+                       part {
+                               name:"elm.bg.title";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 50;
+                                       max:440 50;
+                                       color: 61 185 204 255;
+                               }
+                       }
+                       part {
+                               name: "pad_l";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 8 0;
+                                       max: 8 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "elm.bg.title";}
+                                       rel2 { relative: 0.0 1.0; to: "elm.bg.title";}
+                               }
+                       }
+
+                       part {
+                               name: "pad_r";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 8 0;
+                                       max: 8 0;
+                                       fixed: 1 0;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 0.0; to: "elm.bg.title";}
+                                       rel2 { relative: 1.0 1.0; to: "elm.bg.title";}
+                               }
+                       }
+
+                       part { name: "elm.swallow.title.left.icon";
+                               type: SWALLOW;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       rel1 { relative: 0 0; to: "elm.bg.title";}
+                                       rel2 { relative: 0.25 1; to: "elm.bg.title";}
+                                       min: 30 0;
+                                       fixed: 1 0;
+                                       align: 0.5 0.5;
+                               }
+                       }
+
+                       part { name: "elm.swallow.title.right.icon";
+                               type: SWALLOW;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       rel1 { relative: 0.75 0; to: "elm.bg.title";}
+                                       rel2 { relative: 1 1; to: "elm.bg.title";}
+                                       min: 30 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.5;
+                               }
+                       }
+
+                       part { name: "elm.text.title";
+                               type: TEXTBLOCK;
+                               scale:1;
+                               description { state: "default" 0.0;
+                                       fixed: 1 1;
+                                       text {
+                                               style: "popup_title_style";
+                                               size: POPUP_BASE_DEFAULT_TEXT_FONT_SIZE_INC;
+                                               align: 0.5 0.5;
+                                       }
+                                       rel1 {
+                                               relative: 1.0 0.0;
+                                               to_x: "elm.swallow.title.left.icon";
+                                               to_y: "elm.bg.title";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               to_x: "elm.swallow.title.right.icon";
+                                               to_y: "elm.bg.title";
+                                       }
+                                       align: 0.5 0.5;
+                               }
+                       }
+               } /* parts*/
+       }
+} /* collections */
diff --git a/playview/res/edje/pv-progressbar.edc b/playview/res/edje/pv-progressbar.edc
new file mode 100755 (executable)
index 0000000..e98fd54
--- /dev/null
@@ -0,0 +1,495 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define FONT_BOLD_TYPE                 "Tizen:style=Bold"
+#define FONT_MEDIUM_TYPE                       "Tizen:style=Medium"
+#define FONT_REGULAR_TYPE              "Tizen:style=Regular"
+#define FONT_ROMAN_TYPE                        "Tizen:style=Roman"
+#define FONT_LIGHT_TYPE                        "Tizen:style=Light"
+
+/*     chageable GUI
+#define FONT_START_COLOR               0 159 255 255
+#define FONT_END_COLOR                 248 246 240 255
+*/
+
+#define PLAYER_PROGRESSBAR_H   4
+#define PLAYER_CIRCLE_W 26
+#define PLAYER_CIRCLE_H 26
+#define PLAYER_CIRCLE_PRESS_W 26
+#define PLAYER_CIRCLE_PRESS_H 26
+
+#define IMG_PLAYER_PROGRESSBAR_BG "progressbar/core_progress_bar.#.png"
+#define IMG_PLAYER_PROGRESSBAR_HANDLE "progressbar/T01_2_control_progress_handle.png"
+#define IMG_PLAYER_PROGRESSBAR_HANDLE_PRESS "progressbar/T01_2_control_progress_handle_press.png"
+
+collections {
+       group {
+               name: "pv.progress";
+
+               parts {
+                       part {
+                               name: "pv.progress.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               scale: 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;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.playing.txt.left.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 12 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_y : "pv.progress.bg";}
+                                       rel2 { relative: 0.0 1.0; to_y : "pv.progress.bg";}
+                                       color: 255 0 0 255;
+                               }
+
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 12 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.playing.txt.landscape.right.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 12 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to_x : "pv.progress.playing.txt"; to_y : "pv.progress.bg";}
+                                       rel2 { relative: 1.0 1.0; to_x : "pv.progress.playing.txt"; to_y : "pv.progress.bg";}
+                                       color: 0 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.duration.txt.right.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 12 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to_y : "pv.progress.bg";}
+                                       rel2 { relative: 1.0 1.0; to_y : "pv.progress.bg";}
+                                       color: 255 0 0 255;
+                               }
+
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 12 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.duration.txt.landscape.left.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 12 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_x : "pv.progress.duration.txt"; to_y : "pv.progress.bg";}
+                                       rel2 { relative: 0.0 1.0; to_x : "pv.progress.duration.txt"; to_y : "pv.progress.bg";}
+                                       color: 0 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.bottom.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 8;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_x : "pv.progress.bg";}
+                                       rel2 { relative: 1.0 1.0; to_x : "pv.progress.bg";}
+                                       color: 255 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.playing.txt";
+                               type: TEXT;
+                               mouse_events: 1;
+                               scale: 1;
+                               effect: FAR_SHADOW BOTTOM;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 90 16;
+                                       fixed: 1 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 1.0 1.0; offset: 0 -40; to_x : "pv.progress.playing.txt.left.padding"; to_y : "pv.progress.bottom.padding";}
+                                       rel2 { relative: 1.0 1.0; offset: 0 -40; to_x : "pv.progress.playing.txt.left.padding"; to_y : "pv.progress.bottom.padding";}
+                                       color: 5 131 198 255;
+                                       text {
+                                               size: 12;
+                                               text: "00:00:00";
+                                               align: 0.0 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.5; offset: 0 40; to_x : "pv.progress.playing.txt.left.padding"; to_y : "pv.progress.bg";}
+                                       rel2 { relative: 1.0 0.5; offset: 0 40; to_x : "pv.progress.playing.txt.left.padding"; to_y : "pv.progress.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.duration.txt";
+                               type: TEXT;
+                               mouse_events: 1;
+                               scale: 1;
+                               effect: FAR_SHADOW BOTTOM;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 90 16;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 0.0 1.0; offset: 0 -40; to_x : "pv.progress.duration.txt.right.padding"; to_y : "pv.progress.bottom.padding";}
+                                       rel2 { relative: 0.0 1.0; offset: 0 -40; to_x : "pv.progress.duration.txt.right.padding"; to_y : "pv.progress.bottom.padding";}
+                                       color: 179 179 179 255;
+                                       text {
+                                               size: 12;
+                                               text: "--:--:--";
+                                               align: 1.0 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; offset: 0 40; to_x : "pv.progress.duration.txt.right.padding"; to_y : "pv.progress.bg";}
+                                       rel2 { relative: 0.0 0.5; offset: 0 40; to_x : "pv.progress.duration.txt.right.padding"; to_y : "pv.progress.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.bar.bg";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 PLAYER_PROGRESSBAR_H;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.02 0.0; to_x : "pv.progress.playing.txt";  to_y : "pv.progress.bg";}
+                                       rel2 { relative: 0.98 0.0; to_x : "pv.progress.duration.txt";  to_y : "pv.progress.bg";}
+                                       image { normal: IMG_PLAYER_PROGRESSBAR_BG;}
+                                       color: 179 179 179 255;
+                               }
+
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.02 0.5; to_x : "pv.progress.playing.txt"; to_y : "pv.progress.bg";}
+                                       rel2 { relative: 0.98 0.5; to_x : "pv.progress.duration.txt"; to_y : "pv.progress.bg";}
+                               }
+                       }
+                       part {
+                               name: "pv.progress.step";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 PLAYER_PROGRESSBAR_H;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.progress.bar.bg"; offset : -2 -1; }
+                                       rel2 { relative: 0.5 1.0; to_x: "pv.progress.circle"; to_y: "pv.progress.bar.bg"; }
+                                       image { normal: IMG_PLAYER_PROGRESSBAR_BG;}
+                                       color: 0 166 191 255;
+                               }
+
+                               description {
+                                       state: "progress_opacity_60" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+
+                       }
+                       part {
+                               name: "pv.progress.confine.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.0;  to: "pv.progress.bar.bg"; }
+                                       rel2 { relative: 1.0 1.0;  to: "pv.progress.bar.bg"; }
+                                       color: 255 255 255 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.circle";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 14 11;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to_x: "pv.progress.playing"; to_y: "pv.progress.bar.bg";  }
+                                       rel2 { relative: 0.5 0.5; to_x: "pv.progress.playing"; to_y: "pv.progress.bar.bg"; }
+                                       color: 255 255 255 255;
+                               }
+                       }
+                       part {
+                               name: "pv.progress.playing";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 6;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.progress.bar.bg"; }
+                                       rel2 { relative: 0.0 0.0; to: "pv.progress.bar.bg"; }
+                               }
+                               dragable {
+                                       confine:  "pv.progress.confine.rect";
+                                       x: 1 1 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.buffering.step";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 2;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.progress.bar.bg"; }
+                                       rel2 { relative: 0.5 1.0; to_x: "pv.progress.buffering.circle"; to_y: "pv.progress.bar.bg"; }
+                                       color: 102 102 102 77;// current opacity 30% .128 128 128 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.buffering.circle";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 14 11;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to_x: "pv.progress.buffering"; to_y: "pv.progress.bar.bg";  }
+                                       rel2 { relative: 0.5 0.5; to_x: "pv.progress.buffering"; to_y: "pv.progress.bar.bg"; }
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.buffering.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.0;  to: "pv.progress.bar.bg"; }
+                                       rel2 { relative: 1.0 1.0;  to: "pv.progress.bar.bg"; }
+                                       color: 255 255 255 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.buffering";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 11;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.progress.bar.bg"; }
+                                       rel2 { relative: 0.0 0.0; to: "pv.progress.bar.bg"; }
+                               }
+                               dragable {
+                                       confine:  "pv.progress.buffering.rect";
+                                       x: 1 1 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.point";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: PLAYER_CIRCLE_W PLAYER_CIRCLE_H;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to_x: "pv.progress.circle"; to_y: "pv.progress.bar.bg"; }
+                                       rel2 { relative: 0.5 0.5; to_x: "pv.progress.circle"; to_y: "pv.progress.bar.bg"; }
+                                       image { normal: IMG_PLAYER_PROGRESSBAR_HANDLE;}
+                                       color: 0 166 191 255;
+                               }
+                       }
+                       part {
+                               name: "pv.progress.press.point";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: PLAYER_CIRCLE_PRESS_W PLAYER_CIRCLE_PRESS_H;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to_x: "pv.progress.circle"; to_y: "pv.progress.bar.bg"; }
+                                       rel2 { relative: 0.5 0.5; to_x: "pv.progress.circle"; to_y: "pv.progress.bar.bg"; }
+                                       image { normal: IMG_PLAYER_PROGRESSBAR_HANDLE_PRESS;}
+                                       color: 0 166 191 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible : 1;
+                               }
+                       }
+                       part {
+                               name: "pv.progress.point.focus";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 31 31;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 0.0; to: "pv.progress.point"; }
+                                       rel2 { relative: 1.0 1.0; to: "pv.progress.point"; }
+                                       color: 255 255 255 0;
+                               }
+                       }
+               } /* parts */
+
+               programs {
+                       program {
+                               name: "portrait_mode";
+                               signal: "signal.pv.normal.progress.portrait.mode";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.progress.playing.txt.left.padding";
+                               target: "pv.progress.duration.txt.right.padding";
+                               target: "pv.progress.playing.txt";
+                               target: "pv.progress.duration.txt";
+                               target: "pv.progress.bar.bg";
+                       }
+
+                       program {
+                               name: "landscape_mode";
+                               signal: "signal.pv.normal.progress.landscape.mode";
+                               source: "*";
+                               action: STATE_SET "landscape" 0.0;
+                               target: "pv.progress.playing.txt.left.padding";
+                               target: "pv.progress.duration.txt.right.padding";
+                               target: "pv.progress.playing.txt";
+                               target: "pv.progress.duration.txt";
+                               target: "pv.progress.bar.bg";
+                       }
+
+                       program {
+                               name: "progress_opacity_default";
+                               signal: "signal.pv.normal.progress.opacity_default";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.progress.step";
+                       }
+
+                       program {
+                               name: "progress_opacity_60";
+                               signal: "signal.pv.normal.progress.opacity_60";
+                               source: "*";
+                               action: STATE_SET "progress_opacity_60" 0.0;
+                               target: "pv.progress.step";
+                       }
+
+                       program {
+                               name: "pv.progress.click.anim";
+                               signal: "signal.pv.normal.progress.click";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.progress.press.point";
+                       }
+                       program {
+                               name: "pv.progress.unclick.anim";
+                               signal: "signal.pv.normal.progress.unclick";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.progress.press.point";
+                       }
+               } /* programs */
+       }       /* group */
+} /* collections */
+
+
diff --git a/playview/res/edje/pv-resource.edc b/playview/res/edje/pv-resource.edc
new file mode 100755 (executable)
index 0000000..8d0fea8
--- /dev/null
@@ -0,0 +1,447 @@
+/*
+ * Copyright (c) 2020 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 "pv-macro.edc"
+
+#define VP_PLAY_MULTI_VIEW_CLOSE                       "multi/my_title_icon_delete.png"
+#define VP_PLAY_MULTI_VIEW_FULLSIZE                    "multi/my_title_icon_maximize.png"
+#define VP_PLAY_MULTI_VIEW_RESIZE                      "multi/mw_frame_handler.png"
+#define VP_PLAY_MULTI_VIEW_RESIZE_PRESS                "multi/mw_frame_handler_press.png"
+#define VP_PLAY_MULTI_VIEW_MINSIZE                     "multi/my_title_icon_mimimize.png"
+
+#define VP_PLAY_MULTI_VIEW_FF                          "multi/T01_2_mw_control_icon_ff.png"
+#define VP_PLAY_MULTI_VIEW_FF_PRESS                    "multi/T01_2_mw_control_icon_ff_press.png"
+#define VP_PLAY_MULTI_VIEW_REW                         "multi/T01_2_mw_control_icon_rew.png"
+#define VP_PLAY_MULTI_VIEW_REW_PRESS           "multi/T01_2_mw_control_icon_rew_press.png"
+#define VP_PLAY_MULTI_VIEW_PLAY                                "multi/T01_2_mw_control_icon_play.png"
+#define VP_PLAY_MULTI_VIEW_PLAY_PRESS          "multi/T01_2_mw_control_icon_play_press.png"
+#define VP_PLAY_MULTI_VIEW_PAUSE                               "multi/T01_2_mw_control_icon_pause.png"
+#define VP_PLAY_MULTI_VIEW_PAUSE_PRESS         "multi/T01_2_mw_control_icon_pause_press.png"
+
+#define VP_PLAY_NORMAL_RES_CONTROL_BG          "control/T01-2_control_bg.png"
+#define VP_PLAY_NORMAL_RES_RESUME                      "control/T01-2_control_circle_icon_play.png"
+#define VP_PLAY_NORMAL_RES_PAUSE                       "control/T01-2_control_circle_icon_pause.png"
+#define VP_PLAY_NORMAL_RES_PREV                                "control/T01-2_control_circle_icon_rewind.png"
+#define VP_PLAY_NORMAL_RES_NEXT                                "control/T01-2_control_circle_icon_next.png"
+
+#define VP_PLAY_NORMAL_RES_VOLUME                                      "function/T01_2_control_icon_volume.png"
+#define VP_PLAY_NORMAL_RES_VOLUME_PRESS                        "function/T01_2_control_icon_volume_press.png"
+#define VP_PLAY_NORMAL_RES_VOLUME_DIM                          "function/T01_2_control_icon_volume_dim.png"
+
+#define VP_PLAY_NORMAL_RES_MUTE                                                "function/T01-2_control_icon_mute.png"
+#define VP_PLAY_NORMAL_RES_MUTE_PRESS                          "function/T01-2_control_icon_mute_press.png"
+#define VP_PLAY_NORMAL_RES_MUTE_DIM                                    "function/T01-2_control_icon_mute_dim.png"
+
+
+#define VP_PLAY_NORMAL_RES_BOOKMARK                            "function/T01_2_control_icon_bookmark.png"
+#define VP_PLAY_NORMAL_RES_BOOKMARK_PRESS                      "function/T01_2_control_icon_bookmark_press.png"
+#define VP_PLAY_NORMAL_RES_BOOKMARK_DIM                        "function/T01_2_control_icon_bookmark_dim.png"
+
+#define VP_PLAY_NORMAL_RES_POPUP_PLAYER        "function/player_popup_view_icon_nomal.png"
+
+#define VP_PLAY_NORMAL_RES_SCREEN_1_MODE                       "function/T01_2_control_icon_screenmode03.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_1_MODE_PRESS "function/T01_2_control_icon_screenmode03_press.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_1_MODE_DIM           "function/T01_2_control_icon_screenmode03_dim.png"
+
+#define VP_PLAY_NORMAL_RES_SCREEN_2_MODE                       "function/T01_2_control_icon_screenmode02.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_2_MODE_PRESS "function/T01_2_control_icon_screenmode02_press.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_2_MODE_DIM           "function/T01_2_control_icon_screenmode02_dim.png"
+
+#define VP_PLAY_NORMAL_RES_SCREEN_3_MODE                       "function/T01_2_control_icon_screenmode.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_3_MODE_PRESS "function/T01_2_control_icon_screenmode_press.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_3_MODE_DIM           "function/T01_2_control_icon_screenmode_dim.png"
+
+#define VP_PLAY_NORMAL_RES_SCREEN_4_MODE                       "function/T01_2_control_icon_screenmode04.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_4_MODE_PRESS "function/T01_2_control_icon_screenmode04_press.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_4_MODE_DIM           "function/T01_2_control_icon_screenmode04_dim.png"
+
+#define VP_PLAY_NORMAL_RES_MULTI_MODE                          "function/T01_2_control_icon_multi_window.png"
+#define VP_PLAY_NORMAL_RES_MULTI_MODE_PRESS            "function/T01_2_control_icon_multi_window_press.png"
+#define VP_PLAY_NORMAL_RES_MULTI_MODE_DIM                      "function/T01_2_control_icon_multi_window_dim.png"
+
+#define VP_PLAY_NORMAL_RES_SHARE                                       "function/T01_2_control_icon_share.png"
+#define VP_PLAY_NORMAL_RES_SHARE_PRESS                         "function/T01_2_control_icon_share_press.png"
+#define VP_PLAY_NORMAL_RES_SHARE_DIM                           "function/T01_2_control_icon_share_dim.png"
+
+#define VP_PLAY_NORMAL_RES_SOUND_ALIVE                         "function/T01_2_control_icon_soundalive.png"
+#define VP_PLAY_NORMAL_RES_SOUND_ALIVE_PRESS           "function/T01_2_control_icon_soundalive_press.png"
+#define VP_PLAY_NORMAL_RES_SOUND_ALIVE_DIM                     "function/T01_2_control_icon_soundalive_dim.png"
+
+#define VP_PLAY_NORMAL_RES_REPEAT_OFF                          "function/T01_2_control_icon_repeat_mode.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_OFF_PRESS                    "function/T01_2_control_icon_repeat_mode_press.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_OFF_DIM                      "function/T01_2_control_icon_repeat_mode_dim.png"
+
+#define VP_PLAY_NORMAL_RES_REPEAT_ONE                          "function/T01_2_control_icon_repeat_once.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_ONE_PRESS            "function/T01_2_control_icon_repeat_once_press.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_ONE_DIM                      "function/T01_2_control_icon_repeat_once_dim.png"
+
+#define VP_PLAY_NORMAL_RES_REPEAT_ALL                          "function/T01_2_control_icon_repeat_all.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_ALL_PRESS                    "function/T01_2_control_icon_repeat_all_press.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_ALL_DIM                      "function/T01_2_control_icon_repeat_all_dim.png"
+
+#define VP_PLAY_NORMAL_RES_TRIM                                                "function/T01_2_control_icon_trim.png"
+#define VP_PLAY_NORMAL_RES_TRIM_PRESS                          "function/T01_2_control_icon_trim_press.png"
+#define VP_PLAY_NORMAL_RES_TRIM_DIM                                    "function/T01_2_control_icon_trim_dim.png"
+
+#define VP_PLAY_NORMAL_RES_ROTATE                                      "button/T01_2_icon_rotate.png"
+#define VP_PLAY_NORMAL_RES_ROTATE_PRESS                        "button/T01_2_icon_rotate_press.png"
+#define VP_PLAY_NORMAL_RES_ROTATE_DIM                          "button/T01_2_icon_rotate_dim.png"
+
+#define VP_PLAY_NAVIFRAME_RES_ALLSHARE                         "button/T01_2_icon_Near_by_device.png"
+#define VP_PLAY_NAVIFRAME_RES_ALLSHARE_PRESS           "button/T01_2_icon_Near_by_device_press.png"
+#define VP_PLAY_NAVIFRAME_RES_ALLSHARE_DIM            "button/T01_2_icon_Near_by_device_dim.png"
+
+#define VP_PLAY_NAVIFRAME_RES_SAVE                                     "button/T01_2_icon_check.png"
+#define VP_PLAY_NAVIFRAME_RES_SAVE_PRESS                       "button/T01_2_icon_check_press.png"
+#define VP_PLAY_NAVIFRAME_RES_SAVE_DIM                         "button/T01_2_icon_check_dim.png"
+
+#define VP_PLAY_NAVIFRAME_RES_BACK                                     "button/T01_2_icon_close.png"
+#define VP_PLAY_NAVIFRAME_RES_BACK_PRESS                       "button/T01_2_icon_close_press.png"
+#define VP_PLAY_NAVIFRAME_RES_BACK_DIM                         "button/T01_2_icon_close_dim.png"
+
+
+#define VP_PLAY_BOOKMARK_RES_ADD                       "bookmark/T01_2_icon_bookmark_add.png"
+#define VP_PLAY_BOOKMARK_RES_ADD_PRESS "bookmark/T01_2_icon_bookmark_add_press.png"
+#define VP_PLAY_BOOKMARK_RES_DEL                       "bookmark/T01_2_button_remove.png"
+#define VP_PLAY_BOOKMARK_RES_DEL_PRESS         "bookmark/T01_2_button_remove_press.png"
+
+#define VP_PLAY_TRIM_RES_REW                           "control/T01_2_control_circle_icon_reverse.png"
+#define VP_PLAY_TRIM_RES_FF                                    "control/T01_2_control_circle_icon_forward.png"
+
+#define VP_PLAY_SENSOR_RES_TRUN_OVER_01        "sensor/B15_turn_over_01.png"
+#define VP_PLAY_SENSOR_RES_TRUN_OVER_02        "sensor/B15_turn_over_02.png"
+#define VP_PLAY_SENSOR_RES_TRUN_OVER_03        "sensor/B15_turn_over_03.png"
+
+#define VP_PLAY_ALLSHARE_MY_DEVICE                     "nearby_device/T02_Player_Nearby_device_01.png"
+#define VP_PLAY_ALLSHARE_TV_DEVICE                     "nearby_device/T02_Player_Nearby_device_02.png"
+
+#define VP_PLAY_ALLSHARE_DEVICE_TV_POPUP                               "allshare/device/120x120/U04_device_TV.png"
+#define VP_PLAY_ALLSHARE_DEVICE_BD_POPUP                               "allshare/device/120x120/U04_device_BD.png"
+#define VP_PLAY_ALLSHARE_DEVICE_LFD_POPUP                              "allshare/device/120x120/U04_device_LFD.png"
+#define VP_PLAY_ALLSHARE_DEVICE_STB_POPUP                              "allshare/device/120x120/U04_device_STB.png"
+#define VP_PLAY_ALLSHARE_DEVICE_MOBILE_POPUP                   "allshare/device/120x120/U04_device_Mobile.png"
+#define VP_PLAY_ALLSHARE_DEVICE_TABLET_POPUP                   "allshare/device/120x120/U04_device_Tablet.png"
+#define VP_PLAY_ALLSHARE_DEVICE_DONGLE_POPUP                   "allshare/device/120x120/U04_device_Dongle.png"
+#define VP_PLAY_ALLSHARE_DEVICE_CAMERA_POPUP                   "allshare/device/120x120/U04_device_Camera.png"
+#define VP_PLAY_ALLSHARE_DEVICE_CAMCORDER_POPUP                "allshare/device/120x120/U04_device_Camcorder.png"
+#define VP_PLAY_ALLSHARE_DEVICE_REF_POPUP                              "allshare/device/120x120/U04_device_REF.png"
+#define VP_PLAY_ALLSHARE_DEVICE_AC_WALL_POPUP                  "allshare/device/120x120/U04_device_AC_Wall.png"
+#define VP_PLAY_ALLSHARE_DEVICE_WM_POPUP                               "allshare/device/120x120/U04_device_WM.png"
+#define VP_PLAY_ALLSHARE_DEVICE_ROBOT_TV_POPUP                 "allshare/device/120x120/U04_device_ROBOT_VC.png"
+#define VP_PLAY_ALLSHARE_DEVICE_PC_POPUP                               "allshare/device/120x120/U04_device_PC.png"
+#define VP_PLAY_ALLSHARE_DEVICE_UNKNOWN_POPUP                  "allshare/device/120x120/U04_device_None_DNS.png"
+
+#define VP_PLAY_ALLSHARE_DEVICE_TV_ITEM                                        "allshare/device/81x81/U04_device_TV.png"
+#define VP_PLAY_ALLSHARE_DEVICE_BD_ITEM                                        "allshare/device/81x81/U04_device_BD.png"
+#define VP_PLAY_ALLSHARE_DEVICE_LFD_ITEM                                       "allshare/device/81x81/U04_device_LFD.png"
+#define VP_PLAY_ALLSHARE_DEVICE_STB_ITEM                               "allshare/device/81x81/U04_device_STB.png"
+#define VP_PLAY_ALLSHARE_DEVICE_MOBILE_ITEM                            "allshare/device/81x81/U04_device_Mobile.png"
+#define VP_PLAY_ALLSHARE_DEVICE_TABLET_ITEM                            "allshare/device/81x81/U04_device_Tablet.png"
+#define VP_PLAY_ALLSHARE_DEVICE_DONGLE_ITEM                            "allshare/device/81x81/U04_device_Dongle.png"
+#define VP_PLAY_ALLSHARE_DEVICE_CAMERA_ITEM                            "allshare/device/81x81/U04_device_Camera.png"
+#define VP_PLAY_ALLSHARE_DEVICE_CAMCORDER_ITEM                 "allshare/device/81x81/U04_device_Camcorder.png"
+#define VP_PLAY_ALLSHARE_DEVICE_REF_ITEM                                       "allshare/device/81x81/U04_device_REF.png"
+#define VP_PLAY_ALLSHARE_DEVICE_AC_WALL_ITEM                   "allshare/device/81x81/U04_device_AC_Wall.png"
+#define VP_PLAY_ALLSHARE_DEVICE_WM_ITEM                                        "allshare/device/81x81/U04_device_WM.png"
+#define VP_PLAY_ALLSHARE_DEVICE_ROBOT_TV_ITEM                  "allshare/device/81x81/U04_device_ROBOT_VC.png"
+#define VP_PLAY_ALLSHARE_DEVICE_PC_ITEM                                        "allshare/device/81x81/U04_device_PC.png"
+#define VP_PLAY_ALLSHARE_DEVICE_UNKNOWN_ITEM                   "allshare/device/81x81/U04_device_None_DNS.png"
+
+#define VP_PLAY_CTX_ADD_TO_HOME                                                "more/icon_add_to_home.png"
+#define VP_PLAY_CTX_CHAPTER_PREVIEW                                            "more/icon_chapter_preview.png"
+#define VP_PLAY_CTX_DETAIL                                                             "more/icon_detail.png"
+#define VP_PLAY_CTX_DOWNLOAD                                                   "more/icon_download.png"
+#define VP_PLAY_CTX_SETTING                                                            "more/icon_setting.png"
+#define VP_PLAY_CTX_SHARE_VIA                                                  "more/icon_share_via.png"
+#define VP_PLAY_CTX_TRIM                                                                       "more/icon_trim.png"
+#define VP_PLAY_CTX_CONNECTION_INFO                                            "more/icon_nearbydevices.png"
+
+#define VP_PLAY_NORMAL_RES_CAPTURE                                             "capture/T01_2_icon_capture.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_PRESS                               "capture/T01_2_icon_capture_press.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_DIM                                 "capture/T01_2_icon_capture_dim.png"
+
+#define VP_PLAY_NORMAL_RES_CAPTURE_REW                                 "capture/T01-2_icon_left.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_REW_PRESS                   "capture/T01-2_icon_left_press.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_REW_DIM                             "capture/T01-2_icon_left_dim.png"
+
+#define VP_PLAY_NORMAL_RES_CAPTURE_FF                                  "capture/T01-2_icon_right.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_FF_PRESS                    "capture/T01-2_icon_right_press.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_FF_DIM                              "capture/T01-2_icon_right_dim.png"
+
+#define VP_PLAY_RES_BUTTON_ADD                                                 "button/T01-2_play_popup_icon_plus.png"
+#define VP_PLAY_RES_BUTTON_ADD_PRESS                                   "button/T01-2_play_popup_icon_plus_press.png"
+
+#define VP_PLAY_RES_BUTTON_DEL                                                 "button/T01-2_play_popup_icon_minus.png"
+#define VP_PLAY_RES_BUTTON_DEL_PRESS                                   "button/T01-2_play_popup_icon_minus_press.png"
+
+#define VP_PLAY_TAG_BUDDY_DEAFULT                                              "tag/T01-1_Tag_buddy_settings_bg.png"
+#define VP_PLAY_TAG_BUDDY_LOGO                                                 "tag/T01_2_icon_tag_buddy_cplogo.PNG"
+#define VP_PLAY_TAG_BUDDY_LOGO_JP                                              "tag/U07_weather_logo.png"
+
+
+#define VP_PLAY_NORMAL_RES_LOCK                                                        "button/T01_2_icon_lock.png"
+#define VP_PLAY_NORMAL_RES_LOCK_PRESS                                  "button/T01_2_icon_lock_press.png"
+
+#define VP_PLAY_NORMAL_RES_BLUETOOTH_HEADSET                   "button/T01_2_icon_bluetooth_headset.png"
+#define VP_PLAY_NORMAL_RES_EARPHONE                                            "button/T02_icon_soundPath.png"
+#define VP_PLAY_NORMAL_RES_SPEAKER                                             "button/T02_icon_speaker.png"
+#define VP_PLAY_NORMAL_RES_DMC_ICON                                            "mini_controller/A01_15_popup_No_device.png"
+#define VP_PLAY_NORMAL_RES_AUDIO_ONLY                                  "sound_only.png"
+#define VP_PLAY_NORMAL_RES_ERROR_IMAGE                                 "player_error_screen.png"
+
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_00               "brightness/quick_icon_brightness_00.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_01               "brightness/quick_icon_brightness_01.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_02               "brightness/quick_icon_brightness_02.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_03               "brightness/quick_icon_brightness_03.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_04               "brightness/quick_icon_brightness_04.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_05               "brightness/quick_icon_brightness_05.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_06               "brightness/quick_icon_brightness_06.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_07               "brightness/quick_icon_brightness_07.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_08               "brightness/quick_icon_brightness_08.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_09               "brightness/quick_icon_brightness_09.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_10               "brightness/quick_icon_brightness_10.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_11               "brightness/quick_icon_brightness_11.png"
+
+#define RESOURCE_IMAGE_LOSSY( FILE_NAME ) \
+group { \
+       name: FILE_NAME; \
+       images.image: FILE_NAME LOSSY 85; \
+       parts { \
+               part { \
+                       name: "image"; \
+                       description { \
+                       state: "default" 0.0; \
+                       image.normal: FILE_NAME; \
+                       aspect: 1 1; \
+                       aspect_preference: BOTH; \
+                       } \
+               } \
+       } \
+}
+
+#define RESOURCE_IMAGE_COMP( FILE_NAME ) \
+       group { \
+               name: FILE_NAME; \
+               images.image: FILE_NAME COMP; \
+               parts { \
+                       part { name: "image"; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       image.normal: FILE_NAME; \
+                                       aspect_preference: VERTICAL; \
+                               } \
+                       } \
+               } \
+       }
+
+
+collections {
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_CLOSE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_FULLSIZE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_RESIZE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_RESIZE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_MINSIZE);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_FF);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_FF_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_REW);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_REW_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_PLAY);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_PLAY_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_PAUSE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_PAUSE_PRESS);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NAVIFRAME_RES_ALLSHARE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NAVIFRAME_RES_ALLSHARE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NAVIFRAME_RES_ALLSHARE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NAVIFRAME_RES_SAVE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NAVIFRAME_RES_SAVE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NAVIFRAME_RES_SAVE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NAVIFRAME_RES_BACK);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NAVIFRAME_RES_BACK_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NAVIFRAME_RES_BACK_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_RESUME);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_PAUSE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_PREV);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_NEXT);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_VOLUME);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_VOLUME_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_VOLUME_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_MUTE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_MUTE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_MUTE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_BOOKMARK);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_BOOKMARK_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_BOOKMARK_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_POPUP_PLAYER);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_1_MODE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_1_MODE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_1_MODE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_2_MODE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_2_MODE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_2_MODE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_3_MODE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_3_MODE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_3_MODE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_4_MODE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_4_MODE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_4_MODE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_MULTI_MODE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_MULTI_MODE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_MULTI_MODE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SHARE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SHARE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SHARE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SOUND_ALIVE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SOUND_ALIVE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SOUND_ALIVE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_REPEAT_OFF);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_REPEAT_OFF_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_REPEAT_OFF_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_REPEAT_ONE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_REPEAT_ONE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_REPEAT_ONE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_REPEAT_ALL);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_REPEAT_ALL_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_REPEAT_ALL_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_TRIM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_TRIM_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_TRIM_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_ROTATE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_ROTATE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_ROTATE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BOOKMARK_RES_ADD);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BOOKMARK_RES_ADD_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BOOKMARK_RES_DEL);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BOOKMARK_RES_DEL_PRESS);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_TRIM_RES_REW);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_TRIM_RES_FF);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_SENSOR_RES_TRUN_OVER_01);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_SENSOR_RES_TRUN_OVER_02);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_SENSOR_RES_TRUN_OVER_03);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_MY_DEVICE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_TV_DEVICE);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_CTX_ADD_TO_HOME);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_CTX_CHAPTER_PREVIEW);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_CTX_DETAIL);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_CTX_DOWNLOAD);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_CTX_SETTING);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_CTX_SHARE_VIA);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_CTX_TRIM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_CTX_CONNECTION_INFO);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_TV_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_BD_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_LFD_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_STB_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_MOBILE_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_TABLET_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_DONGLE_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_CAMERA_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_CAMCORDER_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_REF_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_AC_WALL_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_WM_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_ROBOT_TV_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_PC_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_UNKNOWN_POPUP);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_TV_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_BD_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_LFD_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_STB_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_MOBILE_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_TABLET_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_DONGLE_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_CAMERA_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_CAMCORDER_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_REF_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_AC_WALL_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_WM_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_ROBOT_TV_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_PC_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_UNKNOWN_ITEM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_CAPTURE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_CAPTURE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_CAPTURE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_CAPTURE_REW);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_CAPTURE_REW_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_CAPTURE_REW_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_CAPTURE_FF);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_CAPTURE_FF_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_CAPTURE_FF_DIM);
+
+       RESOURCE_IMAGE_COMP(VP_PLAY_NORMAL_RES_AUDIO_ONLY);
+       RESOURCE_IMAGE_COMP(VP_PLAY_NORMAL_RES_ERROR_IMAGE);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_RES_BUTTON_ADD);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_RES_BUTTON_ADD_PRESS);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_RES_BUTTON_DEL);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_RES_BUTTON_DEL_PRESS);
+
+       RESOURCE_IMAGE_COMP(VP_PLAY_TAG_BUDDY_DEAFULT);
+
+       RESOURCE_IMAGE_COMP(VP_PLAY_NORMAL_RES_LOCK);
+       RESOURCE_IMAGE_COMP(VP_PLAY_NORMAL_RES_LOCK_PRESS);
+       RESOURCE_IMAGE_COMP(VP_PLAY_NORMAL_RES_BLUETOOTH_HEADSET);
+       RESOURCE_IMAGE_COMP(VP_PLAY_NORMAL_RES_EARPHONE);
+       RESOURCE_IMAGE_COMP(VP_PLAY_NORMAL_RES_SPEAKER);
+       RESOURCE_IMAGE_COMP(VP_PLAY_TAG_BUDDY_LOGO);
+       RESOURCE_IMAGE_COMP(VP_PLAY_TAG_BUDDY_LOGO_JP);
+       RESOURCE_IMAGE_COMP(VP_PLAY_NORMAL_RES_DMC_ICON);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_00);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_01);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_02);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_03);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_04);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_05);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_06);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_07);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_08);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_09);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_10);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_11);
+}
+
diff --git a/playview/res/edje/pv-sensor-popup.edc b/playview/res/edje/pv-sensor-popup.edc
new file mode 100755 (executable)
index 0000000..eb6d258
--- /dev/null
@@ -0,0 +1,190 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+collections {
+       group {
+               name: "pv.sensor.popup";
+
+               parts {
+                       part {
+                               name: "pad_t";
+                               type: SPACER;
+                               scale : 1;
+                               mouse_events: 0;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.0;
+                                       min: 0 0;
+                                       fixed: 0 1;
+                                       rel1 { relative: 1.0 0.0;to_x: "pad_l"; }
+                                       rel2 { relative: 0.0 0.0;to_x: "pad_r"; }
+                               }
+                       }
+                       part {
+                               name: "pad_l";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min : 0 0;
+                                       fixed: 1 0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 0.0 1.0; }
+                                       align: 0.0 0.0;
+                               }
+                       }
+                       part {
+                               name: "pad_r";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min : 0 0;
+                                       fixed: 1 0;
+                                       rel1 { relative: 1.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       align: 1.0 0.0;
+                               }
+                       }
+                       part {
+                               name:"elm.swallow.content";
+                               type: SWALLOW;
+                               scale : 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 648 0;
+                                       align: 0.5 0.5;
+                                       fixed: 1 0;
+                                       rel1 { relative: 0.5 1.0; to: "pad_t"; }
+                                       rel2 { relative: 0.5 0.0; to: "pad_b"; }
+                               }
+                       }
+                       part {
+                               name: "pad_b";
+                               type: SPACER;
+                               scale : 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.5;
+                                       min: 0 48;
+                                       fixed: 0 1;
+                                       rel1 { relative: 1.0 1.0; to_x: "pad_l"; }
+                                       rel2 { relative: 0.0 1.0; to_x: "pad_r"; }
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.end";
+                               type: SWALLOW;
+                               scale : 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.5;
+                                       min: 48 48;
+                                       max: 48 48;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.18 0.0; to: "pad_b"; }
+                                       rel2 { relative: 1.0 1.0; to: "pad_b"; }
+                               }
+                       }
+                       part {
+                               name: "pad_after_check";
+                               type : RECT;
+                               scale : 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       min: 16 48;
+                                       fixed: 1 1;
+                                       visible: 0;
+                                       rel1 { relative: 1.0 0.0;to: "elm.swallow.end"; }
+                                       rel2 { relative: 1.0 1.0;to: "elm.swallow.end"; }
+                               }
+                       }
+                       part {
+                               name: "elm.text";
+                               type: TEXT;
+                               scale : 1;
+                               description {
+                                       state: "default" 0.0;
+                                       text {
+                                               font: "Tizen:style=Medium";
+                                               size: 42;
+                                               min: 0 0;
+                                               align: 0.0 0.5;
+                                       }
+                                       color: 0 0 0 255;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.0; to_x: "pad_after_check"; to_y: "elm.swallow.end"; }
+                                       rel2 { relative: 1.0 1.0; to_y: "elm.swallow.end"; }
+                               }
+                        }
+               } /* parts */
+       } /* group */
+       group {
+               name: "pv.sensor.popup.image";
+               inherit: "pv.sensor.popup";
+
+               parts {
+                       part{
+                               name:"elm.swallow.content";
+                               type: SWALLOW;
+                               scale : 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 648 0;
+                                       align: 0.5 0.5;
+                                       fixed: 1 0;
+                                       rel1 { relative: 0.5 1.0; to: "pad_t"; }
+                                       rel2 { relative: 0.5 0.0; to: "elm.swallow.icon.bg"; }
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.icon.bg";
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 1.0;
+                                       fixed: 1 1;
+                                       visible: 0;
+                                       min: 580 390;
+                                       rel1 { relative: 0.5 0.0; to: "pad_b"; }
+                                       rel2 { relative: 0.5 0.0; to: "pad_b"; }
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.icon";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.5;
+                                       fixed: 0 1;
+                                       min: 580 390;
+                                       rel1 { relative: 0.0 0.5; to: "elm.swallow.icon.bg"; }
+                                       rel2 { relative: 1.0 0.5; to: "elm.swallow.icon.bg"; }
+                               }
+                       }
+               } /* parts */
+       } /* group */
+} /* collections */
+
diff --git a/playview/res/edje/pv-speed-popup.edc b/playview/res/edje/pv-speed-popup.edc
new file mode 100755 (executable)
index 0000000..ebce651
--- /dev/null
@@ -0,0 +1,204 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+
+
+#define SPEED_POPUP_WIDTH_HEIGHT_MIN           0 100
+#define SPEED_POPUP_CONTENT_MIN                                0 50
+#define SPEED_POPUP_BUTTON_MIN                         40 40
+externals {
+          external: "elm";
+          external: "feedback";
+       }
+collections {
+       plugins {
+       plugin {
+               name: "touch_sound_plugin";
+               source: "feedback";
+               param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+               }
+       }
+       group {
+               name: "pv.play.speed.popup";
+               parts {
+                       part {
+                               name:"bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: SPEED_POPUP_WIDTH_HEIGHT_MIN;
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pad_l";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 10 0;
+                                       max: 10 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "bg";}
+                                       rel2 { relative: 0.0 1.0; to: "bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pad_r";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 10 0;
+                                       max: 10 0;
+                                       fixed: 1 0;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 0.0; to: "bg";}
+                                       rel2 { relative: 1.0 1.0; to: "bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pad_t";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 10;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "bg";}
+                                       rel2 { relative: 0.0 0.0; to: "bg";}
+                               }
+                       }
+
+                       part {
+                               name: "elm.text.title";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 54;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 1.0; to_y: "pad_t";}
+                                       rel2 { relative: 1.0 1.0; to_y: "pad_t";}
+                                       color: 0 0 0 255;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 25;
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "elm.swallow.icon.1";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: SPEED_POPUP_BUTTON_MIN;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 0.2; to_x: "pad_l"; to_y: "elm.text.title"; }
+                                       rel2 { relative: 1.0 0.2; to_x: "pad_l"; to_y: "elm.text.title"; }
+                               }
+                       }
+
+                       part {
+                               name: "elm.swallow.icon.left";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 6 0;
+                                       max: 6 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 1.0; to_x: "elm.swallow.icon.1"; to_y: "elm.text.title"; }
+                                       rel2 { relative: 1.0 1.0; to_x: "elm.swallow.icon.1"; to_y: "elm.text.title"; }
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.icon.right";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 6 0;
+                                       max: 6 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 1.0; to_x: "elm.swallow.icon.2"; to_y: "elm.text.title"; }
+                                       rel2 { relative: 0.0 1.0; to_x: "elm.swallow.icon.2"; to_y: "elm.text.title"; }
+                               }
+                       }
+
+                       part {
+                               name: "elm.swallow.icon.2";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: SPEED_POPUP_BUTTON_MIN;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 0.2; to_x: "pad_r"; to_y: "elm.text.title"; }
+                                       rel2 { relative: 0.0 0.2; to_x: "pad_r"; to_y: "elm.text.title"; }
+                               }
+                       }
+
+                       part {
+                               name: "elm.swallow.content";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: SPEED_POPUP_CONTENT_MIN;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 1.0 1.0; to_x: "pad_l"; to_y: "elm.swallow.icon.1"; }
+                                       rel2 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "elm.swallow.icon.1"; }
+                               }
+                       }
+               } /* parts */
+               programs {
+                       program{
+                       name: "touch_snd";
+                       source: "elm.swallow.icon.1";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+                       program{
+                       name: "touch_snd2";
+                       source: "elm.swallow.icon.2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+               } /* programs*/
+       } /* group */
+} /* collections */
diff --git a/playview/res/edje/pv-subtitle-color-popup.edc b/playview/res/edje/pv-subtitle-color-popup.edc
new file mode 100755 (executable)
index 0000000..ae177c3
--- /dev/null
@@ -0,0 +1,326 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+#define SUBTITLE_TEXT_OFFSET   20
+collections {
+       group {
+           name: "pv.subtitle-color-popup";
+           styles {
+                       style { name: "caption_style";
+                               base: "font=Tizen:style=Regular align=center font_size=16 color=#FFFFFF";
+                               tag:  "br" "\n";
+                               tag:  "tab" "\t";
+                       }
+               }
+           parts{
+                   part {
+                           name: "pv.subtitle-color-popup.main.bg";
+                           type: SPACER;
+                           scale: 1;
+                           description {
+                                   state: "default" 0.0;
+                                                               min: 0 160;
+                                                               rel1 { relative: 0.0 0.0; }
+                                                               rel2 { relative: 1.0 1.0; }
+                           }
+                   }
+                   part {
+                           name: "pv.subtitle-color-popup.title";
+                           type: SPACER;
+                           scale: 1;
+                           description {
+                                   state: "default" 0.0;
+                                   min: 0 10;
+                                   fixed: 0 1;
+                                   rel1 { relative: 0.0 0.0; to: "pv.subtitle-color-popup.main.bg"; }
+                                   rel2 { relative: 1.0 0.0; to: "pv.subtitle-color-popup.main.bg"; }
+                                   align: 0.0 0.0;
+                           }
+                   }
+                               part { name: "pv.subtitle-color-group.text.bg";
+                                               type: RECT;
+                                               scale: 1;
+                                               description {
+                                                               state: "default" 0.0;
+                                                               min: 0 60;
+                                                               fixed: 0 1;
+                                                               rel1 { relative: 0.0 1.0; offset: 0 0; to: "pv.subtitle-color-popup.title"; }
+                                                               rel2 { relative: 1.0 1.0; offset: 0 0; to: "pv.subtitle-color-popup.title"; }
+                                                               align: 0.0 0.0;
+                                                               color: 243 243 243 255;
+                                               }
+                               }
+                               part {
+                                               name: "pv.subtitle-color-popup.subject";
+                                               type: TEXTBLOCK;
+                                               scale: 1;
+                                               description {
+                                                               state: "default" 0.0;
+                                                               min: 0 60;
+                                                               fixed: 0 1;
+                                                               rel1 { relative: 0.0 0.0; offset: SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-group.text.bg";}
+                                                               rel2 { relative: 1.0 1.0; offset: SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-group.text.bg";}
+                                                               align: 0.0 0.0;
+                                                               text {
+                                                                       style: "caption_style";
+                                                                       align: 0.5 0.5;
+                                                                       min: 0 1;
+                                                                       size: 16;
+                                                               }
+                                                               color: 255 255 255 255;
+                                               }
+                               }
+                               /*part {
+                                               name: "pv.subtitle-color-popup.divideline";
+                                               type: RECT;
+                                               scale: 1;
+                                               description {
+                                                               state: "default" 0.0;
+                                                               min: 0 3;
+                                                               fixed: 0 1;
+                                                               rel1 { relative: 0.0 1.0; offset: -SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.subject";}
+                                                               rel2 { relative: 1.0 1.0; offset: -SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.subject";}
+                                                               align: 0.0 0.0;
+                                                               color: 217 217 217 255;
+                                               }
+                               }*/
+                               part {
+                                               name: "pv.subtitle-color-popup.colorpalette.top";
+                                               type: SPACER;
+                                               scale: 1;
+                                               description {
+                                                               state: "default" 0.0;
+                                                               min: 0 10;
+                                                               fixed: 0 1;
+                                                               rel1 { relative: 0.0 1.0; to: "pv.subtitle-color-popup.subject";}
+                                                               rel2 { relative: 1.0 1.0; to: "pv.subtitle-color-popup.subject";}
+                                                               align: 0.0 0.0;
+                                               }
+                               }
+
+                   part {
+                           name: "pv.subtitle-color-popup.colorpalette.swallow";
+                           type: SWALLOW;
+                           scale: 1;
+                           description {
+                                   state: "default" 0.0;
+                                   rel1 { relative: 0.0 1.0; to: "pv.subtitle-color-popup.colorpalette.top"; }
+                                   rel2 { relative: 1.0 1.0; to: "pv.subtitle-color-popup.colorpalette.top"; }
+                                   align: 0.0 0.0;
+                           }
+                   }
+                               /*part {
+                                               name: "pv.subtitle-color-popup.opacity.text";
+                                               type: TEXT;
+                                               scale: 1;
+                                               description {
+                                                               state: "default" 0.0;
+                                                               min: 0 50;
+                                                               fixed: 0 1;
+                                                               rel1 { relative: 0.0 1.0; offset: SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.colorpalette.swallow";}
+                                                               rel2 { relative: 1.0 1.0; offset: SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.colorpalette.swallow";}
+                                                               align: 0.0 0.0;
+                                                               text {
+                                                                       align: 0.0 1.0;
+                                                                       min: 0 1;
+                                                                       size: 27;
+                                                               }
+                                                               color: 21 108 148 255;
+                                               }
+                               }
+                               part {
+                                               name: "pv.subtitle-color-popup.opacity.divideline";
+                                               type: RECT;
+                                               scale: 1;
+                                               description {
+                                                               state: "default" 0.0;
+                                                               min: 0 3;
+                                                               fixed: 0 1;
+                                                               rel1 { relative: 0.0 1.0; offset: -SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.opacity.text";}
+                                                               rel2 { relative: 1.0 1.0; offset: -SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.opacity.text";}
+                                                               align: 0.0 0.0;
+                                                               color: 217 217 217 255;
+                                               }
+                               }
+                               part {
+                                               name: "pv.subtitle-color-popup.opacity.percent";
+                                               type: TEXT;
+                                               scale: 1;
+                                               description {
+                                                               state: "default" 0.0;
+                                                               min: 0 100;
+                                                               fixed: 0 1;
+                                                               rel1 { relative: 0.0 1.0; to: "pv.subtitle-color-popup.opacity.divideline";}
+                                                               rel2 { relative: 1.0 1.0; to: "pv.subtitle-color-popup.opacity.divideline";}
+                                                               align: 0.0 0.0;
+                                                               text {
+                                                                       align: 0.5 1.0;
+                                                                       min: 0 1;
+                                                                       size: 27;
+                                                               }
+                                                               color: 21 108 148 255;
+                                               }
+                               }
+
+                               part {
+                                       name: "pad_l";
+                                       type: SPACER;
+                                       scale: 1;
+                                       description {
+                                               state: "default" 0.0;
+                                               min: 24 0;
+                                               max: 24 0;
+                                               fixed: 1 0;
+                                               align: 0.0 0.0;
+                                               rel1 { relative: 0.0 0.0; to: "pv.subtitle-color-popup.main.bg";}
+                                               rel2 { relative: 0.0 1.0; to: "pv.subtitle-color-popup.main.bg";}
+                                       }
+                               }
+                               part {
+                                       name: "pad_r";
+                                       type: SPACER;
+                                       scale: 1;
+                                       description {
+                                               state: "default" 0.0;
+                                               min: 24 0;
+                                               max: 24 0;
+                                               fixed: 1 0;
+                                               align: 1.0 1.0;
+                                               rel1 { relative: 1.0 0.0; to: "pv.subtitle-color-popup.main.bg";}
+                                               rel2 { relative: 1.0 1.0; to: "pv.subtitle-color-popup.main.bg";}
+                                       }
+                               }
+
+                               part {
+                                       name: "elm.swallow.icon.1";
+                                       type: SWALLOW;
+                                       scale: 1;
+                                       description {
+                                               state: "default" 0.0;
+                                               min: 63 78;
+                                               fixed: 1 1;
+                                               align: 0.0 0.0;
+                                               rel1 { relative: 1.0 1.0; to_x: "pad_l"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+                                               rel2 { relative: 1.0 1.0; to_x: "pad_l"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+                                       }
+                               }
+                               part {
+                                       name: "elm.swallow.icon.left";
+                                       type: RECT;
+                                       scale: 1;
+                                       description {
+                                               state: "default" 0.0;
+                                               visible: 0;
+                                               min: 6 0;
+                                               max: 6 0;
+                                               fixed: 1 0;
+                                               align: 0.0 0.5;
+                                               rel1 { relative: 1.0 1.0; to_x: "elm.swallow.icon.1"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+                                               rel2 { relative: 1.0 1.0; to_x: "elm.swallow.icon.1"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+                                       }
+                               }
+                               part {
+                                       name: "elm.swallow.icon.right";
+                                       type: RECT;
+                                       scale: 1;
+                                       description {
+                                               state: "default" 0.0;
+                                               visible: 0;
+                                               min: 6 0;
+                                               max: 6 0;
+                                               fixed: 1 0;
+                                               align: 1.0 0.5;
+                                               rel1 { relative: 0.0 1.0; to_x: "elm.swallow.icon.2"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+                                               rel2 { relative: 0.0 1.0; to_x: "elm.swallow.icon.2"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+                                       }
+                               }
+                               part {
+                                       name: "elm.swallow.icon.2";
+                                       type: SWALLOW;
+                                       scale: 1;
+                                       description {
+                                               state: "default" 0.0;
+                                               min: 63 78;
+                                               fixed: 1 1;
+                                               align: 1.0 0.0;
+                                               rel1 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+                                               rel2 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+                                       }
+                               }
+                               part {
+                                       name: "elm.swallow.content";
+                                       type: SWALLOW;
+                                       scale: 1;
+                                       description {
+                                               state: "default" 0.0;
+                                               min: 0 78;
+                                               fixed: 0 1;
+                                               align: 0.5 0.0;
+                                               rel1 { relative: 1.0 1.0; to_x: "elm.swallow.icon.left"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+                                               rel2 { relative: 0.0 1.0; to_x: "elm.swallow.icon.right"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+                                       }
+                               }*/
+
+                   /*part {
+                           name: "colorpalette_bottom_padding";
+                           type: SPACER;
+                           scale: 1;
+                           description {
+                                   state: "default" 0.0;
+                                   min: 0 12;
+                                   fixed: 0 1;
+                                   rel1 {
+                                           relative: 0.0 1.0;
+                                           to_y: "colorpalette";
+                                           to_x: "bg";
+                                   }
+                                   rel2 {
+                                           to_x: "bg";
+                                           to_y: "colorpalette";
+                                   }
+                                   align: 0.0 0.0;
+                           }
+                   }*/
+
+           }//end parts
+       } //end group
+       group { name: "pv.subtitle.scroller.layout";
+          parts {
+             part { name: "elm.swallow.content";
+                type: SWALLOW;
+                scale: 1;
+                description { state: "default" 0.0;
+                   fixed: 1 0;
+                   min: 0 160;
+                }
+             }
+          }
+       }
+       group { name: "pv.subtitle.scroller.layout.landscape";
+          parts {
+             part { name: "elm.swallow.content";
+                type: SWALLOW;
+                scale: 1;
+                description { state: "default" 0.0;
+                   fixed: 1 0;
+                   min: 0 160;
+                }
+             }
+          }
+       }
+}
+
diff --git a/playview/res/edje/pv-subtitle.edc b/playview/res/edje/pv-subtitle.edc
new file mode 100755 (executable)
index 0000000..4b31adc
--- /dev/null
@@ -0,0 +1,296 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define FONT_COLOR                             255 255 255 255
+#define _SCREEN_SIZE_PROTRAIT_                 480 750
+#define _SCREEN_SIZE_LANDSCAPE_                        800 430
+#define SUBTITLE_K_FEATURE
+
+collections {
+       base_scale: 1.8;
+       styles {
+               style {
+                       name: "textblock_style_small";
+                       base: "font=Tizen:style=Roman font_size=28 color=#fff align=center wrap=word";
+                       tag:  "br" "\n";
+                       tag:  "ps" "ps";
+                       tag:  "hilight" "+ font=Tizen:style=Roman";
+                       tag:  "b" "+ font=Tizen:style=Roman";
+                       tag:  "tab" "\t";
+               }
+               style {
+                       name: "textblock_style_medium";
+                       base: "font=Tizen:style=Roman font_size=42 color=#fff align=center wrap=word";
+                       tag:  "br" "\n";
+                       tag:  "ps" "ps";
+                       tag:  "hilight" "+ font=Tizen:style=Roman";
+                       tag:  "b" "+ font=Tizen:style=Roman";
+                       tag:  "tab" "\t";
+               }
+
+               style {
+                       name: "textblock_style_large";
+                       base: "font=Tizen:style=Roman font_size=54 color=#fff align=center wrap=word";
+                       tag:  "br" "\n";
+                       tag:  "ps" "ps";
+                       tag:  "hilight" "+ font=Tizen:style=Roman";
+                       tag:  "b" "+ font=Tizen:style=Roman";
+                       tag:  "tab" "\t";
+               }
+               style {
+                       name: "textblock_style_default";
+                       base: "font=Tizen:style=Roman align=center wrap=word";
+                       tag:  "br" "\n";
+                       tag:  "ps" "ps";
+                       tag:  "hilight" "+ font=Tizen:style=Roman";
+                       tag:  "b" "+ font=Tizen:style=Roman";
+                       tag:  "tab" "\t";
+               }
+       }
+       group {
+               name: "pv.subtitle";
+
+               parts {
+                       part {
+                               name: "pv.subtitle.main.bg";
+                               type: SPACER;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+#ifdef SUBTITLE_K_FEATURE
+                                       min: _SCREEN_SIZE_PROTRAIT_;
+                                       max: _SCREEN_SIZE_PROTRAIT_;
+                               }
+                               description {
+                                       state: "landscape.show" 0.0;
+                                       min: _SCREEN_SIZE_LANDSCAPE_;
+                                       max: _SCREEN_SIZE_LANDSCAPE_;
+#endif
+                               }
+                       }
+
+                       part {
+                               name: "pv.subtitle.main.bottom.padding";
+                               type: SPACER;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 25;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.subtitle.main.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.subtitle.main.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.subtitle.grep.box";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 0.0; offset:0 5; to: "pv.subtitle.main.bg";}
+                                       rel2 { relative: 1.0 0.0; offset:0 5; to: "pv.subtitle.main.bg";}
+                                       min: 720 50;
+                                       max: 720 50;
+                                       color: 0 0 0 0;
+                               }
+                               description {
+                                       state: "grep.box.show" 0.0;
+                                       inherit: "default";
+                                       color: 80 80 150 150;
+                               }
+                       }
+
+                       part {
+                               name: "pv.subtitle.caption.window";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 0.0; offset:0 5 ;to: "pv.subtitle.main.bg";}
+                                       rel2 { relative: 1.0 0.0; offset:0 5 ;to: "pv.subtitle.main.bg";}
+                                       min: 720 50;
+                                       max: 720 50;
+                                       color: 0 0 0 0;
+                               }
+                               description {
+                                       state: "caption.window.show" 0.0;
+                                       inherit: "default";
+                                       align: 0.0 0.0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.subtitle.swallow.txt";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       visible: 1;
+                                       state: "default" 0.0;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 0.0; offset:0 20;to: "pv.subtitle.main.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.subtitle.main.bottom.padding";}
+                               }
+                       }
+
+#ifdef SUBTITLE_K_FEATURE
+                       programs {
+                               program {
+                                       name: "subtitle_landscape_show";
+                                       signal: "signal.pv.subtitle.main.landscape.show";
+                                       source: "*";
+                                       action: STATE_SET "landscape.show" 0.0;
+                                       target: "pv.subtitle.main.bg";
+                               }
+                               program {
+                                       name: "subtitle_portrait_show";
+                                       signal: "signal.pv.subtitle.main.portrait.show";
+                                       source: "*";
+                                       action: STATE_SET "default" 0.0;
+                                       target: "pv.subtitle.main.bg";
+                               }
+                               program {
+                                       name: "subtitle_grep_box_show";
+                                       signal: "signal.pv.subtitle.grep.box.show";
+                                       source: "*";
+                                       action: STATE_SET "grep.box.show" 0.0;
+                                       target: "pv.subtitle.grep.box";
+                               }
+                               program {
+                                       name: "subtitle_grep_box_hide";
+                                       signal: "signal.pv.subtitle.grep.box.hide";
+                                       source: "*";
+                                       action: STATE_SET "default" 0.0;
+                                       target: "pv.subtitle.grep.box";
+                               }
+                               program {
+                                       name: "subtitle_caption_window_hide";
+                                       signal: "signal.pv.subtitle.caption.window.hide";
+                                       source: "*";
+                                       action: STATE_SET "default" 0.0;
+                                       target: "pv.subtitle.caption.window";
+                               }
+                       }/* programs */
+                       script {
+                               public message(Msg_Type:type, id, ...) {
+                                       if ((type == MSG_INT_SET) && (id == 1)) {
+                                               new w = getarg(2);
+                                               new h = getarg(3);
+
+                                               custom_state(PART:"pv.subtitle.grep.box", "grep.box.show", 0.0);
+                                               set_state_val(PART:"pv.subtitle.grep.box", STATE_MIN, w, h);
+                                               set_state_val(PART:"pv.subtitle.grep.box", STATE_MAX, w, h);
+                                               set_state(PART:"pv.subtitle.grep.box", "custom", 0.0);
+                                       }
+                                       else if ((type == MSG_INT_SET) && (id == 2)) {
+                                               new w = getarg(2);
+                                               new h = getarg(3);
+
+                                               custom_state(PART:"pv.subtitle.caption.window", "caption.window.show", 0.0);
+                                               set_state_val(PART:"pv.subtitle.caption.window", STATE_MIN, w, h);
+                                               set_state_val(PART:"pv.subtitle.caption.window", STATE_MAX, w, h);
+                                               set_state(PART:"pv.subtitle.caption.window", "custom", 0.0);
+                                       }
+                                       else if ((type == MSG_INT_SET) && (id == 3)) {
+                                               new r = getarg(2);
+                                               new g = getarg(3);
+                                               new b = getarg(4);
+                                               new a = getarg(5);
+
+                                               custom_state(PART:"pv.subtitle.caption.window", "caption.window.show", 0.0);
+                                               set_state_val(PART:"pv.subtitle.caption.window", STATE_COLOR, r, g, b, a);
+                                               set_state(PART:"pv.subtitle.caption.window", "custom", 0.0);
+                                       }
+                                       else if ((type == MSG_INT_SET) && (id == 4)) {
+                                               new left = getarg(2);
+                                               new top = getarg(3);
+
+                                               custom_state(PART:"pv.subtitle.caption.window", "caption.window.show", 0.0);
+                                               set_state_val(PART:"pv.subtitle.caption.window",  STATE_REL1_OFFSET, left, top);
+                                               set_state(PART:"pv.subtitle.caption.window", "custom", 0.0);
+                                       }
+                               }
+                       }/* script */
+#endif
+               } /* parts */
+       }       /* group */
+
+       group {
+               name: "pv.multi-subtitle";
+
+               parts {
+                       part {
+                               name: "pv.multi.subtitle.main.bg";
+                               type: SPACER;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.subtitle.main.bottom.padding";
+                               type: SPACER;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 25;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 1.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+                       part {
+                               name: "pv.multi.subtitle.label.txt";
+                               type: TEXTBLOCK;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               multiline: 1;
+                               description {
+                                       visible: 1;
+                                       state: "default" 0.0;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 0.0; to_y: "pv.multi.subtitle.main.bottom.padding";}
+                                       text {
+                                               style: "textblock_style_default";
+                                               align: 0.5 1.0;
+                                       }
+                               }
+                       }
+               } /* parts */
+       }       /* group */
+} /* collections */
+
diff --git a/playview/res/edje/pv-tag-buddy.edc b/playview/res/edje/pv-tag-buddy.edc
new file mode 100755 (executable)
index 0000000..49a7a5d
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+collections {
+       group {
+               name: "pv.tag.buddy";
+               parts {
+                       part {
+                               name: "pv.tag.buddy.bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: 248 246 239 255;//8 8 8 255
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+                       part {
+                               name: "pv.tag.buddy.preview";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 328;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 {relative: 0.0 0.0;}
+                                       rel2 {relative: 1.0 0.0;}
+                               }
+                       }
+                       part {
+                               name: "pv.tag.buddy.list";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 {relative: 0.0 1.0; to : "pv.tag.buddy.preview";}
+                                       rel2 {relative: 1.0 1.0;}
+                               }
+                       }
+               }
+       }
+}
diff --git a/playview/res/edje/pv-tag-preview.edc b/playview/res/edje/pv-tag-preview.edc
new file mode 100755 (executable)
index 0000000..62b4e28
--- /dev/null
@@ -0,0 +1,217 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+collections {
+       group {
+               name: "pv.tag.preview";
+               parts {
+                       part {
+                               name: "pv.tag.preview.bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: 125 125 125 255;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.tag.preview.image";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.tag.preview.accuweather.rect";
+                               type: RECT;
+                               scale:1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 200 36;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 0.0 0.0;}
+                                       color: 0 255 0 255;
+                               }
+                               description {
+                                       state: "weather_jp" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 160 60;
+                               }
+                       }
+                       part {
+                               name: "pv.tag.preview.accuweather";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 200 36;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 0.0 0.0;}
+                                       image { normal: "tag/T01-1_logo_accuweather.png"; }
+                               }
+                               description {
+                                       state: "weather_jp" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 160 60;
+                                       image { normal: "tag/U07_weather_logo.png"; }
+                               }
+                       }
+                       part {
+                               name: "pv.tag.preview.table.top";
+                               type: RECT;
+                               scale:1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 20;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.tag.preview.accuweather";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.tag.preview.accuweather";}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "pv.tag.preview.table.shadow";
+                               type: SWALLOW;
+                               scale:1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.tag.preview.table"; offset: 0 2;}//2pix offset
+                                       rel2 { relative: 1.0 1.0; to: "pv.tag.preview.table"; offset: 0 2;}
+                               }
+                       }
+                       part {
+                               name: "pv.tag.preview.table";
+                               type: SWALLOW;
+                               scale:1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 0.0 1.0; to_y: "pv.tag.preview.table.top";}
+                                       rel2 { relative: 1.0 0.0; to_y: "pv.tag.preview.time";}
+                               }
+                       }
+                       part {
+                               name: "pv.tag.preview.time.shadow";
+                               type: SWALLOW;
+                               scale:1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.tag.preview.time"; offset: 0 2;}//2pix offset
+                                       rel2 { relative: 1.0 0.0; to: "pv.tag.preview.time"; offset: 0 0;}
+                               }
+                       }
+                       part {
+                               name: "pv.tag.preview.time";
+                               type: SWALLOW;
+                               scale:1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 20;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+               } /* parts */
+               programs {
+                       program {
+                               name: "www.accuweather.com";
+                               signal: "signal.pv.tag.accuweather";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.tag.preview.accuweather";
+                               target: "pv.tag.preview.accuweather.rect";
+                       }
+                       program {
+                               name: "weathernews.jp";
+                               signal: "signal.pv.tag.weathernews";
+                               source: "*";
+                               action: STATE_SET "weather_jp" 0.0;
+                               target: "pv.tag.preview.accuweather";
+                               target: "pv.tag.preview.accuweather.rect";
+                       }
+               } /* programs */
+       } /* group */
+       group {
+               name: "pv.tag.buddy.normal";
+               parts {
+                       part {
+                               name: "pv.tag.preview.bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       color: 125 125 125 255;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+                       part {
+                               name: "pv.tag.preview.table.shadow";
+                               type: SWALLOW;
+                               scale:1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.tag.preview.table"; offset: 0 2;}//2pix offset
+                                       rel2 { relative: 1.0 0.0; to: "pv.tag.preview.table"; offset: 0 0;}
+                               }
+                       }
+                       part {
+                               name: "pv.tag.preview.table";
+                               type: SWALLOW;
+                               scale:1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.tag.preview.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.tag.preview.bg";}
+                               }
+                       }
+               } /* parts */
+       } /* group */
+} /* collections */
+
diff --git a/playview/res/edje/pv-trim-control.edc b/playview/res/edje/pv-trim-control.edc
new file mode 100755 (executable)
index 0000000..2c763c6
--- /dev/null
@@ -0,0 +1,747 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+#ifndef _TRIME_VIEW_NEW_FEATURE
+#define _TRIME_VIEW_NEW_FEATURE
+#endif
+
+#define FONT_LIGHT_TYPE                        "Tizen:style=Light"
+#define FONT_COLOR                             248 246 239 128
+#define TRIM_CONTROL_TOP_PADDING               9
+#define TRIM_CONTROL_BOTTOM_PADDING            4
+#define TRIM_CONTROL_GENGRID_HEIGHT            100
+#define TRIM_CONTROL_PICKER_HEIGHT             147
+#define TRIM_CONTROL_PICKER_WIDTH              37
+#define TRIM_CONTROL_LEFT_HEIGHT               118
+#define TRIM_CONTROL_LEFT_WIDTH                30
+
+#ifdef _TRIME_VIEW_NEW_FEATURE
+#define TRIM_CONTROL_INTERVAL          8
+#endif
+
+collections {
+       group {
+               name: "pv.trim.control";
+
+               parts {
+                       part {
+                               name: "pv.trim.control.bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.top.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 TRIM_CONTROL_TOP_PADDING;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_y : "pv.trim.control.bg"; }
+                                       rel2 { relative: 1.0 0.0; to_y : "pv.trim.control.bg"; }
+                                       color: 0 0 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.bottom.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 TRIM_CONTROL_BOTTOM_PADDING;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to_y : "pv.trim.control.bg"; }
+                                       rel2 { relative: 1.0 1.0; to_y : "pv.trim.control.bg"; }
+                                       color: 0 255 0 50;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.bg.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.0; to: "pv.trim.control.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.trim.control.bg";}
+                                       color: 45 45 45 255;
+                               }
+                       }
+#ifdef _TRIME_VIEW_NEW_FEATURE
+                       part {
+                               name: "pv.trim.control.progress.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 118;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 0.0; to_y: "pv.trim.control.bottom.padding";}
+                                       rel2 { relative: 1.0 0.0; to_y: "pv.trim.control.bottom.padding";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+#else
+                       part {
+                               name: "pv.trim.control.progress.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 118;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_y: "pv.trim.control.bg";}
+                                       rel2 { relative: 1.0 0.0; to_y: "pv.trim.control.bg";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+#endif
+
+/*
+                       part {
+                               name: "pv.trim.control.progress.rect.playing.left";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 12 124;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_y: "pv.trim.control.top.padding";}
+                                       rel2 { relative: 0.0 1.0; to_y: "pv.trim.control.top.padding";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.progress.rect.playing.right";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 12 124;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 1.0; to_y: "pv.trim.control.top.padding";}
+                                       rel2 { relative: 1.0 1.0; to_y: "pv.trim.control.top.padding";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+*/
+#ifdef _TRIME_VIEW_NEW_FEATURE
+                       part {
+                               name: "pv.trim.control.gengrid.rect";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 TRIM_CONTROL_GENGRID_HEIGHT;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 1.0; to_y: "pv.trim.start.txt"; offset: 0 TRIM_CONTROL_INTERVAL;}
+                                       rel2 { relative: 1.0 1.0; to_y: "pv.trim.start.txt"; offset: 0 TRIM_CONTROL_INTERVAL;}
+                               }
+                       }
+#else
+                       part {
+                               name: "pv.trim.control.gengrid.rect";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 TRIM_CONTROL_GENGRID_HEIGHT;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 1.0; to_y: "pv.trim.control.top.padding"; }
+                                       rel2 { relative: 1.0 1.0; to_y: "pv.trim.control.top.padding"; }
+                               }
+                       }
+#endif
+                       part {
+                               name: "pv.trim.control.txt.left.padding";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 26 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_y: "pv.trim.control.progress.rect";}
+                                       rel2 { relative: 0.0 1.0; to_y: "pv.trim.control.progress.rect";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.txt.right.padding";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 26 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to_y: "pv.trim.control.progress.rect";}
+                                       rel2 { relative: 1.0 1.0; to_y: "pv.trim.control.progress.rect";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+#ifdef _TRIME_VIEW_NEW_FEATURE
+                       part {
+                               name: "pv.trim.start.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 127 30;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 1.0; to_x : "pv.trim.control.txt.left.padding"; to_y : "pv.trim.control.top.padding";}
+                                       rel2 { relative: 1.0 1.0; to_x : "pv.trim.control.txt.left.padding"; to_y : "pv.trim.control.top.padding";}
+                                       color: FONT_COLOR;
+                                       text {
+                                               font: FONT_LIGHT_TYPE;
+                                               size: 28;
+                                               text: "00:00:00";
+                                               align: 0.0 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.total.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 127 30;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_x : "pv.trim.control.txt.right.padding"; to_y : "pv.trim.control.top.padding";}
+                                       rel2 { relative: 0.0 1.0; to_x : "pv.trim.control.txt.right.padding"; to_y : "pv.trim.control.top.padding";}
+                                       color: FONT_COLOR;
+                                       text {
+                                               font: FONT_LIGHT_TYPE;
+                                               size: 28;
+                                               text: "00:00:00";
+                                               align: 1.0 0.5;
+                                       }
+                               }
+                       }
+#else
+                       part {
+                               name: "pv.trim.start.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 127 30;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 1.0; to_x : "pv.trim.control.txt.left.padding"; to_y : "pv.trim.control.gengrid.rect"; offset: 0 17;}
+                                       rel2 { relative: 1.0 1.0; to_x : "pv.trim.control.txt.left.padding"; to_y : "pv.trim.control.gengrid.rect";     offset: 0 17;}
+                                       color: FONT_COLOR;
+                                       text {
+                                               font: FONT_LIGHT_TYPE;
+                                               size: 28;
+                                               text: "00:00:00";
+                                               align: 0.0 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.total.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 127 30;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_x : "pv.trim.control.txt.right.padding"; to_y : "pv.trim.control.gengrid.rect"; offset: 0 17;}
+                                       rel2 { relative: 0.0 1.0; to_x : "pv.trim.control.txt.right.padding"; to_y : "pv.trim.control.gengrid.rect"; offset: 0 17;}
+                                       color: FONT_COLOR;
+                                       text {
+                                               font: FONT_LIGHT_TYPE;
+                                               size: 28;
+                                               text: "00:00:00";
+                                               align: 1.0 0.5;
+                                       }
+                               }
+                       }
+#endif
+                       part {
+                               name: "pv.trim.control.confine.rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 TRIM_CONTROL_PICKER_HEIGHT;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.trim.control.progress.rect"; offset: 0 -14.5;}
+                                       rel2 { relative: 1.0 0.0; to: "pv.trim.control.progress.rect"; offset: 0 -14.5;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.confine.rect.picker";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: TRIM_CONTROL_PICKER_WIDTH TRIM_CONTROL_PICKER_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.trim.control.playing"; to_y: "pv.trim.control.confine.rect";}
+                                       rel2 { relative: 0.0 1.0; to_x: "pv.trim.control.playing"; to_y: "pv.trim.control.confine.rect";}
+                                       image { normal: "trim/T01_2_trim_picker.png"; }
+                               }
+                       #ifdef _TRIME_VIEW_NEW_FEATURE
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       #endif
+                       }
+
+                       part { name: "pv.trim.control.playing";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       //31 mean it is convenient to move played bar
+                                       min: TRIM_CONTROL_PICKER_WIDTH TRIM_CONTROL_PICKER_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       color: 0 0 0 0;
+                               }
+                               dragable {
+                                       confine:  "pv.trim.control.confine.rect";
+                                       x: 1 1 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.start.rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_y : pv.trim.control.progress.rect;}
+                                       rel2 { relative: 0.0 1.0; to_y : pv.trim.control.progress.rect;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.end.rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to_y : pv.trim.control.progress.rect;}
+                                       rel2 { relative: 1.0 1.0; to_y : pv.trim.control.progress.rect;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part { name: "pv.trim.control.confine.rect.start";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: TRIM_CONTROL_LEFT_WIDTH TRIM_CONTROL_LEFT_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x: pv.trim.control.start.rect; to_y: pv.trim.control.progress.rect; }
+                                       rel2 { relative: 1.0 0.5; to_x: pv.trim.control.end.rect; to_y: pv.trim.control.progress.rect; }
+                                       color: 255 255 255 0;
+                               }
+                       }
+
+                       part { name: "pv.trim.control.confine.rect.end";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: TRIM_CONTROL_LEFT_WIDTH TRIM_CONTROL_LEFT_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x: pv.trim.control.start.rect; to_y: pv.trim.control.progress.rect; }
+                                       rel2 { relative: 1.0 0.5; to_x: pv.trim.control.end.rect; to_y: pv.trim.control.progress.rect; }
+                                       color: 255 255 255 0;
+                               }
+                       }
+
+                       part { name: "pv.trim.control.confine.rect.start.bg";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 100;
+                                       fixed: 0 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_y: pv.trim.control.progress.rect; }
+                                       rel2 { relative: 0.5 0.5; to_x: pv.trim.control.confine.start.img; to_y: pv.trim.control.progress.rect; }
+                                       color: 0 0 0 153;
+                               }
+                       }
+
+                       part { name: "pv.trim.control.confine.rect.end.bg";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 100;
+                                       fixed: 0 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 0.5 0.5; to_x: pv.trim.control.confine.end.img; to_y: pv.trim.control.progress.rect; }
+                                       rel2 { relative: 1.0 0.5; to_y: pv.trim.control.progress.rect; }
+                                       color: 0 0 0 153;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.confine.start.img";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: TRIM_CONTROL_LEFT_WIDTH TRIM_CONTROL_LEFT_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       image { normal: "trim/T01_2_trim_left.png";}
+                                       rel1 { relative: 0.0 0.5; to: pv.trim.control.confine.start; }
+                                       rel2 { relative: 0.0 0.5; to: pv.trim.control.confine.start; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.confine.end.img";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: TRIM_CONTROL_LEFT_WIDTH TRIM_CONTROL_LEFT_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       image { normal: "trim/T01_2_trim_right.png";}
+                                       rel1 { relative: 1.0 0.5; to: pv.trim.control.confine.end; }
+                                       rel2 { relative: 1.0 0.5; to: pv.trim.control.confine.end; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.confine.start";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: TRIM_CONTROL_LEFT_WIDTH TRIM_CONTROL_LEFT_HEIGHT;//48
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       color: 0 0 0 0;
+                               }
+                               dragable {
+                                       confine:  "pv.trim.control.confine.rect.start";
+                                       x: 1 1 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.confine.end";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: TRIM_CONTROL_LEFT_WIDTH TRIM_CONTROL_LEFT_HEIGHT;//48
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       color: 0 0 0 0;
+                               }
+                               dragable {
+                                       confine:  "pv.trim.control.confine.rect.end";
+                                       x: 1 1 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.toolbar.save.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 112 111;
+                                       fixed: 1 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to_y : "pv.trim.control.bg"; }
+                                       rel2 { relative: 0.0 1.0; to_y : "pv.trim.control.bg"; }
+                                       color: 0 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.toolbar.save";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 86 98;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.5; to: "pv.trim.control.toolbar.save.rect";}
+                                       rel2 { relative: 1.0 0.5; to: "pv.trim.control.toolbar.save.rect";}
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.toolbar.back.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 112 111;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to_y : "pv.trim.control.bg"; }
+                                       rel2 { relative: 1.0 1.0; to_y : "pv.trim.control.bg"; }
+                                       color: 0 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.toolbar.back";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 86 98;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.5; to: "pv.trim.control.toolbar.back.rect";}
+                                       rel2 { relative: 1.0 0.5; to: "pv.trim.control.toolbar.back.rect";}
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+#ifndef _TRIME_VIEW_NEW_FEATURE
+                       part {
+                               name: "pv.trim.control.toolbar.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 132;
+                                       fixed: 0 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 0.0 0.0; to_x : "pv.trim.control.bg"; to_y : "pv.trim.control.bottom.padding"; }
+                                       rel2 { relative: 1.0 0.0; to_x : "pv.trim.control.bg"; to_y : "pv.trim.control.bottom.padding";}
+                                       color: 0 255 255 255;
+                               }
+                       }
+
+
+                       part {
+                               name: "pv.trim.control.play";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 132 132;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.0; to_y: "pv.trim.control.toolbar.rect";}
+                                       rel2 { relative: 0.5 1.0; to_y: "pv.trim.control.toolbar.rect";}
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.play.left.padding";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 27 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.trim.control.play"; to_y: "pv.trim.control.toolbar.rect";}
+                                       rel2 { relative: 0.0 1.0; to_x: "pv.trim.control.play"; to_y: "pv.trim.control.toolbar.rect";}
+                                       color: 255 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.play.right.padding";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 27 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.0; to_x: "pv.trim.control.play"; to_y: "pv.trim.control.toolbar.rect";}
+                                       rel2 { relative: 1.0 1.0; to_x: "pv.trim.control.play"; to_y: "pv.trim.control.toolbar.rect";}
+                                       color: 255 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.rew";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 108 108;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x: "pv.trim.control.play.left.padding"; to_y: "pv.trim.control.toolbar.rect";}
+                                       rel2 { relative: 0.0 0.5; to_x: "pv.trim.control.play.left.padding"; to_y: "pv.trim.control.toolbar.rect";}
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.ff";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 108 108;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.5; to_x: "pv.trim.control.play.right.padding"; to_y: "pv.trim.control.toolbar.rect";}
+                                       rel2 { relative: 1.0 0.5; to_x: "pv.trim.control.play.right.padding"; to_y: "pv.trim.control.toolbar.rect";}
+                                       color: 255 255 255 255;
+                               }
+                       }
+#endif
+               } /* parts */
+#ifdef _TRIME_VIEW_NEW_FEATURE
+               programs {
+                       program {
+                               name: "hide_control_playing";
+                               signal: "signal.pv.trim.control.hide.playing";
+                               source: "*";
+                               action: STATE_SET "hide" 0.0;
+                               target: "pv.trim.control.confine.rect.picker";
+                       }
+                       program {
+                               name: "show_control_playing";
+                               signal: "signal.pv.trim.control.show.playing";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.trim.control.confine.rect.picker";
+                       }
+               }/* programs */
+#endif
+       }       /* group */
+} /* collections */
diff --git a/playview/res/edje/pv-trim-item.edc b/playview/res/edje/pv-trim-item.edc
new file mode 100755 (executable)
index 0000000..f29fca4
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define VP_TRIM_ITEM_RECT_MIN_MAX_INC          100 100
+
+collections {
+       group {
+               name: "pv.trim.item";
+               parts {
+                       part {
+                               name: "pv.trim.item.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: VP_TRIM_ITEM_RECT_MIN_MAX_INC;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "pv.trim.item.icon";
+                               scale: 1;
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: VP_TRIM_ITEM_RECT_MIN_MAX_INC;
+                                       max: VP_TRIM_ITEM_RECT_MIN_MAX_INC;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: pv.trim.item.rect;}
+                                       rel2 { relative: 1.0 1.0; to: pv.trim.item.rect;}
+                                       color: 255 255 255 255;
+                               }
+                       }
+               } /* parts */
+       }       /* group */
+} /* collections */
\ No newline at end of file
diff --git a/playview/res/edje/pv-trim-main.edc b/playview/res/edje/pv-trim-main.edc
new file mode 100755 (executable)
index 0000000..e36f7c4
--- /dev/null
@@ -0,0 +1,152 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+#ifndef _TRIME_VIEW_NEW_FEATURE
+#define _TRIME_VIEW_NEW_FEATURE
+#endif
+collections {
+       group {
+               name: "pv.trim.main";
+
+               parts {
+                       part {
+                               name: "pv.trim.main.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 255 255 255 0;
+                               }
+                       }
+#ifndef _TRIME_VIEW_NEW_FEATURE
+                       part {
+                               name: "pv.trim.top.control";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 68;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 0.0; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.main.control";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 292;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                       }
+#else
+                       part {
+                               name: "pv.trim.top.control";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 68;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 0.0; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.main.control";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 160;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                       }
+#endif
+#ifdef _TRIME_VIEW_NEW_FEATURE
+                       part {
+                               name: "pv.trim.main.loading";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 1.0; to: "pv.trim.top.control";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.trim.main.control";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.main.button";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 108 108;
+                                       max: 108 108;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 1.0; to: "pv.trim.top.control";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.trim.main.control";}
+                               }
+                       }
+#else
+                       part {
+                               name: "pv.trim.main.loading";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+#endif
+               } /* parts */
+       }       /* group */
+} /* collections */
diff --git a/playview/res/edje/pv-trim-top-control.edc b/playview/res/edje/pv-trim-top-control.edc
new file mode 100755 (executable)
index 0000000..f1e7e6a
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+collections {
+       group {
+               name: "pv.trim.top";
+
+               parts {
+                       part {
+                               name: "pv.trim.top.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.top.right.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 26 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.top.rotate";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 68 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.trim.top.right.padding"; to_y: "pv.trim.top.bg";}
+                                       rel2 { relative: 0.0 1.0; to_x: "pv.trim.top.right.padding"; to_y: "pv.trim.top.bg";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+               } /* parts */
+       } /* group */
+} /* collections */
\ No newline at end of file
diff --git a/playview/res/edje/pv-volume-popup.edc b/playview/res/edje/pv-volume-popup.edc
new file mode 100755 (executable)
index 0000000..3935957
--- /dev/null
@@ -0,0 +1,310 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define FONT_BOLD_TYPE                 "Tizen:style=Bold"
+
+#define FONT_VOLUME_COLOR              255 255 255 255
+#define VOLUME_POPUP_BUTTON_HEIGHT             24
+#define VOLUME_POPUP_BUTTON_WIDTH              24
+
+collections {
+       base_scale : 1.6;
+       group {
+               name: "pv.volume.popup";
+               parts {
+                       part {
+                               name: "pv.volume.popup.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               repeat_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: 58 286;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.5 0.5;}
+                                       rel2 { relative: 0.5 0.5;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.popup.bg";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: 58 286;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.5 0.5;}
+                                       rel2 { relative: 0.5 0.5;}
+                                       color: 255 255 255 255;
+                                       image { normal: "volume/T01_2_volume_popup_bg.png"; border: 0 0 15 15;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.popup.icon.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: 0 12;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.volume.popup.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.volume.popup.bg";}
+                                       color: 255 0 0 255;
+
+                               }
+                       }
+                       part {
+                               name: "pv.volume.popup.icon";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: 22 22;
+                                       fixed: 1 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.5 1.0; to_x: "pv.volume.popup.bg"; to_y: "pv.volume.popup.icon.padding";}
+                                       rel2 { relative: 0.5 1.0; to_x: "pv.volume.popup.bg"; to_y: "pv.volume.popup.icon.padding";}
+                                       color: 255 255 255 255;
+                                       image { normal: "popup/T01-2_volume_popup_icon_volume01.png"; }
+                               }
+                               description {
+                                       state: "mute" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "popup/T01-2_volume_popup_icon_volume02.png"; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.popup.top.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: 0 11;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.volume.popup.icon";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.volume.popup.icon";}
+                                       color: 255 0 0 255;
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.popup.bottom.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: 0 18;
+                                       fixed: 1 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.volume.popup.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.volume.popup.bg";}
+                                       color: 255 0 0 255;
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.popup.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               effect: FAR_SHADOW BOTTOM;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: 0 23;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.volume.popup.bottom.padding";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.volume.popup.bottom.padding";}
+                                       color: FONT_VOLUME_COLOR;
+                                       color3: 51 57 72 255;
+                                       text {
+                                               font: FONT_BOLD_TYPE;
+                                               size: 21;
+                                               text: "3";
+                                               align: 0.5 0.5;
+                                       }
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.popup.txt.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: 0 11;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.volume.popup.txt";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.volume.popup.txt";}
+                                       color: 255 0 0 255;
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.popup.bar.bg";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 6 0;
+                                       fixed: 1 0;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.5 1.0; to_x : "pv.volume.popup.bg";  to_y : "pv.volume.popup.top.padding";}
+                                       rel2 { relative: 0.5 0.0; to_x : "pv.volume.popup.bg";  to_y : "pv.volume.popup.txt.padding";}
+                                       image { normal: "volume/T01_2_volume_popup_progress_bg.png"; border: 0 0 10 10;}
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.popup.step";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 6 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.5; to_x : "pv.volume.popup.bar.bg"; to_y: "pv.volume.popup.point";}
+                                       rel2 { relative: 1.0 1.0; to : "pv.volume.popup.bar.bg";offset: 0 2;}
+                                       color: 255 255 255 255;
+                                       image { normal: "volume/T01_2_volume_popup_progress_bar.png"; border: 0 0 10 10;}
+                               }
+                       }
+
+                       part { name: "pv.volume.popup.dragable";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description{ state: "default" 0.0;
+                                       rel1 { relative: 0.5 0.0; to: "pv.volume.popup.bar.bg";offset: 0 -11; }
+                                       rel2 { relative: 0.5 1.0; to: "pv.volume.popup.bar.bg";offset: 0 11;}
+                                       min: VOLUME_POPUP_BUTTON_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.5 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part { name: "pv.volume.popup.playing";
+                               type: RECT;
+                               scale: 1;
+                               repeat_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       min: VOLUME_POPUP_BUTTON_WIDTH VOLUME_POPUP_BUTTON_HEIGHT;
+                                       max: VOLUME_POPUP_BUTTON_WIDTH VOLUME_POPUP_BUTTON_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0 0;
+                                       color: 0 0 0 0;
+                               }
+
+                               dragable {
+                                       x: 0 0 0;
+                                       y: -1 1 0;
+                                       confine: "pv.volume.popup.dragable";
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.popup.point";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: VOLUME_POPUP_BUTTON_WIDTH VOLUME_POPUP_BUTTON_HEIGHT;
+                                       max: VOLUME_POPUP_BUTTON_WIDTH VOLUME_POPUP_BUTTON_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to: "pv.volume.popup.playing";}
+                                       rel2 { relative: 0.5 0.5; to: "pv.volume.popup.playing";}
+                                       image { normal: "volume/T01_2_volume_popup_progress_handle.png";}
+                                       color: 255 255 255 255;
+                               }
+                               description {
+                                       state: "press" 0.0;
+                                       inherit: "default";
+                                       image { normal: "volume/T01_2_volume_popup_progress_handle_press.png";}
+                               }
+                       }
+               } /* parts */
+
+               programs {
+                       program { name: "set_mute";
+                               signal: "set,mute";
+                               source: "volume.popup.icon";
+                               action: STATE_SET "mute" 0.0;
+                               target: "pv.volume.popup.icon";
+                       }
+                       program { name: "set_volume";
+                               signal: "set,volume";
+                               source: "volume.popup.icon";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.volume.popup.icon";
+                       }
+                       program {
+                               name: "pv.volume.down";
+                               source: "pv.volume.popup.point";
+                               signal: "mouse,down,1";
+                               action: STATE_SET "press" 0.0;
+                               target: "pv.volume.popup.point";
+                       }
+                       program {
+                               name: "pv.volume.up";
+                               source: "pv.volume.popup.point";
+                               signal: "mouse,up,1";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.volume.popup.point";
+                       }
+               } /* programs */
+       }       /* group */
+} /* collections */
+
diff --git a/playview/res/edje/pv-volume.edc b/playview/res/edje/pv-volume.edc
new file mode 100755 (executable)
index 0000000..9d9be06
--- /dev/null
@@ -0,0 +1,321 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define FONT_BOLD_TYPE                 "Tizen:style=Bold"
+
+#define FONT_VOLUME_COLOR              255 255 255 255
+
+#define VOLUME_WIDGET_WIDTH                    72
+#define VOLUME_WIDGET_PORTRAIT_HEIGHT          486
+#define VOLUME_WIDGET_LANDSCAPE_HEIGHT         264
+
+#define VOLUME_BUTTON_HEIGHT           40
+#define VOLUME_BUTTON_WIDTH                    25
+#define VOLUME_PROGRESS_WIDTH          15
+
+externals {
+          external: "elm";
+          external: "feedback";
+       }
+
+collections {
+       base_scale : 2.6;
+       plugins {
+               plugin {
+                       name: "touch_sound_plugin";
+                       source: "feedback";
+                       param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+                       }
+               }
+       group {
+               name: "pv.volume";
+               parts {
+                       part {
+                               name: "pv.volume.bg";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               repeat_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: VOLUME_WIDGET_WIDTH VOLUME_WIDGET_PORTRAIT_HEIGHT;
+                                       max: VOLUME_WIDGET_WIDTH VOLUME_WIDGET_PORTRAIT_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0.2 0.0;
+                                       rel1 { relative: 0.5 0.5;}
+                                       rel2 { relative: 0.5 0.5;}
+                                       image { normal: "volume/T01_2_volume_popup_bg.png"; border: 0 0 15 15; }
+                               }
+
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: VOLUME_WIDGET_WIDTH VOLUME_WIDGET_LANDSCAPE_HEIGHT;
+                                       max: VOLUME_WIDGET_WIDTH VOLUME_WIDGET_LANDSCAPE_HEIGHT;
+                                       image { normal: "volume/T01_2_volume_popup_bg.png"; border: 0 0 15 15; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.top.padding";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 32;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.volume.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.volume.bg";}
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 16;
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.bottom.padding";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 21;
+                                       fixed: 1 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.volume.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.volume.bg";}
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 12;
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               effect: FAR_SHADOW BOTTOM;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: 0 16;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.volume.bottom.padding";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.volume.bottom.padding";}
+                                       text {
+                                               size: 38;
+                                       }
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.txt.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: 0 21;
+                                       fixed: 1 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.volume.txt";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.volume.txt";}
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 20;
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.touch.area";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.volume.bar.bg"; offset: -10 0; }
+                                       rel2 { relative: 1.0 1.0; to: "pv.volume.bar.bg"; offset: 10 0; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.bar.bg";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: VOLUME_PROGRESS_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.5 1.0; to_x : "pv.volume.bg";  to_y : "pv.volume.top.padding";}
+                                       rel2 { relative: 0.5 0.0; to_x : "pv.volume.bg";  to_y : "pv.volume.txt.padding";}
+                                       image { normal: "volume/T01_2_volume_popup_progress_bg.png"; border: 0 0 5 5;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.step";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: VOLUME_PROGRESS_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.5; to_x : "pv.volume.bar.bg"; to_y: "pv.volume.point"; }
+                                       rel2 { relative: 1.0 1.0; to : "pv.volume.bar.bg"; offset: 0 1;}
+                                       image { normal: "volume/T01_2_volume_popup_progress_bar.png"; border: 0 0 5 5;}
+                               }
+                       }
+
+                       part { name: "pv.volume.dragable";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description{ state: "default" 0.0;
+                                       rel1 { relative: 0.5 0.0; to: "pv.volume.bar.bg"; offset: 0 -7; }
+                                       rel2 { relative: 0.5 1.0; to: "pv.volume.bar.bg"; offset: 0 7;}
+                                       min: VOLUME_BUTTON_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.5 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part { name: "pv.volume.playing";
+                               type: RECT;
+                               scale: 1;
+                               repeat_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       min: VOLUME_BUTTON_WIDTH VOLUME_BUTTON_HEIGHT;
+                                       max: VOLUME_BUTTON_WIDTH VOLUME_BUTTON_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0 0;
+                                       color: 0 0 0 0;
+                               }
+
+                               dragable {
+                                       x: 0 0 0;
+                                       y: -1 1 0;
+                                       confine: "pv.volume.dragable";
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.point";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: VOLUME_BUTTON_WIDTH VOLUME_BUTTON_HEIGHT;
+                                       max: VOLUME_BUTTON_WIDTH VOLUME_BUTTON_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to: "pv.volume.playing";}
+                                       rel2 { relative: 0.5 0.5; to: "pv.volume.playing";}
+                                       image { normal: "volume/T01_2_volume_popup_progress_handle.png";}
+                                       color: 255 255 255 255;
+                               }
+                               description {
+                                       state: "press" 0.0;
+                                       inherit: "default";
+                                       image { normal: "volume/T01_2_volume_popup_progress_handle_press.png";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.point.focus";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: VOLUME_BUTTON_WIDTH VOLUME_BUTTON_HEIGHT;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 0.0; to: "pv.volume.point"; }
+                                       rel2 { relative: 1.0 1.0; to: "pv.volume.point"; }
+                                       color: 255 255 255 0;
+                               }
+                       }
+               } /* parts */
+
+               programs {
+                       program {
+                               name: "portrait_mode";
+                               signal: "signal.pv.volume.portrait.mode";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.volume.bg";
+                               target: "pv.volume.top.padding";
+                               target: "pv.volume.bottom.padding";
+                               target: "pv.volume.txt.padding";
+                       }
+
+                       program {
+                               name: "landscape_mode";
+                               signal: "signal.pv.volume.landscape.mode";
+                               source: "*";
+                               action: STATE_SET "landscape" 0.0;
+                               target: "pv.volume.bg";
+                               target: "pv.volume.top.padding";
+                               target: "pv.volume.bottom.padding";
+                               target: "pv.volume.txt.padding";
+                       }
+                       program {
+                               name: "pv.volume.down";
+                               source: "pv.volume.point";
+                               signal: "mouse,down,1";
+                               action: STATE_SET "press" 0.0;
+                               target: "pv.volume.point";
+                       }
+                       program {
+                               name: "pv.volume.up";
+                               source: "pv.volume.point";
+                               signal: "mouse,up,1";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.volume.point";
+                       }
+                       program{
+                               name: "touch_snd";
+                               signal: "mouse,clicked,1";
+                               source: "pv.volume.touch.area";
+                               action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+               } /* programs */
+       }       /* group */
+} /* collections */
+
diff --git a/playview/res/edje/pv-zoom-guide.edc b/playview/res/edje/pv-zoom-guide.edc
new file mode 100755 (executable)
index 0000000..22f3111
--- /dev/null
@@ -0,0 +1,325 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+collections {
+       group {
+               name: "pv.zoom.guide";
+               parts {
+                       part {
+                               name: "pv.zoom.guide.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               repeat_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "pv.zoom.guide.left.shadow";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min : 1 0;
+                                       fixed : 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.zoom.guide.left"; }
+                                       rel2 { relative: 1.0 1.0; to: "pv.zoom.guide.left"; }
+                                       color: 0 0 0 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "pv.zoom.guide.right.shadow";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min : 1 0;
+                                       fixed : 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.zoom.guide.right"; }
+                                       rel2 { relative: 0.0 1.0; to: "pv.zoom.guide.right"; }
+                                       color: 0 0 0 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "pv.zoom.guide.top.shadow";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min : 0 1;
+                                       fixed : 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.zoom.guide.top"; }
+                                       rel2 { relative: 1.0 1.0; to: "pv.zoom.guide.top"; }
+                                       color: 0 0 0 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "pv.zoom.guide.bottom.shadow";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min : 0 1;
+                                       fixed : 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.zoom.guide.bottom"; }
+                                       rel2 { relative: 1.0 0.0; to: "pv.zoom.guide.bottom"; }
+                                       color: 0 0 0 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "pv.zoom.guide.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min : 2 0;
+                                       fixed : 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 0.0 1.0;}
+                                       color: 255 255 255 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "pv.zoom.guide.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min : 2 0;
+                                       fixed : 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 255 255 255 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "pv.zoom.guide.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min : 0 2;
+                                       fixed : 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 0.0;}
+                                       color: 255 255 255 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.zoom.guide.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min : 0 2;
+                                       fixed : 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 255 255 255 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+               } /* parts */
+               programs {
+                       program {
+                               name: "zoom_guide_show";
+                               signal: "signal.pv.zoom.guide.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.zoom.guide.left.shadow";
+                               target: "pv.zoom.guide.right.shadow";
+                               target: "pv.zoom.guide.top.shadow";
+                               target: "pv.zoom.guide.bottom.shadow";
+                               target: "pv.zoom.guide.left";
+                               target: "pv.zoom.guide.right";
+                               target: "pv.zoom.guide.top";
+                               target: "pv.zoom.guide.bottom";
+                       }
+                       program {
+                               name: "zoom_guide_hide";
+                               signal: "signal.pv.zoom.guide.hide";
+                               source: "*";
+                               action: STATE_SET "hide" 0.0;
+                               target: "pv.zoom.guide.left.shadow";
+                               target: "pv.zoom.guide.right.shadow";
+                               target: "pv.zoom.guide.top.shadow";
+                               target: "pv.zoom.guide.bottom.shadow";
+                               target: "pv.zoom.guide.left";
+                               target: "pv.zoom.guide.right";
+                               target: "pv.zoom.guide.top";
+                               target: "pv.zoom.guide.bottom";
+
+                       }
+               } /* programs */
+       }       /* group */
+       group {
+               name: "pv.zoom.guide.item";
+               parts {
+                       part {
+                               name: "pv.zoom.guide.item.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.zoom.guide.item.left";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min : 2 0;
+                                       fixed : 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 0.0 1.0;}
+                                       color: 255 0 0 255;
+                               }
+                       }
+                       part {
+                               name: "pv.zoom.guide.item.right";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min : 2 0;
+                                       fixed : 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 255 0 0 255;
+                               }
+                       }
+                       part {
+                               name: "pv.zoom.guide.item.top";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min : 0 2;
+                                       fixed : 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 0.0;}
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.zoom.guide.item.bottom";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min : 0 2;
+                                       fixed : 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 255 0 0 255;
+                               }
+                       }
+               } /* parts */
+       }       /* group */
+
+} /* collections */
+
diff --git a/playview/src/common/include/vp-play-config.h b/playview/src/common/include/vp-play-config.h
new file mode 100755 (executable)
index 0000000..862ded8
--- /dev/null
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+#include <system_settings.h>
+#include <runtime_info.h>
+#include <network/wifi-manager.h>
+
+
+typedef void (*KeyChangedCbFunc) (void *pNode, void *pUserData);
+
+
+bool vp_play_config_get_rotate_lock_status(bool * bLocked);
+bool vp_play_config_get_subtitle_show_key(bool * bShow);
+bool vp_play_config_set_subtitle_show_key(bool bShow);
+bool vp_play_config_set_subtitle_font_name_key(const char *szFontName);
+bool vp_play_config_get_subtitle_font_name_key(char **szFontName);
+bool vp_play_config_get_subtitle_size_key(int *nSize);
+bool vp_play_config_set_subtitle_size_key(int nSize);
+bool vp_play_config_set_subtitle_edge_key(int nEdge);
+bool vp_play_config_get_subtitle_edge_key(int *nEdge);
+
+bool vp_play_config_get_subtitle_font_color_key(int *nColor);
+bool vp_play_config_set_subtitle_font_color_key(int nColor);
+bool vp_play_config_get_subtitle_bg_color_key(int *nColor);
+bool vp_play_config_set_subtitle_bg_color_key(int nColor);
+bool vp_play_config_set_subtitle_alignment_key(int nAlignment);
+bool vp_play_config_get_subtitle_alignment_key(int *nAlignment);
+bool vp_play_config_get_subtitle_font_color_hex_key(char **szColorHex);
+bool vp_play_config_set_subtitle_font_color_hex_key(const char
+                                                                                                       *szColorHex);
+bool vp_play_config_set_subtitle_bg_color_hex_key(const char *szColorHex);
+bool vp_play_config_get_subtitle_bg_color_hex_key(char **szColorHex);
+bool vp_play_config_set_subtitle_caption_win_color_hex_key(const char
+                                                                                                                  *szColorHex);
+bool vp_play_config_get_subtitle_caption_win_color_hex_key(char
+                                                                                                                  **szColorHex);
+
+bool vp_play_config_get_repeat_mode_key(int *nMode);
+bool vp_play_config_set_repeat_mode_key(int nMode);
+bool vp_play_config_set_screen_mode_key(int nMode);
+bool vp_play_config_get_screen_mode_key(int *nMode);
+bool vp_play_config_get_capture_on_key(bool * bEnable);
+bool vp_play_config_set_capture_on_key(bool bEnable);
+bool vp_play_config_get_tag_active_key(bool * bEnable);
+bool vp_play_config_set_tag_active_key(bool bEnable);
+bool vp_play_config_get_tag_weather_key(bool * bEnable);
+bool vp_play_config_set_tag_weather_key(bool bEnable);
+bool vp_play_config_get_tag_location_key(bool * bEnable);
+bool vp_play_config_set_tag_location_key(bool bEnable);
+bool vp_play_config_get_tag_edit_weather_key(int *nWeather);
+bool vp_play_config_set_tag_edit_weather_key(int nWeather);
+
+bool vp_play_config_get_sort_type_key(int *nType);
+bool vp_play_config_set_preview_url_videos(const char *szMediaURL);
+bool vp_play_config_get_preview_url_videos(char **szMediaURL);
+bool vp_play_config_set_preview_url_records(const char *szMediaURL);
+bool vp_play_config_get_preview_url_records(char **szMediaURL);
+bool vp_play_config_set_preview_audio_track(int nAudioTrack);
+bool vp_play_config_get_preview_audio_track(int *nAudioTrack);
+
+bool vp_play_telephony_initialize(void *pUserData);
+bool vp_play_telephony_deinitialize(void);
+bool vp_play_config_get_call_state(bool * bCallOn);
+bool vp_play_config_get_battery_charge_state(bool * bCharge);
+bool vp_play_config_get_wifi_direct_connect_status(bool * bConnect);
+bool vp_play_config_get_wifi_direct_active_status(bool * bConnect);
+bool vp_play_config_get_lcd_off_state(bool * bLCDOff);
+
+bool
+vp_play_config_set_rotate_state_key_changed_cb(system_settings_changed_cb
+                                                                                          pFunc, void *pUserData);
+bool
+vp_play_config_set_lock_state_key_changed_cb(system_settings_changed_cb
+                                                                                        pFunc, void *pUserData);
+bool vp_play_config_ignore_rotate_state_key_changed_cb(void);
+bool
+vp_play_config_set_battery_charge_state_key_changed_cb
+(runtime_info_changed_cb pFunc, void *pUserData);
+bool vp_play_config_ignore_battery_charge_state_key_changed_cb(void);
+bool vp_play_wifi_initialize();
+bool
+vp_play_config_set_wifi_state_key_changed_cb
+(wifi_manager_connection_state_changed_cb pFunc, void *pUserData);
+bool vp_play_config_ignore_wifi_state_key_changed_cb(void);
+void vp_play_wifi_deinitialize();
+
+bool vp_play_config_get_allow_dock_connect_key(bool * bEnable);
+bool vp_play_config_get_extern_mode_key(bool * bEnable);
+bool vp_play_config_set_allow_dock_connect_key(bool bEnable);
+bool vp_play_config_set_extern_mode_key(bool bEnable);
+
+bool vp_play_config_set_multi_play_status(bool bMultiPlay);
+bool vp_play_config_get_multi_play_status(bool * bMultiPlay);
+bool vp_play_config_set_mirroring_warning_status(bool bMultiPlay);
+bool vp_play_config_get_mirroring_warning_status(bool * bMultiPlay);
+
+bool vp_play_config_get_sound_alive_status(int *nStatus);
+bool vp_play_config_set_sound_alive_status(int nStatus);
diff --git a/playview/src/common/include/vp-play-preference.h b/playview/src/common/include/vp-play-preference.h
new file mode 100755 (executable)
index 0000000..da9ab8a
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+void vp_play_preference_init();
+
+bool vp_play_preference_set_multi_play_status(bool bMultiPlay);
+bool vp_play_preference_get_multi_play_status(bool * bMultiPlay);
+bool vp_play_preference_set_mirroring_warning_status(bool bMultiPlay);
+bool vp_play_preference_get_mirroring_warning_status(bool * bWarning);
+bool vp_play_preference_get_subtitle_show_key(bool * bShow);
+bool vp_play_preference_set_subtitle_show_key(bool bShow);
+bool vp_play_preference_set_subtitle_font_name_key(const char *szFontName);
+bool vp_play_preference_get_subtitle_font_name_key(char **szFontName);
+bool vp_play_preference_get_subtitle_size_key(int *nSize);
+bool vp_play_preference_set_subtitle_size_key(int nSize);
+
+
+bool vp_play_preference_get_subtitle_edge_key(int *nEdge);
+bool vp_play_preference_set_subtitle_edge_key(int nEdge);
+bool vp_play_preference_set_subtitle_alignment_key(int nAlignment);
+bool vp_play_preference_get_subtitle_alignment_key(int *nAlignment);
+bool vp_play_preference_set_subtitle_font_color_key(int nColor);
+bool vp_play_preference_get_subtitle_font_color_key(int *nColor);
+bool vp_play_preference_set_subtitle_font_color_hex_key(const char
+                                                                                                               *szColorHex);
+bool vp_play_preference_get_subtitle_font_color_hex_key(char **szColorHex);
+bool vp_play_preference_set_subtitle_bg_color_hex_key(const char
+                                                                                                         *szColorHex);
+bool vp_play_preference_get_subtitle_bg_color_hex_key(char **szColorHex);
+bool vp_play_preference_set_subtitle_caption_win_color_hex_key(const char
+                                                                                                                          *szColorHex);
+bool vp_play_preference_get_subtitle_caption_win_color_hex_key(char
+                                                                                                                          **szColorHex);
+bool vp_play_preference_get_subtitle_bg_color_key(int *nColor);
+bool vp_play_preference_set_subtitle_bg_color_key(int nColor);
+bool vp_play_preference_get_repeat_mode_key(int *nMode);
+bool vp_play_preference_set_repeat_mode_key(int nMode);
+bool vp_play_preference_get_screen_mode_key(int *nMode);
+bool vp_play_preference_set_screen_mode_key(int nMode);
+bool vp_play_preference_get_capture_on_key(bool * bEnable);
+bool vp_play_preference_set_capture_on_key(bool bEnable);
+
+bool vp_play_preference_get_tag_active_key(bool * bEnable);
+bool vp_play_preference_set_tag_active_key(bool bEnable);
+
+bool vp_play_preference_get_tag_weather_key(bool * bEnable);
+bool vp_play_preference_set_tag_weather_key(bool bEnable);
+bool vp_play_preference_get_tag_location_key(bool * bEnable);
+bool vp_play_preference_set_tag_location_key(bool bEnable);
+bool vp_play_preference_get_tag_edit_weather_key(int *nWeather);
+bool vp_play_preference_set_tag_edit_weather_key(int nWeather);
+
+
+bool vp_play_preference_get_sort_type_key(int *nType);
+bool vp_play_preference_set_preview_url_videos(const char *szMediaURL);
+bool vp_play_preference_get_preview_url_videos(char **szMediaURL);
+bool vp_play_preference_set_preview_audio_track(int nAudioTrack);
+bool vp_play_preference_get_preview_audio_track(int *nAudioTrack);
+bool vp_play_preference_get_sensor_asked_state(bool * bAsked);
+bool vp_play_preference_set_sensor_asked_state(bool bAsked);
+bool vp_play_preference_get_easy_mode(bool * bEnable);
+bool vp_play_preference_get_allow_dock_connect_key(bool * bEnable);
+bool vp_play_preference_set_allow_dock_connect_key(bool bEnable);
+bool vp_play_preference_get_extern_mode_key(bool * bEnable);
+bool vp_play_preference_set_extern_mode_key(bool bEnable);
+bool vp_play_preference_get_sound_alive_status(int *nStatus);
+bool vp_play_preference_set_sound_alive_status(int nStatus);
diff --git a/playview/src/common/include/vp-play-ug.h b/playview/src/common/include/vp-play-ug.h
new file mode 100755 (executable)
index 0000000..2fa1b31
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+bool vp_play_app_launch_share_panel(Evas_Object * pWin,
+                                                                       const char *szMediaURL,
+                                                                       app_control_h * pServiceShare,
+                                                                       void *pUserData);
+bool vp_play_app_launch_videos(Evas_Object * pWin, bool bRaise,
+                                                          void *pUserData);
diff --git a/playview/src/common/include/vp-play-util.h b/playview/src/common/include/vp-play-util.h
new file mode 100755 (executable)
index 0000000..02d4dac
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <glib.h>
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+char *vp_play_util_get_title_from_path(char *szFilePath);
+char *vp_play_util_get_filename_from_path(char *szFilePath);
+char *vp_play_util_get_folder_from_path(char *szFilePath);
+bool vp_play_util_key_grab(Elm_Win * pWin, const char *szKeyName);
+bool vp_play_util_key_ungrab(Elm_Win * pWin, const char *szKeyName);
+void vp_play_util_fb_visible_off(Evas_Object * pWin, bool bVisible);
+bool vp_play_util_get_landscape_check(int nRotateVal);
+bool vp_play_util_local_file_check(char *szMediaURL);
+bool vp_play_util_get_subtitle_path(const char *szMediaURL,
+                                                                       char **szSubtitle);
+double vp_play_util_get_sys_time(void);
+bool vp_play_util_status_noti_show(const char *szStr);
+char *vp_play_util_remove_prefix_to_url(char *szURL);
+void vp_play_util_convert_file_size(long long lSize, char **szSize);
+void vp_play_util_get_convert_time(double dtime, char **szFileDate);
+bool vp_play_util_get_file_info(const char *szMediaURL, char **szFileSize,
+                                                               char **szFileDate, char **szFileExtention);
+bool vp_play_util_check_streaming(const char *szURL);
+bool vp_play_util_rtsp_url_check(const char *szURL);
+bool vp_play_util_calculator_position(Evas_Coord_Rectangle rtSrc,
+                                                                         Evas_Coord_Rectangle rtDst,
+                                                                         Evas_Coord_Rectangle * rtResult,
+                                                                         int nType);
+bool vp_play_util_check_sdp_url(const char *szUri);
+char *vp_play_util_get_sdp_url(const char *szUri);
+bool vp_play_util_save_file(const char *szFileName, char *szBuffer,
+                                                       int nSize);
+bool vp_play_util_get_network_status(void);
+bool vp_play_util_is_exist_subtitle_from_path(const char *szPath);
+bool vp_play_util_get_subtitle_path_list(GList ** subtitleList);
+bool vp_play_util_check_personal_status(const char *szPreviewUrl);
+
+int vp_play_util_get_root_window_angle(Evas_Object * pWin);
+
+bool vp_play_util_app_resume(void);
+bool vp_play_util_check_white_space(char *szText);
+unsigned long long vp_play_util_get_disk_available_space(const char
+                                                                                                                *szFilePath);
+bool vp_play_util_get_city(const char *szLocation, char **szCity);
+bool vp_play_util_is_Xwindow_focused(Ecore_X_Window nXwinID);
+
+char *vp_play_util_convert_rgba_to_hex(int r, int g, int b, int a);
+bool vp_play_util_convert_hex_to_rgba(char *pColorHex, int *r, int *g,
+                                                                         int *b, int *a);
+void vp_play_util_set_object_size(Evas_Object * obj, int w, int h, int id);
+void vp_play_util_set_object_color(Evas_Object * obj, int r, int g, int b,
+                                                                  int a, int id);
+void vp_play_util_set_object_offset(Evas_Object * obj, int left, int top,
+                                                                       int id);
+
+void vp_play_util_set_lock_power_key();
+void vp_play_util_set_unlock_power_key();
+
+void vp_play_util_focus_next_object_set(Evas_Object * obj,
+                                                                               Evas_Object * next,
+                                                                               Elm_Focus_Direction dir);
diff --git a/playview/src/common/vp-play-config.c b/playview/src/common/vp-play-config.c
new file mode 100755 (executable)
index 0000000..ea005e9
--- /dev/null
@@ -0,0 +1,683 @@
+/*
+ * Copyright (c) 2020 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 <app_preference.h>
+#include <telephony.h>
+#include <wifi-direct.h>
+#include <device/display.h>
+#include "vp-play-config.h"
+
+/* check temp */
+#include "vp-play-log.h"
+#include "vp-play-normal-view.h"
+
+#define PREF_VP_VIDEO_PREVIEW_URL_VIDEOS "preference/org.tizen.videos/preview_url_videos"
+#define PREF_VP_SORT_TYPE  "preference/org.tizen.videos/sort_type"
+#define PREF_VP_MULTI_PLAY_FLAG  "preference/org.tizen.videos/multi_play"
+
+static wifi_manager_h g_WifiManager = NULL;
+
+static int
+voice_call_noti_tbl[] = {
+       TELEPHONY_NOTI_VOICE_CALL_STATUS_IDLE,
+       TELEPHONY_NOTI_VOICE_CALL_STATUS_ACTIVE,
+       TELEPHONY_NOTI_VOICE_CALL_STATUS_HELD,
+       TELEPHONY_NOTI_VOICE_CALL_STATUS_DIALING,
+       TELEPHONY_NOTI_VOICE_CALL_STATUS_ALERTING,
+       TELEPHONY_NOTI_VOICE_CALL_STATUS_INCOMING,
+};
+
+static int
+video_call_noti_tbl[] = {
+       TELEPHONY_NOTI_VIDEO_CALL_STATUS_IDLE,
+       TELEPHONY_NOTI_VIDEO_CALL_STATUS_ACTIVE,
+       TELEPHONY_NOTI_VIDEO_CALL_STATUS_DIALING,
+       TELEPHONY_NOTI_VIDEO_CALL_STATUS_ALERTING,
+       TELEPHONY_NOTI_VIDEO_CALL_STATUS_INCOMING,
+};
+
+telephony_handle_list_s tel_list;
+
+/**
+ *
+ * @param bMultiPlay
+ * @return
+ */
+bool vp_play_config_set_multi_play_status(bool bMultiPlay)
+{
+       int nErr = 0;
+
+       nErr = preference_set_boolean(PREF_VP_MULTI_PLAY_FLAG, bMultiPlay);
+       if (nErr != 0) {
+               VideoLogError("failed to set MULTI PLAY FLAG [0x%x]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bMultiPlay
+ * @return
+ */
+bool vp_play_config_get_multi_play_status(bool * bMultiPlay)
+{
+       int nErr = 0;
+       bool nVal = 0;
+
+       nErr = preference_get_boolean(PREF_VP_MULTI_PLAY_FLAG, &nVal);
+       if (nErr != 0) {
+               VideoLogError("failed to get MULTI PLAY FLAG [0x%x]", nErr);
+               return FALSE;
+       }
+
+       *bMultiPlay = (nVal == 0) ? FALSE : TRUE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bStatus
+ * @return
+ */
+bool vp_play_config_get_rotate_lock_status(bool * bStatus)
+{
+       bool bLocked = FALSE;
+       int nErr = -1;
+       nErr =
+               system_settings_get_value_bool
+               (SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO, &bLocked);
+       if (nErr != SYSTEM_SETTINGS_ERROR_NONE) {
+               VideoLogError("failed to get screen rotation status [0x%x]", nErr);
+               return FALSE;
+       }
+
+       *bStatus = bLocked;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nType
+ * @return
+ */
+bool vp_play_config_get_sort_type_key(int *nType)
+{
+
+       int nErr = 0;
+       int nVal = 0;
+
+       nErr = preference_get_int(PREF_VP_SORT_TYPE, &nVal);
+       if (nErr != 0) {
+               VideoLogError("failed to get sort type details [0x%x]", nErr);
+               return FALSE;
+       }
+
+       *nType = nVal;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @return
+ */
+bool vp_play_config_set_preview_url_videos(const char *szMediaURL)
+{
+       if (!szMediaURL) {
+               VideoLogError("szMediaURL is null");
+               return FALSE;
+       }
+
+       int nErr = 0;
+       const char *pStorePath = ".video-store";
+
+       if (strstr(szMediaURL, pStorePath) == NULL) {
+               nErr =
+                       preference_set_string(PREF_VP_VIDEO_PREVIEW_URL_VIDEOS,
+                                                                 szMediaURL);
+               if (nErr != 0) {
+                       VideoLogError("failed to set preview url [0x%x]", nErr);
+                       return FALSE;
+               }
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @return
+ */
+bool vp_play_config_get_preview_url_videos(char **szMediaURL)
+{
+       int nErr =
+               preference_get_string(PREF_VP_VIDEO_PREVIEW_URL_VIDEOS,
+                                                         szMediaURL);
+       if (nErr != 0 || *szMediaURL == NULL) {
+               VideoLogError("failed to get preview url [0x%x]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bConnect
+ * @return
+ */
+bool vp_play_config_get_wifi_direct_connect_status(bool * bConnect)
+{
+       int nErr = -1;
+       wifi_manager_connection_state_e nwifistate =
+               WIFI_MANAGER_CONNECTION_STATE_FAILURE;
+       wifi_direct_state_e nwifidirectstate = WIFI_DIRECT_STATE_DEACTIVATED;
+       bool bWifiState = FALSE;
+
+       nErr = wifi_manager_get_connection_state(g_WifiManager, &nwifistate);
+       if (nErr != WIFI_MANAGER_ERROR_NONE) {
+               VideoLogError("failed to get connection details [0x%x]", nErr);
+               return FALSE;
+       }
+
+       if (nwifistate == WIFI_MANAGER_CONNECTION_STATE_CONNECTED) {
+               bWifiState = TRUE;
+       }
+
+       nErr = wifi_direct_get_state(&nwifidirectstate);
+       if (nErr != WIFI_DIRECT_ERROR_NONE) {
+               VideoLogError("failed to get wifi-direct state [0x%x]", nErr);
+               return FALSE;
+       }
+
+       if (nwifidirectstate >= WIFI_DIRECT_STATE_CONNECTED) {
+               bWifiState = TRUE;
+       }
+       VideoLogError(" == %d == ", nwifidirectstate);
+
+       *bConnect = bWifiState;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bConnect
+ * @return
+ */
+bool vp_play_config_get_wifi_direct_active_status(bool * bConnect)
+{
+       int nErr = 0;
+       wifi_direct_state_e nVal = 0;
+       bool bWifiState = FALSE;
+
+       nErr = wifi_direct_get_state(&nVal);
+       if (nErr != WIFI_DIRECT_ERROR_NONE) {
+               VideoLogError("failed to get wifi direct state [0x%x]", nErr);
+               return FALSE;
+       }
+
+       if (nVal >= WIFI_DIRECT_STATE_ACTIVATED) {
+               bWifiState = TRUE;
+       }
+       VideoLogError(" == %d == ", nVal);
+
+       *bConnect = bWifiState;
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param bCallOn
+ * @return
+ */
+bool vp_play_config_get_call_state(bool * bCallOn)
+{
+       VideoLogInfo("start");
+       telephony_call_h *call_list_sim1, *call_list_sim2;
+       unsigned int count_sim1 = 0, count_sim2 = 0;
+       telephony_error_e ret_sim1, ret_sim2;
+
+       ret_sim1 =
+               telephony_call_get_call_list(tel_list.handle[0], &count_sim1,
+                                                                        &call_list_sim1);
+       if (ret_sim1 != TELEPHONY_ERROR_NONE) {
+               VideoLogError("Cannot get call list information for primary sim");
+       }
+
+       telephony_call_release_call_list(count_sim1, &call_list_sim1);
+
+       if (tel_list.count > 1) {
+               ret_sim2 =
+                       telephony_call_get_call_list(tel_list.handle[1], &count_sim2,
+                                                                                &call_list_sim2);
+               if (ret_sim2 != TELEPHONY_ERROR_NONE) {
+                       VideoLogError
+                               ("Cannot get call list information for secondey sim");
+               }
+               telephony_call_release_call_list(count_sim2, &call_list_sim2);
+       }
+
+       if (count_sim1 == 0 && count_sim2 == 0) {
+               *bCallOn = FALSE;
+               return false;
+       } else {
+               *bCallOn = TRUE;
+               return true;
+       }
+
+       return false;
+}
+
+/**
+ *
+ * @param handle
+ * @param noti_id
+ * @param data
+ * @param user_data
+ */
+static void _call_async_event_callback(telephony_h handle,
+                                                                          telephony_noti_e noti_id,
+                                                                          void *data, void *user_data)
+{
+       VideoLogDebug("call interrupt cb called");
+
+       PlayView *pPlayView = (PlayView *) user_data;
+       int ret = TELEPHONY_ERROR_NONE;
+       telephony_call_h *call_list_sim;
+       telephony_call_status_e status = TELEPHONY_CALL_STATUS_IDLE;
+       telephony_error_e ret_sim;
+       unsigned int count_sim = 0;
+
+       VideoLogDebug("Noti!!! Call Status [%d]!!!", noti_id);
+
+       ret_sim =
+                       telephony_call_get_call_list(handle, &count_sim,
+                                       &call_list_sim);
+       if (ret_sim != TELEPHONY_ERROR_NONE) {
+               VideoLogError("Cannot get call list information for the sim");
+               return;
+       }
+
+       if (call_list_sim) {
+               ret = telephony_call_get_status(*call_list_sim, &status);
+               if (ret != TELEPHONY_ERROR_NONE) {
+                       VideoLogError("getting call status failed");
+                       return;
+               }
+       }
+       VideoLogDebug("call status = %d", status);
+
+       telephony_call_release_call_list(count_sim, &call_list_sim);
+
+       if (status != TELEPHONY_CALL_STATUS_IDLE) {
+               if (!vp_play_normal_view_pause(pPlayView->pNormalView)) {
+                       VideoLogError("vp_play_normal_view_pause fail");
+               }
+       } else if (status == TELEPHONY_CALL_STATUS_IDLE) {
+               bool bManualPause = FALSE;
+               vp_play_normal_view_get_manual_pause(pPlayView->pNormalView,
+                                                                                        &bManualPause);
+               if (!bManualPause)
+                       vp_play_normal_view_set_resume_or_pause(pPlayView->
+                                                                                                       pNormalView);
+       }
+       return;
+}
+
+/**
+ *
+ *
+ * @param pUserData
+ * @return
+ */
+bool vp_play_telephony_initialize(void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("User Data is NULL hence telephony not initialized");
+               return FALSE;
+       }
+
+       int tel_valid = telephony_init(&tel_list);
+       if (tel_valid != TELEPHONY_ERROR_NONE) {
+               VideoLogError("telephony is not initialized. ERROR Code is %d",
+                                         tel_valid);
+               return FALSE;
+       }
+
+       int voice_call_noti_tbl_sz = (sizeof(voice_call_noti_tbl) / sizeof(int));
+       int video_call_noti_tbl_sz = (sizeof(video_call_noti_tbl) / sizeof(int));
+
+       /*setting callbacks */
+       for (int i = 0; i < tel_list.count; i++) {
+
+               int api_err;
+
+               for (int j = 0; j < voice_call_noti_tbl_sz; j++) {
+                       api_err =
+                               telephony_set_noti_cb(tel_list.handle[i], voice_call_noti_tbl[j],
+                                                                               (telephony_noti_cb)
+                                                                               _call_async_event_callback,
+                                                                               (void *) pUserData);
+                       if (api_err != TELEPHONY_ERROR_NONE) {
+                               VideoLogError
+                                       ("tel_register_noti_event for voice call failed ( api_err : %d ) !!",
+                                       api_err);
+                       }
+               }
+
+               for (int j = 0; j < video_call_noti_tbl_sz; j++) {
+                       api_err =
+                               telephony_set_noti_cb(tel_list.handle[i], video_call_noti_tbl[j],
+                                                                               (telephony_noti_cb)
+                                                                               _call_async_event_callback,
+                                                                               (void *) pUserData);
+                       if (api_err != TELEPHONY_ERROR_NONE) {
+                               VideoLogError
+                                       ("tel_register_noti_event for video call failed ( api_err : %d ) !!",
+                                        api_err);
+                       }
+               }
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+bool vp_play_telephony_deinitialize(void)
+{
+       telephony_h *newhandle = tel_list.handle;
+       int nErr = -1;
+       int voice_call_noti_tbl_sz = (sizeof(voice_call_noti_tbl) / sizeof(int));
+       int video_call_noti_tbl_sz = (sizeof(video_call_noti_tbl) / sizeof(int));
+
+       for (int i = 0; i < voice_call_noti_tbl_sz; i++) {
+               nErr =
+                       telephony_unset_noti_cb(*newhandle,
+                                                                       voice_call_noti_tbl[i]);
+               if (nErr != TELEPHONY_ERROR_NONE) {
+                       VideoLogError("telephony_unset_noti_cb is fail [0x%x] for voice call type %d",
+                                                       nErr, voice_call_noti_tbl[i]);
+               }
+       }
+
+       for (int i = 0; i < video_call_noti_tbl_sz; i++) {
+               nErr =
+                       telephony_unset_noti_cb(*newhandle,
+                                                                       video_call_noti_tbl[i]);
+               if (nErr != TELEPHONY_ERROR_NONE) {
+                       VideoLogError("telephony_unset_noti_cb is fail [0x%x] for video call type %d",
+                                                       nErr, video_call_noti_tbl[i]);
+               }
+       }
+
+       nErr = telephony_deinit(&tel_list);
+       if (nErr != TELEPHONY_ERROR_NONE) {
+               VideoLogError("telephony_deinit is fail [0x%x]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bChargeState
+ * @return
+ */
+bool vp_play_config_get_battery_charge_state(bool * bChargeState)
+{
+       int nErr = -1;
+       int nVal = 0;
+       nErr =
+               runtime_info_get_value_int(RUNTIME_INFO_KEY_BATTERY_IS_CHARGING,
+                                                                  &nVal);
+       if (nErr != RUNTIME_INFO_ERROR_NONE) {
+               VideoLogError("failed to get charging status [0x%x]", nErr);
+               return FALSE;
+       }
+
+       *bChargeState =
+               (nVal == RUNTIME_INFO_KEY_CHARGER_CONNECTED) ? TRUE : FALSE;
+       VideoLogInfo("bChargeState: %d", *bChargeState);
+       return TRUE;
+}
+
+/**
+ *
+ * @param bLCDOff
+ * @return
+ */
+bool vp_play_config_get_lcd_off_state(bool * bLCDOff)
+{
+       int nErr = 0;
+       display_state_e state = DISPLAY_STATE_NORMAL;
+       nErr = device_display_get_state(&state);
+       if (nErr != DEVICE_ERROR_NONE) {
+               VideoLogError("device_display_get_state is fail [0x%x]", nErr);
+               return FALSE;
+       }
+
+       if (state >= DISPLAY_STATE_SCREEN_DIM) {
+               *bLCDOff = TRUE;
+       } else {
+               *bLCDOff = FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pFunc
+ * @param pUserData
+ * @return
+ */
+bool
+vp_play_config_set_rotate_state_key_changed_cb(system_settings_changed_cb
+                                                                                          pFunc, void *pUserData)
+{
+       int nErr = -1;
+       nErr =
+               system_settings_set_changed_cb
+               (SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO, pFunc,
+                pUserData);
+       if (nErr != SYSTEM_SETTINGS_ERROR_NONE) {
+               VideoLogError("failed to register rotation callback [0x%x]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pFunc
+ * @param pUserData
+ * @return
+ */
+bool
+vp_play_config_set_lock_state_key_changed_cb(system_settings_changed_cb
+                                                                                        pFunc, void *pUserData)
+{
+       int nErr = -1;
+       nErr =
+               system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_LOCK_STATE,
+                                                                          pFunc, pUserData);
+       if (nErr != SYSTEM_SETTINGS_ERROR_NONE) {
+               VideoLogError("failed to register lock state callback [0x%x]",
+                                         nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+bool vp_play_config_ignore_rotate_state_key_changed_cb()
+{
+       int nErr = -1;
+       nErr =
+               system_settings_unset_changed_cb
+               (SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO);
+       if (nErr != SYSTEM_SETTINGS_ERROR_NONE) {
+               VideoLogError("failed to un-register rotation callback [0x%x]",
+                                         nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pFunc
+ * @param pUserData
+ * @return
+ */
+bool
+vp_play_config_set_battery_charge_state_key_changed_cb
+(runtime_info_changed_cb pFunc, void *pUserData)
+{
+       int nErr = -1;
+       nErr =
+               runtime_info_set_changed_cb(RUNTIME_INFO_KEY_BATTERY_IS_CHARGING,
+                                                                       pFunc, pUserData);
+       if (nErr != RUNTIME_INFO_ERROR_NONE) {
+               VideoLogError
+                       ("failed to register battery charging callback [0x%x]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+bool vp_play_wifi_initialize()
+{
+       int nErr = -1;
+
+       if (g_WifiManager) {
+               vp_play_wifi_deinitialize();
+       }
+
+       nErr = wifi_manager_initialize(&g_WifiManager);
+       if (nErr != WIFI_MANAGER_ERROR_NONE) {
+               VideoLogError("wifi_initialize is fail [0x%x]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pFunc
+ * @param pUserData
+ * @return
+ */
+bool
+vp_play_config_set_wifi_state_key_changed_cb
+(wifi_manager_connection_state_changed_cb pFunc, void *pUserData)
+{
+       int nErr = -1;
+
+       if (!g_WifiManager) {
+               VideoLogWarning("Wifi manager not initialized");
+               return FALSE;
+       }
+       nErr =
+               wifi_manager_set_connection_state_changed_cb(g_WifiManager, pFunc,
+                                                                                                        pUserData);
+       if (nErr != WIFI_MANAGER_ERROR_NONE) {
+               VideoLogError
+                       ("failed to register wifi state changed callback [0x%x]",
+                        nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+bool vp_play_config_ignore_battery_charge_state_key_changed_cb()
+{
+       int nErr = -1;
+       nErr =
+               runtime_info_unset_changed_cb
+               (RUNTIME_INFO_KEY_BATTERY_IS_CHARGING);
+       if (nErr != RUNTIME_INFO_ERROR_NONE) {
+               VideoLogError
+                       ("failed to un-register battery charging callback [0x%x]",
+                        nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+bool vp_play_config_ignore_wifi_state_key_changed_cb()
+{
+       int nErr = -1;
+       nErr = wifi_manager_unset_connection_state_changed_cb(g_WifiManager);
+       if (nErr != WIFI_MANAGER_ERROR_NONE) {
+               VideoLogError
+                       ("failed to un-register wifi state changed callback [0x%x]",
+                        nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ */
+void vp_play_wifi_deinitialize()
+{
+       int nErr = -1;
+
+       if (g_WifiManager) {
+               nErr = wifi_manager_deinitialize(g_WifiManager);
+               if (nErr != WIFI_MANAGER_ERROR_NONE) {
+                       VideoLogError("wifi_deinitialize is fail [0x%x]", nErr);
+               }
+               g_WifiManager = NULL;
+       }
+}
diff --git a/playview/src/common/vp-play-preference.c b/playview/src/common/vp-play-preference.c
new file mode 100755 (executable)
index 0000000..1652447
--- /dev/null
@@ -0,0 +1,1574 @@
+/*
+ * Copyright (c) 2020 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 <app_preference.h>
+
+#include "vp-play-preference.h"
+
+/* check temp */
+#include "vp-play-log.h"
+#include "vp-play-type-define.h"
+
+
+#define VP_PREFERENCE_KEY_GENERAL_BACKGROUND_PLAYING           "preference/org.tizen.videos/backgroud_playing"
+#define VP_PREFERENCE_KEY_SUBTILE_SHOW                         "preference/org.tizen.videos/show_subtitle"
+#define VP_PREFERENCE_KEY_SUBTILE_SIZE                         "preference/org.tizen.videos/subtitle_size"
+#define VP_PREFERENCE_KEY_SUBTILE_EDGE                         "preference/org.tizen.videos/subtitle_edge"
+
+#define VP_PREFERENCE_KEY_SUBTILE_FONT                         "preference/org.tizen.videos/subtitle_font"
+#define VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR                   "preference/org.tizen.videos/subtitle_font_color"
+#define VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR_HEX                               "preference/org.tizen.videos/subtitle_font_color_hex"
+#define VP_PREFERENCE_KEY_SUBTILE_BG_COLOR                             "preference/org.tizen.videos/subtitle_bg_color"
+#define VP_PREFERENCE_KEY_SUBTILE_BG_COLOR_HEX                         "preference/org.tizen.videos/subtitle_bg_color_hex"
+#define VP_PREFERENCE_KEY_SUBTILE_CAPTION_WIN_COLOR_HEX                                "preference/org.tizen.videos/subtitle_caption_win_color_hex"
+#define VP_PREFERENCE_KEY_SUBTILE_ALIGNMENT                    "preference/org.tizen.videos/subtitle_alignment"
+
+#define VP_PREFERENCE_KEY_REPEAT_MODE                          "preference/org.tizen.videos/repeat_mode"
+#define VP_PREFERENCE_KEY_SCREEN_MODE                          "preference/org.tizen.videos/screen_mode"
+#define VP_PREFERENCE_KEY_PREVIEW_URL_VIDEOS                   "preference/org.tizen.videos/preview_url_videos"
+#define VP_PREFERENCE_KEY_PREVIEW_AUDIO_TRACK                  "preference/org.tizen.videos/preview_audio_track"
+
+#define VP_PREFERENCE_KEY_SENSOR_ASKED                         "preference/org.tizen.videos/motion_asked"
+#define VP_PREFERENCE_KEY_VIDEOS_SORT_TYPE                             "preference/org.tizen.videos/sort_type"
+#define VP_PREFERENCE_KEY_CAPTURE_MODE_ON                              "preference/org.tizen.videos/capture_on"
+
+#define VP_PREFERENCE_KEY_TAG_ACTIVE                           "preference/org.tizen.videos/tag_active"
+#define VP_PREFERENCE_KEY_TAG_WEATHER                          "preference/org.tizen.videos/tag_weather"
+#define VP_PREFERENCE_KEY_TAG_LOCATION                         "preference/org.tizen.videos/tag_location"
+#define VP_PREFERENCE_KEY_TAG_EDIT_WEATHER                             "preference/org.tizen.videos/tag_edit_weather"
+
+#define VP_PREFERENCE_KEY_ALLOW_DOCK_CONNECT                   "preference/org.tizen.videos/allow_dock_connect"
+#define VP_PREFERENCE_KEY_EXTERN_MODE                          "preference/org.tizen.videos/extern_mode"
+#define VP_PREFERENCE_KEY_MULTI_PLAY_FLAG      "preference/org.tizen.videos/multi_play"
+#define VP_PREFERENCE_KEY_SCREEN_MIRRORING_WARNING                     "preference/org.tizen.videos/mirroring_warning"
+
+
+/*for saving sound alive value*/
+#define VP_PREFERENCE_KEY_SOUND_ALIVE                          "preference/org.tizen.videos/sound_alive"
+
+/**
+ *
+ */
+void vp_play_preference_init()
+{
+       VideoLogInfo("");
+
+       int nErr = PREFERENCE_ERROR_NONE;
+       bool exist;
+
+       nErr =
+               preference_is_existing
+               (VP_PREFERENCE_KEY_GENERAL_BACKGROUND_PLAYING, &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr =
+                               preference_set_int
+                               (VP_PREFERENCE_KEY_GENERAL_BACKGROUND_PLAYING, 0);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("VP_PREFERENCE_KEY_GENERAL_BACKGROUND_PLAYING is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr = preference_is_existing(VP_PREFERENCE_KEY_SUBTILE_SHOW, &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr =
+                               preference_set_boolean(VP_PREFERENCE_KEY_SUBTILE_SHOW, 1);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_SUBTILE_SHOW is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr = preference_is_existing(VP_PREFERENCE_KEY_SUBTILE_SIZE, &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr = preference_set_int(VP_PREFERENCE_KEY_SUBTILE_SIZE, 1);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_SUBTILE_SIZE is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr = preference_is_existing(VP_PREFERENCE_KEY_SUBTILE_EDGE, &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr = preference_set_int(VP_PREFERENCE_KEY_SUBTILE_EDGE, 1);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_SUBTILE_EDGE is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr = preference_is_existing(VP_PREFERENCE_KEY_SUBTILE_FONT, &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr =
+                               preference_set_string(VP_PREFERENCE_KEY_SUBTILE_FONT,
+                                                                         "Tizen");
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_SUBTILE_FONT is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr =
+               preference_is_existing(VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR,
+                                                          &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr =
+                               preference_set_int(VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR,
+                                                                  0);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr =
+               preference_is_existing(VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR_HEX,
+                                                          &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr =
+                               preference_set_string
+                               (VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR_HEX, "#ffffffff");
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR_HEX is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr =
+               preference_is_existing(VP_PREFERENCE_KEY_SUBTILE_BG_COLOR, &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr =
+                               preference_set_int(VP_PREFERENCE_KEY_SUBTILE_BG_COLOR, 1);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_SUBTILE_BG_COLOR is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr =
+               preference_is_existing(VP_PREFERENCE_KEY_SUBTILE_BG_COLOR_HEX,
+                                                          &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr =
+                               preference_set_string
+                               (VP_PREFERENCE_KEY_SUBTILE_BG_COLOR_HEX, "#00000000");
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_SUBTILE_BG_COLOR_HEX is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr =
+               preference_is_existing
+               (VP_PREFERENCE_KEY_SUBTILE_CAPTION_WIN_COLOR_HEX, &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr =
+                               preference_set_string
+                               (VP_PREFERENCE_KEY_SUBTILE_CAPTION_WIN_COLOR_HEX,
+                                "#00000000");
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_SUBTILE_CAPTION_WIN_COLOR_HEX is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr =
+               preference_is_existing(VP_PREFERENCE_KEY_SUBTILE_ALIGNMENT,
+                                                          &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr =
+                               preference_set_int(VP_PREFERENCE_KEY_SUBTILE_ALIGNMENT, 1);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_SUBTILE_ALIGNMENT is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr = preference_is_existing(VP_PREFERENCE_KEY_REPEAT_MODE, &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr = preference_set_int(VP_PREFERENCE_KEY_REPEAT_MODE, 1);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_REPEAT_MODE is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr = preference_is_existing(VP_PREFERENCE_KEY_SCREEN_MODE, &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr = preference_set_int(VP_PREFERENCE_KEY_SCREEN_MODE, 0);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_SCREEN_MODE is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr =
+               preference_is_existing(VP_PREFERENCE_KEY_PREVIEW_URL_VIDEOS,
+                                                          &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr =
+                               preference_set_string
+                               (VP_PREFERENCE_KEY_PREVIEW_URL_VIDEOS, "");
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_PREVIEW_URL_VIDEOS is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr =
+               preference_is_existing(VP_PREFERENCE_KEY_PREVIEW_AUDIO_TRACK,
+                                                          &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr =
+                               preference_set_int(VP_PREFERENCE_KEY_PREVIEW_AUDIO_TRACK,
+                                                                  0);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_PREVIEW_AUDIO_TRACK is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr = preference_is_existing(VP_PREFERENCE_KEY_SENSOR_ASKED, &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr =
+                               preference_set_boolean(VP_PREFERENCE_KEY_SENSOR_ASKED, 0);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_SENSOR_ASKED is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr =
+               preference_is_existing(VP_PREFERENCE_KEY_VIDEOS_SORT_TYPE, &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr =
+                               preference_set_int(VP_PREFERENCE_KEY_VIDEOS_SORT_TYPE, 0);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_VIDEOS_SORT_TYPE is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr =
+               preference_is_existing(VP_PREFERENCE_KEY_CAPTURE_MODE_ON, &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr =
+                               preference_set_boolean(VP_PREFERENCE_KEY_CAPTURE_MODE_ON,
+                                                                          0);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_CAPTURE_MODE_ON is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr = preference_is_existing(VP_PREFERENCE_KEY_TAG_ACTIVE, &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr = preference_set_boolean(VP_PREFERENCE_KEY_TAG_ACTIVE, 1);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_TAG_ACTIVE is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr = preference_is_existing(VP_PREFERENCE_KEY_TAG_WEATHER, &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr =
+                               preference_set_boolean(VP_PREFERENCE_KEY_TAG_WEATHER, 1);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_TAG_WEATHER is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr = preference_is_existing(VP_PREFERENCE_KEY_TAG_LOCATION, &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr =
+                               preference_set_boolean(VP_PREFERENCE_KEY_TAG_LOCATION, 1);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_TAG_LOCATION is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr =
+               preference_is_existing(VP_PREFERENCE_KEY_TAG_EDIT_WEATHER, &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr =
+                               preference_set_int(VP_PREFERENCE_KEY_TAG_EDIT_WEATHER, 0);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_TAG_EDIT_WEATHER is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr =
+               preference_is_existing(VP_PREFERENCE_KEY_ALLOW_DOCK_CONNECT,
+                                                          &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr =
+                               preference_set_boolean
+                               (VP_PREFERENCE_KEY_ALLOW_DOCK_CONNECT, 1);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_ALLOW_DOCK_CONNECT is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr = preference_is_existing(VP_PREFERENCE_KEY_EXTERN_MODE, &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr =
+                               preference_set_boolean(VP_PREFERENCE_KEY_EXTERN_MODE, 0);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_EXTERN_MODE is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr =
+               preference_is_existing(VP_PREFERENCE_KEY_MULTI_PLAY_FLAG, &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr =
+                               preference_set_boolean(VP_PREFERENCE_KEY_MULTI_PLAY_FLAG,
+                                                                          0);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_MULTI_PLAY_FLAG is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr =
+               preference_is_existing(VP_PREFERENCE_KEY_SCREEN_MIRRORING_WARNING,
+                                                          &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr =
+                               preference_set_boolean
+                               (VP_PREFERENCE_KEY_SCREEN_MIRRORING_WARNING, 1);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_SCREEN_MIRRORING_WARNING is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+
+       nErr = preference_is_existing(VP_PREFERENCE_KEY_SOUND_ALIVE, &exist);
+       if (nErr != 0) {
+               VideoLogError("preference_is_existing is fail [%d]", nErr);
+       } else {
+               if (!exist) {
+                       nErr = preference_set_int(VP_PREFERENCE_KEY_SOUND_ALIVE, 1);
+                       if (nErr != 0) {
+                               VideoLogError
+                                       ("SET VP_PREFERENCE_KEY_SOUND_ALIVE is fail [%d]",
+                                        nErr);
+                       }
+               }
+       }
+}
+
+/**
+ *
+ * @param bMultiPlay
+ * @return
+ */
+bool vp_play_preference_set_multi_play_status(bool bMultiPlay)
+{
+       int nErr = 0;
+
+       nErr =
+               preference_set_boolean(VP_PREFERENCE_KEY_MULTI_PLAY_FLAG,
+                                                          bMultiPlay);
+       if (nErr != 0) {
+               VideoLogError
+                       ("SET VP_PREFERENCE_KEY_MULTI_PLAY_FLAG is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bMultiPlay
+ * @return
+ */
+bool vp_play_preference_get_multi_play_status(bool * bMultiPlay)
+{
+       int nErr = 0;
+       bool nVal = 0;
+
+       nErr =
+               preference_get_boolean(VP_PREFERENCE_KEY_MULTI_PLAY_FLAG, &nVal);
+       if (nErr != 0) {
+               VideoLogError("GET preference_get_boolean is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       *bMultiPlay = (nVal == 0) ? FALSE : TRUE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bMultiPlay
+ * @return
+ */
+bool vp_play_preference_set_mirroring_warning_status(bool bMultiPlay)
+{
+       int nErr = 0;
+
+       nErr =
+               preference_set_boolean(VP_PREFERENCE_KEY_SCREEN_MIRRORING_WARNING,
+                                                          bMultiPlay);
+       if (nErr != 0) {
+               VideoLogError
+                       ("SET VP_PREFERENCE_KEY_SCREEN_MIRRORING_WARNING is fail [%d]",
+                        nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bWarning
+ * @return
+ */
+bool vp_play_preference_get_mirroring_warning_status(bool * bWarning)
+{
+       int nErr = 0;
+       bool nVal = 0;
+
+       nErr =
+               preference_get_boolean(VP_PREFERENCE_KEY_SCREEN_MIRRORING_WARNING,
+                                                          &nVal);
+       if (nErr != 0) {
+               VideoLogError
+                       ("GET VP_PREFERENCE_KEY_SCREEN_MIRRORING_WARNING is fail [%d]",
+                        nErr);
+               return FALSE;
+       }
+
+       *bWarning = (nVal == 0) ? FALSE : TRUE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bShow
+ * @return
+ */
+bool vp_play_preference_get_subtitle_show_key(bool * bShow)
+{
+       int nErr = 0;
+       bool nVal = 0;
+
+       nErr = preference_get_boolean(VP_PREFERENCE_KEY_SUBTILE_SHOW, &nVal);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_SUBTILE_SHOW is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       *bShow = (nVal == 0) ? FALSE : TRUE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bShow
+ * @return
+ */
+bool vp_play_preference_set_subtitle_show_key(bool bShow)
+{
+       int nErr = 0;
+
+       nErr = preference_set_boolean(VP_PREFERENCE_KEY_SUBTILE_SHOW, bShow);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_SUBTILE_SHOW is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szFontName
+ * @return
+ */
+bool vp_play_preference_set_subtitle_font_name_key(const char *szFontName)
+{
+       int nErr = 0;
+
+       nErr =
+               preference_set_string(VP_PREFERENCE_KEY_SUBTILE_FONT, szFontName);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_SUBTILE_FONT is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szFontName
+ * @return
+ */
+bool vp_play_preference_get_subtitle_font_name_key(char **szFontName)
+{
+       int nErr = 0;
+       nErr =
+               preference_get_string(VP_PREFERENCE_KEY_SUBTILE_FONT, szFontName);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_SUBTILE_FONT is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nSize
+ * @return
+ */
+bool vp_play_preference_get_subtitle_size_key(int *nSize)
+{
+       int nErr = 0;
+       int nVal = 0;
+
+       nErr = preference_get_int(VP_PREFERENCE_KEY_SUBTILE_SIZE, &nVal);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_SUBTILE_SIZE is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       *nSize = nVal;
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param nSize
+ * @return
+ */
+bool vp_play_preference_set_subtitle_size_key(int nSize)
+{
+       int nErr = 0;
+
+       nErr = preference_set_int(VP_PREFERENCE_KEY_SUBTILE_SIZE, nSize);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_SUBTILE_SIZE is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nEdge
+ * @return
+ */
+bool vp_play_preference_get_subtitle_edge_key(int *nEdge)
+{
+       int nErr = 0;
+       int nVal = 0;
+
+       nErr = preference_get_int(VP_PREFERENCE_KEY_SUBTILE_EDGE, &nVal);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_SUBTILE_EDGE is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       *nEdge = nVal;
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param nEdge
+ * @return
+ */
+bool vp_play_preference_set_subtitle_edge_key(int nEdge)
+{
+       int nErr = 0;
+
+       nErr = preference_set_int(VP_PREFERENCE_KEY_SUBTILE_EDGE, nEdge);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_SUBTILE_EDGE is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nAlignment
+ * @return
+ */
+bool vp_play_preference_set_subtitle_alignment_key(int nAlignment)
+{
+       int nErr = 0;
+
+       nErr =
+               preference_set_int(VP_PREFERENCE_KEY_SUBTILE_ALIGNMENT,
+                                                  nAlignment);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_SUBTILE_SIZE is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nAlignment
+ * @return
+ */
+bool vp_play_preference_get_subtitle_alignment_key(int *nAlignment)
+{
+       int nErr = 0;
+       int nVal = 0;
+
+       nErr = preference_get_int(VP_PREFERENCE_KEY_SUBTILE_ALIGNMENT, &nVal);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_SUBTILE_SIZE is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       *nAlignment = nVal;
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param nColor
+ * @return
+ */
+bool vp_play_preference_set_subtitle_font_color_key(int nColor)
+{
+       int nErr = 0;
+
+       nErr =
+               preference_set_int(VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR, nColor);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_SUBTILE_SIZE is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nColor
+ * @return
+ */
+bool vp_play_preference_get_subtitle_font_color_key(int *nColor)
+{
+       int nErr = 0;
+       int nVal = 0;
+
+       nErr = preference_get_int(VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR, &nVal);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_SUBTILE_SIZE is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       *nColor = nVal;
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param szColorHex
+ * @return
+ */
+bool vp_play_preference_set_subtitle_font_color_hex_key(const char
+                                                                                                               *szColorHex)
+{
+       int nErr = 0;
+
+       nErr =
+               preference_set_string(VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR_HEX,
+                                                         szColorHex);
+       if (nErr != 0) {
+               VideoLogError
+                       ("VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR_HEX is fail [%d]",
+                        nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szColorHex
+ * @return
+ */
+bool vp_play_preference_get_subtitle_font_color_hex_key(char **szColorHex)
+{
+       int nErr = 0;
+       nErr =
+               preference_get_string(VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR_HEX,
+                                                         szColorHex);
+       if (nErr != 0) {
+               VideoLogError
+                       ("VP_PREFERENCE_KEY_SUBTILE_FONT_COLOR_HEX is fail [%d]",
+                        nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szColorHex
+ * @return
+ */
+bool vp_play_preference_set_subtitle_bg_color_hex_key(const char
+                                                                                                         *szColorHex)
+{
+       int nErr = 0;
+
+       nErr =
+               preference_set_string(VP_PREFERENCE_KEY_SUBTILE_BG_COLOR_HEX,
+                                                         szColorHex);
+       if (nErr != 0) {
+               VideoLogError
+                       ("VP_PREFERENCE_KEY_SUBTILE_BG_COLOR_HEX is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szColorHex
+ * @return
+ */
+bool vp_play_preference_get_subtitle_bg_color_hex_key(char **szColorHex)
+{
+       int nErr = 0;
+       nErr =
+               preference_get_string(VP_PREFERENCE_KEY_SUBTILE_BG_COLOR_HEX,
+                                                         szColorHex);
+       if (nErr != 0) {
+               VideoLogError
+                       ("VP_PREFERENCE_KEY_SUBTILE_BG_COLOR_HEX is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szColorHex
+ * @return
+ */
+bool vp_play_preference_set_subtitle_caption_win_color_hex_key(const char
+                                                                                                                          *szColorHex)
+{
+       int nErr = 0;
+
+       nErr =
+               preference_set_string
+               (VP_PREFERENCE_KEY_SUBTILE_CAPTION_WIN_COLOR_HEX, szColorHex);
+       if (nErr != 0) {
+               VideoLogError
+                       ("VP_PREFERENCE_KEY_SUBTILE_CAPTION_WIN_COLOR_HEX is fail [%d]",
+                        nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szColorHex
+ * @return
+ */
+bool vp_play_preference_get_subtitle_caption_win_color_hex_key(char
+                                                                                                                          **szColorHex)
+{
+       int nErr = 0;
+       nErr =
+               preference_get_string
+               (VP_PREFERENCE_KEY_SUBTILE_CAPTION_WIN_COLOR_HEX, szColorHex);
+       if (nErr != 0) {
+               VideoLogError
+                       ("VP_PREFERENCE_KEY_SUBTILE_CAPTION_WIN_COLOR_HEX is fail [%d]",
+                        nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nColor
+ * @return
+ */
+bool vp_play_preference_get_subtitle_bg_color_key(int *nColor)
+{
+       int nErr = 0;
+       int nVal = 0;
+
+       nErr = preference_get_int(VP_PREFERENCE_KEY_SUBTILE_BG_COLOR, &nVal);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_SUBTILE_BG_COLOR is fail [%d]",
+                                         nErr);
+               return FALSE;
+       }
+
+       *nColor = nVal;
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param nColor
+ * @return
+ */
+bool vp_play_preference_set_subtitle_bg_color_key(int nColor)
+{
+       int nErr = 0;
+
+       nErr = preference_set_int(VP_PREFERENCE_KEY_SUBTILE_BG_COLOR, nColor);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_SUBTILE_BG_COLOR is fail [%d]",
+                                         nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nMode
+ * @return
+ */
+bool vp_play_preference_get_repeat_mode_key(int *nMode)
+{
+       int nErr = 0;
+       int nVal = 0;
+
+       nErr = preference_get_int(VP_PREFERENCE_KEY_REPEAT_MODE, &nVal);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_REPEAT_MODE is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       *nMode = nVal;
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param nMode
+ * @return
+ */
+bool vp_play_preference_set_repeat_mode_key(int nMode)
+{
+       int nErr = 0;
+
+       nErr = preference_set_int(VP_PREFERENCE_KEY_REPEAT_MODE, nMode);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_REPEAT_MODE is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nMode
+ * @return
+ */
+bool vp_play_preference_get_screen_mode_key(int *nMode)
+{
+       int nErr = 0;
+       int nVal = 0;
+
+       nErr = preference_get_int(VP_PREFERENCE_KEY_SCREEN_MODE, &nVal);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_SCREEN_MODE is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       *nMode = nVal;
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param nMode
+ * @return
+ */
+bool vp_play_preference_set_screen_mode_key(int nMode)
+{
+       int nErr = 0;
+
+       nErr = preference_set_int(VP_PREFERENCE_KEY_SCREEN_MODE, nMode);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_SCREEN_MODE is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       VideoLogInfo("== SCRENN MODE SET : %d", nMode);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_get_capture_on_key(bool * bEnable)
+{
+       int nErr = 0;
+       bool nVal = 0;
+
+       nErr =
+               preference_get_boolean(VP_PREFERENCE_KEY_CAPTURE_MODE_ON, &nVal);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_CAPTURE_MODE_ON is fail [%d]",
+                                         nErr);
+               return FALSE;
+       }
+
+       *bEnable = (nVal == 0) ? FALSE : TRUE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_set_capture_on_key(bool bEnable)
+{
+       int nErr = 0;
+
+       nErr =
+               preference_set_boolean(VP_PREFERENCE_KEY_CAPTURE_MODE_ON, bEnable);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_CAPTURE_MODE_ON is fail [%d]",
+                                         nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_get_tag_active_key(bool * bEnable)
+{
+       int nErr = 0;
+       bool nVal = 0;
+
+       nErr = preference_get_boolean(VP_PREFERENCE_KEY_TAG_ACTIVE, &nVal);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_TAG_ACTIVE is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       *bEnable = (nVal == 0) ? FALSE : TRUE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_set_tag_active_key(bool bEnable)
+{
+       int nErr = 0;
+
+       nErr = preference_set_boolean(VP_PREFERENCE_KEY_TAG_ACTIVE, bEnable);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_TAG_ACTIVE is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_get_tag_weather_key(bool * bEnable)
+{
+       int nErr = 0;
+       bool nVal = 0;
+
+       nErr = preference_get_boolean(VP_PREFERENCE_KEY_TAG_WEATHER, &nVal);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_TAG_WEATHER is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       *bEnable = (nVal == 0) ? FALSE : TRUE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_set_tag_weather_key(bool bEnable)
+{
+       int nErr = 0;
+
+       nErr = preference_set_boolean(VP_PREFERENCE_KEY_TAG_WEATHER, bEnable);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_TAG_WEATHER is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_get_tag_location_key(bool * bEnable)
+{
+       int nErr = 0;
+       bool nVal = 0;
+
+       nErr = preference_get_boolean(VP_PREFERENCE_KEY_TAG_LOCATION, &nVal);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_TAG_LOCATION is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       *bEnable = (nVal == 0) ? FALSE : TRUE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_set_tag_location_key(bool bEnable)
+{
+       int nErr = 0;
+
+       nErr = preference_set_boolean(VP_PREFERENCE_KEY_TAG_LOCATION, bEnable);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_TAG_LOCATION is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nWeather
+ * @return
+ */
+bool vp_play_preference_get_tag_edit_weather_key(int *nWeather)
+{
+
+       int nErr = 0;
+       int nVal = 0;
+
+       nErr = preference_get_int(VP_PREFERENCE_KEY_TAG_EDIT_WEATHER, &nVal);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_TAG_EDIT_WEATHER is fail [%d]",
+                                         nErr);
+               return FALSE;
+       }
+
+       *nWeather = nVal;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nWeather
+ * @return
+ */
+bool vp_play_preference_set_tag_edit_weather_key(int nWeather)
+{
+       int nErr = 0;
+
+       nErr =
+               preference_set_int(VP_PREFERENCE_KEY_TAG_EDIT_WEATHER, nWeather);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_TAG_EDIT_WEATHER is fail [%d]",
+                                         nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nType
+ * @return
+ */
+bool vp_play_preference_get_sort_type_key(int *nType)
+{
+
+       int nErr = 0;
+       int nVal = 0;
+
+       nErr = preference_get_int(VP_PREFERENCE_KEY_VIDEOS_SORT_TYPE, &nVal);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_VIDEOS_SORT_TYPE is fail [%d]",
+                                         nErr);
+               return FALSE;
+       }
+
+       *nType = nVal;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @return
+ */
+bool vp_play_preference_set_preview_url_videos(const char *szMediaURL)
+{
+       if (!szMediaURL) {
+               VideoLogError("szMediaURL is null");
+               return FALSE;
+       }
+
+       int nErr = 0;
+       const char *pStorePath = ".video-store";
+
+       if (strstr(szMediaURL, pStorePath) == NULL) {
+               nErr =
+                       preference_set_string(VP_PREFERENCE_KEY_PREVIEW_URL_VIDEOS,
+                                                                 szMediaURL);
+               if (nErr != 0) {
+                       VideoLogError
+                               ("VP_PREFERENCE_KEY_PREVIEW_URL_VIDEOS is fail [%d]",
+                                nErr);
+                       return FALSE;
+               }
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @return
+ */
+bool vp_play_preference_get_preview_url_videos(char **szMediaURL)
+{
+       int nErr = 0;
+
+       nErr =
+               preference_get_string(VP_PREFERENCE_KEY_PREVIEW_URL_VIDEOS,
+                                                         szMediaURL);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_PREVIEW_URL_VIDEOS is fail [%d]",
+                                         nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nAudioTrack
+ * @return
+ */
+bool vp_play_preference_set_preview_audio_track(int nAudioTrack)
+{
+       int nErr = 0;
+
+       nErr =
+               preference_set_int(VP_PREFERENCE_KEY_PREVIEW_AUDIO_TRACK,
+                                                  nAudioTrack);
+       if (nErr != 0) {
+               VideoLogError
+                       ("VP_PREFERENCE_KEY_PREVIEW_AUDIO_TRACK is fail [%d]", nErr);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+/**
+ *
+ * @param nAudioTrack
+ * @return
+ */
+bool vp_play_preference_get_preview_audio_track(int *nAudioTrack)
+{
+       int nErr = 0;
+       int nVal = 0;
+
+       nErr =
+               preference_get_int(VP_PREFERENCE_KEY_PREVIEW_AUDIO_TRACK, &nVal);
+       if (nErr != 0) {
+               VideoLogError
+                       ("VP_PREFERENCE_KEY_PREVIEW_AUDIO_TRACK is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       *nAudioTrack = nVal;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bAsked
+ * @return
+ */
+bool vp_play_preference_get_sensor_asked_state(bool * bAsked)
+{
+       int nErr = 0;
+       bool nVal = 0;
+
+       nErr = preference_get_boolean(VP_PREFERENCE_KEY_SENSOR_ASKED, &nVal);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_SENSOR_ASKED is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       *bAsked = (nVal == 0) ? FALSE : TRUE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bAsked
+ * @return
+ */
+bool vp_play_preference_set_sensor_asked_state(bool bAsked)
+{
+       int nErr = 0;
+
+       nErr = preference_set_boolean(VP_PREFERENCE_KEY_SENSOR_ASKED, bAsked);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_SENSOR_ASKED is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_get_allow_dock_connect_key(bool * bEnable)
+{
+       int nErr = 0;
+       bool nVal = 0;
+
+       nErr =
+               preference_get_boolean(VP_PREFERENCE_KEY_ALLOW_DOCK_CONNECT,
+                                                          &nVal);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_ALLOW_DOCK_CONNECT is fail [%d]",
+                                         nErr);
+               return FALSE;
+       }
+
+       *bEnable = (nVal == 0) ? FALSE : TRUE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_set_allow_dock_connect_key(bool bEnable)
+{
+       int nErr = 0;
+
+       nErr =
+               preference_set_boolean(VP_PREFERENCE_KEY_ALLOW_DOCK_CONNECT,
+                                                          bEnable);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_ALLOW_DOCK_CONNECT is fail [%d]",
+                                         nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_get_extern_mode_key(bool * bEnable)
+{
+       int nErr = 0;
+       bool nVal = 0;
+
+       nErr = preference_get_boolean(VP_PREFERENCE_KEY_EXTERN_MODE, &nVal);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_EXTERN_MODE is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       *bEnable = (nVal == 0) ? FALSE : TRUE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_play_preference_set_extern_mode_key(bool bEnable)
+{
+       int nErr = 0;
+
+       nErr = preference_set_boolean(VP_PREFERENCE_KEY_EXTERN_MODE, bEnable);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_EXTERN_MODE is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nStatus
+ * @return
+ */
+bool vp_play_preference_get_sound_alive_status(int *nStatus)
+{
+       int nErr = 0;
+       int nVal = 0;
+
+       nErr = preference_get_int(VP_PREFERENCE_KEY_SOUND_ALIVE, &nVal);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_SOUND_ALIVE is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       *nStatus = nVal;
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param nStatus
+ * @return
+ */
+bool vp_play_preference_set_sound_alive_status(int nStatus)
+{
+       int nErr = 0;
+
+       nErr = preference_set_int(VP_PREFERENCE_KEY_SOUND_ALIVE, nStatus);
+       if (nErr != 0) {
+               VideoLogError("VP_PREFERENCE_KEY_SOUND_ALIVE is fail [%d]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
diff --git a/playview/src/common/vp-play-ug.c b/playview/src/common/vp-play-ug.c
new file mode 100755 (executable)
index 0000000..ef5de33
--- /dev/null
@@ -0,0 +1,229 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-macro-define.h"
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+
+/* check temp */
+#include "vp-play-log.h"
+#include "vp-play-normal-view.h"
+
+
+#define MESSAGE_UG_NAME                "msg-composer-efl"
+#define EMAIL_UG_NAME                  "email-composer-efl"
+#define BLUETOOTH_UG_NAME              "setting-bluetooth-efl"
+#define FTM_UG_NAME                    "fileshare-efl"
+#define VIDEOS_APP_NAME                        "org.tizen.videos"
+#define BROWSER_APP_NAME               "org.tizen.browser"
+#define VIDEO_STORE_DOWNLOAD_SVC       "org.tizen.video-store-download-svc"
+
+
+#define        VP_VIDEOS_VALUE_TRUE            "true"
+#define        VP_VIDEOS_VALUE_FALSE           "false"
+
+#define        VP_VIDEOS_ONLY_RAISE            "raise"
+
+/* callback functions */
+
+/**
+ *
+ * @param pRequest
+ * @param pReply
+ * @param nResult
+ * @param pUserData
+ */
+static void __vp_play_ug_reply_cb(app_control_h pRequest,
+                                                                 app_control_h pReply,
+                                                                 app_control_result_e nResult,
+                                                                 void *pUserData)
+{
+       if (pRequest) {
+               char *appId;
+               app_control_get_app_id(pRequest, &appId);
+               VideoLogWarning("Request : %s", appId);
+               VP_FREE(appId);
+       }
+
+       if (pReply) {
+               char *appId;
+               app_control_get_app_id(pReply, &appId);
+               VideoLogWarning("Reply : %s", appId);
+               VP_FREE(appId);
+       }
+       vp_play_normal_view_set_share_panel_state(pUserData);
+}
+
+
+/**
+ *
+ * @param pWin
+ * @param bRaise
+ * @param pUserData
+ * @return
+ */
+bool vp_play_app_launch_videos(Evas_Object * pWin, bool bRaise,
+                                                          void *pUserData)
+{
+       app_control_h pService = NULL;
+
+       int nRet = 0;
+       nRet = app_control_create(&pService);
+       if (nRet != APP_CONTROL_ERROR_NONE) {
+               VideoLogError("app_control_create is fail [0x%x]", nRet);
+               goto Execption;
+       }
+
+       nRet = app_control_set_operation(pService, APP_CONTROL_OPERATION_VIEW);
+       if (nRet != APP_CONTROL_ERROR_NONE) {
+               VideoLogError("app_control_set_operation is fail [0x%x]", nRet);
+               goto Execption;
+       }
+       if (bRaise) {
+               nRet =
+                       app_control_add_extra_data(pService, VP_VIDEOS_ONLY_RAISE,
+                                                                          VP_VIDEOS_VALUE_TRUE);
+               if (nRet != APP_CONTROL_ERROR_NONE) {
+                       VideoLogError("app_control_add_extra_data is fail [0x%x]",
+                                                 nRet);
+                       goto Execption;
+               }
+       } else {
+               nRet =
+                       app_control_add_extra_data(pService, VP_VIDEOS_ONLY_RAISE,
+                                                                          VP_VIDEOS_VALUE_FALSE);
+               if (nRet != APP_CONTROL_ERROR_NONE) {
+                       VideoLogError("app_control_add_extra_data is fail [0x%x]",
+                                                 nRet);
+                       goto Execption;
+               }
+       }
+
+       nRet = app_control_set_app_id(pService, VIDEOS_APP_NAME);
+       if (nRet != APP_CONTROL_ERROR_NONE) {
+               VideoLogError("app_control_set_app_id is fail [0x%x]", nRet);
+               goto Execption;
+       }
+
+       nRet =
+               app_control_send_launch_request(pService, __vp_play_ug_reply_cb,
+                                                                               pUserData);
+       if (nRet != APP_CONTROL_ERROR_NONE) {
+               VideoLogError("app_control_send_launch_request is fail [0x%x]",
+                                         nRet);
+               goto Execption;
+       }
+
+       app_control_destroy(pService);
+       pService = NULL;
+
+       return TRUE;
+
+  Execption:
+       if (pService) {
+               app_control_destroy(pService);
+               pService = NULL;
+       }
+       return FALSE;
+}
+
+/**
+ *
+ * @param pWin
+ * @param szMediaURL
+ * @param pServiceShare
+ * @param pUserData
+ * @return
+ */
+bool vp_play_app_launch_share_panel(Evas_Object * pWin,
+                                                                       const char *szMediaURL,
+                                                                       app_control_h * pServiceShare,
+                                                                       void *pUserData)
+{
+       if (szMediaURL == NULL) {
+               VideoLogError("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       char *szFileName = NULL;
+
+       int nRet = 0;
+       if (*pServiceShare == NULL) {
+               nRet = app_control_create(pServiceShare);
+               if (nRet != APP_CONTROL_ERROR_NONE) {
+                       VideoLogError("app_control_create is fail [0x%x]", nRet);
+                       goto Execption;
+               }
+       }
+
+       nRet =
+               app_control_set_operation(*pServiceShare,
+                                                                 VP_SHARE_OPERATION_SINGLE);
+       if (nRet != APP_CONTROL_ERROR_NONE) {
+               VideoLogError("app_control_add_extra_data is fail [0x%x]", nRet);
+               goto Execption;
+       }
+       nRet =
+               app_control_add_extra_data(*pServiceShare,
+                                                                  "http://tizen.org/appcontrol/data/path",
+                                                                  szMediaURL);
+       if (nRet != APP_CONTROL_ERROR_NONE) {
+               VideoLogError("app_control_add_extra_data is fail [0x%x]", nRet);
+               goto Execption;
+       }
+       if (!strstr(szMediaURL, VP_PLAY_FILE_PREFIX)) {
+               szFileName = g_strdup_printf("file://%s", szMediaURL);
+       } else {
+               szFileName = g_strdup_printf("%s", szMediaURL);
+       }
+
+       VideoSecureLogInfo("file : %s", szFileName);
+
+       nRet = app_control_set_uri(*pServiceShare, szFileName);
+       if (nRet != APP_CONTROL_ERROR_NONE) {
+               VideoLogError("app_control_add_extra_data is fail [0x%x]", nRet);
+               goto Execption;
+       }
+
+       nRet = app_control_enable_app_started_result_event(*pServiceShare);
+       if (nRet != APP_CONTROL_ERROR_NONE) {
+               VideoLogError
+                       ("app_control_enable_app_started_result_event is fail [0x%x]",
+                        nRet);
+               goto Execption;
+       }
+
+       nRet =
+               app_control_send_launch_request(*pServiceShare,
+                                                                               __vp_play_ug_reply_cb, pUserData);
+       if (nRet != APP_CONTROL_ERROR_NONE) {
+               VideoLogError("app_control_send_launch_request is fail [0x%x]",
+                                         nRet);
+               goto Execption;
+       }
+       VP_FREE(szFileName);
+
+       return TRUE;
+
+  Execption:
+       VP_FREE(szFileName);
+
+       if (*pServiceShare) {
+               app_control_destroy(*pServiceShare);
+               *pServiceShare = NULL;
+       }
+       return FALSE;
+}
diff --git a/playview/src/common/vp-play-util.c b/playview/src/common/vp-play-util.c
new file mode 100755 (executable)
index 0000000..077a3f0
--- /dev/null
@@ -0,0 +1,1435 @@
+/*
+ * Copyright (c) 2020 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 <efl_extension.h>
+#include <errno.h>
+#include <notification.h>
+#include <mime_type.h>
+#include <net_connection.h>
+#include <app.h>
+#include <app_manager.h>
+#include <glib/gstdio.h>
+#include <system_settings.h>
+
+#include <sys/statvfs.h>
+#include <unicode/uloc.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"
+
+/* Dbus Replacement */
+#include <gio/gio.h>
+
+#ifdef ENABLE_DRM_FEATURE
+#include "vp-drm.h"
+#endif
+#include "vp-play-util.h"
+
+/* check temp */
+#include "vp-play-log.h"
+#include "vp-media-contents.h"
+#include "vp-file-util.h"
+#include "utils_i18n.h"
+
+#define FILE_SIZE_LEN_MAX                      64
+#define UG_DATE_FORMAT_12                      "yMMMdhms"
+#define UG_DATE_FORMAT_24                      "yMMMdHms"
+#define EXT_SIZE                               128
+#define EXT_SPLITTER                           '.'
+#define VP_PLAY_NAME_PATTERN                   "[\\<>:;*\"|?/]"
+
+enum VP_FILE_SIZE_TYPE {
+       SIZE_BYTE = 0,
+       SIZE_KB,
+       SIZE_MB,
+       SIZE_GB
+};
+
+/**
+ *
+ * @param szLocale
+ * @param szCustomSkeleton
+ * @param szTimezone
+ * @param st_Date
+ * @return
+ */
+static char *_vp_play_util_convert_string(const char *szLocale,
+                                                                                 const char *szCustomSkeleton,
+                                                                                 const char *szTimezone,
+                                                                                 UDate st_Date)
+{
+#define UG_ICU_ARR_LENGTH                      256
+
+       // Copy a byte string encoded in the default codepage to a ustring.
+       // Copies at most n characters. The result will be null terminated if the length of src is less than n.
+       // Performs a host byte to UChar conversion.
+
+       i18n_uchar ucustomSkeleton[UG_ICU_ARR_LENGTH] = { 0, };
+
+       if (i18n_ustring_copy_ua_n
+               (ucustomSkeleton, szCustomSkeleton, UG_ICU_ARR_LENGTH) == NULL) {
+               VideoLogInfo("i18n_ustring_copy_au_n() error.");
+               return NULL;
+       }
+
+       i18n_uchar utimezone[UG_ICU_ARR_LENGTH] = { 0, };
+
+       if (i18n_ustring_copy_ua_n(utimezone, szTimezone, UG_ICU_ARR_LENGTH)
+               == NULL) {
+               VideoLogInfo("i18n_ustring_copy_au_n() error.");
+               return NULL;
+       }
+
+       i18n_error_code_e status = I18N_ERROR_NONE;
+       i18n_udatepg_h generator;
+       i18n_udate_format_h formatter;
+
+       i18n_uchar bestPattern[UG_ICU_ARR_LENGTH] = { 0, };
+       i18n_uchar formatted[UG_ICU_ARR_LENGTH] = { 0, };
+       char formattedString[UG_ICU_ARR_LENGTH] = { 0, };
+       int32_t bestPatternLength, formattedLength;
+
+       status = i18n_ucalendar_set_default_timezone(utimezone);
+       if (status != I18N_ERROR_NONE) {
+               VideoLogInfo("i18n_timezone_set_default() is failed.");
+               return NULL;
+       }
+
+       status = i18n_ulocale_set_default(getenv("LC_TIME"));
+       if (status != I18N_ERROR_NONE) {
+               VideoLogInfo("i18n_ulocale_set_default() is failed.");
+               return NULL;
+       }
+
+       status = i18n_udatepg_create(szLocale, &generator);
+       if (generator == NULL || status != I18N_ERROR_NONE) {
+               return NULL;
+       }
+
+       status =
+               i18n_udatepg_get_best_pattern(generator, ucustomSkeleton,
+                                                                         i18n_ustring_get_length
+                                                                         (ucustomSkeleton), bestPattern,
+                                                                         UG_ICU_ARR_LENGTH,
+                                                                         &bestPatternLength);
+       if (bestPatternLength <= 0 || status != I18N_ERROR_NONE) {
+               i18n_udatepg_destroy(generator);
+               return NULL;
+       }
+
+       status =
+               i18n_udate_create(I18N_UDATE_MEDIUM, I18N_UDATE_MEDIUM, szLocale,
+                                                 NULL, -1, bestPattern, -1, &formatter);
+       if (formatter == NULL || status != I18N_ERROR_NONE) {
+               i18n_udatepg_destroy(generator);
+               return NULL;
+       }
+
+       status =
+               i18n_udate_format_date(formatter, st_Date, formatted,
+                                                          UG_ICU_ARR_LENGTH, NULL, &formattedLength);
+       if (formattedLength <= 0 || status != I18N_ERROR_NONE) {
+               VideoLogInfo("i18n_udate_format_date() is failed.");
+               i18n_udate_destroy(formatter);
+               i18n_udatepg_destroy(generator);
+               return NULL;
+       }
+
+       i18n_ustring_copy_au(formattedString, formatted);
+       status = i18n_udatepg_destroy(generator);
+       status = i18n_udate_destroy(formatter);
+
+       if (strlen(formattedString) == 0) {
+               return NULL;
+       }
+
+       return strdup(formattedString);
+}
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+char *vp_play_util_get_title_from_path(char *szFilePath)
+{
+       if (szFilePath == NULL || strlen(szFilePath) <= 0) {
+               VideoLogError("File Path is NULL");
+               return NULL;
+       }
+
+       char *szTitle = NULL;
+       const char *filename = vp_file_get(szFilePath);
+       if (filename == NULL) {
+               return NULL;
+       }
+       szTitle = vp_strip_ext(filename);
+
+       return szTitle;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+char *vp_play_util_get_filename_from_path(char *szFilePath)
+{
+       if (szFilePath == NULL || strlen(szFilePath) <= 0) {
+               VideoLogError("File Path is NULL");
+               return NULL;
+       }
+       const char *filename = vp_file_get(szFilePath);
+       if (filename) {
+               return g_strdup(filename);
+       }
+       return NULL;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+char *vp_play_util_get_folder_from_path(char *szFilePath)
+{
+       if (szFilePath == NULL) {
+               VideoLogError("File Path is NULL");
+               return NULL;
+       }
+       char *szFile = NULL;
+       char *szTitleName = NULL;
+       int nLength = 0;
+
+       nLength = strlen(szFilePath);
+
+       if (nLength <= 0) {
+               VideoLogError("Invalid buffer length");
+               return NULL;
+       }
+
+       szTitleName = strrchr(szFilePath, '/');
+
+       if (szTitleName) {
+               szTitleName++;
+       } else {
+               szTitleName = szFilePath;
+       }
+
+       if (nLength > strlen(szTitleName)) {
+               szFile = calloc(1, nLength - strlen(szTitleName));
+
+               if (szFile != NULL) {
+                       strncpy(szFile, szFilePath, nLength - strlen(szTitleName) - 1);
+               }
+       }
+
+       return szFile;
+}
+
+/**
+ *
+ * @param pWin
+ * @param szKeyName
+ * @return
+ */
+bool vp_play_util_key_grab(Elm_Win * pWin, const char *szKeyName)
+{
+       if (!pWin) {
+               VideoLogInfo("Invalid window handle.");
+               return FALSE;
+       }
+
+       Eina_Bool ret = eext_win_keygrab_set(pWin, szKeyName);
+       VideoLogInfo("%s key grab retruns: %d", szKeyName, ret);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWin
+ * @param szKeyName
+ * @return
+ */
+bool vp_play_util_key_ungrab(Elm_Win * pWin, const char *szKeyName)
+{
+       if (!pWin) {
+               VideoLogInfo("Invalid window handle.");
+               return FALSE;
+       }
+
+       Eina_Bool ret = eext_win_keygrab_unset(pWin, szKeyName);
+       VideoLogInfo("%s key ungrab retruns: %d", szKeyName, ret);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWin
+ * @param bVisible
+ */
+void vp_play_util_fb_visible_off(Evas_Object * pWin, bool bVisible)
+{
+       VideoLogInfo("");
+
+       if (pWin == NULL) {
+               VideoLogError("Window handle is NULL");
+               return;
+       }
+       const char *pProfile = elm_win_profile_get(pWin);
+       if (!pProfile) {
+               VideoLogError("pProfile is NULL");
+               return;
+       }
+
+       VideoLogWarning("Skip for open : %s", pProfile);
+
+       return;
+}
+
+/**
+ *
+ * @param nRotateVal
+ * @return
+ */
+bool vp_play_util_get_landscape_check(int nRotateVal)
+{
+       video_play_rotate_t nRotate = VIDEO_PLAY_ROTATE_NONE;
+
+       nRotate = (video_play_rotate_t) nRotateVal;
+
+       if (nRotate == VIDEO_PLAY_ROTATE_90 ||
+               nRotate == VIDEO_PLAY_ROTATE_270) {
+               return TRUE;
+       }
+       return FALSE;
+}
+
+/**
+ *
+ * @param pWin
+ * @return
+ */
+int vp_play_util_get_root_window_angle(Evas_Object * pWin)
+{
+       int nAngle = 0;
+       unsigned char *pProp_data = NULL;
+       if (pWin == NULL) {
+               VideoLogError("Window handle is NULL");
+               return nAngle;
+       }
+
+       VP_FREE(pProp_data);
+       return nAngle;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @return
+ */
+bool vp_play_util_local_file_check(char *szMediaURL)
+{
+       if (szMediaURL == NULL) {
+               VideoLogError("Invalid path!!");
+               return FALSE;
+       }
+
+       char *path = szMediaURL;
+
+       if (strstr(szMediaURL, VP_PLAY_FILE_PREFIX) != NULL) {
+               path += strlen(VP_PLAY_FILE_PREFIX);
+       }
+
+       if (!g_file_test(path, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) {
+               g_access(path, R_OK);
+               char *error_msg = calloc(1, 1024);
+               if (error_msg) {
+                       strerror_r(errno, error_msg, 1024);
+                       VideoLogError("failed to access file: %d %s", errno,
+                                                 error_msg);
+                       free(error_msg);
+               }
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param szSubtitle
+ * @return
+ */
+bool vp_play_util_get_subtitle_path(const char *szMediaURL,
+                                                                       char **szSubtitle)
+{
+       if (!szMediaURL) {
+               VideoLogError("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       if (strlen(szMediaURL) < 1) {
+               VideoLogError("szMediaURL is invalid Length");
+               return FALSE;
+       }
+
+       struct stat buf;
+       int nCount = 0;
+       int nStrLength = 0;
+       int nOutputLen = 0;
+
+       char *szExt = NULL;
+       char szExtWildkey[6][5] = { ".srt", ".sub", ".smi", ".SRT", ".SUB", ".SMI" };
+       char *szCheckFilePath = NULL;
+
+       *szSubtitle = NULL;
+
+       nOutputLen = strlen(szMediaURL) + 5;
+       szCheckFilePath = calloc(1, sizeof(char) * nOutputLen);
+       if (!szCheckFilePath) {
+               VideoLogError("failed to allocate memory");
+               return FALSE;
+       }
+
+       szExt = strrchr(szMediaURL, '.');
+       if (szExt) {
+               nStrLength = strlen(szMediaURL) - strlen(szExt);
+       } else {
+               nStrLength = strlen(szMediaURL);
+       }
+
+       for (nCount = 0; nCount < 6; nCount++) {
+               memset(szCheckFilePath, 0, nOutputLen);
+               strncpy(szCheckFilePath, szMediaURL, nStrLength);
+               strncat(szCheckFilePath, szExtWildkey[nCount],
+                               strlen(szExtWildkey[nCount] + 1));
+
+               if (!stat(szCheckFilePath, &buf)) {
+                       VideoLogWarning("Success finding subtitle file. - %d, %s",
+                                                       nCount, szCheckFilePath);
+                       VP_STRDUP(*szSubtitle, szCheckFilePath);
+                       break;
+               }
+       }
+
+       VP_FREE(szCheckFilePath);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+double vp_play_util_get_sys_time(void)
+{
+       struct timeval tv;
+
+       gettimeofday(&tv, NULL);
+       return (double) tv.tv_sec + (double) tv.tv_usec / 1E6;
+}
+
+/**
+ *
+ * @param szStr
+ * @return
+ */
+bool vp_play_util_status_noti_show(const char *szStr)
+{
+       if (!szStr) {
+               VideoLogError("szStr is NULL.");
+               return FALSE;
+       }
+
+       VideoLogInfo("");
+
+       int nRet = notification_status_message_post(szStr);
+       if (nRet != 0) {
+               VideoLogError("notification_status_message_post() : [0x%x]", nRet);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szURL
+ * @return
+ */
+char *vp_play_util_remove_prefix_to_url(char *szURL)
+{
+       if (szURL == NULL) {
+               VideoLogError("szURL is NULL");
+               return NULL;
+       }
+
+       if (strstr(szURL, VP_PLAY_FILE_PREFIX)) {
+               char *szTemp =
+                       calloc(1, strlen(szURL) - strlen(VP_PLAY_FILE_PREFIX) + 1);
+               if (szTemp) {
+                       snprintf(szTemp,
+                                        strlen(szURL) - strlen(VP_PLAY_FILE_PREFIX) + 1, "%s",
+                                        szURL + strlen(VP_PLAY_FILE_PREFIX));
+               }
+               return szTemp;
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param szUri
+ * @return
+ */
+bool vp_play_util_check_sdp_url(const char *szUri)
+{
+       if (!szUri) {
+               VideoLogInfo("szUri IS null");
+               return FALSE;
+       }
+       char *szResult = strstr(szUri, ".sdp");
+       if (szResult) {
+               return TRUE;
+       }
+       return FALSE;
+}
+
+/**
+ *
+ * @param szUri
+ * @return
+ */
+char *vp_play_util_get_sdp_url(const char *szUri)
+{
+       if (!szUri) {
+               VideoLogInfo("szUri IS null");
+               return NULL;
+       }
+
+       char *szTokenUrl = g_strdup(szUri);
+       char **splited_str = eina_str_split(szTokenUrl, "?", 0);
+
+       int uri_idx = 0;
+       char *parsed_url = NULL;
+
+       for (uri_idx = 0; splited_str[uri_idx]; uri_idx++) {
+               VideoLogInfo("szUrl = %s", splited_str[uri_idx]);
+               if (eina_str_has_prefix(splited_str[uri_idx], "http")) {        // http(or https)
+                       parsed_url = g_strdup(splited_str[uri_idx]);
+                       VideoLogInfo("parsed_url = %s", parsed_url);
+                       break;
+               }
+       }
+
+       VP_FREE(splited_str[0]);
+       VP_FREE(splited_str);
+       VP_FREE(szTokenUrl);
+
+       return parsed_url;
+}
+
+/**
+ *
+ * @param lSize
+ * @param szSize
+ */
+void vp_play_util_convert_file_size(long long lSize, char **szSize)
+{
+       unsigned long int size = (unsigned long int) lSize;
+
+       int nCount = 0;
+       while (size >= (BYTE_SIZE)) {
+               size /= BYTE_SIZE;
+               nCount++;
+       }
+
+       if (nCount == SIZE_BYTE) {
+               *szSize = g_strdup_printf("%ld %s", size, VP_COM_BODY_B);
+       } else if (nCount == SIZE_KB) {
+               *szSize = g_strdup_printf("%ld %s", size, VP_COM_BODY_KB);
+       } else if (nCount == SIZE_MB) {
+               *szSize = g_strdup_printf("%ld %s", size, VP_COM_BODY_MB);
+       } else if (nCount == SIZE_GB) {
+               *szSize = g_strdup_printf("%ld %s", size, VP_COM_BODY_GB);
+       }
+}
+
+/**
+ *
+ * @param dtime
+ * @param szFileDate
+ */
+void vp_play_util_get_convert_time(double dtime, char **szFileDate)
+{
+       char *szSkeleton = NULL;
+
+       szSkeleton = UG_DATE_FORMAT_24;
+
+       char *szLocale = NULL;          // eg en_US.UTF-8
+       int retcode =
+               system_settings_get_value_string
+               (SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY, &szLocale);
+       if ((retcode != SYSTEM_SETTINGS_ERROR_NONE) || (szLocale == NULL)) {
+               VideoLogInfo("Cannot get region format.");
+               VP_STRDUP(szLocale, "en_US");   //// Default value.
+       } else {
+               char *find = strstr(szLocale, "UTF-8");
+               if (find) {
+                       int diff = find - szLocale;
+                       if (diff > 0) {
+                               szLocale[diff - 1] = '\0';
+                       }
+               }
+       }
+
+       char *szTimezone = NULL;
+       retcode =
+               system_settings_get_value_string
+               (SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE, &szTimezone);
+       if ((retcode != SYSTEM_SETTINGS_ERROR_NONE) || (szTimezone == NULL)) {
+               VideoLogWarning("Cannot get time zone.");
+               VP_STRDUP(szTimezone, VP_PLAY_STRING_COM_UNKNOWN);
+       }
+
+       *szFileDate =
+               _vp_play_util_convert_string(szLocale, szSkeleton, szTimezone,
+                                                                        (UDate) dtime * 1000);
+       if (*szFileDate == NULL) {
+               VideoLogWarning("Cannot get time string.");
+               VP_STRDUP(*szFileDate, VP_PLAY_STRING_COM_UNKNOWN);
+       }
+       VP_FREE(szTimezone);
+       VP_FREE(szLocale);
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param szFileSize
+ * @param szFileDate
+ * @param szFileExtention
+ * @return
+ */
+bool vp_play_util_get_file_info(const char *szMediaURL, char **szFileSize,
+                                                               char **szFileDate, char **szFileExtention)
+{
+       if (!szMediaURL) {
+               VideoLogError("szMediaURL is NULL.");
+               return FALSE;
+       }
+
+       struct stat statbuf;
+       if (stat(szMediaURL, &statbuf) == -1) {
+               VideoSecureLogError("%s file is NULL", szMediaURL);
+               return FALSE;
+       }
+
+       int nCount = 0;
+       size_t size = statbuf.st_size;
+       unsigned long int lsize = (unsigned long int) size;
+
+       vp_play_util_get_convert_time((double) statbuf.st_mtime, szFileDate);
+
+       while (size >= (BYTE_SIZE)) {
+               lsize = size;
+               size /= BYTE_SIZE;
+               nCount++;
+       }
+
+       if (nCount == SIZE_BYTE) {
+               *szFileSize = g_strdup_printf("%zu %s", size, VP_COM_BODY_B);
+       } else if (nCount == SIZE_KB) {
+               *szFileSize = g_strdup_printf("%zu %s", size, VP_COM_BODY_KB);
+       } else if (nCount == SIZE_MB) {
+               *szFileSize = g_strdup_printf("%zu %s", size, VP_COM_BODY_MB);
+       } else if (nCount == SIZE_GB) {
+               *szFileSize = g_strdup_printf("%zu %s", size, VP_COM_BODY_GB);
+       }
+
+       VideoLogInfo("Size = %lu, OrigSize=%zu", lsize, size);
+
+       char *szExt = NULL;
+#ifdef ENABLE_DRM_FEATURE
+       char *szMime = NULL;
+       char **dTempExt = NULL;
+
+       int nArrayLen = 0;
+       int nErr = 0;
+       if (vp_drm_get_file_mime_type(szMediaURL, &szMime)) {
+               nErr = mime_type_get_file_extension(szMime, &dTempExt, &nArrayLen);
+
+               VP_FREE(szMime);
+
+               if (nErr == MIME_TYPE_ERROR_NONE && nArrayLen > 0) {
+                       if (dTempExt[0] != NULL) {
+                               szExt = strrchr(dTempExt[0], EXT_SPLITTER);
+                       }
+
+                       if (szExt == NULL) {
+                               *szFileExtention =
+                                       g_strdup_printf(VP_PLAY_STRING_COM_UNKNOWN);
+                       } else {
+                               VP_STRDUP(*szFileExtention, (szExt + 1));
+                       }
+
+                       int i = 0;
+                       for (; i < nArrayLen; i++) {
+                               if (dTempExt[i] != NULL) {
+                                       free(dTempExt[i]);
+                               }
+                       }
+               } else {
+                       *szFileExtention = g_strdup_printf(VP_PLAY_STRING_COM_UNKNOWN);
+               }
+               VP_FREE(dTempExt);
+       } else
+#endif
+       {
+
+               szExt = strrchr(szMediaURL, EXT_SPLITTER);
+               if (szExt == NULL) {
+                       *szFileExtention = g_strdup_printf(VP_PLAY_STRING_COM_UNKNOWN);
+               } else {
+                       VP_STRDUP(*szFileExtention, (szExt + 1));
+               }
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szURL
+ * @return
+ */
+bool vp_play_util_check_streaming(const char *szURL)
+{
+       if (szURL == NULL) {
+               VideoLogInfo("szURL is NULL");
+               return FALSE;
+       }
+
+       VideoSecureLogInfo("szURL : %s", szURL);
+
+       if (strstr(szURL, "rtp") != NULL) {
+               return TRUE;
+       } else if (strstr(szURL, "rtsp") != NULL) {
+               return TRUE;
+       } else if (strstr(szURL, "http") != NULL) {
+               return TRUE;
+       } else if (strstr(szURL, "https") != NULL) {
+               return TRUE;
+       }
+
+       return FALSE;
+}
+
+/**
+ *
+ * @param szURL
+ * @return
+ */
+bool vp_play_util_rtsp_url_check(const char *szURL)
+{
+       if (szURL == NULL) {
+               VideoLogInfo("szURL is NULL");
+               return FALSE;
+       }
+
+       VideoSecureLogInfo("szURL : %s", szURL);
+
+       static const char *rtsp_protocal_name[] = {
+               "rtsp://",
+               "rtp://",
+               NULL,
+       };
+
+       int i = 0;
+       while (rtsp_protocal_name[i] != NULL) {
+               if (strlen(szURL) > strlen(rtsp_protocal_name[i])) {
+                       if (strncmp
+                               (szURL, rtsp_protocal_name[i],
+                                strlen(rtsp_protocal_name[i])) == 0) {
+                               return true;
+                       }
+               }
+
+               i++;
+       }
+
+       return FALSE;
+}
+
+/**
+ *
+ * @param rtSrc
+ * @param rtDst
+ * @param rtResult
+ * @param nType
+ * @return
+ */
+bool vp_play_util_calculator_position(Evas_Coord_Rectangle rtSrc,
+                                                                         Evas_Coord_Rectangle rtDst,
+                                                                         Evas_Coord_Rectangle * rtResult,
+                                                                         int nType)
+{
+       video_play_display_mode_t nMode = (video_play_display_mode_t) nType;
+
+       double src_ratio = 0;
+       double dst_ratio = 0;
+
+       if (nMode == VIDEO_DISPLAY_LETTER_BOX) {
+               src_ratio = (double) rtSrc.w / rtSrc.h;
+               dst_ratio = (double) rtDst.w / rtDst.h;
+               if (src_ratio > dst_ratio) {
+                       rtResult->w = rtDst.w;
+                       rtResult->h = rtDst.w / src_ratio;
+                       rtResult->x = 0;
+                       rtResult->y = (rtDst.h - rtResult->h) / 2;
+               } else if (src_ratio < dst_ratio) {
+                       rtResult->w = rtDst.h * src_ratio;
+                       rtResult->h = rtDst.h;
+                       rtResult->x = (rtDst.w - rtResult->w) / 2;
+                       rtResult->y = 0;
+               } else {
+                       rtResult->x = 0;
+                       rtResult->y = 0;
+                       rtResult->w = rtDst.w;
+                       rtResult->h = rtDst.h;
+               }
+       } else if (nMode == VIDEO_DISPLAY_ORIGIN) {
+               rtResult->w = (((rtSrc.w) < (rtDst.w)) ? (rtSrc.w) : (rtDst.w));
+               rtResult->h = (((rtSrc.h) < (rtDst.h)) ? (rtSrc.h) : (rtDst.h));
+               rtResult->x = (rtDst.w - rtResult->w) / 2;
+               rtResult->y = (rtDst.h - rtResult->h) / 2;
+
+       } else if ((nMode == VIDEO_DISPLAY_FULL)
+                          || (nMode == VIDEO_DISPLAY_CROPPED_FULL)) {
+               rtResult->w = rtDst.w;
+               rtResult->h = rtDst.h;
+               rtResult->x = 0;
+               rtResult->y = 0;
+
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szFileName
+ * @param szBuffer
+ * @param nSize
+ * @return
+ */
+bool vp_play_util_save_file(const char *szFileName, char *szBuffer,
+                                                       int nSize)
+{
+       if (!szFileName) {
+               VideoLogError("szFileName is NULL");
+               return FALSE;
+       }
+
+       if (!szBuffer) {
+               VideoLogError("szBuffer is NULL");
+               return FALSE;
+       }
+       if (g_file_test(szFileName, G_FILE_TEST_EXISTS)) {
+               int flag = g_remove(szFileName);
+               if (flag != 0) {
+                       VideoLogError("g_remove is fail");
+               }
+       }
+
+       if (!g_file_set_contents
+               (szFileName, (const char *) szBuffer, nSize, NULL)) {
+               VideoLogError("g_file_set_contents is fail");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ * .
+ * @return
+ */
+bool vp_play_util_get_network_status(void)
+{
+       connection_h connection;
+       connection_type_e net_state;
+       bool bSuccessful = true;
+
+       int err = 0;
+
+       err = connection_create(&connection);
+       if (err != CONNECTION_ERROR_NONE) {
+               VideoLogWarning("connection_create error. err is [%d]", err);
+               bSuccessful = false;
+       }
+
+       if (connection) {
+               err = connection_get_type(connection, &net_state);
+               connection_destroy(connection);
+
+               if (err != CONNECTION_ERROR_NONE) {
+                       VideoLogWarning("connection_get_type error. err is [%d]", err);
+                       bSuccessful = false;
+               }
+
+               VideoLogInfo("net_state is [%d]", net_state);
+
+               if (net_state == CONNECTION_TYPE_DISCONNECTED) {
+                       bSuccessful = false;
+               }
+       }
+
+
+       return bSuccessful;
+}
+
+/**
+ *
+ * @param szPreviewUrl
+ * @return
+ */
+bool vp_play_util_check_personal_status(const char *szPreviewUrl)
+{
+       Eina_Bool bRet = EINA_FALSE;
+       if (szPreviewUrl) {
+               bRet =
+                       eina_str_has_prefix(szPreviewUrl, VP_PLAY_PERSONAL_HEAD_STR);
+       }
+       VideoSecureLogInfo("eina_str_has_prefix=%s:%d", szPreviewUrl,
+                                          (int) bRet);
+       return (bool) bRet;
+}
+
+/**
+ *
+ * @param szPath
+ * @return
+ */
+bool vp_play_util_is_exist_subtitle_from_path(const char *szPath)
+{
+
+       if (szPath == NULL) {
+               VideoLogError("szPath is NULL");
+               return FALSE;
+       }
+
+       Eina_List *pFileList = NULL;
+       Eina_List *pItemList = NULL;
+       char *szFileName = NULL;
+       char szExtWildkey[6][5] = { ".srt", ".sub", ".smi", ".SRT", ".SUB", ".SMI" };
+       int nCount = 0;
+
+
+       pFileList = vp_file_ls(szPath);
+
+       if (pFileList == NULL) {
+               VideoLogError("pFileList is NULL");
+               return FALSE;
+       }
+
+       EINA_LIST_FOREACH(pFileList, pItemList, szFileName) {
+               if (szFileName == NULL) {
+                       continue;
+               } else {
+                       char *szName = vp_strip_ext(szFileName);
+                       char *szExt = NULL;
+
+                       int nIdx = 0;
+                       if (szName == NULL) {
+                               continue;
+                       }
+                       szExt = szFileName + strlen(szName);
+
+                       for (nIdx = 0; nIdx < 6; nIdx++) {
+                               if (strcmp(szExt, szExtWildkey[nIdx]) == 0) {
+                                       nCount++;
+                               }
+                       }
+                       VP_FREE(szName);
+               }
+       }
+
+       eina_list_free(pFileList);
+
+       if (nCount > 0) {
+               return TRUE;
+       }
+       return FALSE;
+}
+
+/**
+ *
+ * @param subtitleList
+ * @return
+ */
+bool vp_play_util_get_subtitle_path_list(GList ** subtitleList)
+{
+       if (NULL == subtitleList) {
+               VideoLogError("subtitleList is NULL");
+               return FALSE;
+       }
+
+       if (!vp_media_contents_subtitle_list_get(subtitleList)) {
+               VideoLogError("vp_media_contents_subtitle_list_get failed.");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+bool vp_play_util_app_resume(void)
+{
+       char *app_id = NULL;
+       int ret = app_get_id(&app_id);
+       if (ret != APP_ERROR_NONE || !app_id) {
+               VideoLogError("app_get_id().. [0x%x], app_id[%s]", ret, app_id);
+               return FALSE;
+       }
+
+       app_context_h context = NULL;
+       ret = app_manager_get_app_context(app_id, &context);
+       if (ret != APP_MANAGER_ERROR_NONE) {
+               VideoLogError("app_manager_get_app_context().. [0x%x]", ret);
+               VP_FREE(app_id);
+               return FALSE;
+       }
+
+       ret = app_manager_resume_app(context);
+       if (ret != APP_MANAGER_ERROR_NONE) {
+               VideoLogError("app_manager_resume_app().. [0x%x]", ret);
+               VP_FREE(app_id);
+               return FALSE;
+       }
+
+       VP_FREE(app_id);
+       app_context_destroy(context);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szText
+ * @return
+ */
+bool vp_play_util_check_white_space(char *szText)
+{
+       if (szText == NULL) {
+               return TRUE;
+       }
+       bool bIsWhiteSpace = FALSE;
+
+       if (strlen(szText) == 2) {
+               if (szText[0] == 0xc2 && szText[1] == 0xa0) {
+                       VideoLogError("== No Break Space ==");
+                       bIsWhiteSpace = TRUE;
+               }
+       }
+
+       g_strstrip(szText);
+       if (strlen(szText) == 0) {
+               VideoLogError("== NULL String ==");
+               bIsWhiteSpace = TRUE;
+       }
+
+       return bIsWhiteSpace;
+}
+
+/**
+ *
+ * @param szFilePath
+ */
+unsigned long long vp_play_util_get_disk_available_space(const char
+                                                                                                                *szFilePath)
+{
+       if (szFilePath == NULL) {
+               VideoLogError("szFilePath is NULL");
+               return 0;
+       }
+       int nRet = 0;
+       struct statvfs info;
+       if (szFilePath
+               && 0 == strncmp(szFilePath, VP_ROOT_PATH_MMC,
+                                               strlen(VP_ROOT_PATH_MMC))) {
+               if (-1 == statvfs(VP_ROOT_PATH_MMC, &info)) {
+                       return 0;
+               }
+       } else {
+               if (vp_is_dir(szFilePath)) {
+                       nRet = statvfs(szFilePath, &info);
+                       VideoLogInfo("this is folder");
+               } else {
+                       nRet = statvfs(VP_PLAY_MEDIA_DIR, &info);
+               }
+               if (nRet < 0) {
+                       return 0;
+               }
+       }
+
+       return (info.f_bsize) * ((unsigned long long) info.f_bavail);
+}
+
+/**
+ *
+ * @param szLocation
+ * @param szCity
+ * @return
+ */
+bool vp_play_util_get_city(const char *szLocation, char **szCity)
+{
+#define LOCATION_MAX_LEN                       256
+
+       if (!szLocation) {
+               VideoLogError("szLocation is invalid");
+               return FALSE;
+       }
+
+       char *pTemp = strstr(szLocation, "CITY[");
+       if (!pTemp) {
+               VideoLogError("pTemp is invalid");
+               return FALSE;
+       }
+       int len = strlen("CITY[");
+       char *pTemp1 = strstr(pTemp + len, "]");
+       char city_temp[LOCATION_MAX_LEN] = { 0, };
+
+       if (pTemp1 - (pTemp + len) > 0) {
+               strncpy(city_temp, pTemp + len, pTemp1 - (pTemp + len));
+               *szCity = strdup(city_temp);
+       }
+
+       return true;
+}
+
+/**
+ *
+ * @param nXwinID
+ * @return
+ */
+bool vp_play_util_is_Xwindow_focused(Ecore_X_Window nXwinID)
+{
+       return TRUE;
+}
+
+/**
+ *
+ * @param r
+ * @param g
+ * @param b
+ * @param a
+ * @return
+ */
+char *vp_play_util_convert_rgba_to_hex(int r, int g, int b, int a)
+{
+       char *pColorHex;
+
+       pColorHex =
+               g_strdup_printf("#%08lx",
+                                               (long unsigned int) (r << 24 | g << 16 | b << 8 |
+                                                                                        a));
+
+       return pColorHex;
+}
+
+/**
+ *
+ * @param pColorHex
+ * @param r
+ * @param g
+ * @param b
+ * @param a
+ * @return
+ */
+bool vp_play_util_convert_hex_to_rgba(char *pColorHex, int *r, int *g,
+                                                                         int *b, int *a)
+{
+       if (pColorHex == NULL) {
+               return FALSE;
+       }
+
+       char *szColor = g_strndup(pColorHex + 1, 8);
+
+       unsigned long lColor = strtoul(szColor, NULL, 16);
+
+       int tr, tg, tb, ta;
+       tr = lColor >> 24;
+
+       if (tr < 0) {
+               tr += 0x100;
+       }
+       tg = (lColor >> 16) & 0xff;
+       tb = (lColor >> 8) & 0xff;
+       ta = lColor & 0xff;
+
+       *r = tr;
+       *g = tg;
+       *b = tb;
+       *a = ta;
+       free(szColor);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param obj
+ * @param w
+ * @param h
+ * @param id
+ */
+void vp_play_util_set_object_size(Evas_Object * obj, int w, int h, int id)
+{
+       Edje_Message_Int_Set *msg =
+               (Edje_Message_Int_Set *) malloc(sizeof(Edje_Message_Int_Set) +
+                                                                               3 * sizeof(int));
+       if (!msg) {
+               return;
+       }
+       msg->count = 2;
+       msg->val[0] = w;
+       msg->val[1] = h;
+       edje_object_message_send(obj, EDJE_MESSAGE_INT_SET, id, msg);
+       free(msg);
+}
+
+/**
+ *
+ * @param obj
+ * @param r
+ * @param g
+ * @param b
+ * @param a
+ * @param id
+ */
+void vp_play_util_set_object_color(Evas_Object * obj, int r, int g, int b,
+                                                                  int a, int id)
+{
+       Edje_Message_Int_Set *msg =
+               (Edje_Message_Int_Set *) malloc(sizeof(Edje_Message_Int_Set) +
+                                                                               4 * sizeof(int));
+       if (!msg) {
+               return;
+       }
+       msg->count = 4;
+       msg->val[0] = r;
+       msg->val[1] = g;
+       msg->val[2] = b;
+       msg->val[3] = a;
+
+       edje_object_message_send(obj, EDJE_MESSAGE_INT_SET, id, msg);
+       free(msg);
+}
+
+/**
+ *
+ * @param obj
+ * @param left
+ * @param top
+ * @param id
+ */
+void vp_play_util_set_object_offset(Evas_Object * obj, int left, int top,
+                                                                       int id)
+{
+       Edje_Message_Int_Set *msg =
+               (Edje_Message_Int_Set *) malloc(sizeof(Edje_Message_Int_Set) +
+                                                                               2 * sizeof(float));
+       if (!msg) {
+               return;
+       }
+       msg->count = 2;
+       msg->val[0] = left;
+       msg->val[1] = top;
+       edje_object_message_send(obj, EDJE_MESSAGE_INT_SET, id, msg);
+       free(msg);
+}
+
+/**
+ *
+ * @param msg
+ * @param sig
+ * @param param
+ * @return
+ */
+static int __vp_play_util_append_variant(GDBusMessage * msg,
+                                                                                const char *sig,
+                                                                                const char *param[])
+{
+       GVariant *var = NULL;
+
+       if (!sig || !param) {
+               VideoLogInfo("!sig || !param");
+               return 0;
+       }
+
+       if (strcmp(sig, "sssi") == 0) {
+               VideoLogError("Signature is sssi type");
+               var =
+                       g_variant_new("(sssi)", param[0], param[1], param[2],
+                                                 atoi(param[3]));
+       } else if (strcmp(sig, "ss") == 0) {
+               VideoLogError("Signature is ss type");
+               var = g_variant_new("(ss)", param[0], param[1]);
+       }
+       g_dbus_message_set_body(msg, var);
+       return 0;
+}
+
+#define GDBUS_REPLY_TIMEOUT (-1)
+/**
+ *
+ * @param dest
+ * @param path
+ * @param interface
+ * @param method
+ * @param sig
+ * @param param
+ * @return
+ */
+GDBusMessage *vp_play_util_invoke_dbus_method(const char *dest,
+                                                                                         const char *path,
+                                                                                         const char *interface,
+                                                                                         const char *method,
+                                                                                         const char *sig,
+                                                                                         const char *param[])
+{
+       VideoLogInfo("");
+
+       GDBusConnection *conn = NULL;
+       GDBusMessage *msg = NULL;
+       GDBusMessage *reply = NULL;
+       GError *err = NULL;
+       int r;
+
+       conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &err);
+       if (!conn) {
+               VideoLogError("e_dbus_bus_get error: %s",
+                                         err ? err->message : "none");
+               g_error_free(err);
+               return NULL;
+       }
+
+       msg = g_dbus_message_new_method_call(dest, path, interface, method);
+       if (!msg) {
+               VideoLogError("dbus_message_new_method_call error!");
+               g_object_unref(conn);
+               return NULL;
+       }
+
+       r = __vp_play_util_append_variant(msg, sig, param);
+       if (r < 0) {
+               VideoLogError("append_variant error(%d)", r);
+               g_object_unref(msg);
+               return NULL;
+       }
+
+       reply =
+               g_dbus_connection_send_message_with_reply_sync(conn, msg,
+                                                                                                          G_DBUS_SEND_MESSAGE_FLAGS_NONE,
+                                                                                                          GDBUS_REPLY_TIMEOUT,
+                                                                                                          NULL, NULL, &err);
+       if (!reply) {
+               VideoLogError
+                       ("g_dbus_connection_send_message_with_reply_sync error : (%s) %s %s:%s-%s",
+                        err ? err->message : "none", dest, path, interface, method);
+               g_error_free(err);
+               g_object_unref(msg);
+               g_object_unref(conn);
+       } else {
+               VideoLogInfo
+                       ("g_dbus_connection_send_message_with_reply_sync success");
+       }
+
+       return reply;
+}
+
+/**
+ *
+ */
+void vp_play_util_set_lock_power_key()
+{
+       VideoLogDebug("lock power key pressed");
+       const char *arr[] = { "lcdon", "gotostatenow", "holdkeyblock", "0" };
+
+
+       GDBusMessage *msg;
+
+       msg =
+               vp_play_util_invoke_dbus_method("org.tizen.system.deviced",
+                                                                               "/Org/Tizen/System/DeviceD/Display",
+                                                                               "org.tizen.system.deviced.display",
+                                                                               "lockstate", "sssi", arr);
+
+       if (!msg) {
+               VideoLogError("vp_play_util_invoke_dbus_method failed");
+               return;
+       }
+}
+
+/**
+ *
+ *
+ */
+void vp_play_util_set_unlock_power_key()
+{
+       VideoLogDebug("unlock power key pressed");
+       const char *arr[] = { "lcdon", "resettimer" };
+
+       GDBusMessage *msg = NULL;
+
+       msg =
+               vp_play_util_invoke_dbus_method("org.tizen.system.deviced",
+                                                                               "/Org/Tizen/System/DeviceD/Display",
+                                                                               "org.tizen.system.deviced.display",
+                                                                               "unlockstate", "ss", arr);
+
+       if (!msg) {
+               VideoLogError("vp_play_util_invoke_dbus_method failed");
+               return;
+       }
+}
+
+/**
+ *
+ * @param obj
+ * @param next
+ * @param dir
+ */
+void vp_play_util_focus_next_object_set(Evas_Object * obj,
+                                                                               Evas_Object * next,
+                                                                               Elm_Focus_Direction dir)
+{
+       if (obj) {
+               elm_object_focus_next_object_set(obj, next, dir);
+       }
+
+}
diff --git a/playview/src/core/include/vp-avrcp.h b/playview/src/core/include/vp-avrcp.h
new file mode 100755 (executable)
index 0000000..1838e3d
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+#include "vp-mm-player.h"
+#include "vp-play-type-define.h"
+
+
+bool vp_avrcp_initialize(PlayView * pViewHandle);
+bool vp_avrcp_deinitialize();
+bool vp_avrcp_noti_track(const char *title, const char *artist,
+                                                const char *album, const char *genre,
+                                                unsigned int duration);
+bool vp_avrcp_noti_track_position(unsigned int position);
+bool vp_avrcp_noti_player_state(vp_mm_player_state_t nState);
diff --git a/playview/src/core/include/vp-device-language.h b/playview/src/core/include/vp-device-language.h
new file mode 100755 (executable)
index 0000000..829d431
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+void vp_language_list_create();
+void vp_language_list_destroy();
+
+char *vp_language_get_name(const char *szCode);
diff --git a/playview/src/core/include/vp-device.h b/playview/src/core/include/vp-device.h
new file mode 100755 (executable)
index 0000000..5fe0e74
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+
+bool vp_device_display_lcd_lock(void);
+bool vp_device_display_lcd_unlock(void);
+bool vp_device_set_frame_rate(int nRate);
+bool vp_device_set_brightness(int nVal);
+bool vp_device_get_brightness(int *nCurVal);
+bool vp_device_get_max_brightness(int *nMaxVal);
+bool vp_device_get_min_brightness(int *nMinVal);
+bool vp_device_set_screen_off(bool bLock);
diff --git a/playview/src/core/include/vp-hollic.h b/playview/src/core/include/vp-hollic.h
new file mode 100755 (executable)
index 0000000..8627a38
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2020 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 <stdbool.h>
+#include <Elementary.h>
+
+typedef void (*HollICEventCbFunc) (bool bCoverState, void *pUserData);
+
+typedef void *hollic_handle;
+
+
+hollic_handle vp_hollic_create_handle(HollICEventCbFunc pEventCb,
+                                                                         void *pUserData);
+void vp_hollic_destroy_handle(hollic_handle pHollICHandle);
diff --git a/playview/src/core/include/vp-image-util.h b/playview/src/core/include/vp-image-util.h
new file mode 100755 (executable)
index 0000000..bb90066
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+
+
+
+#pragma once
+
+#include <stdbool.h>
+#include <glib.h>
diff --git a/playview/src/core/include/vp-media-contents.h b/playview/src/core/include/vp-media-contents.h
new file mode 100755 (executable)
index 0000000..46b39d2
--- /dev/null
@@ -0,0 +1,101 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+
+
+#pragma once
+
+#include <stdbool.h>
+#include <glib.h>
+#include <Elementary.h>
+
+
+typedef void (*MediaUpdateCb) (void *pUserData);
+
+
+
+bool vp_media_contents_connect();
+bool vp_media_contents_disconnect();
+
+/* common functions */
+bool vp_media_contents_get_video_id(const char *szFilePath,
+                                                                       char **szVideoID);
+bool vp_media_contents_get_video_thumbnail_path(const char *szFilePath,
+                                                                                               char **szThumbnailPath);
+bool vp_media_contents_scan_file(const char *szFilePath);
+bool vp_media_contents_update_db(const char *szMediaURL);
+bool vp_media_contents_refresh_db(const char *szMediaID);
+
+bool vp_media_contents_get_content_info(const char *szFilePath,
+                                                                               char **szTitle, int *nWidth,
+                                                                               int *nHeight, int *nDuration,
+                                                                               double *dLatitude,
+                                                                               double *dLongitude,
+                                                                               char **szTmpLastModified);
+bool vp_media_metadata_get_gps_info(const char *szFilePath,
+                                                                       double *dLatitude, double *dLongitude);
+bool vp_media_metadata_get_duration(const char *szFilePath,
+                                                                       int *nDuration);
+bool vp_media_metadata_get_width(const char *szFilePath, int *nWidth);
+bool vp_media_metadata_get_height(const char *szFilePath, int *nHeight);
+bool vp_media_contents_get_cloud_attribute(const char *szFilePath,
+                                                                                  bool * bCloud);
+
+/* bookmark functions */
+bool vp_media_contents_bookmark_list_get(const char *szMediaID,
+                                                                                GList ** list);
+bool vp_media_contents_bookmark_list_clear(GList * pList);
+bool vp_media_contents_bookmark_insert(const char *szMediaID,
+                                                                          int nPosition,
+                                                                          const char *szFilePath);
+bool vp_media_contents_bookmark_delete(const char *szMediaID,
+                                                                          int nPosition);
+bool vp_media_contents_bookmark_get_item_info(void *pItem,
+                                                                                         char **szFilePath,
+                                                                                         int *nPosition);
+bool vp_media_contents_bookmark_delete_all(const char *szMediaID);
+
+bool vp_media_contents_get_video_items_to_folder(int nSortType,
+                                                                                                char *szFolder,
+                                                                                                GList ** pList);
+bool vp_media_contents_get_video_items(int nSortType, GList ** pList);
+bool vp_media_contents_free_video_items(GList * pList);
+
+bool vp_media_contents_get_next_file_path(const char *szMediaURL,
+                                                                                 char **szNextURL, bool bLoop,
+                                                                                 GList * pList);
+bool vp_media_contents_get_prev_file_path(const char *szMediaURL,
+                                                                                 char **szPrevURL, bool bLoop,
+                                                                                 GList * pList);
+
+bool vp_media_contents_set_update_cb(MediaUpdateCb pFunc, void *pUserData);
+void vp_media_contents_unset_update_cb();
+
+/*tag buddy */
+bool vp_media_contents_set_location_tag(const char *szFilePath,
+                                                                               const char *city);
+bool vp_media_contents_get_location_tag(const char *szFilePath,
+                                                                               char **szLocationTag);
+bool vp_media_contents_set_weahter_tag(const char *szFilePath,
+                                                                          const char *weather);
+bool vp_media_contents_get_weahter_tag(const char *szFilePath,
+                                                                          char **szWeatherTag);
+
+/*subtitle file*/
+bool vp_media_contents_subtitle_list_get(GList ** list);
+
+bool vp_media_contents_file_is_exist(const char *szFilePath);
+bool vp_media_contents_del_video(const char *szFilePath);
diff --git a/playview/src/core/include/vp-media-key.h b/playview/src/core/include/vp-media-key.h
new file mode 100755 (executable)
index 0000000..e7d41ca
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+
+typedef enum {
+       VP_MEDIA_KEY_PLAY = 0x00,
+       VP_MEDIA_KEY_PAUSE,
+       VP_MEDIA_KEY_PLAYPAUSE,
+       VP_MEDIA_KEY_PREVIOUS,
+       VP_MEDIA_KEY_REWIND,
+       VP_MEDIA_KEY_NEXT,
+       VP_MEDIA_KEY_FASTFORWARD,
+       VP_MEDIA_KEY_STOP,
+} vp_media_key_event_t;
+
+
+typedef void (*MediaKeyEventCbFunc) (vp_media_key_event_t nKey,
+                                                                        bool bRelease, void *pUserData);
+
+
+typedef void *media_key_handle;
+
+
+media_key_handle vp_media_key_create(Evas_Object * pWin,
+                                                                        MediaKeyEventCbFunc pEventCb);
+void vp_media_key_destroy(media_key_handle pMediaKeyHandle);
+bool vp_media_key_realize(media_key_handle pMediaKeyHandle);
+bool vp_media_key_unrealize(media_key_handle pMediaKeyHandle);
+bool vp_media_key_set_user_data(media_key_handle pMediaKeyHandle,
+                                                               void *pUserData);
diff --git a/playview/src/core/include/vp-mm-player.h b/playview/src/core/include/vp-mm-player.h
new file mode 100755 (executable)
index 0000000..a3094f6
--- /dev/null
@@ -0,0 +1,416 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#pragma once
+
+#include <stdbool.h>
+#include <player.h>
+
+
+typedef void *mm_player_handle;
+
+typedef enum {
+       VP_MM_PLAYER_FILTER_NONE = 0x00,
+       VP_MM_PLAYER_FILTER_VOICE,
+       VP_MM_PLAYER_FILTER_MOVIE,
+       VP_MM_PLAYER_FILTER_VITUAL_71,
+} vp_mm_player_sound_filter_t;
+
+typedef enum {
+       VP_MM_PLAYER_VIDEO_TYPE_X11 = 0x00,
+       VP_MM_PLAYER_VIDEO_TYPE_EVAS
+} vp_mm_player_video_sink_t;
+
+typedef enum {
+       VP_MM_PLAYER_ROTATE_0 = 0x00,
+       VP_MM_PLAYER_ROTATE_90,
+       VP_MM_PLAYER_ROTATE_180,
+       VP_MM_PLAYER_ROTATE_270
+} vp_mm_player_rotate_t;
+
+typedef enum {
+       VP_MM_PLAYER_REALIZE_ASYNC_CB = 0x00,
+       VP_MM_PLAYER_SEEK_COMPLETE_CB,
+       VP_MM_PLAYER_END_OF_STREAM_CB,
+       VP_MM_PLAYER_INTERRUPT_CB,
+       VP_MM_PLAYER_ERROR_CB,
+       VP_MM_PLAYER_BUFFERING_CB,
+       VP_MM_PLAYER_SUBTITLE_UPDATE_CB,
+       VP_MM_PLAYER_PD_MESSAGE_CB,
+       VP_MM_PLAYER_CAPTURE_VIDEO_CB,
+       VP_MM_PLAYER_MISSED_PLUGIN_CB,
+       VP_MM_PLAYER_IMAGE_BUFFER_CB,
+} vp_mm_player_callback_t;
+
+
+typedef enum {
+       VP_MM_PLYAER_ERR_NONE = 0x00,
+       VP_MM_PLAYER_ERR_OUT_OF_MEMORY,
+       VP_MM_PLAYER_ERR_INVALID_PARAMETER,
+       VP_MM_PLAYER_ERR_NO_SUCH_FILE,
+       VP_MM_PLAYER_ERR_INVALID_OPERATION,
+       VP_MM_PLAYER_ERR_FILE_NO_SPACE_ON_DEVICE,
+       VP_MM_PLAYER_ERR_SEEK_FAILED,
+       VP_MM_PLAYER_ERR_INVALID_STATE,
+       VP_MM_PLAYER_ERR_NOT_SUPPORTED_FILE,
+       VP_MM_PLAYER_ERR_INVALID_URI,
+       VP_MM_PLAYER_ERR_SOUND_POLICY,
+       VP_MM_PLAYER_ERR_CONNECTION_FAILED,
+       VP_MM_PLAYER_ERR_VIDEO_CAPTUR_FAILED,
+       VP_MM_PLAYER_ERR_DRM_EXPIRED,
+       VP_MM_PLAYER_ERR_DRM_NO_LICENSE,
+       VP_MM_PLAYER_ERR_DRM_FUTURE_USE
+} vp_mm_player_error_t;
+
+typedef enum {
+       VP_MM_PLAYER_INTERRUPTED_COMPLETED = 0x00,
+       VP_MM_PLAYER_INTERRUPTED_BY_MEDIA,
+       VP_MM_PLAYER_INTERRUPTED_BY_CALL,
+       VP_MM_PLAYER_INTERRUPTED_BY_EARJACK_UNPLUG,
+       VP_MM_PLAYER_INTERRUPTED_BY_RESOURCE_CONFLICT,
+       VP_MM_PLAYER_INTERRUPTED_BY_ALARM,
+       VP_MM_PLAYER_INTERRUPTED_BY_EMERGENCY,
+       VP_MM_PLAYER_INTERRUPTED_RESUMABLE_MEDIA,
+       VP_MM_PLAYER_INTERRUPTED_NOTIFICATION
+} vp_mm_player_interrupt_t;
+
+typedef enum {
+       VP_MM_PLAYER_PD_STARTED = 0x00,
+       VP_MM_PLAYER_PD_COMPLETED
+} vp_mm_player_pd_message_t;
+
+typedef enum {
+       VP_MM_PLAYER_STATE_NONE = 0x00,
+       VP_MM_PLAYER_STATE_IDLE,
+       VP_MM_PLAYER_STATE_READY,
+       VP_MM_PLAYER_STATE_PLAYING,
+       VP_MM_PLAYER_STATE_PAUSED,
+       VP_MM_PLAYER_STATE_STOP,        // define for AVRCP
+} vp_mm_player_state_t;
+
+typedef enum {
+       VP_MM_PLAYER_DISPLAY_LETTER_BOX = 0x00,
+       VP_MM_PLAYER_DISPLAY_ORIGIN_OR_LETTER,
+       VP_MM_PLAYER_DISPLAY_FULL_SCREEN,
+       VP_MM_PLAYER_DISPLAY_CROPPED_FULL,
+       VP_MM_PLAYER_DISPLAY_ORIGIN_SIZE,
+} vp_mm_player_display_mode_t;
+
+typedef enum {
+       VP_MM_PLAYER_MISSED_PLUGIN_UNKNOWN = 0x00,
+       VP_MM_PLAYER_MISSED_PLUGIN_AUDIO,
+       VP_MM_PLAYER_MISSED_PLUGIN_VIDEO,
+} vp_mm_player_missed_plugin_t;
+
+typedef enum {
+       VP_MM_PLAYER_SUBTITLE_HALIGN_LEFT = 0x00,
+       VP_MM_PLAYER_SUBTITLE_HALIGN_CENTER,
+       VP_MM_PLAYER_SUBTITLE_HALIGN_RIGHT
+} vp_mm_player_subtitle_halign_t;
+
+typedef void (*vp_mm_player_prepare_cb) (void *pUserData);
+typedef void (*vp_mm_player_completed_cb) (void *pUserData);
+typedef void (*vp_mm_player_seek_completed_cb) (void *pUserData);
+typedef void (*vp_mm_player_interrupted_cb) (vp_mm_player_interrupt_t
+                                                                                        nCode, void *pUserData);
+typedef void (*vp_mm_player_error_cb) (vp_mm_player_error_t nError,
+                                                                          void *pUserData);
+typedef void (*vp_mm_player_buffering_cb) (int nPercent, void *pUserData);
+typedef void (*vp_mm_player_subtitle_updated_cb) (unsigned long nDuration,
+                                                                                                 char *text,
+                                                                                                 void *pUserData);
+typedef void (*vp_mm_player_pd_message_cb) (vp_mm_player_pd_message_t
+                                                                                       nType, void *pUserData);
+typedef void (*vp_mm_player_video_captured_cb) (unsigned char *pFrame,
+                                                                                               int nWidth, int nHeight,
+                                                                                               unsigned int nSize,
+                                                                                               void *pUserData);
+typedef void (*vp_mm_player_missed_plugin_cb) (vp_mm_player_missed_plugin_t
+                                                                                          nMissedType,
+                                                                                          void *pUserData);
+typedef void (*vp_mm_player_image_buffer_updated_cb) (char *pBuffer,
+                                                                                                         int nSize,
+                                                                                                         void *pUserData);
+
+
+typedef struct _MMPlayerCbFunc {
+       vp_mm_player_prepare_cb pPrepareCb;
+       vp_mm_player_completed_cb pEndOfStreamCb;
+       vp_mm_player_seek_completed_cb pSeekCompleteCb;
+       vp_mm_player_interrupted_cb pInterruptedCb;
+       vp_mm_player_error_cb pErrorCb;
+       vp_mm_player_buffering_cb pBufferingCb;
+       vp_mm_player_subtitle_updated_cb pSubtitleUpdateCb;
+       vp_mm_player_pd_message_cb pPDMessageCb;
+       vp_mm_player_video_captured_cb pCapturedCb;
+       vp_mm_player_missed_plugin_cb pMissedPluginCb;
+       vp_mm_player_image_buffer_updated_cb pImageBufferCb;
+} MMPlayerCbFunc;
+
+
+typedef struct _MMPlayerCbPipe {
+       Ecore_Pipe *pPreparePipe;
+       Ecore_Pipe *pEndOfStreamPipe;
+       Ecore_Pipe *pSeekCompletePipe;
+       Ecore_Pipe *pInterruptedPipe;
+       Ecore_Pipe *pErrorPipe;
+       Ecore_Pipe *pBufferingPipe;
+       Ecore_Pipe *pSubtitleUpdatePipe;
+       Ecore_Pipe *pPDMessagePipe;
+       Ecore_Pipe *pCapturedPipe;
+       Ecore_Pipe *pMissedPluginPipe;
+       Ecore_Pipe *pImageBufferPipe;
+} MMPlayerCbPipe;
+
+
+typedef struct _MMPlayerCaptureParam {
+       unsigned char *pFrame;
+       int nWidth;
+       int nHeight;
+       unsigned int nSize;
+       void *pParam;
+} MMPlayerCaptureParam;
+
+typedef struct _MMPlayerSubtitleParam {
+       unsigned long nDuration;
+       char *txt;
+       void *pParam;
+} MMPlayerSubtitleParam;
+
+typedef struct _MMPlayerInterruptParam {
+       vp_mm_player_interrupt_t nInterrupt;
+       void *pParam;
+} MMPlayerInterruptParam;
+
+typedef struct _MMPlayerErrorParam {
+       vp_mm_player_interrupt_t nError;
+       void *pParam;
+} MMPlayerErrorParam;
+
+typedef struct _MMPlayerBufferingParam {
+       int nPercent;
+       void *pParam;
+} MMPlayerBufferingParam;
+
+
+typedef struct _MMPlayerPDParam {
+       vp_mm_player_pd_message_t nMessage;
+       void *pParam;
+} MMPlayerPDParam;
+
+typedef struct _MMPlayerMissedPluginParam {
+       vp_mm_player_missed_plugin_t nMissedType;
+       void *pParam;
+} MMPlayerMissedPluginParam;
+
+
+typedef struct _MMPlayerImageBufferParam {
+       char *pBuffer;
+       int nSize;
+       void *pParam;
+} MMPlayerImageBufferParam;
+
+typedef struct _MMPlayer {
+       player_h pPlayer;
+
+       char *szURL;
+       char *szSubtitleURL;
+       char *szCookie;
+       char *szProxy;
+
+       bool bIsRealize;
+       bool bDeactivateSubtitle;
+       bool bIsMute;
+       bool bIsScaling;
+       bool bIsLooping;
+       bool bIsClosedCaption;
+       bool bIsCapturing;
+
+       float fLeftVol;
+       float fRightVol;
+
+       vp_mm_player_sound_filter_t nSoundFilter;
+       vp_mm_player_video_sink_t nVideoSink;
+       vp_mm_player_rotate_t nRotate;
+       vp_mm_player_state_t nState;
+       vp_mm_player_display_mode_t nDisplayMode;
+       sound_stream_info_h stream_info;
+
+       int nDuration;
+       int nVideoWidth;
+       int nVidehHeight;
+
+       MMPlayerCbFunc *pCbFunc;
+       MMPlayerCbPipe *pCbPipe;
+       void *pParam;
+
+       MMPlayerCaptureParam *pCaptureParam;
+       MMPlayerSubtitleParam *pSubtitleParam;
+       MMPlayerInterruptParam *pInterruptParam;
+       MMPlayerErrorParam *pErrorParam;
+       MMPlayerPDParam *pPDParam;
+       MMPlayerBufferingParam *pBufferingParam;
+       MMPlayerMissedPluginParam *pMissedParam;
+       MMPlayerImageBufferParam *pImageBufferParam;
+
+       int nZoomPosX;
+       int nZoomPosY;
+       bool reacquire_state;
+
+       void *pVideoSink;
+} MMPlayer;
+
+mm_player_handle vp_mm_player_create();
+void vp_mm_player_destroy(mm_player_handle pPlayerHandle);
+bool vp_mm_player_realize(mm_player_handle pPlayerHandle, char *szPath);
+bool vp_mm_player_realize_async(mm_player_handle pPlayerHandle,
+                                                               char *szPath);
+
+
+bool vp_mm_player_unrealize(mm_player_handle pPlayerHandle);
+bool vp_mm_player_is_realize(mm_player_handle pPlayerHandle);
+
+bool vp_mm_player_set_callback(mm_player_handle pPlayerHandle,
+                                                          vp_mm_player_callback_t nCallbackType,
+                                                          void *pCallback);
+bool vp_mm_player_set_user_param(mm_player_handle pPlayerHandle,
+                                                                void *pParam);
+bool vp_mm_player_set_stream_info(mm_player_handle pPlayerHandle,
+                                                                 void *stream_info);
+
+bool vp_mm_player_play(mm_player_handle pPlayerHandle);
+bool vp_mm_player_stop(mm_player_handle pPlayerHandle);
+bool vp_mm_player_pause(mm_player_handle pPlayerHandle);
+bool vp_mm_player_get_state(mm_player_handle pPlayerHandle,
+                                                       vp_mm_player_state_t * nState);
+
+bool vp_mm_player_get_position(mm_player_handle pPlayerHandle,
+                                                          int *nPosition);
+bool vp_mm_player_set_position(mm_player_handle pPlayerHandle,
+                                                          int nPosition);
+bool vp_mm_player_set_position_by_key_frame(mm_player_handle pPlayerHandle,
+                                                                                       int nPosition);
+
+bool vp_mm_player_get_buffering_position(mm_player_handle pPlayerHandle,
+                                                                                int *nPosition);
+
+
+bool vp_mm_player_set_scaling(mm_player_handle pPlayerHandle, bool bScale);
+bool vp_mm_player_set_loop(mm_player_handle pPlayerHandle, bool bLoop);
+
+bool vp_mm_player_set_mute(mm_player_handle pPlayerHandle, bool bMute);
+bool vp_mm_player_get_mute(mm_player_handle pPlayerHandle, bool * bMute);
+bool vp_mm_player_get_duration(mm_player_handle pPlayerHandle,
+                                                          int *nDuration);
+bool vp_mm_player_get_codecinfo(mm_player_handle pPlayerHandle,
+                                                               char **audio_codec, char **video_codec);
+
+bool vp_mm_player_set_video_sink(mm_player_handle pPlayerHandle, int nType,
+                                                                void *pSink);
+bool vp_mm_player_set_video_rotate(mm_player_handle pPlayerHandle,
+                                                                  int nRotate);
+bool vp_mm_player_set_display_mode(mm_player_handle pPlayerHandle,
+                                                                  vp_mm_player_display_mode_t
+                                                                  nDisplayMode);
+
+bool vp_mm_player_get_resolution(mm_player_handle pPlayerHandle,
+                                                                int *nWidth, int *nHeight);
+
+bool vp_mm_player_set_subtitle_url(mm_player_handle pPlayerHandle,
+                                                                  char *szSubtitlePath);
+bool vp_mm_player_get_subtitle_url(mm_player_handle pPlayerHandle,
+                                                                  char **szSubtitlePath);
+bool vp_mm_player_set_subtitle_position(mm_player_handle pPlayerHandle,
+                                                                               int nPosition);
+bool vp_mm_player_set_subtitle_font(mm_player_handle pPlayerHandle,
+                                                                       char *szFamilyName, char *szStyle,
+                                                                       int nSize);
+bool vp_mm_player_set_subtitle_font_color(mm_player_handle pPlayerHandle,
+                                                                                 unsigned int nForegroundColor,
+                                                                                 unsigned int nBGColor);
+bool vp_mm_player_subtitle_ignore_markup_tags(mm_player_handle
+                                                                                         pPlayerHandle,
+                                                                                         bool bIgnoreMarkup);
+bool vp_mm_player_subtitle_set_alignment_in_line(mm_player_handle
+                                                                                                pPlayerHandle,
+                                                                                                vp_mm_player_subtitle_halign_t
+                                                                                                type);
+bool vp_mm_player_subtitle_set_alignment_horizontal(mm_player_handle
+                                                                                                       pPlayerHandle,
+                                                                                                       vp_mm_player_subtitle_halign_t
+                                                                                                       type);
+bool vp_mm_player_subtitle_apply_alignment_right_away(mm_player_handle
+                                                                                                         pPlayerHandle);
+bool vp_mm_player_set_deactivate_subtitle(mm_player_handle pPlayerHandle,
+                                                                                 bool bDeactivate);
+
+bool vp_mm_player_set_volume(mm_player_handle pPlayerHandle, float fLeft,
+                                                        float fRight);
+bool vp_mm_player_get_volume(mm_player_handle pPlayerHandle, float *fLeft,
+                                                        float *fRight);
+
+bool vp_mm_player_set_sound_filter(mm_player_handle pPlayerHandle,
+                                                                  vp_mm_player_sound_filter_t nFilter);
+bool vp_mm_player_get_sound_filter(mm_player_handle pPlayerHandle,
+                                                                  vp_mm_player_sound_filter_t * nFilter);
+
+bool vp_mm_player_capture_start(mm_player_handle pPlayerHandle);
+bool vp_mm_player_is_closed_caption_exist(mm_player_handle pPlayerHandle);
+
+bool vp_mm_player_get_audio_track_count(mm_player_handle pPlayerHandle,
+                                                                               int *nCount);
+bool vp_mm_player_get_audio_track_language_code(mm_player_handle
+                                                                                               pPlayerHandle, int nIndex,
+                                                                                               char **szCode);
+bool vp_mm_player_set_audio_track(mm_player_handle pPlayerHandle,
+                                                                 int nIndex);
+
+bool vp_mm_player_get_subtitle_track_count(mm_player_handle pPlayerHandle,
+                                                                                  int *nCount);
+bool vp_mm_player_get_subtitle_track_language_code(mm_player_handle
+                                                                                                  pPlayerHandle,
+                                                                                                  int nIndex,
+                                                                                                  char **szCode);
+bool vp_mm_player_set_subtitle_track(mm_player_handle pPlayerHandle,
+                                                                        int nIndex);
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+bool vp_mm_player_add_subtitle_language(mm_player_handle pPlayerHandle,
+                                                                               int nIndex);
+bool vp_mm_player_remove_subtitle_language(mm_player_handle pPlayerHandle,
+                                                                                  int nIndex);
+bool vp_mm_player_track_foreach_selected_subtitle_language(mm_player_handle
+                                                                                                                  pPlayerHandle,
+                                                                                                                  void *pCallback,
+                                                                                                                  void
+                                                                                                                  *pUserData);
+#endif
+bool vp_mm_player_set_cookie(mm_player_handle pPlayerHandle,
+                                                        const char *szCookie);
+bool vp_mm_player_set_proxy(mm_player_handle pPlayerHandle,
+                                                       const char *szProxy);
+
+bool vp_mm_player_set_hw_decoder(bool bEnable);
+bool vp_mm_player_set_rate(mm_player_handle pPlayerHandle, float fRate);
+
+
+bool vp_mm_player_set_zoom(mm_player_handle pPlayerHandle, float fZoom,
+                                                  int nPosX, int nPosY);
+bool vp_mm_player_get_zoom_start_position(mm_player_handle pPlayerHandle,
+                                                                                 int *nPosX, int *nPosY);
+bool vp_mm_player_set_visible(mm_player_handle pPlayerHandle,
+                                                         bool bVisible);
+bool vp_mm_player_set_hub_download_mode(mm_player_handle pPlayerHandle,
+                                                                               bool bDownload);
diff --git a/playview/src/core/include/vp-multi-path.h b/playview/src/core/include/vp-multi-path.h
new file mode 100755 (executable)
index 0000000..8201e26
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+
+
+#pragma once
+
+#include <stdbool.h>
+#include <glib.h>
+
+
+bool vp_multi_path_add_item(GList ** pList, const char *szURL,
+                                                       char *szTitle, char *szSubTitle, int nPosition,
+                                                       int nDuration, bool bIsSameAP);
+bool vp_multi_path_clear_item(GList * pList);
+bool vp_multi_path_set_item_subtitle(const char *szMediaURL,
+                                                                        char *szSubtitleURL, GList * pList);
+bool vp_multi_path_set_item_position(const char *szMediaURL, int nPosition,
+                                                                        GList * pList);
+bool vp_multi_path_get_current_item(const char *szMediaURL, char **szURL,
+                                                                       char **szTitle, char **szSubtitle,
+                                                                       int *nPosition, int *nDuration,
+                                                                       bool * bIsSameAP, GList * pList);
+bool vp_multi_path_get_next_item(const char *szMediaURL, char **szURL,
+                                                                char **szSubtitle, int *nPosition,
+                                                                int *nDuration, bool bLoop,
+                                                                GList * pList);
+bool vp_multi_path_get_prev_item(const char *szMediaURL, char **szURL,
+                                                                char **szSubtitle, int *nPosition,
+                                                                int *nDuration, bool bLoop,
+                                                                GList * pList);
diff --git a/playview/src/core/include/vp-sensor.h b/playview/src/core/include/vp-sensor.h
new file mode 100755 (executable)
index 0000000..4016f30
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#ifdef OLD_SENSOR_API
+
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+
+typedef enum {
+       VP_SENSOR_TYPE_NONE = 0x00,
+       VP_SENSOR_TYPE_FACEDOWN,
+       VP_SENSOR_TYPE_DOUBLETAP,
+} vp_sensor_type_t;
+
+
+typedef void (*SensorEventCbFunc) (vp_sensor_type_t nType,
+                                                                  unsigned long long timestamp,
+                                                                  void *pUserData);
+
+
+typedef void *sensor_handle;
+
+
+sensor_handle vp_sensor_create(SensorEventCbFunc pEventCb);
+void vp_sensor_destroy(sensor_handle pSensorHandle);
+bool vp_sensor_realize(sensor_handle pSensorHandle);
+bool vp_sensor_unrealize(sensor_handle pSensorHandle);
+bool vp_sensor_set_user_data(sensor_handle pSensorHandle, void *pUserData);
+
+#endif
diff --git a/playview/src/core/include/vp-sound.h b/playview/src/core/include/vp-sound.h
new file mode 100755 (executable)
index 0000000..1c80ad8
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+
+typedef enum {
+       VP_SOUND_DEVICE_NONE = 0x00,
+       VP_SOUND_DEVICE_SPEAKER,
+       VP_SOUND_DEVICE_EARJACK,
+       VP_SOUND_DEVICE_BLUETOOTH,
+       VP_SOUND_DEVICE_HDMI,
+       VP_SOUND_DEVICE_MIRRORING,
+       VP_SOUND_DEVICE_USB_AUDIO,
+       VP_SOUND_DEVICE_MAX,
+} video_sound_device_type_t;
+
+typedef void (*vp_sound_route_change_cb) (int nRoute, bool bAvailable,
+                                                                                 void *pUserData);
+typedef void (*vp_sound_volume_change_cb) (int nType, int nVolume,
+                                                                                  void *pUserData);
+
+bool vp_sound_init_session();
+bool vp_sound_deinit_session();
+bool vp_sound_get_volume(int *nValue);
+bool vp_sound_set_volume(int nValue);
+bool vp_sound_get_max_volume(int *nMaxValue);
+bool vp_sound_get_active_device(video_sound_device_type_t * nDeviceType);
+bool vp_sound_is_sound_path_enable(bool * bIsSoundPath);
+bool vp_sound_get_a2dp_name(char **szBTName);
+bool vp_sound_set_active_route(video_sound_device_type_t nDeviceType);
+bool vp_sound_set_route_change_cb(vp_sound_route_change_cb func,
+                                                                 void *pUserData);
+bool vp_sound_set_volume_change_cb(vp_sound_volume_change_cb func,
+                                                                  void *pUserData);
+bool vp_sound_device_is_enable(video_sound_device_type_t nDeviceType,
+                                                          void *pUserData);
+void vp_sound_set_earjack_connection_changed_cb(void *pUserData);
+void vp_sound_unset_earjack_connection_changed_cb();
diff --git a/playview/src/core/vp-avrcp.c b/playview/src/core/vp-avrcp.c
new file mode 100755 (executable)
index 0000000..ea206ae
--- /dev/null
@@ -0,0 +1,215 @@
+/*
+ * Copyright (c) 2020 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 <network/bluetooth.h>
+
+#include "vp-play-macro-define.h"
+#include "vp-play-normal-view.h"
+#include "vp-play-view.h"
+#include "vp-avrcp.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+/* callback functions */
+
+/* internal functions */
+/**
+ *
+ * @param connected
+ * @param remote_address
+ * @param user_data
+ */
+void _vp_avrcp_connection_state_changed_cb(bool connected,
+                                                                                  const char *remote_address,
+                                                                                  void *user_data)
+{
+       if (!user_data) {
+               return;
+       }
+       PlayView *pPlayView = (PlayView *) user_data;
+       VideoLogInfo("Bluetooth device!!");
+       vp_play_normal_view_show_volume_popup(pPlayView);
+       if (!connected) {
+               vp_play_normal_view_pause_player(pPlayView);
+       }
+}
+
+/* external functions */
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_avrcp_initialize(PlayView * pViewHandle)
+{
+       VideoLogInfo("vp_avrcp_initialize start");
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+       if (!pPlayView) {
+               return FALSE;
+       }
+       int nRet = bt_initialize();
+       if (nRet != BT_ERROR_NONE) {
+               VideoLogError("bt_initialize fail. nRet[%d]", nRet);
+               return FALSE;
+       }
+
+       nRet =
+               bt_avrcp_target_initialize(_vp_avrcp_connection_state_changed_cb,
+                                                                  pPlayView);
+       if (nRet != BT_ERROR_NONE) {
+               VideoLogError("bt_avrcp_target_initialize fail. nRet[%d]", nRet);
+               bt_deinitialize();
+               return FALSE;
+       }
+
+       VideoLogInfo("vp_avrcp_initialize end");
+
+       return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+bool vp_avrcp_deinitialize()
+{
+       VideoLogInfo("vp_avrcp_deinitialize start");
+
+       int nRet = BT_ERROR_NONE;
+
+       nRet = bt_avrcp_target_deinitialize();
+       if (nRet != BT_ERROR_NONE) {
+               VideoLogError("bt_avrcp_target_deinitialize fail. nRet[%d]", nRet);
+               return FALSE;
+       }
+
+       nRet = bt_deinitialize();
+       if (nRet != BT_ERROR_NONE) {
+               VideoLogError("bt_deinitialize fail. nRet[%d]", nRet);
+               return FALSE;
+       }
+
+
+       VideoLogInfo("vp_avrcp_deinitialize end");
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param title
+ * @param artist
+ * @param album
+ * @param genre
+ * @param duration
+ * @return
+ */
+bool vp_avrcp_noti_track(const char *title, const char *artist,
+                                                const char *album, const char *genre,
+                                                unsigned int duration)
+{
+       VideoLogInfo("vp_avrcp_noti_track start");
+
+       int nRet = BT_ERROR_NONE;
+       VideoLogWarning("set avrcp noti tack. title[%s]", title);
+       VideoLogWarning("set avrcp noti tack. duration[%d]", duration);
+
+       nRet =
+               bt_avrcp_target_notify_track(title, artist, album, genre, 1, 1,
+                                                                        duration);
+       if (nRet != BT_ERROR_NONE) {
+               VideoLogError("bt_avrcp_target_notify_track fail. nRet[%d]", nRet);
+               return FALSE;
+       }
+
+       VideoLogInfo("vp_avrcp_noti_track end");
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param position
+ * @return
+ */
+bool vp_avrcp_noti_track_position(unsigned int position)
+{
+       VideoLogInfo("vp_avrcp_noti_track_position start");
+
+       int nRet = BT_ERROR_NONE;
+       VideoLogWarning("set avrcp noti track position. duration[%d]",
+                                       position);
+       nRet = bt_avrcp_target_notify_position(position);
+       if (nRet != BT_ERROR_NONE) {
+               VideoLogError("bt_avrcp_target_notify_position fail. nRet[%d]",
+                                         nRet);
+               return FALSE;
+       }
+
+       VideoLogInfo("vp_avrcp_noti_track_position end");
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nState
+ * @return
+ */
+bool vp_avrcp_noti_player_state(vp_mm_player_state_t nState)
+{
+       VideoLogInfo("vp_avrcp_noti_player_state start");
+       if (nState == VP_MM_PLAYER_STATE_NONE
+               || nState == VP_MM_PLAYER_STATE_IDLE) {
+               VideoLogWarning
+                       ("player state : [%d]. don't need to send player state",
+                        nState);
+               return TRUE;
+       }
+
+       bt_avrcp_player_state_e player_state = BT_AVRCP_PLAYER_STATE_STOPPED;
+       switch (nState) {
+       case VP_MM_PLAYER_STATE_PLAYING:
+               player_state = BT_AVRCP_PLAYER_STATE_PLAYING;
+               break;
+       case VP_MM_PLAYER_STATE_READY:
+       case VP_MM_PLAYER_STATE_PAUSED:
+               player_state = BT_AVRCP_PLAYER_STATE_PAUSED;
+               break;
+       case VP_MM_PLAYER_STATE_STOP:
+               player_state = BT_AVRCP_PLAYER_STATE_STOPPED;
+               break;
+       default:
+               break;
+       }
+       VideoLogWarning("set avrcp noti player state. player_state[%d]",
+                                       player_state);
+
+       int nRet = BT_ERROR_NONE;
+       nRet = bt_avrcp_target_notify_player_state(player_state);
+       if (nRet != BT_ERROR_NONE) {
+               VideoLogError
+                       ("bt_avrcp_target_notify_player_state fail. nRet[%d]", nRet);
+               return FALSE;
+       }
+
+       VideoLogInfo("vp_avrcp_noti_player_state end");
+
+       return TRUE;
+}
diff --git a/playview/src/core/vp-device-language.c b/playview/src/core/vp-device-language.c
new file mode 100755 (executable)
index 0000000..0d6c8ac
--- /dev/null
@@ -0,0 +1,217 @@
+/*
+ * Copyright (c) 2020 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 <glib.h>
+#include <stdlib.h>
+#include <libxml/parser.h>
+
+#include "vp-play-macro-define.h"
+#include "vp-device-language.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+#define VP_LANGLIST_FILE_PATH          "/opt/usr/data/setting/langlist.xml"
+
+
+typedef struct {
+       char *szLanguageCode;           // ex) "en_US.UTF"
+       char *szLanguageName;           // "United Kingdom"
+       char *szMcc;
+} stLanguage;
+
+static Eina_List *g_pLanglist = NULL;  // internal
+
+/**
+ *
+ * @return
+ */
+bool _vp_language_list_destroy(void)
+{
+       stLanguage *szNode = NULL;
+       if (!g_pLanglist) {
+               VideoLogError("g_pLanglist is NULL");
+               return FALSE;
+       }
+       EINA_LIST_FREE(g_pLanglist, szNode) {
+               if (szNode) {
+                       VP_FREE(szNode->szLanguageCode);
+                       VP_FREE(szNode->szLanguageName);
+                       VP_FREE(szNode->szMcc);
+                       VP_FREE(szNode);
+               }
+       }
+       g_pLanglist = NULL;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param cur
+ */
+static void _vp_language_get_list(xmlNodePtr cur)
+{
+       xmlNode *cur_node = NULL;
+       char *pId = NULL;
+       char *pName = NULL;
+       char *pMcc = NULL;
+
+       for (cur_node = cur; cur_node; cur_node = cur_node->next) {
+               if (cur_node->type == XML_ELEMENT_NODE) {
+                       pId = (char *) g_strdup((char *)
+                                                                       xmlGetProp(cur_node,
+                                                                                          (const xmlChar *) "id"));
+                       pName = (char *) g_strdup((char *)
+                                                                         xmlGetProp(cur_node,
+                                                                                                (const xmlChar *)
+                                                                                                "string"));
+                       pMcc = (char *) g_strdup((char *)
+                                                                        xmlGetProp(cur_node,
+                                                                                               (const xmlChar *) "mcc"));
+                       stLanguage *szNode =
+                               (stLanguage *) calloc(1, sizeof(stLanguage));
+                       if (szNode) {
+                               szNode->szLanguageCode = pId;
+                               szNode->szLanguageName = pName;
+                               szNode->szMcc = pMcc;
+                               g_pLanglist = eina_list_append(g_pLanglist, szNode);
+                       } else {
+                               VP_FREE(pId);
+                               VP_FREE(pName);
+                               VP_FREE(pMcc);
+                       }
+               }
+       }
+}
+
+/**
+ *
+ * @param szPath
+ */
+static void _vp_language_parse_XML(char *szPath)
+{
+       if (!szPath) {
+               VideoLogError("szPath is NULL");
+               return;
+       }
+       xmlDocPtr doc;
+       xmlNodePtr cur;
+
+       doc = xmlParseFile(szPath);
+
+       if (doc == NULL) {
+               VideoLogError("Document not parsed successfully");
+               return;
+       }
+
+       cur = xmlDocGetRootElement(doc);
+       if (cur == NULL) {
+               VideoLogError("empty document");
+               xmlFreeDoc(doc);
+               return;
+       }
+       // make sure root node is "langlist"
+       if (xmlStrcmp(cur->name, (const xmlChar *) "langlist")) {
+               VideoLogError("document of the wrong type, root node != langlist");
+               xmlFreeDoc(doc);
+               return;
+       }
+
+       cur = cur->xmlChildrenNode;
+       _vp_language_get_list(cur);
+
+       /* save tree to file */
+       if (doc != NULL) {
+               xmlFreeDoc(doc);
+       }
+}
+
+/**
+ *
+ * @param szPath
+ * @return
+ */
+bool _vp_language_list_load(char *szPath)
+{
+       if (!g_pLanglist) {
+               _vp_language_parse_XML(szPath);
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szCode
+ * @return
+ */
+char *vp_language_get_name(const char *szCode)
+{
+       if (!g_pLanglist) {
+               VideoLogError("g_pLanglist IS null");
+               return NULL;
+       }
+
+       if (!szCode) {
+               VideoLogError("szCode IS null");
+               return NULL;
+       }
+       Eina_List *pIterateList = NULL;
+       stLanguage *szNode = NULL;
+
+       char *pLangCode = NULL;
+       char *pRealCode = NULL;
+       char *szName = NULL;
+       pLangCode = g_utf8_strup(szCode, -1);
+
+       EINA_LIST_FOREACH(g_pLanglist, pIterateList, szNode) {
+               if (szNode) {
+                       pRealCode = g_utf8_strup(szNode->szLanguageCode, -1);
+
+                       if (g_strrstr(pRealCode, pLangCode)) {
+                               VP_STRDUP(szName, szNode->szLanguageName);
+                               break;
+                       }
+                       VP_FREE(pRealCode);
+               }
+       }
+       VP_FREE(pLangCode);
+       VP_FREE(pRealCode);
+
+       return szName;
+}
+
+/**
+ *
+ */
+void vp_language_list_destroy()
+{
+       VideoLogInfo("");
+       _vp_language_list_destroy();
+}
+
+/**
+ *
+ */
+void vp_language_list_create()
+{
+       if (NULL == g_pLanglist) {
+               VideoLogInfo("");
+               _vp_language_list_load(VP_LANGLIST_FILE_PATH);
+       }
+}
diff --git a/playview/src/core/vp-device.c b/playview/src/core/vp-device.c
new file mode 100755 (executable)
index 0000000..5a444ff
--- /dev/null
@@ -0,0 +1,166 @@
+/*
+ * Copyright (c) 2020 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 <device/display.h>
+#include <device/power.h>
+
+
+#include "vp-device.h"
+#include "vp-play-macro-define.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+/**
+ *
+ * @return
+ */
+bool vp_device_display_lcd_lock(void)
+{
+       int nRet = 0;
+       nRet = device_power_request_lock(POWER_LOCK_DISPLAY, 0);
+       if (nRet != 0) {
+               VideoLogError
+                       ("device_power_request_lock(POWER_LOCK_DISPLAY, 0) set fail : %d",
+                        nRet);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+bool vp_device_display_lcd_unlock(void)
+{
+       int nRet = 0;
+       nRet = device_power_release_lock(POWER_LOCK_DISPLAY);
+       if (nRet != 0) {
+               VideoLogError
+                       ("device_power_release_lock(POWER_LOCK_DISPLAY) set fail : %d",
+                        nRet);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nRate
+ * @return
+ */
+bool vp_device_set_frame_rate(int nRate)
+{
+       return TRUE;
+}
+
+/**
+ *
+ * @param nVal
+ * @return
+ */
+bool vp_device_set_brightness(int nVal)
+{
+       int nRet = 0;
+       nRet = device_display_set_brightness(0, nVal);  // 0 is main display, brightness
+       if (nRet != 0) {
+               VideoLogError("device_display_set_brightness set fail : %d", nRet);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nCurVal
+ * @return
+ */
+bool vp_device_get_brightness(int *nCurVal)
+{
+       int nVal = 0;
+       int nRet = 0;
+       nRet = device_display_get_brightness(0, &nVal);
+       if (nVal < 0 || nRet != DEVICE_ERROR_NONE) {
+               VideoLogError("device_display_get_brightness set fail : %d", nVal);
+               return FALSE;
+       }
+
+       *nCurVal = nVal;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nMaxVal
+ * @return
+ */
+bool vp_device_get_max_brightness(int *nMaxVal)
+{
+       int nVal = 0;
+       int nRet = 0;
+       nRet = device_display_get_max_brightness(0, &nVal);
+       if (nVal < 0 || nRet != DEVICE_ERROR_NONE) {
+               VideoLogError("device_display_get_max_brightness get fail : %d",
+                                         nVal);
+               return FALSE;
+       }
+
+       *nMaxVal = nVal;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nMinVal
+ * @return
+ */
+bool vp_device_get_min_brightness(int *nMinVal)
+{
+       int nVal = 0;
+
+       *nMinVal = nVal;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bLock
+ * @return
+ */
+bool vp_device_set_screen_off(bool bLock)
+{
+       if (bLock) {
+               if (device_power_request_lock(POWER_LOCK_CPU, 0) !=
+                       DEVICE_ERROR_NONE) {
+                       VideoLogError("lock failed");
+                       return FALSE;
+               }
+       } else {
+               if (device_power_release_lock(POWER_LOCK_CPU) != DEVICE_ERROR_NONE) {
+                       VideoLogError("unlock failed");
+                       return FALSE;
+               }
+       }
+
+       return TRUE;
+}
diff --git a/playview/src/core/vp-hollic.c b/playview/src/core/vp-hollic.c
new file mode 100755 (executable)
index 0000000..1bb3aae
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2020 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 "vp-hollic.h"
+#include "vp-play-log.h"
+
+#define OBJECT_PATH                    "/Org/Tizen/System/DeviceD"
+#define DEVICED_PATH_HALL              OBJECT_PATH"/Hall"
+#define SIGNAL_HALL_STATE              "ChangeState"
+
+typedef struct _HollIC_handle {
+       void *pDbus_connection;
+       void *pSignal_handler;
+
+       void *pUserData;
+       HollICEventCbFunc pEventCb;
+} HollIC_handle;
+
+/**
+ *
+ * @param pEventCb
+ * @param pUserData
+ * @return
+ */
+hollic_handle vp_hollic_create_handle(HollICEventCbFunc pEventCb,
+                                                                         void *pUserData)
+{
+       return NULL;
+}
+
+/**
+ *
+ * @param pHollICHandle
+ */
+void vp_hollic_destroy_handle(hollic_handle pHollICHandle)
+{
+       if (pHollICHandle == NULL) {
+               VideoLogError("pHollICHandle is NULL");
+               return;
+       }
+
+       return;
+}
diff --git a/playview/src/core/vp-image-util.c b/playview/src/core/vp-image-util.c
new file mode 100755 (executable)
index 0000000..23222bc
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2020 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 <image_util.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"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#include "vp-image-util.h"
+#include "vp-util.h"
+
diff --git a/playview/src/core/vp-media-contents.c b/playview/src/core/vp-media-contents.c
new file mode 100755 (executable)
index 0000000..3f9932e
--- /dev/null
@@ -0,0 +1,2635 @@
+/*
+ * Copyright (c) 2020 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 <media_content.h>
+#include <metadata_extractor.h>
+
+
+#include "vp-play-type-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-media-contents.h"
+
+/* check temp */
+#include "vp-play-log.h"
+#include "vp-file-util.h"
+
+
+static bool g_bMediaConnect = FALSE;
+static MediaUpdateCb g_media_update_cb = NULL;
+static media_content_noti_h noti_handle = NULL;
+
+/* callback functions */
+/**
+ *
+ * @param pMediaHandle
+ * @param pUserData
+ * @return
+ */
+static bool __vp_media_contents_info_cb(media_info_h pMediaHandle,
+                                                                               void *pUserData)
+{
+       media_info_h *pAssignItem = (media_info_h *) pUserData;
+
+       if (pMediaHandle != NULL) {
+               int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+               nRet = media_info_clone(pAssignItem, pMediaHandle);
+               if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+                       VideoLogError("media_info_clone is fail : 0x%x", nRet);
+                       return FALSE;
+               }
+
+               char *szTmpStr = NULL;
+               nRet = media_info_get_display_name(*pAssignItem, &szTmpStr);
+               if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+                       VideoLogError("media_info_get_display_name is fail : 0x%x",
+                                                 nRet);
+                       return FALSE;
+               }
+
+               VideoLogInfo("Display name : %s", szTmpStr);
+               VP_FREE(szTmpStr);
+       } else {
+               VideoLogError("pMeidaHandle is NULL");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pBookmark
+ * @param pUserData
+ * @return
+ */
+static bool __vp_media_contents_bookmark_iter_cb(media_bookmark_h
+                                                                                                pBookmark,
+                                                                                                void *pUserData)
+{
+       if (pBookmark == NULL) {
+               VideoLogError("pBookmark is NULL");
+               return FALSE;
+       }
+
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return FALSE;
+       }
+
+       media_bookmark_h pAssignBookmark = NULL;
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+       nRet = media_bookmark_clone(&pAssignBookmark, pBookmark);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_bookmark_clone is fail : 0x%x", nRet);
+               return FALSE;
+       }
+       VideoLogWarning("== list append ==");
+
+       GList **pList = (GList **) pUserData;
+       *pList = g_list_append(*pList, pAssignBookmark);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pMediaInfo
+ * @param pUserData
+ * @return
+ */
+static bool __vp_media_contents_video_iter_cb(media_info_h pMediaInfo,
+                                                                                         void *pUserData)
+{
+       if (pMediaInfo == NULL) {
+               VideoLogError("pMediaInfo is NULL");
+               return FALSE;
+       }
+
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return FALSE;
+       }
+
+       media_info_h pAssignMedia = NULL;
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+       media_content_type_e nMediaType = MEDIA_CONTENT_TYPE_OTHERS;
+
+       nRet = media_info_get_media_type(pMediaInfo, &nMediaType);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_get_media_type is fail : 0x%x", nRet);
+               return FALSE;
+       }
+
+       if (nMediaType == MEDIA_CONTENT_TYPE_VIDEO) {
+               nRet = media_info_clone(&pAssignMedia, pMediaInfo);
+               if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+                       VideoLogError("media_info_clone is fail : 0x%x", nRet);
+                       return FALSE;
+               }
+               GList **pList = (GList **) pUserData;
+               *pList = g_list_append(*pList, pAssignMedia);
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+static int __vp_media_contents_get_pid(void)
+{
+       return getpid();
+}
+
+/**
+ *
+ * @param nError
+ * @param nPid
+ * @param nUpdateItem
+ * @param nUpdateType
+ * @param nMediaType
+ * @param szUuid
+ * @param szPath
+ * @param szMimeType
+ * @param pUserData
+ */
+static void __vp_media_contents_db_update_cb(media_content_error_e nError,
+                                                                                        int nPid,
+                                                                                        media_content_db_update_item_type_e
+                                                                                        nUpdateItem,
+                                                                                        media_content_db_update_type_e
+                                                                                        nUpdateType,
+                                                                                        media_content_type_e
+                                                                                        nMediaType, char *szUuid,
+                                                                                        char *szPath,
+                                                                                        char *szMimeType,
+                                                                                        void *pUserData)
+{
+       if (g_media_update_cb == NULL) {
+               VideoLogError("g_media_update_cb is NULL.");
+               return;
+       }
+
+       if (nError) {
+               VideoLogError("error occured! : %d", nError);
+               return;
+       }
+
+       if (nPid == __vp_media_contents_get_pid()) {
+               VideoLogError("It is same processor");
+               return;
+       }
+
+       g_media_update_cb(pUserData);
+}
+
+/**
+ *
+ * @param pFolderItem
+ * @param pUserData
+ * @return
+ */
+static bool __vp_media_contents_folder_iter_cb(media_folder_h pFolderItem,
+                                                                                          void *pUserData)
+{
+       if (pFolderItem == NULL) {
+               VideoLogError("pFolderItem is NULL");
+               return FALSE;
+       }
+
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return FALSE;
+       }
+       media_folder_h *pAssignFolderItem = (media_folder_h *) pUserData;
+       if (pFolderItem != NULL) {
+               char *szTmpStr = NULL;
+               media_folder_clone(pAssignFolderItem, pFolderItem);
+               media_folder_get_name(*pAssignFolderItem, &szTmpStr);
+               VideoLogInfo("Folder name : %s", szTmpStr);
+
+               if (szTmpStr) {
+                       free(szTmpStr);
+               }
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pMediaInfo
+ * @param pUserData
+ * @return
+ */
+static bool __vp_media_contents_subtitles_iter_cb(media_info_h pMediaInfo,
+                                                                                                 void *pUserData)
+{
+       if (pMediaInfo == NULL) {
+               VideoLogError("pMediaInfo is NULL");
+               return FALSE;
+       }
+
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return FALSE;
+       }
+
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+       char *pszFilePath = NULL;
+
+       nRet = media_info_get_file_path(pMediaInfo, &pszFilePath);
+
+       VideoSecureLogInfo("pszFilePath is: %s", pszFilePath);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_get_file_path is fail : 0x%x", nRet);
+               return FALSE;
+       }
+
+       GList **pList = (GList **) pUserData;
+       *pList = g_list_append(*pList, pszFilePath);
+
+       return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @return
+ */
+bool vp_media_contents_connect()
+{
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+       if (g_bMediaConnect) {
+               return TRUE;
+       }
+
+       nRet = media_content_connect();
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_content_connect is fail : 0x%x", nRet);
+               return FALSE;
+       }
+
+       g_bMediaConnect = TRUE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+bool vp_media_contents_disconnect()
+{
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+       if (g_bMediaConnect == FALSE) {
+               VideoLogWarning("Already Media content disconnect");
+               return TRUE;
+       }
+
+       nRet = media_content_disconnect();
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_content_connect is fail : 0x%x", nRet);
+               return FALSE;
+       }
+
+       g_bMediaConnect = FALSE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param szVideoID
+ * @return
+ */
+bool vp_media_contents_get_video_id(const char *szFilePath,
+                                                                       char **szVideoID)
+{
+       if (szVideoID == NULL) {
+               VideoLogError("szVideoID is NULL");
+               return FALSE;
+       }
+
+       /* Initialize output value */
+       *szVideoID = NULL;
+
+       if (szFilePath == NULL) {
+               VideoLogError("szFilePath is NULL");
+               return FALSE;
+       }
+
+       vp_media_contents_connect();
+
+       media_info_h pMediaHandle = NULL;
+       filter_h pFilterHandle = NULL;
+
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+       char *szMediaID = NULL;
+
+       char szTmpStr[4096] = { 0, };
+       snprintf(szTmpStr, 4096,
+                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"",
+                        szFilePath);
+
+       nRet = media_filter_create(&pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_create is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       if (pFilterHandle == NULL) {
+               VideoLogError("Filter handle is NULL");
+               goto Exception;
+       }
+
+       nRet =
+               media_filter_set_condition(pFilterHandle, szTmpStr,
+                                                                  MEDIA_CONTENT_COLLATE_DEFAULT);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               media_info_foreach_media_from_db(pFilterHandle,
+                                                                                __vp_media_contents_info_cb,
+                                                                                &pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+                                         nRet);
+               goto Exception;
+       }
+
+       if (pMediaHandle == NULL) {
+               VideoLogError("media info handle is NULL");
+               goto Exception;
+       }
+
+       nRet = media_info_get_media_id(pMediaHandle, &szMediaID);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_get_media_id is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet = media_filter_destroy(pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet = media_info_destroy(pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_destroy is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       VP_STRDUP(*szVideoID, szMediaID);
+       VP_FREE(szMediaID);
+
+       return TRUE;
+
+  Exception:
+
+       VP_FREE(szMediaID);
+       *szVideoID = NULL;
+
+       if (pFilterHandle) {
+               media_filter_destroy(pFilterHandle);
+               pFilterHandle = NULL;
+       }
+
+       if (pMediaHandle) {
+               media_info_destroy(pMediaHandle);
+               pMediaHandle = NULL;
+       }
+       return FALSE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param szThumbnailPath
+ * @return
+ */
+bool vp_media_contents_get_video_thumbnail_path(const char *szFilePath,
+                                                                                               char **szThumbnailPath)
+{
+       if (szFilePath == NULL) {
+               VideoLogError("szFilePath is NULL");
+               return FALSE;
+       }
+
+       vp_media_contents_connect();
+
+       media_info_h pMediaHandle = NULL;
+       filter_h pFilterHandle = NULL;
+
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+       char *szThumbnail = NULL;
+
+       char szTmpStr[4096] = { 0, };
+       snprintf(szTmpStr, 4096,
+                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"",
+                        szFilePath);
+
+       nRet = media_filter_create(&pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_create is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       if (pFilterHandle == NULL) {
+               VideoLogError("Filter handle is NULL");
+               goto Exception;
+       }
+
+       nRet =
+               media_filter_set_condition(pFilterHandle, szTmpStr,
+                                                                  MEDIA_CONTENT_COLLATE_DEFAULT);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               media_info_foreach_media_from_db(pFilterHandle,
+                                                                                __vp_media_contents_info_cb,
+                                                                                &pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+                                         nRet);
+               goto Exception;
+       }
+
+       if (pMediaHandle == NULL) {
+               VideoLogError("media info handle is NULL");
+               goto Exception;
+       }
+
+       nRet = media_info_get_thumbnail_path(pMediaHandle, &szThumbnail);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_get_thumbnail_path is fail : 0x%x",
+                                         nRet);
+               goto Exception;
+       }
+
+       VP_STRDUP(*szThumbnailPath, szThumbnail);
+       VP_FREE(szThumbnail);
+
+       nRet = media_filter_destroy(pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet = media_info_destroy(pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_destroy is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       return TRUE;
+
+  Exception:
+
+       VP_FREE(szThumbnail);
+
+       if (pFilterHandle) {
+               media_filter_destroy(pFilterHandle);
+               pFilterHandle = NULL;
+       }
+
+       if (pMediaHandle) {
+               media_info_destroy(pMediaHandle);
+               pMediaHandle = NULL;
+       }
+       return FALSE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+bool vp_media_contents_scan_file(const char *szFilePath)
+{
+       if (!szFilePath) {
+               VideoLogError("szFilePath is NULL.");
+               return FALSE;
+       }
+       media_content_scan_file(szFilePath);
+       return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @return
+ */
+bool vp_media_contents_update_db(const char *szMediaURL)
+{
+       if (!szMediaURL) {
+               VideoLogError("No exist szMediaURL.");
+               return FALSE;
+       }
+
+       media_info_h info = NULL;
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+       nRet = media_info_insert_to_db(szMediaURL, &info);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_insert_to_db fail : %d", nRet);
+               if (info) {
+                       media_info_destroy(info);
+                       info = NULL;
+               }
+               return FALSE;
+       }
+
+       if (info) {
+               media_info_destroy(info);
+               info = NULL;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szMediaID
+ * @return
+ */
+bool vp_media_contents_refresh_db(const char *szMediaID)
+{
+       if (!szMediaID) {
+               VideoLogError("No exist szMediaID.");
+               return FALSE;
+       }
+
+       /* int nRet = MEDIA_CONTENT_ERROR_NONE;
+       nRet = media_info_refresh_metadata_to_db(szMediaID); // Deprecated API, Parent function not called.
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_refresh_metadata_to_db fail : %d", nRet);
+               return FALSE;
+       } */
+       return TRUE;
+}
+
+/**
+ *
+ * @param pMediaHandle
+ * @param szLastModified
+ * @return
+ */
+int vp_media_contents_get_modified_time(media_info_h pMediaHandle,
+                                                                               char **szLastModified)
+{
+       if (!pMediaHandle) {
+               VideoLogInfo("pMediaHandle is NULL.");
+               return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
+       }
+
+       VideoLogInfo("");
+
+       media_info_h pVideoItem = (media_info_h) pMediaHandle;
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+       time_t pModifiedTime;
+       struct tm sModifiedTime;
+       char szModifiedTime[BYTE_SIZE] = { 0, };
+
+       nRet = media_info_get_modified_time(pVideoItem, &pModifiedTime);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_get_modified_time failed : [%d]!!!",
+                                         nRet);
+               return nRet;
+       }
+
+       gmtime_r(&pModifiedTime, &sModifiedTime);
+       strftime(szModifiedTime, BYTE_SIZE - 1, "%d %b. %Y. %H:%M",
+                        &sModifiedTime);
+       *szLastModified = g_strdup(szModifiedTime);
+
+       return nRet;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param szTitle
+ * @param nWidth
+ * @param nHeight
+ * @param nDuration
+ * @param dLatitude
+ * @param dLongitude
+ * @param szTmpLastModified
+ * @return
+ */
+bool vp_media_contents_get_content_info(const char *szFilePath,
+                                                                               char **szTitle, int *nWidth,
+                                                                               int *nHeight, int *nDuration,
+                                                                               double *dLatitude,
+                                                                               double *dLongitude,
+                                                                               char **szTmpLastModified)
+{
+       if (szFilePath == NULL) {
+               VideoLogError("szFilePath is NULL");
+               return FALSE;
+       }
+
+       vp_media_contents_connect();
+
+       media_info_h pMediaHandle = NULL;
+       filter_h pFilterHandle = NULL;
+       video_meta_h pVideoHandle = NULL;
+
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+       char szTmpStr[4096] = { 0, };
+       snprintf(szTmpStr, 4096,
+                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"",
+                        szFilePath);
+
+       nRet = media_filter_create(&pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_create is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       if (pFilterHandle == NULL) {
+               VideoLogError("Filter handle is NULL");
+               goto Exception;
+       }
+
+       nRet =
+               media_filter_set_condition(pFilterHandle, szTmpStr,
+                                                                  MEDIA_CONTENT_COLLATE_DEFAULT);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               media_info_foreach_media_from_db(pFilterHandle,
+                                                                                __vp_media_contents_info_cb,
+                                                                                &pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+                                         nRet);
+               goto Exception;
+       }
+
+       if (pMediaHandle == NULL) {
+               VideoLogError("media info handle is NULL");
+               goto Exception;
+       }
+
+       nRet = media_info_get_display_name(pMediaHandle, szTitle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_get_display_name is fail : 0x%x", nRet);
+       }
+
+       nRet = media_info_get_video(pMediaHandle, &pVideoHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_get_video is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               vp_media_contents_get_modified_time(pMediaHandle,
+                                                                                       szTmpLastModified);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_get_modified_time is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet = media_info_get_latitude(pMediaHandle, dLatitude);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_get_latitude is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet = media_info_get_longitude(pMediaHandle, dLongitude);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_get_longitude is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       if (pVideoHandle == NULL) {
+               VideoLogError("media info handle is NULL");
+               goto Exception;
+       }
+
+       nRet = video_meta_get_width(pVideoHandle, nWidth);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("video_meta_get_width is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet = video_meta_get_height(pVideoHandle, nHeight);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("video_meta_get_height is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet = video_meta_get_duration(pVideoHandle, nDuration);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("video_meta_get_duration is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet = video_meta_destroy(pVideoHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("video_meta_destroy is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet = media_info_destroy(pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_destroy is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet = media_filter_destroy(pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       return TRUE;
+
+  Exception:
+
+       if (pFilterHandle) {
+               media_filter_destroy(pFilterHandle);
+               pFilterHandle = NULL;
+       }
+
+       if (pMediaHandle) {
+               media_info_destroy(pMediaHandle);
+               pMediaHandle = NULL;
+       }
+
+       if (pVideoHandle) {
+               video_meta_destroy(pVideoHandle);
+               pVideoHandle = NULL;
+       }
+       return FALSE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param dLatitude
+ * @param dLongitude
+ * @return
+ */
+bool vp_media_metadata_get_gps_info(const char *szFilePath,
+                                                                       double *dLatitude, double *dLongitude)
+{
+       if (szFilePath == NULL) {
+               VideoLogError("szFilePath is NULL");
+               return FALSE;
+       }
+
+       metadata_extractor_h pMetadata;
+       char *szVal = NULL;
+
+       int nRet = METADATA_EXTRACTOR_ERROR_NONE;
+
+       nRet = metadata_extractor_create(&pMetadata);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogError("metadata_extractor_create is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet = metadata_extractor_set_path(pMetadata, szFilePath);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogError("metadata_extractor_set_path is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               metadata_extractor_get_metadata(pMetadata, METADATA_LATITUDE,
+                                                                               &szVal);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogError("metadata_extractor_get_metadata is fail : 0x%x",
+                                         nRet);
+               goto Exception;
+       }
+
+       if (szVal) {
+               *dLatitude = atof(szVal);
+       } else {
+               *dLatitude = 0.0;
+       }
+       VP_FREE(szVal);
+
+       nRet =
+               metadata_extractor_get_metadata(pMetadata, METADATA_LONGITUDE,
+                                                                               &szVal);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogError("metadata_extractor_get_metadata is fail : 0x%x",
+                                         nRet);
+               goto Exception;
+       }
+
+       if (szVal) {
+               *dLongitude = atof(szVal);
+       } else {
+               *dLongitude = 0.0;
+       }
+
+       VP_FREE(szVal);
+
+       if (pMetadata) {
+               metadata_extractor_destroy(pMetadata);
+               pMetadata = NULL;
+       }
+
+       return TRUE;
+  Exception:
+
+       VP_FREE(szVal);
+
+       if (pMetadata) {
+               metadata_extractor_destroy(pMetadata);
+               pMetadata = NULL;
+       }
+
+       return FALSE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param nDuration
+ * @return
+ */
+bool vp_media_metadata_get_duration(const char *szFilePath, int *nDuration)
+{
+       if (szFilePath == NULL) {
+               VideoLogError("szFilePath is NULL");
+               return FALSE;
+       }
+
+       metadata_extractor_h pMetadata;
+       char *szVal = NULL;
+
+       int nRet = METADATA_EXTRACTOR_ERROR_NONE;
+
+       nRet = metadata_extractor_create(&pMetadata);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogError("metadata_extractor_create is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet = metadata_extractor_set_path(pMetadata, szFilePath);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogError("metadata_extractor_set_path is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               metadata_extractor_get_metadata(pMetadata, METADATA_DURATION,
+                                                                               &szVal);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogError("metadata_extractor_get_metadata is fail : 0x%x",
+                                         nRet);
+               goto Exception;
+       }
+
+       if (szVal) {
+               *nDuration = atoi(szVal);
+       } else {
+               *nDuration = 0.0;
+       }
+
+       VP_FREE(szVal);
+
+       if (pMetadata) {
+               metadata_extractor_destroy(pMetadata);
+               pMetadata = NULL;
+       }
+
+       return TRUE;
+  Exception:
+
+       VP_FREE(szVal);
+
+       if (pMetadata) {
+               metadata_extractor_destroy(pMetadata);
+               pMetadata = NULL;
+       }
+
+       return FALSE;
+
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param nWidth
+ * @return
+ */
+bool vp_media_metadata_get_width(const char *szFilePath, int *nWidth)
+{
+       if (szFilePath == NULL) {
+               VideoLogError("szFilePath is NULL");
+               return FALSE;
+       }
+
+       metadata_extractor_h pMetadata;
+       char *szVal = NULL;
+
+       int nRet = METADATA_EXTRACTOR_ERROR_NONE;
+
+       nRet = metadata_extractor_create(&pMetadata);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogError("metadata_extractor_create is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet = metadata_extractor_set_path(pMetadata, szFilePath);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogError("metadata_extractor_set_path is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               metadata_extractor_get_metadata(pMetadata, METADATA_VIDEO_WIDTH,
+                                                                               &szVal);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogError("metadata_extractor_get_metadata is fail : 0x%x",
+                                         nRet);
+               goto Exception;
+       }
+
+       if (szVal) {
+               *nWidth = atoi(szVal);
+       } else {
+               *nWidth = 0;
+       }
+
+       VP_FREE(szVal);
+
+       if (pMetadata) {
+               metadata_extractor_destroy(pMetadata);
+               pMetadata = NULL;
+       }
+
+       return TRUE;
+  Exception:
+
+       VP_FREE(szVal);
+
+       if (pMetadata) {
+               metadata_extractor_destroy(pMetadata);
+               pMetadata = NULL;
+       }
+
+       return FALSE;
+
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param nHeight
+ * @return
+ */
+bool vp_media_metadata_get_height(const char *szFilePath, int *nHeight)
+{
+       if (szFilePath == NULL) {
+               VideoLogError("szFilePath is NULL");
+               return FALSE;
+       }
+
+       metadata_extractor_h pMetadata;
+       char *szVal = NULL;
+
+       int nRet = METADATA_EXTRACTOR_ERROR_NONE;
+
+       nRet = metadata_extractor_create(&pMetadata);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogError("metadata_extractor_create is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet = metadata_extractor_set_path(pMetadata, szFilePath);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogError("metadata_extractor_set_path is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               metadata_extractor_get_metadata(pMetadata, METADATA_VIDEO_HEIGHT,
+                                                                               &szVal);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogError("metadata_extractor_get_metadata is fail : 0x%x",
+                                         nRet);
+               goto Exception;
+       }
+
+       if (szVal) {
+               *nHeight = atoi(szVal);
+       } else {
+               *nHeight = 0;
+       }
+
+       VP_FREE(szVal);
+
+       if (pMetadata) {
+               metadata_extractor_destroy(pMetadata);
+               pMetadata = NULL;
+       }
+
+       return TRUE;
+  Exception:
+
+       VP_FREE(szVal);
+
+       if (pMetadata) {
+               metadata_extractor_destroy(pMetadata);
+               pMetadata = NULL;
+       }
+
+       return FALSE;
+
+}
+
+/**
+ *
+ * @param szMediaID
+ * @param list
+ * @return
+ */
+bool vp_media_contents_bookmark_list_get(const char *szMediaID,
+                                                                                GList ** list)
+{
+       if (!szMediaID) {
+               VideoLogError("No exist szMediaID.");
+               return FALSE;
+       }
+
+       if (!list) {
+               VideoLogError("No exist list.");
+               return FALSE;
+       }
+
+       vp_media_contents_connect();
+
+       filter_h pFilterHandle = NULL;
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+       nRet = media_filter_create(&pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_create is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       if (pFilterHandle == NULL) {
+               VideoLogError("pFilterHandle is NULL");
+               goto Exception;
+       }
+
+       nRet =
+               media_filter_set_order(pFilterHandle, MEDIA_CONTENT_ORDER_ASC,
+                                                          BOOKMARK_MARKED_TIME,
+                                                          MEDIA_CONTENT_COLLATE_DEFAULT);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_set_order is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               media_info_foreach_bookmark_from_db(szMediaID, pFilterHandle,
+                                                                                       __vp_media_contents_bookmark_iter_cb,
+                                                                                       list);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError
+                       ("media_info_foreach_bookmark_from_db is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+
+       nRet = media_filter_destroy(pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+               return FALSE;
+       }
+
+       return TRUE;
+
+  Exception:
+
+       if (pFilterHandle) {
+               media_filter_destroy(pFilterHandle);
+               pFilterHandle = NULL;
+       }
+
+       return FALSE;
+}
+
+/**
+ *
+ * @param pList
+ * @return
+ */
+bool vp_media_contents_bookmark_list_clear(GList * pList)
+{
+       VideoLogInfo("");
+
+       if (pList == NULL) {
+               VideoLogError("list is NULL");
+               return FALSE;
+       }
+
+       int nCount = 0;
+       int i = 0;
+
+       nCount = g_list_length(pList);
+       for (i = 0; i < nCount; i++) {
+               media_bookmark_h pBookmarkItem = NULL;
+               pBookmarkItem = (media_bookmark_h) g_list_nth_data(pList, i);
+               if (pBookmarkItem) {
+                       media_bookmark_destroy(pBookmarkItem);
+                       pBookmarkItem = NULL;
+               }
+       }
+
+       g_list_free(pList);
+       pList = NULL;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szMediaID
+ * @param nPosition
+ * @param szFilePath
+ * @return
+ */
+bool vp_media_contents_bookmark_insert(const char *szMediaID,
+                                                                          int nPosition,
+                                                                          const char *szFilePath)
+{
+
+       if (szMediaID == NULL) {
+               VideoLogError("szMediaID is NULL");
+               return FALSE;
+       }
+
+       if (szFilePath == NULL) {
+               VideoLogError("szFilePath is NULL");
+               return FALSE;
+       }
+
+       if (nPosition < 0) {
+               VideoLogError("nPosition is Invalid");
+               return FALSE;
+       }
+
+       vp_media_contents_connect();
+
+       if (!vp_file_exists(szFilePath)) {
+               VideoLogError("(%s) file doesnot exist", szFilePath);
+               return FALSE;
+       }
+
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+       nRet = media_bookmark_insert_to_db(szMediaID, nPosition, szFilePath);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_bookmark_insert_to_db is fail : 0x%x", nRet);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szMediaID
+ * @param nPosition
+ * @return
+ */
+bool vp_media_contents_bookmark_delete(const char *szMediaID,
+                                                                          int nPosition)
+{
+       if (szMediaID == NULL) {
+               VideoLogError("szMediaID is NULL");
+               return FALSE;
+       }
+
+       if (nPosition < 0) {
+               VideoLogError("nPosition is Invalid");
+               return FALSE;
+       }
+
+       GList *list = NULL;
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+       int nCount = 0;
+       int idx = 0;
+       int nDeleteBookmarkID = -1;
+       char *szDeletePath = NULL;
+
+       if (!vp_media_contents_bookmark_list_get(szMediaID, &list)) {
+               VideoLogError("vp_media_contents_bookmark_list_get is fail");
+               return FALSE;
+       }
+
+       nCount = g_list_length(list);
+       for (idx = 0; idx < nCount; idx++) {
+               media_bookmark_h pBookmarkItem = NULL;
+               pBookmarkItem = (media_bookmark_h) g_list_nth_data(list, idx);
+               if (pBookmarkItem) {
+                       time_t nMarkedTime;
+                       nRet =
+                               media_bookmark_get_marked_time(pBookmarkItem,
+                                                                                          &nMarkedTime);
+                       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+                               VideoLogWarning
+                                       ("media_bookmark_get_marked_time is fail : 0x%x",
+                                        nRet);
+                               continue;
+                       }
+
+                       if (nPosition == nMarkedTime) {
+                               nRet =
+                                       media_bookmark_get_bookmark_id(pBookmarkItem,
+                                                                                                  &nDeleteBookmarkID);
+                               if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+                                       VideoLogWarning
+                                               ("media_bookmark_get_bookmark_id is fail : 0x%x",
+                                                nRet);
+                                       continue;
+                               }
+
+                               nRet =
+                                       media_bookmark_get_thumbnail_path(pBookmarkItem,
+                                                                                                         &szDeletePath);
+                               if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+                                       VideoLogWarning
+                                               ("media_bookmark_get_thumbnail_path is fail : 0x%x",
+                                                nRet);
+                                       continue;
+                               }
+                               break;
+                       }
+               }
+       }
+
+       vp_media_contents_bookmark_list_clear(list);
+       list = NULL;
+
+       if (nDeleteBookmarkID == -1 || szDeletePath == NULL) {
+               VideoLogError("Not match item : %d , %s", nDeleteBookmarkID,
+                                         szDeletePath);
+               VP_FREE(szDeletePath);
+               return FALSE;
+       }
+
+       nRet = media_bookmark_delete_from_db(nDeleteBookmarkID);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_bookmark_delete_from_db is fail : 0x%x",
+                                         nRet);
+               VP_FREE(szDeletePath);
+               return FALSE;
+       }
+
+
+       if (vp_file_exists(szDeletePath)) {
+               if (!vp_file_unlink(szDeletePath)) {
+                       VideoLogWarning("Remove Failed :%s", szDeletePath);
+               }
+       } else {
+               VideoLogWarning("%s doesnot exist", szDeletePath);
+       }
+
+       VP_FREE(szDeletePath);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szMediaID
+ * @return
+ */
+bool vp_media_contents_bookmark_delete_all(const char *szMediaID)
+{
+       if (szMediaID == NULL) {
+               VideoLogError("szMediaID is NULL");
+               return FALSE;
+       }
+
+       GList *list = NULL;
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+       int nCount = 0;
+       int idx = 0;
+
+       if (!vp_media_contents_bookmark_list_get(szMediaID, &list)) {
+               VideoLogError("vp_media_contents_bookmark_list_get is fail");
+               return FALSE;
+       }
+
+       nCount = g_list_length(list);
+       for (idx = 0; idx < nCount; idx++) {
+               media_bookmark_h pBookmarkItem = NULL;
+               int nDeleteBookmarkID = -1;
+               char *szDeletePath = NULL;
+
+               pBookmarkItem = (media_bookmark_h) g_list_nth_data(list, idx);
+               if (pBookmarkItem) {
+                       nRet =
+                               media_bookmark_get_bookmark_id(pBookmarkItem,
+                                                                                          &nDeleteBookmarkID);
+                       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+                               VideoLogWarning
+                                       ("media_bookmark_get_bookmark_id is fail : 0x%x",
+                                        nRet);
+                       }
+
+                       nRet =
+                               media_bookmark_get_thumbnail_path(pBookmarkItem,
+                                                                                                 &szDeletePath);
+                       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+                               VideoLogWarning
+                                       ("media_bookmark_get_thumbnail_path is fail : 0x%x",
+                                        nRet);
+                       }
+
+                       nRet = media_bookmark_delete_from_db(nDeleteBookmarkID);
+                       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+                               VideoLogError
+                                       ("media_bookmark_delete_from_db is fail : 0x%x", nRet);
+                       }
+
+
+                       if (vp_file_exists(szDeletePath)) {
+                               if (!vp_file_unlink(szDeletePath)) {
+                                       VideoLogWarning("Remove Failed :%s", szDeletePath);
+                               }
+                       } else {
+                               VideoLogWarning("The file not eixst :%s", szDeletePath);
+                       }
+
+                       VP_FREE(szDeletePath);
+               }
+       }
+
+       vp_media_contents_bookmark_list_clear(list);
+       list = NULL;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pItem
+ * @param szFilePath
+ * @param nPosition
+ * @return
+ */
+bool vp_media_contents_bookmark_get_item_info(void *pItem,
+                                                                                         char **szFilePath,
+                                                                                         int *nPosition)
+{
+       if (pItem == NULL) {
+               VideoLogError("szMediaID is NULL");
+               return FALSE;
+       }
+
+       media_bookmark_h bookmark_h = (media_bookmark_h) pItem;
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+       nRet =
+               media_bookmark_get_marked_time(bookmark_h, (time_t *) nPosition);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_bookmark_get_marked_time is fail : 0x%x",
+                                         nRet);
+               return FALSE;
+       }
+
+       nRet = media_bookmark_get_thumbnail_path(bookmark_h, szFilePath);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_bookmark_get_thumbnail_path is fail : 0x%x",
+                                         nRet);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nSortType
+ * @param szFolder
+ * @param pList
+ * @return
+ */
+bool vp_media_contents_get_video_items_to_folder(int nSortType,
+                                                                                                char *szFolder,
+                                                                                                GList ** pList)
+{
+       if (szFolder == NULL) {
+               VideoLogError("szFolder is NULL");
+               return FALSE;
+       }
+
+       vp_media_contents_connect();
+
+       filter_h pFilterHandle = NULL;
+       media_folder_h pFolderHandle = NULL;
+
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+       video_play_sort_type_t nType = (video_play_sort_type_t) nSortType;
+       media_content_order_e nOrderType = MEDIA_CONTENT_ORDER_ASC;
+
+       char *szOrder = NULL;
+       char *szCondition = NULL;
+       char *szFolderID = NULL;
+
+       nRet = media_filter_create(&pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_create is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       if (pFilterHandle == NULL) {
+               VideoLogError("pFilterHandle is NULL");
+               goto Exception;
+       }
+
+
+       switch (nType) {
+       case VIDEO_SORT_BY_NONE:
+       case VIDEO_SORT_BY_NAME_A_Z:
+               nOrderType = MEDIA_CONTENT_ORDER_ASC;
+               VP_STRDUP(szOrder, MEDIA_TITLE);
+               break;
+
+       case VIDEO_SORT_BY_NAME_Z_A:
+               nOrderType = MEDIA_CONTENT_ORDER_DESC;
+               VP_STRDUP(szOrder, MEDIA_TITLE);
+               break;
+
+       case VIDEO_SORT_BY_DATE_MOST_RECENT:
+               nOrderType = MEDIA_CONTENT_ORDER_DESC;
+               VP_STRDUP(szOrder, MEDIA_MODIFIED_TIME);
+               break;
+
+       case VIDEO_SORT_BY_OLDEST:
+               nOrderType = MEDIA_CONTENT_ORDER_ASC;
+               VP_STRDUP(szOrder, MEDIA_MODIFIED_TIME);
+               break;
+
+       default:
+               nOrderType = MEDIA_CONTENT_ORDER_ASC;
+               VP_STRDUP(szOrder, MEDIA_TITLE);
+       }
+
+       szCondition =
+               g_strdup_printf
+               ("MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE IS NOT 101) and FOLDER_PATH = \"%s\"",
+                szFolder);
+       nRet =
+               media_filter_set_condition(pFilterHandle, szCondition,
+                                                                  MEDIA_CONTENT_COLLATE_DEFAULT);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               media_folder_foreach_folder_from_db(pFilterHandle,
+                                                                                       __vp_media_contents_folder_iter_cb,
+                                                                                       &pFolderHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError
+                       ("media_folder_foreach_folder_from_db is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       if (pFolderHandle == NULL) {
+               VideoLogError("pFolderHandle is NULL");
+               goto Exception;
+       }
+
+       nRet = media_folder_get_folder_id(pFolderHandle, &szFolderID);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_folder_get_folder_id is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       VP_FREE(szCondition);
+
+       szCondition = g_strdup_printf("MEDIA_TYPE = 1");
+       nRet =
+               media_filter_set_condition(pFilterHandle, szCondition,
+                                                                  MEDIA_CONTENT_COLLATE_DEFAULT);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               media_filter_set_order(pFilterHandle, nOrderType, szOrder,
+                                                          MEDIA_CONTENT_COLLATE_NOCASE);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_set_order is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               media_folder_foreach_media_from_db(szFolderID, pFilterHandle,
+                                                                                  __vp_media_contents_video_iter_cb,
+                                                                                  pList);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+                                         nRet);
+               goto Exception;
+       }
+
+       nRet = media_filter_destroy(pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       VP_FREE(szFolderID);
+       VP_FREE(szCondition);
+       VP_FREE(szOrder);
+
+       return TRUE;
+
+  Exception:
+
+       VP_FREE(szFolderID);
+       VP_FREE(szCondition);
+       VP_FREE(szOrder);
+
+       if (pFilterHandle) {
+               media_filter_destroy(pFilterHandle);
+               pFilterHandle = NULL;
+       }
+
+       return FALSE;
+}
+
+/**
+ *
+ * @param nSortType
+ * @param pList
+ * @return
+ */
+bool vp_media_contents_get_video_items(int nSortType, GList ** pList)
+{
+       vp_media_contents_connect();
+
+       filter_h pFilterHandle = NULL;
+
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+       video_play_sort_type_t nType = (video_play_sort_type_t) nSortType;
+       media_content_order_e nOrderType = MEDIA_CONTENT_ORDER_ASC;
+       char *szOrder = NULL;
+       char *szCondition = NULL;
+
+       nRet = media_filter_create(&pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_create is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       if (pFilterHandle == NULL) {
+               VideoLogError("pFilterHandle is NULL");
+               goto Exception;
+       }
+       switch (nType) {
+       case VIDEO_SORT_BY_NONE:
+       case VIDEO_SORT_BY_NAME_A_Z:
+               nOrderType = MEDIA_CONTENT_ORDER_ASC;
+               VP_STRDUP(szOrder, MEDIA_TITLE);
+               break;
+
+       case VIDEO_SORT_BY_NAME_Z_A:
+               nOrderType = MEDIA_CONTENT_ORDER_DESC;
+               VP_STRDUP(szOrder, MEDIA_TITLE);
+               break;
+
+       case VIDEO_SORT_BY_DATE_MOST_RECENT:
+               nOrderType = MEDIA_CONTENT_ORDER_DESC;
+               VP_STRDUP(szOrder, MEDIA_MODIFIED_TIME);
+               break;
+
+       case VIDEO_SORT_BY_OLDEST:
+               nOrderType = MEDIA_CONTENT_ORDER_ASC;
+               VP_STRDUP(szOrder, MEDIA_MODIFIED_TIME);
+               break;
+
+       default:
+               nOrderType = MEDIA_CONTENT_ORDER_ASC;
+               VP_STRDUP(szOrder, MEDIA_TITLE);
+       }
+
+       szCondition =
+               g_strdup_printf
+               ("MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE IS NOT 101)");
+
+       nRet =
+               media_filter_set_condition(pFilterHandle, szCondition,
+                                                                  MEDIA_CONTENT_COLLATE_DEFAULT);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               media_filter_set_order(pFilterHandle, nOrderType, szOrder,
+                                                          MEDIA_CONTENT_COLLATE_NOCASE);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_set_order is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               media_info_foreach_media_from_db(pFilterHandle,
+                                                                                __vp_media_contents_video_iter_cb,
+                                                                                pList);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+                                         nRet);
+               goto Exception;
+       }
+
+       nRet = media_filter_destroy(pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+               VP_FREE(szCondition);
+               VP_FREE(szOrder);
+               return FALSE;
+       }
+
+       VP_FREE(szCondition);
+       VP_FREE(szOrder);
+
+       return TRUE;
+
+  Exception:
+       VP_FREE(szCondition);
+       VP_FREE(szOrder);
+
+       if (pFilterHandle) {
+               media_filter_destroy(pFilterHandle);
+               pFilterHandle = NULL;
+       }
+
+       return FALSE;
+}
+
+/**
+ *
+ * @param pList
+ * @return
+ */
+bool vp_media_contents_free_video_items(GList * pList)
+{
+       VideoLogInfo("");
+
+       if (pList == NULL) {
+               VideoLogError("list is NULL");
+               return FALSE;
+       }
+
+       int nCount = 0;
+       int i = 0;
+
+       nCount = g_list_length(pList);
+       for (i = 0; i < nCount; i++) {
+               media_info_h pMediaItem = NULL;
+               pMediaItem = (media_info_h) g_list_nth_data(pList, i);
+               if (pMediaItem) {
+                       media_info_destroy(pMediaItem);
+                       pMediaItem = NULL;
+               }
+       }
+
+       g_list_free(pList);
+       pList = NULL;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param szNextURL
+ * @param bLoop
+ * @param pList
+ * @return
+ */
+bool vp_media_contents_get_next_file_path(const char *szMediaURL,
+                                                                                 char **szNextURL, bool bLoop,
+                                                                                 GList * pList)
+{
+       if (!szMediaURL) {
+               VideoLogError("No exist szMediaID.");
+               return FALSE;
+       }
+
+       if (pList == NULL) {
+               VideoLogError("list is NULL");
+               return FALSE;
+       }
+
+       int nCount = 0;
+       int i = 0;
+
+       media_info_h pFirstMediaItem = NULL;
+       bool bCheck = FALSE;
+
+       nCount = g_list_length(pList);
+       for (i = 0; i < nCount; i++) {
+               media_info_h pMediaItem = NULL;
+               pMediaItem = (media_info_h) g_list_nth_data(pList, i);
+               if (pMediaItem == NULL) {
+                       continue;
+               }
+
+               if (pFirstMediaItem == NULL) {
+                       pFirstMediaItem = pMediaItem;
+               }
+
+               char *szPath = NULL;
+               int nRet = MEDIA_CONTENT_ERROR_NONE;
+               nRet = media_info_get_file_path(pMediaItem, &szPath);
+               if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+                       VideoLogWarning("media_info_get_file_path is fail : 0x%x",
+                                                       nRet);
+                       continue;
+               }
+
+               if (szPath) {
+
+                       if (bCheck) {
+                               VP_STRDUP(*szNextURL, szPath);
+                               VP_FREE(szPath);
+                               return TRUE;
+                       }
+
+                       if (!strcmp(szMediaURL, szPath)) {
+                               bCheck = TRUE;
+                       }
+
+                       VP_FREE(szPath);
+               }
+       }
+
+       if (bLoop) {
+               if (pFirstMediaItem) {
+                       char *szPath = NULL;
+                       media_info_get_file_path(pFirstMediaItem, &szPath);
+                       if (szPath) {
+                               VP_STRDUP(*szNextURL, szPath);
+                               VP_FREE(szPath);
+                       }
+               }
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param szPrevURL
+ * @param bLoop
+ * @param pList
+ * @return
+ */
+bool vp_media_contents_get_prev_file_path(const char *szMediaURL,
+                                                                                 char **szPrevURL, bool bLoop,
+                                                                                 GList * pList)
+{
+       if (!szMediaURL) {
+               VideoLogError("No exist szMediaID.");
+               return FALSE;
+       }
+
+       if (pList == NULL) {
+               VideoLogError("list is NULL");
+               return FALSE;
+       }
+
+       int nCount = 0;
+       int i = 0;
+
+       media_info_h pLastMediaItem = NULL;
+       bool bCheck = FALSE;
+
+       nCount = g_list_length(pList);
+       for (i = nCount - 1; i >= 0; i--) {
+               VideoLogWarning("-- %d --", i);
+               media_info_h pMediaItem = NULL;
+               pMediaItem = (media_info_h) g_list_nth_data(pList, i);
+               if (pMediaItem == NULL) {
+                       continue;
+               }
+
+               if (pLastMediaItem == NULL) {
+                       pLastMediaItem = pMediaItem;
+               }
+
+               char *szPath = NULL;
+               int nRet = MEDIA_CONTENT_ERROR_NONE;
+               nRet = media_info_get_file_path(pMediaItem, &szPath);
+               if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+                       VideoLogWarning("media_info_get_file_path is fail : 0x%x",
+                                                       nRet);
+                       continue;
+               }
+               if (szPath) {
+
+                       if (bCheck) {
+                               VP_STRDUP(*szPrevURL, szPath);
+                               VP_FREE(szPath);
+                               return TRUE;
+                       }
+
+                       if (!strcmp(szMediaURL, szPath)) {
+                               bCheck = TRUE;
+                       }
+
+                       VP_FREE(szPath);
+               }
+       }
+
+       if (bLoop) {
+               if (pLastMediaItem) {
+                       char *szPath = NULL;
+                       media_info_get_file_path(pLastMediaItem, &szPath);
+                       if (szPath) {
+                               VP_STRDUP(*szPrevURL, szPath);
+                               VP_FREE(szPath);
+                       }
+               }
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pFunc
+ * @param pUserData
+ * @return
+ */
+bool vp_media_contents_set_update_cb(MediaUpdateCb pFunc, void *pUserData)
+{
+       if (pFunc == NULL) {
+               return FALSE;
+       }
+
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+       g_media_update_cb = pFunc;
+
+       nRet = media_content_add_db_updated_cb((void *)
+                                                                                  __vp_media_contents_db_update_cb,
+                                                                                  pUserData, &noti_handle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogWarning("media_content_add_db_updated_cb is fail : 0x%x",
+                                               nRet);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ */
+void vp_media_contents_unset_update_cb()
+{
+       g_media_update_cb = NULL;
+       if (media_content_remove_db_updated_cb(noti_handle) !=
+               MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to media_content_remove_db_updated_cb.");
+       }
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param bCloud
+ * @return
+ */
+bool vp_media_contents_get_cloud_attribute(const char *szFilePath,
+                                                                                  bool * bCloud)
+{
+
+       if (szFilePath == NULL) {
+               VideoLogError("szFilePath is NULL");
+               return FALSE;
+       }
+
+       vp_media_contents_connect();
+
+       media_info_h pMediaHandle = NULL;
+       filter_h pFilterHandle = NULL;
+
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+       char szTmpStr[4096] = { 0, };
+       snprintf(szTmpStr, 4096,
+                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"",
+                        szFilePath);
+
+       nRet = media_filter_create(&pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_create is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       if (pFilterHandle == NULL) {
+               VideoLogError("Filter handle is NULL");
+               goto Exception;
+       }
+
+       nRet =
+               media_filter_set_condition(pFilterHandle, szTmpStr,
+                                                                  MEDIA_CONTENT_COLLATE_DEFAULT);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               media_info_foreach_media_from_db(pFilterHandle,
+                                                                                __vp_media_contents_info_cb,
+                                                                                &pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+                                         nRet);
+               goto Exception;
+       }
+
+       if (pMediaHandle == NULL) {
+               VideoLogError("media info handle is NULL");
+               goto Exception;
+       }
+
+       nRet = media_filter_destroy(pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet = media_info_destroy(pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_destroy is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       return TRUE;
+
+  Exception:
+
+       if (pFilterHandle) {
+               media_filter_destroy(pFilterHandle);
+               pFilterHandle = NULL;
+       }
+
+       if (pMediaHandle) {
+               media_info_destroy(pMediaHandle);
+               pMediaHandle = NULL;
+       }
+       return FALSE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param pLocation
+ * @return
+ */
+bool vp_media_contents_set_location_tag(const char *szFilePath,
+                                                                               const char *pLocation)
+{
+       if (szFilePath == NULL || pLocation == NULL) {
+               VideoLogError("szFilePath or city is NULL");
+               return FALSE;
+       }
+
+       vp_media_contents_connect();
+
+       media_info_h pMediaHandle = NULL;
+       filter_h pFilterHandle = NULL;
+
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+       char szTmpStr[4096] = { 0, };
+       snprintf(szTmpStr, 4096,
+                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"",
+                        szFilePath);
+
+       nRet = media_filter_create(&pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_create is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       if (pFilterHandle == NULL) {
+               VideoLogError("Filter handle is NULL");
+               goto Exception;
+       }
+
+       nRet =
+               media_filter_set_condition(pFilterHandle, szTmpStr,
+                                                                  MEDIA_CONTENT_COLLATE_DEFAULT);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               media_info_foreach_media_from_db(pFilterHandle,
+                                                                                __vp_media_contents_info_cb,
+                                                                                &pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+                                         nRet);
+               goto Exception;
+       }
+
+       if (pMediaHandle == NULL) {
+               VideoLogError("media info handle is NULL");
+               goto Exception;
+       }
+
+       /* nRet = media_info_set_location_tag(pMediaHandle, pLocation); // Deprecated API, Parent function not called.
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_set_location_tag is fail : 0x%x", nRet);
+               goto Exception;
+       } */
+
+       nRet = media_info_update_to_db(pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Failed to update media db!");
+               goto Exception;
+       }
+
+       nRet = media_filter_destroy(pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet = media_info_destroy(pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_destroy is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       return TRUE;
+
+  Exception:
+
+       if (pFilterHandle) {
+               media_filter_destroy(pFilterHandle);
+               pFilterHandle = NULL;
+       }
+
+       if (pMediaHandle) {
+               media_info_destroy(pMediaHandle);
+               pMediaHandle = NULL;
+       }
+       return FALSE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param szLocationTag
+ * @return
+ */
+bool vp_media_contents_get_location_tag(const char *szFilePath,
+                                                                               char **szLocationTag)
+{
+       if (szFilePath == NULL) {
+               VideoLogError("szFilePath is NULL");
+               return FALSE;
+       }
+
+       vp_media_contents_connect();
+
+       media_info_h pMediaHandle = NULL;
+       filter_h pFilterHandle = NULL;
+
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+       char *szLocation = NULL;
+
+       char szTmpStr[4096] = { 0, };
+       snprintf(szTmpStr, 4096,
+                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"",
+                        szFilePath);
+
+       nRet = media_filter_create(&pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_create is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       if (pFilterHandle == NULL) {
+               VideoLogError("Filter handle is NULL");
+               goto Exception;
+       }
+
+       nRet =
+               media_filter_set_condition(pFilterHandle, szTmpStr,
+                                                                  MEDIA_CONTENT_COLLATE_DEFAULT);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               media_info_foreach_media_from_db(pFilterHandle,
+                                                                                __vp_media_contents_info_cb,
+                                                                                &pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError
+                       ("media_info_foreach_media_from_dbmedia_filter_set_condition is fail : 0x%x",
+                        nRet);
+               goto Exception;
+       }
+
+       if (pMediaHandle == NULL) {
+               VideoLogError("media info handle is NULL");
+               goto Exception;
+       }
+
+       /* nRet = media_info_get_location_tag(pMediaHandle, &szLocation); // Deprecated API, Parent function not called.
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_get_location_tag is fail : 0x%x", nRet);
+               goto Exception;
+       } */
+
+       VP_STRDUP(*szLocationTag, szLocation);
+       VP_FREE(szLocation);
+
+       nRet = media_filter_destroy(pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet = media_info_destroy(pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_destroy is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       return TRUE;
+
+  Exception:
+
+       VP_FREE(szLocation);
+
+       if (pFilterHandle) {
+               media_filter_destroy(pFilterHandle);
+               pFilterHandle = NULL;
+       }
+
+       if (pMediaHandle) {
+               media_info_destroy(pMediaHandle);
+               pMediaHandle = NULL;
+       }
+       return FALSE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param pWeather
+ * @return
+ */
+bool vp_media_contents_set_weahter_tag(const char *szFilePath,
+                                                                          const char *pWeather)
+{
+       if (szFilePath == NULL || pWeather == NULL) {
+               VideoLogError("szFilePath or pWeather is NULL");
+               return FALSE;
+       }
+
+       vp_media_contents_connect();
+
+       media_info_h pMediaHandle = NULL;
+       filter_h pFilterHandle = NULL;
+
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+       char szTmpStr[4096] = { 0, };
+       snprintf(szTmpStr, 4096,
+                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"",
+                        szFilePath);
+
+       nRet = media_filter_create(&pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_create is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       if (pFilterHandle == NULL) {
+               VideoLogError("Filter handle is NULL");
+               goto Exception;
+       }
+
+       nRet =
+               media_filter_set_condition(pFilterHandle, szTmpStr,
+                                                                  MEDIA_CONTENT_COLLATE_DEFAULT);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               media_info_foreach_media_from_db(pFilterHandle,
+                                                                                __vp_media_contents_info_cb,
+                                                                                &pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+                                         nRet);
+               goto Exception;
+       }
+
+       if (pMediaHandle == NULL) {
+               VideoLogError("media info handle is NULL");
+               goto Exception;
+       }
+
+       /* nRet = media_info_set_weather(pMediaHandle, pWeather); // Deprecated API, Parent function not called.
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_set_weather is fail : 0x%x", nRet);
+               goto Exception;
+       } */
+
+       nRet = media_info_update_to_db(pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Failed to update media db!");
+               goto Exception;
+       }
+
+       nRet = media_filter_destroy(pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet = media_info_destroy(pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_destroy is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       return TRUE;
+
+  Exception:
+
+       if (pFilterHandle) {
+               media_filter_destroy(pFilterHandle);
+               pFilterHandle = NULL;
+       }
+
+       if (pMediaHandle) {
+               media_info_destroy(pMediaHandle);
+               pMediaHandle = NULL;
+       }
+       return FALSE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param szWeatherTag
+ * @return
+ */
+bool vp_media_contents_get_weahter_tag(const char *szFilePath,
+                                                                          char **szWeatherTag)
+{
+       if (szFilePath == NULL) {
+               VideoLogError("szFilePath is NULL");
+               return FALSE;
+       }
+
+       vp_media_contents_connect();
+
+       media_info_h pMediaHandle = NULL;
+       filter_h pFilterHandle = NULL;
+
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+       char *szWeather = NULL;
+
+       char szTmpStr[4096] = { 0, };
+       snprintf(szTmpStr, 4096,
+                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"",
+                        szFilePath);
+
+       nRet = media_filter_create(&pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_create is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       if (pFilterHandle == NULL) {
+               VideoLogError("Filter handle is NULL");
+               goto Exception;
+       }
+
+       nRet =
+               media_filter_set_condition(pFilterHandle, szTmpStr,
+                                                                  MEDIA_CONTENT_COLLATE_DEFAULT);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               media_info_foreach_media_from_db(pFilterHandle,
+                                                                                __vp_media_contents_info_cb,
+                                                                                &pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+                                         nRet);
+               goto Exception;
+       }
+
+       if (pMediaHandle == NULL) {
+               VideoLogError("media info handle is NULL");
+               goto Exception;
+       }
+
+       /* nRet = media_info_get_weather(pMediaHandle, &szWeather); // Deprecated API, Parent function not called.
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_get_weather is fail : 0x%x", nRet);
+               goto Exception;
+       } */
+
+       VP_STRDUP(*szWeatherTag, szWeather);
+       VP_FREE(szWeather);
+
+       nRet = media_filter_destroy(pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet = media_info_destroy(pMediaHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_destroy is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       return TRUE;
+
+  Exception:
+
+       VP_FREE(szWeather);
+
+       if (pFilterHandle) {
+               media_filter_destroy(pFilterHandle);
+               pFilterHandle = NULL;
+       }
+
+       if (pMediaHandle) {
+               media_info_destroy(pMediaHandle);
+               pMediaHandle = NULL;
+       }
+       return FALSE;
+}
+
+/**
+ *
+ * @param pList
+ * @return
+ */
+bool vp_media_contents_subtitle_list_get(GList ** pList)
+{
+       char *szCondition = NULL;
+
+       if (pList == NULL) {
+               VideoLogError("list is NULL");
+               return FALSE;
+       }
+
+       vp_media_contents_connect();
+
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+       filter_h pFilterHandle = NULL;
+       nRet = media_filter_create(&pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_create is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       if (pFilterHandle == NULL) {
+               VideoLogError("pFilterHandle is NULL");
+               goto Exception;
+       }
+       // media_type 4 : other file
+       szCondition = (char *)
+               g_strdup_printf
+               ("MEDIA_TYPE = 4 AND (MEDIA_DISPLAY_NAME like \"%%%s\" OR MEDIA_DISPLAY_NAME like \"%%%s\" OR MEDIA_DISPLAY_NAME like \"%%%s\")",
+                ".smi", ".sub", ".srt");
+       if (szCondition == NULL) {
+               VideoLogError("szCondition NULL");
+               goto Exception;
+       }
+
+       VideoSecureLogInfo("szCondition is szCondition: %s", szCondition);
+
+       nRet =
+               media_filter_set_condition(pFilterHandle, szCondition,
+                                                                  MEDIA_CONTENT_COLLATE_DEFAULT);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               media_filter_set_order(pFilterHandle, MEDIA_CONTENT_ORDER_ASC,
+                                                          MEDIA_TITLE, MEDIA_CONTENT_COLLATE_NOCASE);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_set_order is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               media_info_foreach_media_from_db(pFilterHandle,
+                                                                                __vp_media_contents_subtitles_iter_cb,
+                                                                                pList);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+                                         nRet);
+               goto Exception;
+       }
+
+       nRet = media_filter_destroy(pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_destroy is fail : 0x%x", nRet);
+               VP_FREE(szCondition);
+               return FALSE;
+       }
+
+       VP_FREE(szCondition);
+
+       return TRUE;
+
+  Exception:
+       VP_FREE(szCondition);
+
+       if (pFilterHandle) {
+               media_filter_destroy(pFilterHandle);
+               pFilterHandle = NULL;
+       }
+
+       return FALSE;
+}
+
+/* callback functions */
+/**
+ *
+ * @param pMediaHandle
+ * @param pUserData
+ * @return
+ */
+static bool __vp_media_contents_file_is_exist_cb(media_info_h
+                                                                                                pMediaHandle,
+                                                                                                void *pUserData)
+{
+       bool *bExist = (bool *) pUserData;
+
+       if (pMediaHandle != NULL) {
+               VideoLogInfo("pMeidaHandle is %p", pMediaHandle);
+               *bExist = TRUE;
+       } else {
+               VideoLogError("pMeidaHandle is NULL");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+bool vp_media_contents_file_is_exist(const char *szFilePath)
+{
+       if (szFilePath == NULL) {
+               VideoLogError("szFilePath is NULL");
+               return FALSE;
+       }
+
+       vp_media_contents_connect();
+
+       bool bExist = FALSE;
+       filter_h pFilterHandle = NULL;
+
+       int nRet = MEDIA_CONTENT_ERROR_NONE;
+
+       char szTmpStr[4096] = { 0, };
+       snprintf(szTmpStr, 4096,
+                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"",
+                        szFilePath);
+
+       nRet = media_filter_create(&pFilterHandle);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_create is fail : 0x%x", nRet);
+               goto End;
+       }
+
+       if (pFilterHandle == NULL) {
+               VideoLogError("Filter handle is NULL");
+               goto End;
+       }
+
+       nRet =
+               media_filter_set_condition(pFilterHandle, szTmpStr,
+                                                                  MEDIA_CONTENT_COLLATE_DEFAULT);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_filter_set_condition is fail : 0x%x", nRet);
+               goto End;
+       }
+
+       nRet =
+               media_info_foreach_media_from_db(pFilterHandle,
+                                                                                __vp_media_contents_file_is_exist_cb,
+                                                                                &bExist);
+       if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("media_info_foreach_media_from_db is fail : 0x%x",
+                                         nRet);
+               goto End;
+       }
+
+  End:
+       if (pFilterHandle) {
+               media_filter_destroy(pFilterHandle);
+               pFilterHandle = NULL;
+       }
+
+       return bExist;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+bool vp_media_contents_del_video(const char *szFilePath)
+{
+
+       if (!szFilePath) {
+               VideoLogError("szFilePath is NULL.");
+               return FALSE;
+       }
+
+       vp_file_unlink(szFilePath);
+
+       char *szVideoId = NULL;
+       vp_media_contents_get_video_id(szFilePath, &szVideoId);
+
+       if (!szVideoId) {
+               VideoLogError("szVideoId is NULL.");
+               return FALSE;
+       }
+
+       media_content_scan_file(szFilePath);
+       VideoSecureLogInfo("szFilePath:=%s,%s", szVideoId, szFilePath);
+       VP_FREE(szVideoId);
+
+       return TRUE;
+}
diff --git a/playview/src/core/vp-media-key.c b/playview/src/core/vp-media-key.c
new file mode 100755 (executable)
index 0000000..2348dd3
--- /dev/null
@@ -0,0 +1,233 @@
+/*
+ * Copyright (c) 2020 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 <media_key.h>
+
+#include "vp-play-macro-define.h"
+#include "vp-media-key.h"
+#include "vp-play-log.h"
+
+
+typedef struct _MediaKey {
+       Evas_Object *pWin;
+
+       void *pUserData;
+       MediaKeyEventCbFunc pEventCb;
+
+} MediaKey;
+
+/**
+ *
+ * @param pMediaKey
+ */
+static void _vp_media_key_destroy_handle(MediaKey * pMediaKey);
+
+
+/* callback functions */
+/**
+ *
+ * @param nKey
+ * @param nEvent
+ * @param pUserData
+ */
+static void __vp_media_key_event_cb(media_key_e nKey,
+                                                                       media_key_event_e nEvent,
+                                                                       void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("User data is NULL.");
+               return;
+       }
+
+       bool bReleased = false;
+       if (nEvent == MEDIA_KEY_STATUS_RELEASED) {
+               bReleased = true;
+       }
+
+       if (nEvent == MEDIA_KEY_STATUS_UNKNOWN) {
+               VideoLogWarning("unknown key status");
+               return;
+       }
+
+       MediaKey *pMediaKey = (MediaKey *) pUserData;
+
+       if (pMediaKey->pEventCb == NULL) {
+               VideoLogWarning("pMediaKey->pEventCb is NULL");
+               return;
+       }
+
+       switch (nKey) {
+       case MEDIA_KEY_PLAY:
+               pMediaKey->pEventCb(VP_MEDIA_KEY_PLAY, bReleased,
+                                                       pMediaKey->pUserData);
+               break;
+       case MEDIA_KEY_PAUSE:
+               pMediaKey->pEventCb(VP_MEDIA_KEY_PAUSE, bReleased,
+                                                       pMediaKey->pUserData);
+               break;
+
+       case MEDIA_KEY_PLAYPAUSE:
+               pMediaKey->pEventCb(VP_MEDIA_KEY_PLAYPAUSE, bReleased,
+                                                       pMediaKey->pUserData);
+               break;
+       case MEDIA_KEY_PREVIOUS:
+               pMediaKey->pEventCb(VP_MEDIA_KEY_PREVIOUS, bReleased,
+                                                       pMediaKey->pUserData);
+               break;
+       case MEDIA_KEY_REWIND:
+               pMediaKey->pEventCb(VP_MEDIA_KEY_REWIND, bReleased,
+                                                       pMediaKey->pUserData);
+               break;
+       case MEDIA_KEY_NEXT:
+               pMediaKey->pEventCb(VP_MEDIA_KEY_NEXT, bReleased,
+                                                       pMediaKey->pUserData);
+               break;
+       case MEDIA_KEY_FASTFORWARD:
+               pMediaKey->pEventCb(VP_MEDIA_KEY_FASTFORWARD, bReleased,
+                                                       pMediaKey->pUserData);
+               break;
+       case MEDIA_KEY_STOP:
+               pMediaKey->pEventCb(VP_MEDIA_KEY_STOP, bReleased,
+                                                       pMediaKey->pUserData);
+               break;
+       default:
+               VideoLogWarning("Undefined key : %d", nKey);
+               break;
+       }
+
+}
+
+/* internal functions */
+/**
+ *
+ * @param pMediaKey
+ */
+static void _vp_media_key_destroy_handle(MediaKey * pMediaKey)
+{
+       if (pMediaKey == NULL) {
+               VideoLogError("pMediaKey is NULL");
+               return;
+       }
+
+       VP_FREE(pMediaKey);
+}
+
+
+
+/* external functions */
+/**
+ *
+ * @param pWin
+ * @param pEventCb
+ * @return
+ */
+media_key_handle vp_media_key_create(Evas_Object * pWin,
+                                                                        MediaKeyEventCbFunc pEventCb)
+{
+       if (pWin == NULL) {
+               VideoLogError("pWin is NULL");
+               return NULL;
+       }
+
+       MediaKey *pMediaKey = NULL;
+
+       pMediaKey = calloc(1, sizeof(MediaKey));
+
+       if (pMediaKey == NULL) {
+               VideoLogError("pMediaKey alloc fail");
+               return NULL;
+       }
+
+       pMediaKey->pEventCb = pEventCb;
+
+       return (media_key_handle) pMediaKey;
+}
+
+/**
+ *
+ * @param pMediaKeyHandle
+ */
+void vp_media_key_destroy(media_key_handle pMediaKeyHandle)
+{
+       if (pMediaKeyHandle == NULL) {
+               VideoLogError("pMediaKeyHandle is NULL");
+               return;
+       }
+
+       MediaKey *pMediaKey = (MediaKey *) pMediaKeyHandle;
+
+       vp_media_key_unrealize(pMediaKeyHandle);
+
+       _vp_media_key_destroy_handle(pMediaKey);
+}
+
+/**
+ *
+ * @param pMediaKeyHandle
+ * @return
+ */
+bool vp_media_key_realize(media_key_handle pMediaKeyHandle)
+{
+       if (pMediaKeyHandle == NULL) {
+               VideoLogError("pMediaKeyHandle is NULL");
+               return FALSE;
+       }
+
+       MediaKey *pMediaKey = (MediaKey *) pMediaKeyHandle;
+       int nErr = MEDIA_KEY_ERROR_NONE;
+       nErr = media_key_reserve(__vp_media_key_event_cb, (void *) pMediaKey);
+       if (nErr != MEDIA_KEY_ERROR_NONE) {
+               VideoLogError("media_key_reserve().. %d", nErr);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+/**
+ *
+ * @param pMediaKeyHandle
+ * @return
+ */
+bool vp_media_key_unrealize(media_key_handle pMediaKeyHandle)
+{
+       if (pMediaKeyHandle == NULL) {
+               VideoLogError("pMediaKeyHandle is NULL");
+               return FALSE;
+       }
+
+       media_key_release();
+       return TRUE;
+}
+
+/**
+ *
+ * @param pMediaKeyHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_media_key_set_user_data(media_key_handle pMediaKeyHandle,
+                                                               void *pUserData)
+{
+       if (pMediaKeyHandle == NULL) {
+               VideoLogError("pMediaKeyHandle is NULL");
+               return FALSE;
+       }
+
+       MediaKey *pMediaKey = (MediaKey *) pMediaKeyHandle;
+
+       pMediaKey->pUserData = pUserData;
+
+       return TRUE;
+}
diff --git a/playview/src/core/vp-mm-player.c b/playview/src/core/vp-mm-player.c
new file mode 100755 (executable)
index 0000000..c35b859
--- /dev/null
@@ -0,0 +1,3243 @@
+/*
+ * Copyright (c) 2020 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 <Ecore.h>
+#include <player.h>
+#include "vp-mm-player.h"
+#include "vp-play-macro-define.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+/**
+ *
+ * @param nErr
+ */
+static void _vp_mm_player_print_err(int nErr)
+{
+       switch (nErr) {
+       case PLAYER_ERROR_NONE:
+               VideoLogError("PLAYER_ERROR_NONE");
+               break;
+       case PLAYER_ERROR_OUT_OF_MEMORY:
+               VideoLogError("PLAYER_ERROR_OUT_OF_MEMORY");
+               break;
+       case PLAYER_ERROR_INVALID_PARAMETER:
+               VideoLogError("PLAYER_ERROR_INVALID_PARAMETER");
+               break;
+       case PLAYER_ERROR_NO_SUCH_FILE:
+               VideoLogError("PLAYER_ERROR_NO_SUCH_FILE");
+               break;
+       case PLAYER_ERROR_INVALID_OPERATION:
+               VideoLogError("PLAYER_ERROR_INVALID_OPERATION");
+               break;
+       case PLAYER_ERROR_FILE_NO_SPACE_ON_DEVICE:
+               VideoLogError("PLAYER_ERROR_FILE_NO_SPACE_ON_DEVICE");
+               break;
+       case PLAYER_ERROR_SEEK_FAILED:
+               VideoLogError("PLAYER_ERROR_SEEK_FAILED");
+               break;
+       case PLAYER_ERROR_INVALID_STATE:
+               VideoLogError("PLAYER_ERROR_INVALID_STATE");
+               break;
+       case PLAYER_ERROR_NOT_SUPPORTED_FILE:
+               VideoLogError("PLAYER_ERROR_NOT_SUPPORTED_FILE");
+               break;
+       case PLAYER_ERROR_INVALID_URI:
+               VideoLogError("PLAYER_ERROR_INVALID_URI");
+               break;
+       case PLAYER_ERROR_SOUND_POLICY:
+               VideoLogError("PLAYER_ERROR_SOUND_POLICY");
+               break;
+       case PLAYER_ERROR_CONNECTION_FAILED:
+               VideoLogError("PLAYER_ERROR_CONNECTION_FAILED");
+               break;
+       case PLAYER_ERROR_VIDEO_CAPTURE_FAILED:
+               VideoLogError("PLAYER_ERROR_VIDEO_CAPTURE_FAILED");
+               break;
+       case PLAYER_ERROR_DRM_EXPIRED:
+               VideoLogError("PLAYER_ERROR_DRM_EXPIRED");
+               break;
+       case PLAYER_ERROR_DRM_NO_LICENSE:
+               VideoLogError("PLAYER_ERROR_DRM_NO_LICENSE");
+               break;
+       case PLAYER_ERROR_DRM_FUTURE_USE:
+               VideoLogError("PLAYER_ERROR_DRM_FUTURE_USE");
+               break;
+       }
+}
+
+/**
+ *
+ * @param nCode
+ * @param bAppToFW
+ * @return
+ */
+static int _vp_mm_player_priv_convert_video_sink(int nCode, bool bAppToFW)
+{
+
+       if (bAppToFW) {
+               switch (nCode) {
+               case PLAYER_DISPLAY_TYPE_OVERLAY:
+                       return VP_MM_PLAYER_VIDEO_TYPE_X11;
+               case PLAYER_DISPLAY_TYPE_EVAS:
+                       return VP_MM_PLAYER_VIDEO_TYPE_EVAS;
+               }
+       } else {
+               switch (nCode) {
+               case VP_MM_PLAYER_VIDEO_TYPE_X11:
+                       return PLAYER_DISPLAY_TYPE_OVERLAY;
+               case VP_MM_PLAYER_VIDEO_TYPE_EVAS:
+                       return PLAYER_DISPLAY_TYPE_EVAS;
+               }
+       }
+       return 0;
+}
+
+#ifdef _NATIVE_BUFFER_SYNC
+#else
+/**
+ *
+ * @param nCode
+ * @param bAppToFW
+ * @return
+ */
+static int _vp_mm_player_priv_convert_rotate(int nCode, bool bAppToFW)
+{
+
+       if (bAppToFW) {
+               switch (nCode) {
+               case PLAYER_DISPLAY_ROTATION_NONE:
+                       return VP_MM_PLAYER_ROTATE_0;
+               case PLAYER_DISPLAY_ROTATION_90:
+                       return VP_MM_PLAYER_ROTATE_90;
+               case PLAYER_DISPLAY_ROTATION_180:
+                       return VP_MM_PLAYER_ROTATE_180;
+               case PLAYER_DISPLAY_ROTATION_270:
+                       return VP_MM_PLAYER_ROTATE_270;
+               }
+       } else {
+               switch (nCode) {
+               case VP_MM_PLAYER_ROTATE_0:
+                       return PLAYER_DISPLAY_ROTATION_NONE;
+               case VP_MM_PLAYER_ROTATE_90:
+                       return PLAYER_DISPLAY_ROTATION_90;
+               case VP_MM_PLAYER_ROTATE_180:
+                       return PLAYER_DISPLAY_ROTATION_180;
+               case VP_MM_PLAYER_ROTATE_270:
+                       return PLAYER_DISPLAY_ROTATION_270;
+               }
+       }
+       return 0;
+}
+#endif
+
+/**
+ *
+ * @param nCode
+ * @param bAppToFW
+ * @return
+ */
+static int _vp_mm_player_priv_convert_error(int nCode, bool bAppToFW)
+{
+
+       if (bAppToFW) {
+               switch (nCode) {
+               case PLAYER_ERROR_NONE:
+                       return VP_MM_PLYAER_ERR_NONE;
+               case PLAYER_ERROR_OUT_OF_MEMORY:
+                       return VP_MM_PLAYER_ERR_OUT_OF_MEMORY;
+               case PLAYER_ERROR_INVALID_PARAMETER:
+                       return VP_MM_PLAYER_ERR_INVALID_PARAMETER;
+               case PLAYER_ERROR_NO_SUCH_FILE:
+                       return VP_MM_PLAYER_ERR_NO_SUCH_FILE;
+               case PLAYER_ERROR_INVALID_OPERATION:
+                       return VP_MM_PLAYER_ERR_INVALID_OPERATION;
+               case PLAYER_ERROR_FILE_NO_SPACE_ON_DEVICE:
+                       return VP_MM_PLAYER_ERR_FILE_NO_SPACE_ON_DEVICE;
+               case PLAYER_ERROR_SEEK_FAILED:
+                       return VP_MM_PLAYER_ERR_SEEK_FAILED;
+               case PLAYER_ERROR_INVALID_STATE:
+                       return VP_MM_PLAYER_ERR_INVALID_STATE;
+               case PLAYER_ERROR_NOT_SUPPORTED_FILE:
+                       return VP_MM_PLAYER_ERR_NOT_SUPPORTED_FILE;
+               case PLAYER_ERROR_INVALID_URI:
+                       return VP_MM_PLAYER_ERR_INVALID_URI;
+               case PLAYER_ERROR_SOUND_POLICY:
+                       return VP_MM_PLAYER_ERR_SOUND_POLICY;
+               case PLAYER_ERROR_CONNECTION_FAILED:
+               case PLAYER_ERROR_SERVICE_DISCONNECTED:
+                       return VP_MM_PLAYER_ERR_CONNECTION_FAILED;
+               case PLAYER_ERROR_VIDEO_CAPTURE_FAILED:
+                       return VP_MM_PLAYER_ERR_VIDEO_CAPTUR_FAILED;
+               case PLAYER_ERROR_DRM_EXPIRED:
+                       return VP_MM_PLAYER_ERR_DRM_EXPIRED;
+               case PLAYER_ERROR_DRM_NO_LICENSE:
+                       return VP_MM_PLAYER_ERR_DRM_NO_LICENSE;
+               case PLAYER_ERROR_DRM_FUTURE_USE:
+                       return VP_MM_PLAYER_ERR_DRM_FUTURE_USE;
+               }
+       } else {
+               switch (nCode) {
+               case VP_MM_PLYAER_ERR_NONE:
+                       return PLAYER_ERROR_NONE;
+               case VP_MM_PLAYER_ERR_OUT_OF_MEMORY:
+                       return PLAYER_ERROR_OUT_OF_MEMORY;
+               case VP_MM_PLAYER_ERR_INVALID_PARAMETER:
+                       return PLAYER_ERROR_INVALID_PARAMETER;
+               case VP_MM_PLAYER_ERR_NO_SUCH_FILE:
+                       return PLAYER_ERROR_NO_SUCH_FILE;
+               case VP_MM_PLAYER_ERR_INVALID_OPERATION:
+                       return PLAYER_ERROR_INVALID_OPERATION;
+               case VP_MM_PLAYER_ERR_FILE_NO_SPACE_ON_DEVICE:
+                       return PLAYER_ERROR_FILE_NO_SPACE_ON_DEVICE;
+               case VP_MM_PLAYER_ERR_SEEK_FAILED:
+                       return PLAYER_ERROR_SEEK_FAILED;
+               case VP_MM_PLAYER_ERR_INVALID_STATE:
+                       return PLAYER_ERROR_INVALID_STATE;
+               case VP_MM_PLAYER_ERR_NOT_SUPPORTED_FILE:
+                       return PLAYER_ERROR_NOT_SUPPORTED_FILE;
+               case VP_MM_PLAYER_ERR_INVALID_URI:
+                       return PLAYER_ERROR_INVALID_URI;
+               case VP_MM_PLAYER_ERR_SOUND_POLICY:
+                       return PLAYER_ERROR_SOUND_POLICY;
+               case VP_MM_PLAYER_ERR_CONNECTION_FAILED:
+                       return PLAYER_ERROR_CONNECTION_FAILED;
+               case VP_MM_PLAYER_ERR_VIDEO_CAPTUR_FAILED:
+                       return PLAYER_ERROR_VIDEO_CAPTURE_FAILED;
+               case VP_MM_PLAYER_ERR_DRM_EXPIRED:
+                       return PLAYER_ERROR_DRM_EXPIRED;
+               case VP_MM_PLAYER_ERR_DRM_NO_LICENSE:
+                       return PLAYER_ERROR_DRM_NO_LICENSE;
+               case VP_MM_PLAYER_ERR_DRM_FUTURE_USE:
+                       return PLAYER_ERROR_DRM_FUTURE_USE;
+               }
+       }
+       return 0;
+}
+
+/**
+ *
+ * @param nCode
+ * @param bAppToFW
+ * @return
+ */
+static int _vp_mm_player_priv_convert_player_state(int nCode,
+                                                                                                  bool bAppToFW)
+{
+
+       if (bAppToFW) {
+               switch (nCode) {
+               case PLAYER_STATE_NONE:
+                       return VP_MM_PLAYER_STATE_NONE;
+               case PLAYER_STATE_IDLE:
+                       return VP_MM_PLAYER_STATE_IDLE;
+               case PLAYER_STATE_READY:
+                       return VP_MM_PLAYER_STATE_READY;
+               case PLAYER_STATE_PLAYING:
+                       return VP_MM_PLAYER_STATE_PLAYING;
+               case PLAYER_STATE_PAUSED:
+                       return VP_MM_PLAYER_STATE_PAUSED;
+               }
+       } else {
+               switch (nCode) {
+               case VP_MM_PLAYER_STATE_NONE:
+                       return PLAYER_STATE_NONE;
+               case VP_MM_PLAYER_STATE_IDLE:
+                       return PLAYER_STATE_IDLE;
+               case VP_MM_PLAYER_STATE_READY:
+                       return PLAYER_STATE_READY;
+               case VP_MM_PLAYER_STATE_PLAYING:
+                       return PLAYER_STATE_PLAYING;
+               case VP_MM_PLAYER_STATE_PAUSED:
+                       return PLAYER_STATE_PAUSED;
+               }
+       }
+       return 0;
+}
+
+/**
+ *
+ * @param nCode
+ * @param bAppToFW
+ * @return
+ */
+static int _vp_mm_player_priv_convert_display_mode(int nCode,
+                                                                                                  bool bAppToFW)
+{
+       if (bAppToFW) {
+               switch (nCode) {
+               case PLAYER_DISPLAY_MODE_LETTER_BOX:
+                       return VP_MM_PLAYER_DISPLAY_LETTER_BOX;
+               case PLAYER_DISPLAY_MODE_ORIGIN_SIZE:
+                       return VP_MM_PLAYER_DISPLAY_ORIGIN_SIZE;
+               case PLAYER_DISPLAY_MODE_FULL_SCREEN:
+                       return VP_MM_PLAYER_DISPLAY_FULL_SCREEN;
+               case PLAYER_DISPLAY_MODE_CROPPED_FULL:
+                       return VP_MM_PLAYER_DISPLAY_CROPPED_FULL;
+               case PLAYER_DISPLAY_MODE_ORIGIN_OR_LETTER:
+                       return VP_MM_PLAYER_DISPLAY_ORIGIN_OR_LETTER;
+               }
+       } else {
+               switch (nCode) {
+               case VP_MM_PLAYER_DISPLAY_LETTER_BOX:
+                       return PLAYER_DISPLAY_MODE_LETTER_BOX;
+               case VP_MM_PLAYER_DISPLAY_ORIGIN_SIZE:
+                       return PLAYER_DISPLAY_MODE_ORIGIN_SIZE;
+               case VP_MM_PLAYER_DISPLAY_FULL_SCREEN:
+                       return PLAYER_DISPLAY_MODE_FULL_SCREEN;
+               case VP_MM_PLAYER_DISPLAY_CROPPED_FULL:
+                       return PLAYER_DISPLAY_MODE_CROPPED_FULL;
+               case VP_MM_PLAYER_DISPLAY_ORIGIN_OR_LETTER:
+                       return PLAYER_DISPLAY_MODE_ORIGIN_OR_LETTER;
+               }
+       }
+       return 0;
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_prepare_cb(void *pUserData, void *pBuff,
+                                                                                  unsigned int nByte)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+       pMMPlayer->bIsRealize = TRUE;
+
+       if (pMMPlayer->pCbFunc->pPrepareCb) {
+               pMMPlayer->pCbFunc->pPrepareCb(pMMPlayer->pParam);
+       }
+
+       return;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_end_of_stream_cb(void *pUserData,
+                                                                                                void *pBuff,
+                                                                                                unsigned int nByte)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+       if (pMMPlayer->pCbFunc->pEndOfStreamCb) {
+               pMMPlayer->pCbFunc->pEndOfStreamCb(pMMPlayer->pParam);
+       }
+
+
+       return;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_seek_complete_cb(void *pUserData,
+                                                                                                void *pBuff,
+                                                                                                unsigned int nByte)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+       if (pMMPlayer->pCbFunc->pSeekCompleteCb) {
+               pMMPlayer->pCbFunc->pSeekCompleteCb(pMMPlayer->pParam);
+       }
+
+       return;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_interrupted_cb(void *pUserData,
+                                                                                          void *pBuff,
+                                                                                          unsigned int nByte)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+       if (pMMPlayer->pCbFunc->pInterruptedCb) {
+               if (pMMPlayer->pInterruptParam) {
+                       int nInterruptCode = pMMPlayer->pInterruptParam->nInterrupt;
+                       if (nInterruptCode == PLAYER_INTERRUPTED_BY_RESOURCE_CONFLICT) {
+                               pMMPlayer->pCbFunc->pInterruptedCb(nInterruptCode, pMMPlayer->pParam);
+                       }
+               }
+       }
+
+       return;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_error_cb(void *pUserData, void *pBuff,
+                                                                                unsigned int nByte)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+       if (pMMPlayer->pCbFunc->pErrorCb) {
+               int nErr = 0;
+               if (pMMPlayer->pErrorParam) {
+                       nErr =
+                               _vp_mm_player_priv_convert_error(pMMPlayer->
+                                                                                                pErrorParam->nError,
+                                                                                                TRUE);
+               }
+
+               pMMPlayer->pCbFunc->pErrorCb(nErr, pMMPlayer->pParam);
+       }
+       return;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_buffering_cb(void *pUserData, void *pBuff,
+                                                                                        unsigned int nByte)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+       if (pMMPlayer->pCbFunc->pBufferingCb) {
+               int nPercent = 0;
+               if (pMMPlayer->pBufferingParam) {
+                       nPercent = pMMPlayer->pBufferingParam->nPercent;
+               }
+
+               pMMPlayer->pCbFunc->pBufferingCb(nPercent, pMMPlayer->pParam);
+       }
+       return;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_subtitle_update_cb(void *pUserData,
+                                                                                                  void *pBuff,
+                                                                                                  unsigned int nByte)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+       if (pMMPlayer->pCbFunc->pSubtitleUpdateCb) {
+               char *szSubtitleText = NULL;
+               unsigned long nDuration = 0;
+               if (pMMPlayer->pSubtitleParam) {
+                       if (pMMPlayer->pSubtitleParam->txt) {
+                               szSubtitleText = strdup(pMMPlayer->pSubtitleParam->txt);
+                               free(pMMPlayer->pSubtitleParam->txt);
+                               pMMPlayer->pSubtitleParam->txt = NULL;
+                       }
+                       nDuration = pMMPlayer->pSubtitleParam->nDuration;
+               }
+
+               if (szSubtitleText && strlen(szSubtitleText) > 0)
+                       pMMPlayer->pCbFunc->pSubtitleUpdateCb(nDuration,
+                                                                                                 szSubtitleText,
+                                                                                                 pMMPlayer->pParam);
+               VP_FREE(szSubtitleText);
+       }
+
+       return;
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_pd_message_cb(void *pUserData,
+                                                                                         void *pBuff,
+                                                                                         unsigned int nByte)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+       if (pMMPlayer->pCbFunc->pPDMessageCb) {
+               int nMsg = 0;
+               if (pMMPlayer->pPDParam) {
+                       nMsg = pMMPlayer->pPDParam->nMessage;
+               }
+
+               pMMPlayer->pCbFunc->pPDMessageCb(nMsg, pMMPlayer->pParam);
+       }
+       return;
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_captured_cb(void *pUserData, void *pBuff,
+                                                                                       unsigned int nByte)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+       if (pMMPlayer->pCbFunc->pCapturedCb) {
+               unsigned char *pFrame = NULL;
+               int nWidth = 0;
+               int nHeight = 0;
+               unsigned int nSize = 0;
+
+               if (pMMPlayer->pCaptureParam) {
+                       pFrame = pMMPlayer->pCaptureParam->pFrame;
+                       nWidth = pMMPlayer->pCaptureParam->nWidth;
+                       nHeight = pMMPlayer->pCaptureParam->nHeight;
+                       nSize = pMMPlayer->pCaptureParam->nSize;
+               }
+
+               pMMPlayer->pCbFunc->pCapturedCb(pFrame, nWidth, nHeight, nSize,
+                                                                               pMMPlayer->pParam);
+       }
+
+       return;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_missed_plugin_cb(void *pUserData,
+                                                                                                void *pBuff,
+                                                                                                unsigned int nByte)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+       if (pMMPlayer->pCbFunc->pMissedPluginCb) {
+
+               vp_mm_player_missed_plugin_t nMissedType =
+                       VP_MM_PLAYER_MISSED_PLUGIN_UNKNOWN;
+
+               if (pMMPlayer->pMissedParam) {
+                       nMissedType = pMMPlayer->pMissedParam->nMissedType;
+               }
+
+               pMMPlayer->pCbFunc->pMissedPluginCb(nMissedType,
+                                                                                       pMMPlayer->pParam);
+       }
+
+       return;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuff
+ * @param nByte
+ */
+static void __vp_mm_player_pipe_image_buffer_cb(void *pUserData,
+                                                                                               void *pBuff,
+                                                                                               unsigned int nByte)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+       if (pMMPlayer->pCbFunc->pImageBufferCb) {
+               char *pBuffer = NULL;
+               int nSize = 0;
+
+               if (pMMPlayer->pImageBufferParam) {
+                       pBuffer = pMMPlayer->pImageBufferParam->pBuffer;
+                       nSize = pMMPlayer->pImageBufferParam->nSize;
+               }
+
+               pMMPlayer->pCbFunc->pImageBufferCb(pBuffer, nSize,
+                                                                                  pMMPlayer->pParam);
+       }
+
+       return;
+}
+
+/* player api local cb functions */
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_mm_player_prepare_cb(void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       VideoLogWarning("");
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+       if (pMMPlayer->pCbPipe->pPreparePipe) {
+               Eina_Bool bRet = EINA_FALSE;
+               bRet =
+                       ecore_pipe_write(pMMPlayer->pCbPipe->pPreparePipe,
+                                                        (void *) pMMPlayer, sizeof(MMPlayer));
+               if (bRet != EINA_TRUE) {
+                       VideoLogError(" : ecore pipe write fail");
+               }
+       }
+
+       return;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_mm_player_completed_cb(void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+       if (pMMPlayer->pCbPipe->pEndOfStreamPipe) {
+               Eina_Bool bRet = EINA_FALSE;
+               bRet =
+                       ecore_pipe_write(pMMPlayer->pCbPipe->pEndOfStreamPipe,
+                                                        (void *) pMMPlayer, sizeof(MMPlayer));
+               if (bRet != EINA_TRUE) {
+                       VideoLogError(" : ecore pipe write fail");
+               }
+       }
+
+       return;
+
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_mm_player_seek_completed_cb(void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+       if (pMMPlayer->pCbPipe->pSeekCompletePipe) {
+               Eina_Bool bRet = EINA_FALSE;
+               bRet =
+                       ecore_pipe_write(pMMPlayer->pCbPipe->pSeekCompletePipe,
+                                                        (void *) pMMPlayer, sizeof(MMPlayer));
+               if (bRet != EINA_TRUE) {
+                       VideoLogError(" : ecore pipe write fail");
+               }
+       }
+
+       return;
+
+}
+
+/**
+ *
+ * @param nCode
+ * @param pUserData
+ */
+static void __vp_mm_player_interrupted_cb(player_interrupted_code_e nCode,
+                                                                                 void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+       if (pMMPlayer->pCbPipe->pInterruptedPipe) {
+               Eina_Bool bRet = EINA_FALSE;
+
+               if (pMMPlayer->pInterruptParam) {
+                       pMMPlayer->pInterruptParam->nInterrupt = nCode;
+                       pMMPlayer->pInterruptParam->pParam = pMMPlayer->pParam;
+               }
+
+               bRet =
+                       ecore_pipe_write(pMMPlayer->pCbPipe->pInterruptedPipe,
+                                                        (void *) pMMPlayer, sizeof(MMPlayer));
+               if (bRet != EINA_TRUE) {
+                       VideoLogError(" : ecore pipe write fail");
+               }
+       }
+
+       return;
+
+}
+
+/**
+ *
+ * @param nError
+ * @param pUserData
+ */
+static void __vp_mm_player_error_cb(int nError, void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+       if (pMMPlayer->pCbPipe->pErrorPipe) {
+               Eina_Bool bRet = EINA_FALSE;
+
+               if (pMMPlayer->pErrorParam) {
+                       pMMPlayer->pErrorParam->nError = nError;
+                       pMMPlayer->pErrorParam->pParam = pMMPlayer->pParam;
+               }
+
+               bRet =
+                       ecore_pipe_write(pMMPlayer->pCbPipe->pErrorPipe,
+                                                        (void *) pMMPlayer, sizeof(MMPlayer));
+               if (bRet != EINA_TRUE) {
+                       VideoLogError(" : ecore pipe write fail");
+               }
+       }
+
+       return;
+
+}
+
+/**
+ *
+ * @param nPercent
+ * @param pUserData
+ */
+static void __vp_mm_player_buffering_cb(int nPercent, void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+       if (pMMPlayer->pCbPipe->pBufferingPipe) {
+               Eina_Bool bRet = EINA_FALSE;
+
+               if (pMMPlayer->pBufferingParam) {
+                       pMMPlayer->pBufferingParam->nPercent = nPercent;
+                       pMMPlayer->pBufferingParam->pParam = pMMPlayer->pParam;
+               }
+
+               bRet =
+                       ecore_pipe_write(pMMPlayer->pCbPipe->pBufferingPipe,
+                                                        (void *) pMMPlayer, sizeof(MMPlayer));
+               if (bRet != EINA_TRUE) {
+                       VideoLogError(" : ecore pipe write fail");
+               }
+       }
+
+       return;
+
+}
+
+/**
+ *
+ * @param nDuration
+ * @param text
+ * @param pUserData
+ */
+static void __vp_mm_player_subtitle_updated_cb(unsigned long nDuration,
+                                                                                          char *text, void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+
+       if (pMMPlayer->bDeactivateSubtitle) {
+               return;
+       }
+
+       if (pMMPlayer->pCbPipe->pSubtitleUpdatePipe) {
+               if (pMMPlayer->pSubtitleParam) {
+                       pMMPlayer->pSubtitleParam->nDuration = nDuration;
+
+                       if (text) {
+                               if (pMMPlayer->pSubtitleParam->txt) {
+                                       free(pMMPlayer->pSubtitleParam->txt);
+                                       pMMPlayer->pSubtitleParam->txt = NULL;
+                               }
+                               pMMPlayer->pSubtitleParam->txt = strdup(text);
+                       }
+
+                       pMMPlayer->pSubtitleParam->pParam = pMMPlayer->pParam;
+               }
+
+               if (pMMPlayer->pSubtitleParam && pMMPlayer->pSubtitleParam->txt
+                       && strlen(pMMPlayer->pSubtitleParam->txt) > 0) {
+                       Eina_Bool bRet = EINA_FALSE;
+                       bRet =
+                               ecore_pipe_write(pMMPlayer->pCbPipe->pSubtitleUpdatePipe,
+                                                                (void *) pMMPlayer, sizeof(MMPlayer));
+                       if (bRet != EINA_TRUE) {
+                               VideoLogError(" : ecore pipe write fail");
+                       }
+               }
+       }
+       return;
+
+}
+
+/**
+ *
+ * @param pFrame
+ * @param nWidth
+ * @param nHeight
+ * @param nSize
+ * @param pUserData
+ */
+static void __vp_mm_player_video_captured_cb(unsigned char *pFrame,
+                                                                                        int nWidth, int nHeight,
+                                                                                        unsigned int nSize,
+                                                                                        void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pUserData;
+       if (pMMPlayer->pCbPipe->pCapturedPipe) {
+               Eina_Bool bRet = EINA_FALSE;
+
+               if (pMMPlayer->pCaptureParam) {
+
+                       if (pMMPlayer->pCaptureParam->pFrame) {
+                               free(pMMPlayer->pCaptureParam->pFrame);
+                               pMMPlayer->pCaptureParam->pFrame = NULL;
+                       }
+
+                       pMMPlayer->pCaptureParam->pFrame = calloc(1, nSize);
+                       if (pMMPlayer->pCaptureParam->pFrame == NULL) {
+                               return;
+                       }
+
+                       memcpy(pMMPlayer->pCaptureParam->pFrame, pFrame, nSize);
+
+                       pMMPlayer->pCaptureParam->nWidth = nWidth;
+                       pMMPlayer->pCaptureParam->nHeight = nHeight;
+                       pMMPlayer->pCaptureParam->nSize = nSize;
+                       pMMPlayer->pCaptureParam->pParam = pMMPlayer->pParam;
+               }
+               bRet =
+                       ecore_pipe_write(pMMPlayer->pCbPipe->pCapturedPipe,
+                                                        (void *) pMMPlayer, sizeof(MMPlayer));
+               if (bRet != EINA_TRUE) {
+                       VideoLogError(" : ecore pipe write fail");
+               }
+       }
+
+       return;
+}
+
+/* internal functions */
+/**
+ *
+ * @param nType
+ * @param pParam
+ */
+static void _vp_mm_callback_param_free(vp_mm_player_callback_t nType,
+                                                                          void *pParam)
+{
+       if (pParam == NULL) {
+               VideoLogError("Param data is NULL");
+               return;
+       }
+
+       if (nType == VP_MM_PLAYER_CAPTURE_VIDEO_CB) {
+               MMPlayerCaptureParam *pCaptureParam =
+                       (MMPlayerCaptureParam *) pParam;
+               if (pCaptureParam->pFrame) {
+                       free(pCaptureParam->pFrame);
+                       pCaptureParam->pFrame = NULL;
+               }
+
+               free(pCaptureParam);
+               pCaptureParam = NULL;
+       } else if (nType == VP_MM_PLAYER_SUBTITLE_UPDATE_CB) {
+               MMPlayerSubtitleParam *pSubtitleParam =
+                       (MMPlayerSubtitleParam *) pParam;
+               if (pSubtitleParam->txt) {
+                       free(pSubtitleParam->txt);
+                       pSubtitleParam->txt = NULL;
+               }
+               free(pSubtitleParam);
+               pSubtitleParam = NULL;
+       } else if (nType == VP_MM_PLAYER_IMAGE_BUFFER_CB) {
+               MMPlayerImageBufferParam *pImageBufferParam =
+                       (MMPlayerImageBufferParam *) pParam;
+               if (pImageBufferParam->pBuffer) {
+                       free(pImageBufferParam->pBuffer);
+                       pImageBufferParam->pBuffer = NULL;
+               }
+               free(pImageBufferParam);
+               pImageBufferParam = NULL;
+       }
+
+       return;
+}
+
+/**
+ *
+ * @param pMMPlayer
+ */
+static void _vp_mm_ecore_pipe_create(MMPlayer * pMMPlayer)
+{
+       if (pMMPlayer == NULL) {
+               VideoLogError("pMMPlayer is NULL");
+               return;
+       }
+
+       MMPlayerCbPipe *pCbPipe = pMMPlayer->pCbPipe;
+       if (pCbPipe == NULL) {
+               VideoLogError("pCbPipe is NULL");
+               return;
+       }
+
+       pCbPipe->pPreparePipe =
+               ecore_pipe_add((Ecore_Pipe_Cb) __vp_mm_player_pipe_prepare_cb,
+                                          (void *) pMMPlayer);
+       if (pCbPipe->pPreparePipe == NULL) {
+               VideoLogWarning("pPreparePipe create fail");
+       }
+
+       pCbPipe->pEndOfStreamPipe = ecore_pipe_add((Ecore_Pipe_Cb)
+                                                                                          __vp_mm_player_pipe_end_of_stream_cb,
+                                                                                          (void *) pMMPlayer);
+       if (pCbPipe->pEndOfStreamPipe == NULL) {
+               VideoLogWarning("pEndOfStreamPipe create fail");
+       }
+
+       pCbPipe->pSeekCompletePipe = ecore_pipe_add((Ecore_Pipe_Cb)
+                                                                                               __vp_mm_player_pipe_seek_complete_cb,
+                                                                                               (void *) pMMPlayer);
+       if (pCbPipe->pSeekCompletePipe == NULL) {
+               VideoLogWarning("pSeekCompletePipe create fail");
+       }
+
+       pCbPipe->pInterruptedPipe =
+               ecore_pipe_add((Ecore_Pipe_Cb) __vp_mm_player_pipe_interrupted_cb,
+                                          (void *) pMMPlayer);
+       if (pCbPipe->pInterruptedPipe == NULL) {
+               VideoLogWarning("pInterruptedPipe create fail");
+       }
+
+       pCbPipe->pErrorPipe =
+               ecore_pipe_add((Ecore_Pipe_Cb) __vp_mm_player_pipe_error_cb,
+                                          (void *) pMMPlayer);
+       if (pCbPipe->pErrorPipe == NULL) {
+               VideoLogWarning("pErrorPipe create fail");
+       }
+
+       pCbPipe->pBufferingPipe =
+               ecore_pipe_add((Ecore_Pipe_Cb) __vp_mm_player_pipe_buffering_cb,
+                                          (void *) pMMPlayer);
+       if (pCbPipe->pBufferingPipe == NULL) {
+               VideoLogWarning("pBufferingPipe create fail");
+       }
+
+       pCbPipe->pSubtitleUpdatePipe = ecore_pipe_add((Ecore_Pipe_Cb)
+                                                                                                 __vp_mm_player_pipe_subtitle_update_cb,
+                                                                                                 (void *) pMMPlayer);
+       if (pCbPipe->pSubtitleUpdatePipe == NULL) {
+               VideoLogWarning("pSubtitleUpdatePipe create fail");
+       }
+
+       pCbPipe->pPDMessagePipe =
+               ecore_pipe_add((Ecore_Pipe_Cb) __vp_mm_player_pipe_pd_message_cb,
+                                          (void *) pMMPlayer);
+       if (pCbPipe->pPDMessagePipe == NULL) {
+               VideoLogWarning("pPDMessagePipe create fail");
+       }
+
+       pCbPipe->pCapturedPipe =
+               ecore_pipe_add((Ecore_Pipe_Cb) __vp_mm_player_pipe_captured_cb,
+                                          (void *) pMMPlayer);
+       if (pCbPipe->pCapturedPipe == NULL) {
+               VideoLogWarning("pCapturedPipe create fail");
+       }
+
+       pCbPipe->pMissedPluginPipe = ecore_pipe_add((Ecore_Pipe_Cb)
+                                                                                               __vp_mm_player_pipe_missed_plugin_cb,
+                                                                                               (void *) pMMPlayer);
+       if (pCbPipe->pMissedPluginPipe == NULL) {
+               VideoLogWarning("pMissedPluginPipe create fail");
+       }
+
+       pCbPipe->pImageBufferPipe = ecore_pipe_add((Ecore_Pipe_Cb)
+                                                                                          __vp_mm_player_pipe_image_buffer_cb,
+                                                                                          (void *) pMMPlayer);
+       if (pCbPipe->pImageBufferPipe == NULL) {
+               VideoLogWarning("pImageBufferPipe create fail");
+       }
+
+       return;
+}
+
+/**
+ *
+ * @param pPipe
+ */
+static void _vp_mm_ecore_pipe_del(Ecore_Pipe * pPipe)
+{
+       if (pPipe == NULL) {
+               VideoLogError("pPipe is NULL");
+               return;
+       }
+
+       ecore_pipe_del(pPipe);
+       pPipe = NULL;
+
+       return;
+}
+
+/**
+ *
+ * @param pMMPlayer
+ */
+static void _vp_mm_register_default_callback(MMPlayer * pMMPlayer)
+{
+       if (pMMPlayer == NULL) {
+               VideoLogError("pMMPlayer is NULL");
+               return;
+       }
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return;
+       }
+       int nRet = PLAYER_ERROR_NONE;
+       nRet =
+               player_set_completed_cb(pMMPlayer->pPlayer,
+                                                               __vp_mm_player_completed_cb,
+                                                               (void *) pMMPlayer);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_set_completed_cb fail : %d", nRet);
+       }
+
+       nRet =
+               player_set_interrupted_cb(pMMPlayer->pPlayer,
+                                                                 __vp_mm_player_interrupted_cb,
+                                                                 (void *) pMMPlayer);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_set_interrupted_cb fail : %d", nRet);
+       }
+
+       nRet =
+               player_set_error_cb(pMMPlayer->pPlayer, __vp_mm_player_error_cb,
+                                                       (void *) pMMPlayer);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_set_error_cb fail : %d", nRet);
+       }
+
+       nRet =
+               player_set_buffering_cb(pMMPlayer->pPlayer,
+                                                               __vp_mm_player_buffering_cb,
+                                                               (void *) pMMPlayer);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_set_buffering_cb fail : %d", nRet);
+       }
+
+       nRet =
+               player_set_subtitle_updated_cb(pMMPlayer->pPlayer,
+                                                                          __vp_mm_player_subtitle_updated_cb,
+                                                                          (void *) pMMPlayer);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_set_subtitle_updated_cb fail : %d", nRet);
+       }
+
+
+       return;
+
+}
+
+/**
+ *
+ * @param pMMPlayer
+ */
+static void _vp_mm_unregister_default_callback(MMPlayer * pMMPlayer)
+{
+       if (pMMPlayer == NULL) {
+               VideoLogError("pMMPlayer is NULL");
+               return;
+       }
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return;
+       }
+       int nRet = PLAYER_ERROR_NONE;
+       nRet = player_unset_completed_cb(pMMPlayer->pPlayer);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_unset_completed_cb fail : %d", nRet);
+       }
+       nRet = player_unset_interrupted_cb(pMMPlayer->pPlayer);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_unset_interrupted_cb fail : %d", nRet);
+       }
+       nRet = player_unset_error_cb(pMMPlayer->pPlayer);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_unset_error_cb fail : %d", nRet);
+       }
+       nRet = player_unset_buffering_cb(pMMPlayer->pPlayer);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_unset_buffering_cb fail : %d", nRet);
+       }
+       nRet = player_unset_subtitle_updated_cb(pMMPlayer->pPlayer);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_unset_subtitle_updated_cb fail : %d", nRet);
+       }
+
+       return;
+}
+
+/* external functions */
+/**
+ *
+ * @return
+ */
+mm_player_handle vp_mm_player_create()
+{
+       MMPlayer *pMMPlayer = NULL;
+       pMMPlayer = calloc(1, sizeof(MMPlayer));
+       if (pMMPlayer == NULL) {
+               VideoLogError("MMPlayer alloc fail");
+               return NULL;
+       }
+
+       VideoLogInfo(">> player create");
+
+       if (pMMPlayer->stream_info) {
+               int error = SOUND_MANAGER_ERROR_NONE;
+               error =
+                       sound_manager_acquire_focus(pMMPlayer->stream_info,
+                                                                               SOUND_STREAM_FOCUS_FOR_PLAYBACK,
+                                                                               SOUND_BEHAVIOR_NONE, NULL);
+               if (error != SOUND_MANAGER_ERROR_NONE) {
+                       VideoLogError("failed to acquire focus [%x]", error);
+               }
+
+               sound_manager_get_focus_reacquisition(pMMPlayer->stream_info,
+                                                                                         &pMMPlayer->reacquire_state);
+               if (pMMPlayer->reacquire_state == EINA_FALSE) {
+                       sound_manager_set_focus_reacquisition(pMMPlayer->stream_info,
+                                                                                                 EINA_TRUE);
+               }
+       }
+
+       int nRet = 0;
+       nRet = player_create(&pMMPlayer->pPlayer);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               vp_mm_player_destroy((mm_player_handle) pMMPlayer);
+               return NULL;
+       }
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("player handle is NULL");
+               vp_mm_player_destroy((mm_player_handle) pMMPlayer);
+               return NULL;
+       }
+
+       pMMPlayer->pCbFunc = calloc(1, sizeof(MMPlayerCbFunc));
+       if (pMMPlayer->pCbFunc == NULL) {
+               VideoLogError("MMPlayer callback func alloc fail");
+               vp_mm_player_destroy((mm_player_handle) pMMPlayer);
+               return NULL;
+       }
+
+       pMMPlayer->pCbPipe = calloc(1, sizeof(MMPlayerCbPipe));
+       if (pMMPlayer->pCbPipe == NULL) {
+               VideoLogError("MMPlayer Pipe alloc fail");
+               vp_mm_player_destroy((mm_player_handle) pMMPlayer);
+               return NULL;
+       }
+
+       pMMPlayer->pCaptureParam = calloc(1, sizeof(MMPlayerCaptureParam));
+       if (pMMPlayer->pCaptureParam == NULL) {
+               VideoLogError("MMPlayer pCaptureParam alloc fail");
+       }
+
+       pMMPlayer->pSubtitleParam = calloc(1, sizeof(MMPlayerSubtitleParam));
+       if (pMMPlayer->pSubtitleParam == NULL) {
+               VideoLogError("MMPlayer pSubtitleParam alloc fail");
+       }
+
+       pMMPlayer->pInterruptParam = calloc(1, sizeof(MMPlayerInterruptParam));
+       if (pMMPlayer->pInterruptParam == NULL) {
+               VideoLogError("MMPlayer pInterruptParam alloc fail");
+       }
+
+       pMMPlayer->pErrorParam = calloc(1, sizeof(MMPlayerErrorParam));
+       if (pMMPlayer->pErrorParam == NULL) {
+               VideoLogError("MMPlayer pErrorParam alloc fail");
+       }
+       pMMPlayer->pBufferingParam = calloc(1, sizeof(MMPlayerBufferingParam));
+       if (pMMPlayer->pBufferingParam == NULL) {
+               VideoLogError("MMPlayer pBufferingParam alloc fail");
+       }
+
+       pMMPlayer->pPDParam = calloc(1, sizeof(MMPlayerPDParam));
+       if (pMMPlayer->pPDParam == NULL) {
+               VideoLogError("MMPlayer pPDParam alloc fail");
+       }
+
+       pMMPlayer->pMissedParam = calloc(1, sizeof(MMPlayerMissedPluginParam));
+       if (pMMPlayer->pMissedParam == NULL) {
+               VideoLogError("MMPlayer pMissedParam alloc fail");
+       }
+
+       pMMPlayer->pImageBufferParam =
+               calloc(1, sizeof(MMPlayerImageBufferParam));
+       if (pMMPlayer->pImageBufferParam == NULL) {
+               VideoLogError("MMPlayer pImageBufferParam alloc fail");
+       }
+
+       _vp_mm_ecore_pipe_create(pMMPlayer);
+
+       return (mm_player_handle) pMMPlayer;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ */
+void vp_mm_player_destroy(mm_player_handle pPlayerHandle)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+       int nRet = 0;
+
+       if (!vp_mm_player_unrealize(pPlayerHandle)) {
+               VideoLogWarning("vp_mm_player_unrealize fail");
+       }
+
+
+       nRet = player_destroy(pMMPlayer->pPlayer);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+       }
+       pMMPlayer->pPlayer = NULL;
+
+       pMMPlayer->fLeftVol = 0.0;
+       pMMPlayer->fRightVol = 0.0;
+
+       pMMPlayer->nSoundFilter = VP_MM_PLAYER_FILTER_NONE;
+       pMMPlayer->nVideoSink = VP_MM_PLAYER_VIDEO_TYPE_X11;
+       pMMPlayer->nRotate = VP_MM_PLAYER_ROTATE_0;
+       pMMPlayer->bIsScaling = FALSE;
+
+       _vp_mm_callback_param_free(VP_MM_PLAYER_CAPTURE_VIDEO_CB,
+                                                          (void *) pMMPlayer->pCaptureParam);
+       _vp_mm_callback_param_free(VP_MM_PLAYER_SUBTITLE_UPDATE_CB,
+                                                          (void *) pMMPlayer->pSubtitleParam);
+       _vp_mm_callback_param_free(VP_MM_PLAYER_IMAGE_BUFFER_CB,
+                                                          (void *) pMMPlayer->pImageBufferParam);
+
+       if (pMMPlayer->pInterruptParam) {
+               free(pMMPlayer->pInterruptParam);
+               pMMPlayer->pInterruptParam = NULL;
+       }
+
+       if (pMMPlayer->pErrorParam) {
+               free(pMMPlayer->pErrorParam);
+               pMMPlayer->pErrorParam = NULL;
+       }
+
+       if (pMMPlayer->pBufferingParam) {
+               free(pMMPlayer->pBufferingParam);
+               pMMPlayer->pBufferingParam = NULL;
+       }
+
+       if (pMMPlayer->pPDParam) {
+               free(pMMPlayer->pPDParam);
+               pMMPlayer->pPDParam = NULL;
+       }
+
+       if (pMMPlayer->pMissedParam) {
+               free(pMMPlayer->pMissedParam);
+               pMMPlayer->pMissedParam = NULL;
+       }
+
+       if (pMMPlayer->pCbFunc) {
+               pMMPlayer->pCbFunc->pBufferingCb = NULL;
+               pMMPlayer->pCbFunc->pPrepareCb = NULL;
+               pMMPlayer->pCbFunc->pEndOfStreamCb = NULL;
+               pMMPlayer->pCbFunc->pSeekCompleteCb = NULL;
+               pMMPlayer->pCbFunc->pInterruptedCb = NULL;
+               pMMPlayer->pCbFunc->pErrorCb = NULL;
+               pMMPlayer->pCbFunc->pBufferingCb = NULL;
+               pMMPlayer->pCbFunc->pSubtitleUpdateCb = NULL;
+               pMMPlayer->pCbFunc->pPDMessageCb = NULL;
+               pMMPlayer->pCbFunc->pCapturedCb = NULL;
+               pMMPlayer->pCbFunc->pMissedPluginCb = NULL;
+               pMMPlayer->pCbFunc->pImageBufferCb = NULL;
+
+               free(pMMPlayer->pCbFunc);
+               pMMPlayer->pCbFunc = NULL;
+       }
+
+       if (pMMPlayer->pCbPipe) {
+               _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pPreparePipe);
+               _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pEndOfStreamPipe);
+               _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pSeekCompletePipe);
+               _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pInterruptedPipe);
+               _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pErrorPipe);
+               _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pBufferingPipe);
+               _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pSubtitleUpdatePipe);
+               _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pPDMessagePipe);
+               _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pCapturedPipe);
+               _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pMissedPluginPipe);
+               _vp_mm_ecore_pipe_del(pMMPlayer->pCbPipe->pImageBufferPipe);
+
+               free(pMMPlayer->pCbPipe);
+               pMMPlayer->pCbPipe = NULL;
+       }
+
+       pMMPlayer->pParam = NULL;
+       pMMPlayer->pVideoSink = NULL;
+
+       free(pMMPlayer);
+       pMMPlayer = NULL;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param szPath
+ * @return
+ */
+bool vp_mm_player_realize(mm_player_handle pPlayerHandle, char *szPath)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       if (szPath == NULL) {
+               VideoLogError("szPath is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->bIsRealize) {
+               VideoLogError("Already realized");
+               return FALSE;
+       }
+
+
+       int nRet = player_set_uri(pMMPlayer->pPlayer, szPath);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_set_uri is fail : %d", nRet);
+               return FALSE;
+       }
+
+       _vp_mm_register_default_callback(pMMPlayer);
+
+
+       nRet = player_prepare(pMMPlayer->pPlayer);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_prepare is fail : %d", nRet);
+               return FALSE;
+       }
+
+       pMMPlayer->bIsRealize = TRUE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param szPath
+ * @return
+ */
+bool vp_mm_player_realize_async(mm_player_handle pPlayerHandle,
+                                                               char *szPath)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->bIsRealize) {
+               VideoLogError("Already realized");
+               return FALSE;
+       }
+
+       int nRet = player_set_uri(pMMPlayer->pPlayer, szPath);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_set_uri is fail : %d", nRet);
+               return FALSE;
+       }
+
+       _vp_mm_register_default_callback(pMMPlayer);
+
+
+       nRet =
+               player_prepare_async(pMMPlayer->pPlayer,
+                                                        __vp_mm_player_prepare_cb,
+                                                        (void *) pMMPlayer);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_prepare is fail : %d", nRet);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @return
+ */
+bool vp_mm_player_unrealize(mm_player_handle pPlayerHandle)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       if (pMMPlayer->bIsRealize == FALSE) {
+               VideoLogError("Not realized");
+               return FALSE;
+       }
+
+       _vp_mm_unregister_default_callback(pMMPlayer);
+
+       int nRet = player_unprepare(pMMPlayer->pPlayer);
+       if (nRet != PLAYER_ERROR_NONE) {
+               VideoLogError("player_unprepare fail : %d", nRet);
+               return FALSE;
+       }
+
+       if (pMMPlayer->szURL) {
+               free(pMMPlayer->szURL);
+               pMMPlayer->szURL = NULL;
+       }
+
+       if (pMMPlayer->szSubtitleURL) {
+               free(pMMPlayer->szSubtitleURL);
+               pMMPlayer->szSubtitleURL = NULL;
+       }
+
+       if (pMMPlayer->szCookie) {
+               free(pMMPlayer->szCookie);
+               pMMPlayer->szCookie = NULL;
+       }
+
+       if (pMMPlayer->szProxy) {
+               free(pMMPlayer->szProxy);
+               pMMPlayer->szProxy = NULL;
+       }
+
+       pMMPlayer->bIsRealize = FALSE;
+       pMMPlayer->bDeactivateSubtitle = FALSE;
+       pMMPlayer->bIsMute = FALSE;
+       pMMPlayer->bIsClosedCaption = FALSE;
+       pMMPlayer->bIsCapturing = FALSE;
+
+       pMMPlayer->nState = VP_MM_PLAYER_STATE_NONE;
+       pMMPlayer->nDisplayMode = VP_MM_PLAYER_DISPLAY_LETTER_BOX;
+
+       pMMPlayer->nDuration = 0;
+       pMMPlayer->nVideoWidth = 0;
+       pMMPlayer->nVidehHeight = 0;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @return
+ */
+bool vp_mm_player_is_realize(mm_player_handle pPlayerHandle)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       return pMMPlayer->bIsRealize;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nCallbackType
+ * @param pCallback
+ * @return
+ */
+bool vp_mm_player_set_callback(mm_player_handle pPlayerHandle,
+                                                          vp_mm_player_callback_t nCallbackType,
+                                                          void *pCallback)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       if (pCallback == NULL) {
+               VideoLogError("pCallback is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       switch (nCallbackType) {
+       case VP_MM_PLAYER_REALIZE_ASYNC_CB:
+               pMMPlayer->pCbFunc->pPrepareCb =
+                       (vp_mm_player_prepare_cb) pCallback;
+               break;
+       case VP_MM_PLAYER_SEEK_COMPLETE_CB:
+               pMMPlayer->pCbFunc->pSeekCompleteCb =
+                       (vp_mm_player_seek_completed_cb) pCallback;
+               break;
+       case VP_MM_PLAYER_END_OF_STREAM_CB:
+               pMMPlayer->pCbFunc->pEndOfStreamCb =
+                       (vp_mm_player_completed_cb) pCallback;
+               break;
+       case VP_MM_PLAYER_INTERRUPT_CB:
+               pMMPlayer->pCbFunc->pInterruptedCb =
+                       (vp_mm_player_interrupted_cb) pCallback;
+               break;
+       case VP_MM_PLAYER_ERROR_CB:
+               pMMPlayer->pCbFunc->pErrorCb = (vp_mm_player_error_cb) pCallback;
+               break;
+       case VP_MM_PLAYER_BUFFERING_CB:
+               pMMPlayer->pCbFunc->pBufferingCb =
+                       (vp_mm_player_buffering_cb) pCallback;
+               break;
+       case VP_MM_PLAYER_SUBTITLE_UPDATE_CB:
+               pMMPlayer->pCbFunc->pSubtitleUpdateCb =
+                       (vp_mm_player_subtitle_updated_cb) pCallback;
+               break;
+       case VP_MM_PLAYER_PD_MESSAGE_CB:
+               pMMPlayer->pCbFunc->pPDMessageCb =
+                       (vp_mm_player_pd_message_cb) pCallback;
+               break;
+       case VP_MM_PLAYER_CAPTURE_VIDEO_CB:
+               pMMPlayer->pCbFunc->pCapturedCb =
+                       (vp_mm_player_video_captured_cb) pCallback;
+               break;
+       case VP_MM_PLAYER_MISSED_PLUGIN_CB:
+               pMMPlayer->pCbFunc->pMissedPluginCb =
+                       (vp_mm_player_missed_plugin_cb) pCallback;
+               break;
+       case VP_MM_PLAYER_IMAGE_BUFFER_CB:
+               pMMPlayer->pCbFunc->pImageBufferCb =
+                       (vp_mm_player_image_buffer_updated_cb) pCallback;
+               break;
+       }
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param pParam
+ * @return
+ */
+bool vp_mm_player_set_user_param(mm_player_handle pPlayerHandle,
+                                                                void *pParam)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       if (pParam == NULL) {
+               VideoLogError("pCallback is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       pMMPlayer->pParam = pParam;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param stream_info
+ * @return
+ */
+bool vp_mm_player_set_stream_info(mm_player_handle pPlayerHandle,
+                                                                 void *stream_info)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       if (stream_info == NULL) {
+               VideoLogError("stream info is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       pMMPlayer->stream_info = stream_info;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @return
+ */
+bool vp_mm_player_play(mm_player_handle pPlayerHandle)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       VideoLogWarning("");
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       if (pMMPlayer->bIsRealize == FALSE) {
+               VideoLogError("Not realized");
+               return FALSE;
+       }
+       sound_manager_get_focus_reacquisition(pMMPlayer->stream_info,
+                                                                                 &pMMPlayer->reacquire_state);
+       if (pMMPlayer->reacquire_state == EINA_FALSE)
+               sound_manager_set_focus_reacquisition(pMMPlayer->stream_info,
+                                                                                         EINA_TRUE);
+       sound_stream_focus_state_e state_for_playback;
+       sound_stream_focus_state_e state_for_recording;
+       int ret = -1;
+       ret =
+               sound_manager_get_focus_state(pMMPlayer->stream_info,
+                                                                         &state_for_playback,
+                                                                         &state_for_recording);
+       if (ret != SOUND_MANAGER_ERROR_NONE) {
+               VideoLogError("failed to get focus state error[%x]", ret);
+       }
+       if (state_for_playback == SOUND_STREAM_FOCUS_STATE_RELEASED) {
+               int error = SOUND_MANAGER_ERROR_NONE;
+               error =
+                       sound_manager_acquire_focus(pMMPlayer->stream_info,
+                                                                               SOUND_STREAM_FOCUS_FOR_PLAYBACK,
+                                                                               SOUND_BEHAVIOR_NONE, NULL);
+               if (error != SOUND_MANAGER_ERROR_NONE)
+                       VideoLogError("failed to acquire focus [%x]", error);
+       }
+
+       VideoLogWarning("[player_start start]");
+       int nRet = player_start(pMMPlayer->pPlayer);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_start fail : %d", nRet);
+               return FALSE;
+       }
+       VideoLogWarning("[player_start end]");
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @return
+ */
+bool vp_mm_player_stop(mm_player_handle pPlayerHandle)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       if (pMMPlayer->bIsRealize == FALSE) {
+               VideoLogError("Not realized");
+               return FALSE;
+       }
+
+       VideoLogWarning("[player_stop start]");
+       int nRet = player_stop(pMMPlayer->pPlayer);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_stop fail : %d", nRet);
+               return FALSE;
+       }
+       VideoLogWarning("[player_stop end]");
+       sound_stream_focus_state_e state_for_playback;
+       sound_stream_focus_state_e state_for_recording;
+       int ret = -1;
+       ret =
+               sound_manager_get_focus_state(pMMPlayer->stream_info,
+                                                                         &state_for_playback,
+                                                                         &state_for_recording);
+       if (ret != SOUND_MANAGER_ERROR_NONE) {
+               VideoLogError("failed to get focus state error[%x]", ret);
+       }
+       if (state_for_playback != SOUND_STREAM_FOCUS_STATE_RELEASED) {
+               int error = SOUND_MANAGER_ERROR_NONE;
+               error =
+                       sound_manager_release_focus(pMMPlayer->stream_info,
+                                                                               SOUND_STREAM_FOCUS_FOR_PLAYBACK,
+                                                                               SOUND_BEHAVIOR_NONE, NULL);
+               if (error != SOUND_MANAGER_ERROR_NONE) {
+                       VideoLogError("failed to release focus error[%x]", error);
+               }
+       }
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @return
+ */
+bool vp_mm_player_pause(mm_player_handle pPlayerHandle)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       if (pMMPlayer->bIsRealize == FALSE) {
+               VideoLogError("Not realized");
+               return FALSE;
+       }
+
+       VideoLogWarning("[player_pause start]");
+       int nRet = player_pause(pMMPlayer->pPlayer);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_pause fail : %d", nRet);
+               return FALSE;
+       }
+       VideoLogWarning("[player_pause end]");
+       sound_stream_focus_state_e state_for_playback;
+       sound_stream_focus_state_e state_for_recording;
+       int ret = -1;
+       ret =
+               sound_manager_get_focus_state(pMMPlayer->stream_info,
+                                                                         &state_for_playback,
+                                                                         &state_for_recording);
+       if (ret != SOUND_MANAGER_ERROR_NONE) {
+               VideoLogError("failed to get focus state error[%x]", ret);
+       }
+       if (state_for_playback != SOUND_STREAM_FOCUS_STATE_RELEASED) {
+               int error = SOUND_MANAGER_ERROR_NONE;
+               error =
+                       sound_manager_release_focus(pMMPlayer->stream_info,
+                                                                               SOUND_STREAM_FOCUS_FOR_PLAYBACK,
+                                                                               SOUND_BEHAVIOR_NONE, NULL);
+               if (error != SOUND_MANAGER_ERROR_NONE) {
+                       VideoLogError("failed to release focus error[%x]", error);
+               }
+       }
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nState
+ * @return
+ */
+bool vp_mm_player_get_state(mm_player_handle pPlayerHandle,
+                                                       vp_mm_player_state_t * nState)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+       player_state_e nPlayerState = PLAYER_STATE_NONE;
+
+       int nRet = player_get_state(pMMPlayer->pPlayer, &nPlayerState);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("PLAYER_ERROR_NONE fail : %d", nRet);
+               return FALSE;
+       }
+
+       *nState = _vp_mm_player_priv_convert_player_state(nPlayerState, TRUE);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nPosition
+ * @return
+ */
+bool vp_mm_player_get_position(mm_player_handle pPlayerHandle,
+                                                          int *nPosition)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       if (pMMPlayer->bIsRealize == FALSE) {
+               VideoLogError("Not realized");
+               return FALSE;
+       }
+
+       int nPos = 0;
+
+       int nRet = player_get_play_position(pMMPlayer->pPlayer, &nPos);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_get_play_position fail : %d", nRet);
+               return FALSE;
+       }
+       *nPosition = nPos;
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nPosition
+ * @return
+ */
+bool vp_mm_player_set_position(mm_player_handle pPlayerHandle,
+                                                          int nPosition)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       if (pMMPlayer->bIsRealize == FALSE) {
+               VideoLogError("Not realized");
+               return FALSE;
+       }
+
+       if (nPosition < 0) {
+               VideoLogError("Invalid position value");
+               return FALSE;
+       }
+
+       int nRet =
+               player_set_play_position(pMMPlayer->pPlayer, nPosition, TRUE,
+                                                                __vp_mm_player_seek_completed_cb,
+                                                                (void *) pMMPlayer);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_set_position fail : %d", nRet);
+               return FALSE;
+       }
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nPosition
+ * @return
+ */
+bool vp_mm_player_set_position_by_key_frame(mm_player_handle
+                                                                                       pPlayerHandle, int nPosition)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       if (pMMPlayer->bIsRealize == FALSE) {
+               VideoLogError("Not realized");
+               return FALSE;
+       }
+
+       if (nPosition < 0) {
+               VideoLogError("Invalid position value");
+               return FALSE;
+       }
+       int nRet =
+               player_set_play_position(pMMPlayer->pPlayer, nPosition, TRUE,
+                                                                __vp_mm_player_seek_completed_cb,
+                                                                (void *) pMMPlayer);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_set_position fail : %d", nRet);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nPosition
+ * @return
+ */
+bool vp_mm_player_get_buffering_position(mm_player_handle pPlayerHandle,
+                                                                                int *nPosition)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       if (pMMPlayer->bIsRealize == FALSE) {
+               VideoLogError("Not realized");
+               return FALSE;
+       }
+       int nStart = 0;
+       int nCurrent = 0;
+       int nRet = player_get_streaming_download_progress(pMMPlayer->pPlayer,
+                                                                                                         &nStart, &nCurrent);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_get_streaming_download_progress fail : %d",
+                                         nRet);
+               return FALSE;
+       }
+
+       *nPosition = nCurrent;
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param bScale
+ * @return
+ */
+bool vp_mm_player_set_scaling(mm_player_handle pPlayerHandle, bool bScale)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       pMMPlayer->bIsScaling = bScale;
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param bLoop
+ * @return
+ */
+bool vp_mm_player_set_loop(mm_player_handle pPlayerHandle, bool bLoop)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       int nRet = player_set_looping(pMMPlayer->pPlayer, bLoop);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_set_looping fail : %d", nRet);
+               return FALSE;
+       }
+
+       pMMPlayer->bIsLooping = bLoop;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param bMute
+ * @return
+ */
+bool vp_mm_player_set_mute(mm_player_handle pPlayerHandle, bool bMute)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       if (pMMPlayer->bIsRealize == FALSE) {
+               VideoLogError("Not realized");
+               return FALSE;
+       }
+
+       int nRet = player_set_mute(pMMPlayer->pPlayer, bMute);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_set_mute fail : %d", nRet);
+               return FALSE;
+       }
+
+       pMMPlayer->bIsMute = bMute;
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param bMute
+ * @return
+ */
+bool vp_mm_player_get_mute(mm_player_handle pPlayerHandle, bool * bMute)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       if (pMMPlayer->bIsRealize == FALSE) {
+               VideoLogError("Not realized");
+               return FALSE;
+       }
+       bool bIsMute = FALSE;
+       int nRet = player_is_muted(pMMPlayer->pPlayer, &bIsMute);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_is_muted fail : %d", nRet);
+               return FALSE;
+       }
+
+       pMMPlayer->bIsMute = bIsMute;
+       *bMute = bIsMute;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nDuration
+ * @return
+ */
+bool vp_mm_player_get_duration(mm_player_handle pPlayerHandle,
+                                                          int *nDuration)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       if (pMMPlayer->bIsRealize == FALSE) {
+               VideoLogError("Not realized");
+               return FALSE;
+       }
+
+       int nDur = 0;
+       int nRet = player_get_duration(pMMPlayer->pPlayer, &nDur);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_get_duration fail : %d", nRet);
+               return FALSE;
+       }
+
+       *nDuration = nDur;
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param audio_codec
+ * @param video_codec
+ * @return
+ */
+bool vp_mm_player_get_codecinfo(mm_player_handle pPlayerHandle,
+                                                               char **audio_codec, char **video_codec)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       if (pMMPlayer->bIsRealize == FALSE) {
+               VideoLogError("Not realized");
+               return FALSE;
+       }
+
+       int nRet = player_get_codec_info(pMMPlayer->pPlayer, audio_codec,
+                                                                        video_codec);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_get_codec_info fail : %d", nRet);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nType
+ * @param pSink
+ * @return
+ */
+bool vp_mm_player_set_video_sink(mm_player_handle pPlayerHandle,
+                                                                int nType, void *pSink)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       int nSinkType = _vp_mm_player_priv_convert_video_sink(nType, FALSE);
+       int nRet = player_set_display(pMMPlayer->pPlayer, nSinkType, pSink);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_set_display fail : %d", nRet);
+               return FALSE;
+       }
+
+       pMMPlayer->nVideoSink = nType;
+       pMMPlayer->pVideoSink = pSink;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nRotate
+ * @return
+ */
+bool vp_mm_player_set_video_rotate(mm_player_handle pPlayerHandle,
+                                                                  int nRotate)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+#ifdef _NATIVE_BUFFER_SYNC
+       int nRot = PLAYER_DISPLAY_ROTATION_NONE;
+#else
+       int nRot = _vp_mm_player_priv_convert_rotate(nRotate, FALSE);
+#endif
+
+       int nRet = player_set_display_rotation(pMMPlayer->pPlayer, nRot);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_set_display_rotation fail : %d", nRet);
+               return FALSE;
+       }
+
+       pMMPlayer->nRotate = nRotate;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nDisplayMode
+ * @return
+ */
+bool vp_mm_player_set_display_mode(mm_player_handle pPlayerHandle,
+                                                                  vp_mm_player_display_mode_t
+                                                                  nDisplayMode)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+       int nMode =
+               _vp_mm_player_priv_convert_display_mode(nDisplayMode, FALSE);
+       int nRet = player_set_display_mode(pMMPlayer->pPlayer, nMode);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_set_display_mode fail : %d", nRet);
+               return FALSE;
+       }
+
+       pMMPlayer->nDisplayMode = nDisplayMode;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nWidth
+ * @param nHeight
+ * @return
+ */
+bool vp_mm_player_get_resolution(mm_player_handle pPlayerHandle,
+                                                                int *nWidth, int *nHeight)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->bIsRealize == FALSE) {
+               VideoLogError("Not realized");
+               return FALSE;
+       }
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       int nRet = player_get_video_size(pMMPlayer->pPlayer, nWidth, nHeight);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_set_subtitle_path fail : %d", nRet);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param szSubtitlePath
+ * @return
+ */
+bool vp_mm_player_set_subtitle_url(mm_player_handle pPlayerHandle,
+                                                                  char *szSubtitlePath)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       if (szSubtitlePath == NULL) {
+               VideoLogError("Invalid subtitle path info");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       if (pMMPlayer->szSubtitleURL) {
+               free(pMMPlayer->szSubtitleURL);
+               pMMPlayer->szSubtitleURL = NULL;
+       }
+
+       int nRet =
+               player_set_subtitle_path(pMMPlayer->pPlayer, szSubtitlePath);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_set_subtitle_path fail : %d", nRet);
+               return FALSE;
+       }
+
+       pMMPlayer->szSubtitleURL = strdup(szSubtitlePath);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param szSubtitlePath
+ * @return
+ */
+bool vp_mm_player_get_subtitle_url(mm_player_handle pPlayerHandle,
+                                                                  char **szSubtitlePath)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->szSubtitleURL == NULL) {
+               VideoLogError("pMMPlayer->szSubtitleURL is NULL");
+               return FALSE;
+       }
+
+       *szSubtitlePath = strdup(pMMPlayer->szSubtitleURL);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param szFamilyName
+ * @param szStyle
+ * @param nSize
+ * @return
+ */
+bool vp_mm_player_set_subtitle_font(mm_player_handle pPlayerHandle,
+                                                                       char *szFamilyName, char *szStyle,
+                                                                       int nSize)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (szFamilyName == NULL) {
+               VideoLogError("Invalid szFamilyName info");
+               return FALSE;
+       }
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nForegroundColor
+ * @param nBGColor
+ * @return
+ */
+bool vp_mm_player_set_subtitle_font_color(mm_player_handle pPlayerHandle,
+                                                                                 unsigned int nForegroundColor,
+                                                                                 unsigned int nBGColor)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param bIgnoreMarkup
+ * @return
+ */
+bool vp_mm_player_subtitle_ignore_markup_tags(mm_player_handle
+                                                                                         pPlayerHandle,
+                                                                                         bool bIgnoreMarkup)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param type
+ * @return
+ */
+bool vp_mm_player_subtitle_set_alignment_in_line(mm_player_handle
+                                                                                                pPlayerHandle,
+                                                                                                vp_mm_player_subtitle_halign_t
+                                                                                                type)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param type
+ * @return
+ */
+bool vp_mm_player_subtitle_set_alignment_horizontal(mm_player_handle
+                                                                                                       pPlayerHandle,
+                                                                                                       vp_mm_player_subtitle_halign_t
+                                                                                                       type)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @return
+ */
+bool vp_mm_player_subtitle_apply_alignment_right_away(mm_player_handle
+                                                                                                         pPlayerHandle)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nPosition
+ * @return
+ */
+bool vp_mm_player_set_subtitle_position(mm_player_handle pPlayerHandle,
+                                                                               int nPosition)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       if (pMMPlayer->bIsRealize == FALSE) {
+               VideoLogError("Not realized");
+               return FALSE;
+       }
+
+       int nRet = player_set_subtitle_position_offset(pMMPlayer->pPlayer,
+                                                                                                  nPosition);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_set_subtitle_position fail : %d", nRet);
+               return FALSE;
+       }
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param bDeactivate
+ * @return
+ */
+bool vp_mm_player_set_deactivate_subtitle(mm_player_handle pPlayerHandle,
+                                                                                 bool bDeactivate)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       pMMPlayer->bDeactivateSubtitle = bDeactivate;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param fLeft
+ * @param fRight
+ * @return
+ */
+bool vp_mm_player_set_volume(mm_player_handle pPlayerHandle, float fLeft,
+                                                        float fRight)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       if (pMMPlayer->bIsRealize == FALSE) {
+               VideoLogError("Not realized");
+               return FALSE;
+       }
+
+       int nRet = player_set_volume(pMMPlayer->pPlayer, fLeft, fRight);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_set_volume fail : %d", nRet);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param fLeft
+ * @param fRight
+ * @return
+ */
+bool vp_mm_player_get_volume(mm_player_handle pPlayerHandle, float *fLeft,
+                                                        float *fRight)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       if (pMMPlayer->bIsRealize == FALSE) {
+               VideoLogError("Not realized");
+               return FALSE;
+       }
+
+       float fLeftVal = 0.0;
+       float fRightVal = 0.0;
+
+       int nRet =
+               player_get_volume(pMMPlayer->pPlayer, &fLeftVal, &fRightVal);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_get_volume fail : %d", nRet);
+               return FALSE;
+       }
+
+       *fLeft = fLeftVal;
+       *fRight = fRightVal;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nFilter
+ * @return
+ */
+bool vp_mm_player_set_sound_filter(mm_player_handle pPlayerHandle,
+                                                                  vp_mm_player_sound_filter_t nFilter)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       return FALSE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nFilter
+ * @return
+ */
+bool vp_mm_player_get_sound_filter(mm_player_handle pPlayerHandle,
+                                                                  vp_mm_player_sound_filter_t * nFilter)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       *nFilter = pMMPlayer->nSoundFilter;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @return
+ */
+bool vp_mm_player_capture_start(mm_player_handle pPlayerHandle)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       if (pMMPlayer->bIsRealize == FALSE) {
+               VideoLogError("Not realized");
+               return FALSE;
+       }
+
+
+       int nRet = player_capture_video(pMMPlayer->pPlayer,
+                                                                       __vp_mm_player_video_captured_cb,
+                                                                       (void *) pMMPlayer);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_capture_video fail : %d", nRet);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @return
+ */
+bool vp_mm_player_is_closed_caption_exist(mm_player_handle pPlayerHandle)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (pMMPlayer->pPlayer == NULL) {
+               VideoLogError("Player Handle is NULL");
+               return FALSE;
+       }
+
+       if (pMMPlayer->bIsRealize == FALSE) {
+               VideoLogError("Not realized");
+               return FALSE;
+       }
+
+
+       return FALSE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nCount
+ * @return
+ */
+bool vp_mm_player_get_audio_track_count(mm_player_handle pPlayerHandle,
+                                                                               int *nCount)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       int nCnt = 0;
+
+       *nCount = nCnt;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nIndex
+ * @param szCode
+ * @return
+ */
+bool vp_mm_player_get_audio_track_language_code(mm_player_handle
+                                                                                               pPlayerHandle, int nIndex,
+                                                                                               char **szCode)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nIndex
+ * @return
+ */
+bool vp_mm_player_set_audio_track(mm_player_handle pPlayerHandle,
+                                                                 int nIndex)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nCount
+ * @return
+ */
+bool vp_mm_player_get_subtitle_track_count(mm_player_handle pPlayerHandle,
+                                                                                  int *nCount)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       *nCount = 0;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nIndex
+ * @param szCode
+ * @return
+ */
+bool vp_mm_player_get_subtitle_track_language_code(mm_player_handle
+                                                                                                  pPlayerHandle,
+                                                                                                  int nIndex,
+                                                                                                  char **szCode)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nIndex
+ * @return
+ */
+bool vp_mm_player_set_subtitle_track(mm_player_handle pPlayerHandle,
+                                                                        int nIndex)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+bool vp_mm_player_add_subtitle_language(mm_player_handle pPlayerHandle,
+                                                                               int nIndex)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+bool vp_mm_player_remove_subtitle_language(mm_player_handle pPlayerHandle,
+                                                                                  int nIndex)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+       return TRUE;
+}
+
+bool
+vp_mm_player_track_foreach_selected_subtitle_language(mm_player_handle
+                                                                                                         pPlayerHandle,
+                                                                                                         void *pCallback,
+                                                                                                         void *pUserData)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+#endif
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param szCookie
+ * @return
+ */
+bool vp_mm_player_set_cookie(mm_player_handle pPlayerHandle,
+                                                        const char *szCookie)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       if (szCookie == NULL) {
+               VideoLogError("szCookie is NULL");
+               return FALSE;
+       }
+
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       int nRet = player_set_streaming_cookie(pMMPlayer->pPlayer, szCookie,
+                                                                                  strlen(szCookie));
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_select_track fail : %d", nRet);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param szProxy
+ * @return
+ */
+bool vp_mm_player_set_proxy(mm_player_handle pPlayerHandle,
+                                                       const char *szProxy)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       if (szProxy == NULL) {
+               VideoLogError("szCookie is NULL");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bEnable
+ * @return
+ */
+bool vp_mm_player_set_hw_decoder(bool bEnable)
+{
+       if (bEnable) {
+               setenv("MM_PLAYER_HW_CODEC_DISABLE", "no", 1);
+       } else {
+               setenv("MM_PLAYER_HW_CODEC_DISABLE", "yes", 1);
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param fRate
+ * @return
+ */
+bool vp_mm_player_set_rate(mm_player_handle pPlayerHandle, float fRate)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       if (fRate < 0.5 || fRate > 1.5) {
+               VideoLogError("Invalid Param : %f", fRate);
+               return FALSE;
+       }
+
+       VideoLogDebug("== SET RATE : %f", fRate);
+
+       int nRet = player_set_playback_rate(pMMPlayer->pPlayer, fRate);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_set_playback_rate_ex fail : %d", nRet);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param fZoom
+ * @param nPosX
+ * @param nPosY
+ * @return
+ */
+bool vp_mm_player_set_zoom(mm_player_handle pPlayerHandle, float fZoom,
+                                                  int nPosX, int nPosY)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+       return FALSE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param nPosX
+ * @param nPosY
+ * @return
+ */
+bool vp_mm_player_get_zoom_start_position(mm_player_handle pPlayerHandle,
+                                                                                 int *nPosX, int *nPosY)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       *nPosX = pMMPlayer->nZoomPosX;
+       *nPosY = pMMPlayer->nZoomPosY;
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param bVisible
+ * @return
+ */
+bool vp_mm_player_set_visible(mm_player_handle pPlayerHandle,
+                                                         bool bVisible)
+{
+
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       MMPlayer *pMMPlayer = (MMPlayer *) pPlayerHandle;
+
+       int nRet = player_set_display_visible(pMMPlayer->pPlayer, bVisible);
+       if (nRet != PLAYER_ERROR_NONE) {
+               _vp_mm_player_print_err(nRet);
+               VideoLogError("player_set_display_visible fail : %d", nRet);
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pPlayerHandle
+ * @param bDownload
+ * @return
+ */
+bool vp_mm_player_set_hub_download_mode(mm_player_handle pPlayerHandle,
+                                                                               bool bDownload)
+{
+       if (pPlayerHandle == NULL) {
+               VideoLogError("pPlayerHandle is NULL");
+               return FALSE;
+       }
+       return FALSE;
+}
diff --git a/playview/src/core/vp-multi-path.c b/playview/src/core/vp-multi-path.c
new file mode 100755 (executable)
index 0000000..40a9a10
--- /dev/null
@@ -0,0 +1,447 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-string-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-util.h"
+
+
+#include "vp-multi-path.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+typedef struct _MultiPath {
+       char *szURL;
+       char *szTitle;
+       char *szSubTitle;
+       int nStartPosition;
+       int nDuration;
+       bool bIsSameAP;
+} MultiPath;
+
+/* internal functions */
+/**
+ *
+ * @param szURL
+ * @param nPosition
+ * @return
+ */
+static bool _vp_multi_path_write_multi_path_set_position(char *szURL,
+                                                                                                                int nPosition)
+{
+       char *app_path = app_get_data_path();
+       if (!app_path) {
+               VideoLogError("cannot retrieve app install path");
+               return FALSE;
+       }
+       char db_path[1024] = { 0, };
+       snprintf(db_path, 1024, "%s%s", app_path, "saveposition.ini");
+       VideoLogError("db_path: %s", db_path);
+       FILE *fp = fopen(db_path, "w");
+
+       if (fp == NULL) {
+               VideoLogError("%s is NULL.", db_path);
+               return FALSE;
+       }
+
+       fprintf(fp, "#saveposition\n");
+       fprintf(fp, "uri=%s\n", szURL);
+       fprintf(fp, "position=%d\n", nPosition);
+       fclose(fp);
+
+       return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pList
+ * @param szURL
+ * @param szTitle
+ * @param szSubTitle
+ * @param nPosition
+ * @param nDuration
+ * @param bIsSameAP
+ * @return
+ */
+bool vp_multi_path_add_item(GList ** pList,
+                                                       const char *szURL,
+                                                       char *szTitle,
+                                                       char *szSubTitle,
+                                                       int nPosition, int nDuration, bool bIsSameAP)
+{
+       if (!szURL) {
+               VideoLogError("szURL is NULL");
+               return FALSE;
+       }
+
+       MultiPath *pPath = NULL;
+
+       pPath = calloc(1, sizeof(MultiPath));
+       if (pPath == NULL) {
+               VideoLogError("pPath alloc fail");
+               return FALSE;
+       }
+
+       char *szConvert = vp_play_util_remove_prefix_to_url((char *) szURL);
+       if (szConvert) {
+               VP_STRDUP(pPath->szURL, szConvert);
+       } else {
+               VP_STRDUP(pPath->szURL, szURL);
+       }
+       VP_FREE(szConvert);
+
+
+       szConvert = vp_play_util_remove_prefix_to_url(szSubTitle);
+       if (szConvert) {
+               VP_STRDUP(pPath->szSubTitle, szConvert);
+       } else {
+               VP_STRDUP(pPath->szSubTitle, szSubTitle);
+       }
+       VP_FREE(szConvert);
+
+       VP_STRDUP(pPath->szTitle, szTitle);
+       pPath->bIsSameAP = bIsSameAP;
+
+       pPath->nStartPosition = nPosition;
+       pPath->nDuration = nDuration;
+       *pList = g_list_append(*pList, pPath);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pList
+ * @return
+ */
+bool vp_multi_path_clear_item(GList * pList)
+{
+       if (!pList) {
+               VideoLogError("pList is NULL");
+               return FALSE;
+       }
+
+       int nCount = 0;
+       int nIdx = 0;
+
+       nCount = g_list_length(pList);
+       for (nIdx = 0; nIdx < nCount; nIdx++) {
+               MultiPath *pPath = NULL;
+               pPath = (MultiPath *) g_list_nth_data(pList, nIdx);
+               if (pPath) {
+                       VP_FREE(pPath->szURL);
+                       VP_FREE(pPath->szSubTitle);
+                       VP_FREE(pPath->szTitle);
+
+                       VP_FREE(pPath);
+               }
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param szSubtitleURL
+ * @param pList
+ * @return
+ */
+bool vp_multi_path_set_item_subtitle(const char *szMediaURL,
+                                                                        char *szSubtitleURL, GList * pList)
+{
+       if (!pList) {
+               VideoLogError("pList is NULL");
+               return FALSE;
+       }
+
+       if (!szMediaURL) {
+               VideoLogError("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       int nCount = 0;
+       int nIdx = 0;
+
+       nCount = g_list_length(pList);
+       for (nIdx = 0; nIdx < nCount; nIdx++) {
+               MultiPath *pPath = NULL;
+               pPath = (MultiPath *) g_list_nth_data(pList, nIdx);
+               if (pPath == NULL) {
+                       continue;
+               }
+               if (pPath->szURL == NULL) {
+                       continue;
+               }
+               if (!strcmp(szMediaURL, pPath->szURL)) {
+                       VP_FREE(pPath->szSubTitle);
+                       VP_STRDUP(pPath->szSubTitle, szSubtitleURL);
+               }
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param nPosition
+ * @param pList
+ * @return
+ */
+bool vp_multi_path_set_item_position(const char *szMediaURL,
+                                                                        int nPosition, GList * pList)
+{
+       if (!pList) {
+               VideoLogError("pList is NULL");
+               return FALSE;
+       }
+
+       if (!szMediaURL) {
+               VideoLogError("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       int nCount = 0;
+       int nIdx = 0;
+
+       nCount = g_list_length(pList);
+       for (nIdx = 0; nIdx < nCount; nIdx++) {
+               MultiPath *pPath = NULL;
+               pPath = (MultiPath *) g_list_nth_data(pList, nIdx);
+               if (pPath == NULL) {
+                       continue;
+               }
+               if (pPath->szURL == NULL) {
+                       continue;
+               }
+               if (!strcmp(szMediaURL, pPath->szURL)) {
+                       pPath->nStartPosition = nPosition;
+                       _vp_multi_path_write_multi_path_set_position((char *)
+                                                                                                                szMediaURL,
+                                                                                                                nPosition);
+               }
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param szURL
+ * @param szTitle
+ * @param szSubtitle
+ * @param nPosition
+ * @param nDuration
+ * @param bIsSameAP
+ * @param pList
+ * @return
+ */
+bool vp_multi_path_get_current_item(const char *szMediaURL, char **szURL,
+                                                                       char **szTitle, char **szSubtitle,
+                                                                       int *nPosition, int *nDuration,
+                                                                       bool * bIsSameAP, GList * pList)
+{
+       if (!szMediaURL) {
+               VideoLogError("No exist szMediaID.");
+               return FALSE;
+       }
+
+       if (pList == NULL) {
+               VideoLogError("list is NULL");
+               return FALSE;
+       }
+
+       int nCount = 0;
+       int i = 0;
+
+       nCount = g_list_length(pList);
+       for (i = 0; i < nCount; i++) {
+               MultiPath *pPath = NULL;
+               pPath = (MultiPath *) g_list_nth_data(pList, i);
+               if (pPath == NULL) {
+                       continue;
+               }
+               if (pPath->szURL == NULL) {
+                       continue;
+               }
+
+               if (!strcmp(szMediaURL, pPath->szURL)) {
+                       VP_STRDUP(*szURL, pPath->szURL);
+                       VP_STRDUP(*szSubtitle, pPath->szSubTitle);
+                       VP_STRDUP(*szTitle, pPath->szTitle);
+                       *bIsSameAP = pPath->bIsSameAP;
+                       *nPosition = pPath->nStartPosition;
+                       *nDuration = pPath->nDuration;
+
+                       return TRUE;
+
+               }
+       }
+
+       return FALSE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param szURL
+ * @param szSubtitle
+ * @param nPosition
+ * @param nDuration
+ * @param bLoop
+ * @param pList
+ * @return
+ */
+bool vp_multi_path_get_next_item(const char *szMediaURL, char **szURL,
+                                                                char **szSubtitle, int *nPosition,
+                                                                int *nDuration, bool bLoop, GList * pList)
+{
+       if (!szMediaURL) {
+               VideoLogError("No exist szMediaID.");
+               return FALSE;
+       }
+
+       if (pList == NULL) {
+               VideoLogError("list is NULL");
+               return FALSE;
+       }
+
+       int nCount = 0;
+       int i = 0;
+
+       MultiPath *pFirstPathItem = NULL;
+       bool bCheck = FALSE;
+
+       nCount = g_list_length(pList);
+       for (i = 0; i < nCount; i++) {
+               MultiPath *pPath = NULL;
+               pPath = (MultiPath *) g_list_nth_data(pList, i);
+               if (pPath == NULL) {
+                       continue;
+               }
+               if (pPath->szURL == NULL) {
+                       continue;
+               }
+
+               if (pFirstPathItem == NULL) {
+                       pFirstPathItem = pPath;
+               }
+
+               if (bCheck) {
+                       VP_STRDUP(*szURL, pPath->szURL);
+                       VP_STRDUP(*szSubtitle, pPath->szSubTitle);
+                       *nPosition = pPath->nStartPosition;
+
+                       return TRUE;
+               }
+
+               if (!strcmp(szMediaURL, pPath->szURL)) {
+                       bCheck = TRUE;
+               }
+
+       }
+
+       if (bLoop) {
+               if (pFirstPathItem) {
+                       VP_STRDUP(*szURL, pFirstPathItem->szURL);
+                       VP_STRDUP(*szSubtitle, pFirstPathItem->szSubTitle);
+                       *nPosition = pFirstPathItem->nStartPosition;
+                       *nDuration = pFirstPathItem->nDuration;
+               }
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param szURL
+ * @param szSubtitle
+ * @param nPosition
+ * @param nDuration
+ * @param bLoop
+ * @param pList
+ * @return
+ */
+bool vp_multi_path_get_prev_item(const char *szMediaURL, char **szURL,
+                                                                char **szSubtitle, int *nPosition,
+                                                                int *nDuration, bool bLoop, GList * pList)
+{
+       if (!szMediaURL) {
+               VideoLogError("No exist szMediaID.");
+               return FALSE;
+       }
+
+       if (pList == NULL) {
+               VideoLogError("list is NULL");
+               return FALSE;
+       }
+
+       int nCount = 0;
+       int i = 0;
+
+
+       MultiPath *pLastPathItem = NULL;
+       bool bCheck = FALSE;
+
+
+       nCount = g_list_length(pList);
+       for (i = nCount - 1; i >= 0; i--) {
+               MultiPath *pPath = NULL;
+               pPath = (MultiPath *) g_list_nth_data(pList, i);
+               if (pPath == NULL) {
+                       continue;
+               }
+               if (pPath->szURL == NULL) {
+                       continue;
+               }
+
+               if (pLastPathItem == NULL) {
+                       pLastPathItem = pPath;
+               }
+
+               if (bCheck) {
+                       VP_STRDUP(*szURL, pPath->szURL);
+                       VP_STRDUP(*szSubtitle, pPath->szSubTitle);
+                       *nPosition = pPath->nStartPosition;
+                       *nDuration = pPath->nDuration;
+                       return TRUE;
+               }
+
+               if (!strcmp(szMediaURL, pPath->szURL)) {
+                       bCheck = TRUE;
+               }
+       }
+
+       if (bLoop) {
+               if (pLastPathItem) {
+                       VP_STRDUP(*szURL, pLastPathItem->szURL);
+                       VP_STRDUP(*szSubtitle, pLastPathItem->szSubTitle);
+                       *nPosition = pLastPathItem->nStartPosition;
+                       *nDuration = pLastPathItem->nDuration;
+               }
+       }
+
+       return TRUE;
+}
diff --git a/playview/src/core/vp-sensor.c b/playview/src/core/vp-sensor.c
new file mode 100755 (executable)
index 0000000..c778683
--- /dev/null
@@ -0,0 +1,325 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#ifdef OLD_SENSOR_API
+
+#include <sensor.h>
+
+#include "vp-play-macro-define.h"
+
+#include "vp-sensor.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+typedef struct _SensorHandle {
+       sensor_h pSensorH;
+       bool bIsRealize;
+       bool bFaceDownEnable;
+       bool bDoubleTabEnable;
+
+       void *pUserData;
+       SensorEventCbFunc pEventCb;
+
+} SensorHandle;
+
+
+static void _vp_sensor_destroy_handle(SensorHandle * pSensorHandle);
+
+/* callback functions */
+/**
+ *
+ * @param timestamp
+ * @param pUserData
+ */
+static void __vp_sensor_motion_doubletap_event_cb(unsigned long long
+                                                                                                 timestamp,
+                                                                                                 void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SensorHandle *pSensor = (SensorHandle *) pUserData;
+       if (pSensor->pEventCb) {
+               pSensor->pEventCb(VP_SENSOR_TYPE_DOUBLETAP, timestamp,
+                                                 pSensor->pUserData);
+       }
+
+}
+
+/**
+ *
+ * @param timestamp
+ * @param pUserData
+ */
+static void __vp_sensor_motion_facedown_event_cb(unsigned long long
+                                                                                                timestamp,
+                                                                                                void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SensorHandle *pSensor = (SensorHandle *) pUserData;
+
+       if (pSensor->pEventCb) {
+               pSensor->pEventCb(VP_SENSOR_TYPE_FACEDOWN, timestamp,
+                                                 pSensor->pUserData);
+       }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pSensorHandle
+ */
+static void _vp_sensor_destroy_handle(SensorHandle * pSensorHandle)
+{
+       if (pSensorHandle == NULL) {
+               VideoLogError("pSensorHandle is NULL");
+               return;
+       }
+
+       int nRet = sensor_destroy(pSensorHandle->pSensorH);
+       if (nRet != SENSOR_ERROR_NONE) {
+               VideoLogInfo("sensor_destroy is fail : 0x%x", nRet);
+       }
+
+
+       VP_FREE(pSensorHandle);
+}
+
+/* external functions */
+/**
+ *
+ * @param pEventCb
+ * @return
+ */
+sensor_handle vp_sensor_create(SensorEventCbFunc pEventCb)
+{
+       SensorHandle *pSensor = NULL;
+
+       pSensor = calloc(1, sizeof(SensorHandle));
+
+       if (pSensor == NULL) {
+               VideoLogError("pSensorHandle alloc fail");
+               return NULL;
+       }
+
+       pSensor->pEventCb = pEventCb;
+
+       VideoLogInfo(">> sensor create");
+
+       int nRet = sensor_create(&pSensor->pSensorH);
+       if (nRet != SENSOR_ERROR_NONE) {
+               VideoLogInfo("sensor_create is fail : 0x%x", nRet);
+               _vp_sensor_destroy_handle(pSensor);
+               return NULL;
+       }
+       VideoLogInfo("<< sensor create");
+
+       if (pSensor->pSensorH == NULL) {
+               VideoLogInfo("pSensorHandle->pSensorH is NULL");
+               _vp_sensor_destroy_handle(pSensor);
+               return NULL;
+       }
+
+       return (sensor_handle) pSensor;
+}
+
+/**
+ *
+ * @param pSensorHandle
+ */
+void vp_sensor_destroy(sensor_handle pSensorHandle)
+{
+       if (pSensorHandle == NULL) {
+               VideoLogError("pSensorHandle is NULL");
+               return;
+       }
+
+       SensorHandle *pSensor = (SensorHandle *) pSensorHandle;
+
+       vp_sensor_unrealize(pSensorHandle);
+
+       _vp_sensor_destroy_handle(pSensor);
+}
+
+/**
+ *
+ * @param pSensorHandle
+ * @return
+ */
+bool vp_sensor_realize(sensor_handle pSensorHandle)
+{
+       if (pSensorHandle == NULL) {
+               VideoLogError("pSensorHandle is NULL");
+               return FALSE;
+       }
+
+       VideoLogInfo(">> Sensor realize");
+
+       SensorHandle *pSensor = (SensorHandle *) pSensorHandle;
+       bool bReturn = TRUE;
+       int nRet = SENSOR_ERROR_NONE;
+       bool bEnableSensor = FALSE;
+       if (pSensor->bIsRealize) {
+               VideoLogWarning("Already Realize");
+               return TRUE;
+       }
+
+       nRet = sensor_is_supported(SENSOR_MOTION_DOUBLETAP, &bEnableSensor);
+       if (nRet != SENSOR_ERROR_NONE) {
+               VideoLogInfo("sensor_is_supported is fail : 0x%x", nRet);
+               bReturn = FALSE;
+       }
+
+       if (bEnableSensor) {
+               nRet =
+                       sensor_motion_doubletap_set_cb(pSensor->pSensorH,
+                                                                                  __vp_sensor_motion_doubletap_event_cb,
+                                                                                  (void *) pSensor);
+               if (nRet != SENSOR_ERROR_NONE) {
+                       VideoLogInfo("sensor_motion_doubletap_set_cb is fail : 0x%x",
+                                                nRet);
+                       bReturn = FALSE;
+               }
+
+               nRet = sensor_start(pSensor->pSensorH, SENSOR_MOTION_DOUBLETAP);
+               if (nRet != SENSOR_ERROR_NONE) {
+                       VideoLogInfo("sensor_start is fail : 0x%x", nRet);
+                       bReturn = FALSE;
+               }
+       }
+       pSensor->bFaceDownEnable = bEnableSensor;
+
+       nRet = sensor_is_supported(SENSOR_MOTION_FACEDOWN, &bEnableSensor);
+       if (nRet != SENSOR_ERROR_NONE) {
+               VideoLogInfo("sensor_is_supported is fail : 0x%x", nRet);
+               bReturn = FALSE;
+       }
+       if (bEnableSensor) {
+               nRet =
+                       sensor_motion_facedown_set_cb(pSensor->pSensorH,
+                                                                                 __vp_sensor_motion_facedown_event_cb,
+                                                                                 (void *) pSensor);
+               if (nRet != SENSOR_ERROR_NONE) {
+                       VideoLogInfo("sensor_motion_facedown_set_cb is fail : 0x%x",
+                                                nRet);
+                       bReturn = FALSE;
+               }
+
+               nRet = sensor_start(pSensor->pSensorH, SENSOR_MOTION_FACEDOWN);
+               if (nRet != SENSOR_ERROR_NONE) {
+                       VideoLogInfo("sensor_start is fail : 0x%x", nRet);
+                       bReturn = FALSE;
+               }
+       }
+       pSensor->bDoubleTabEnable = bEnableSensor;
+
+       pSensor->bIsRealize = TRUE;
+
+       VideoLogInfo("<< Sensor realize");
+
+       return bReturn;
+}
+
+/**
+ *
+ * @param pSensorHandle
+ * @return
+ */
+bool vp_sensor_unrealize(sensor_handle pSensorHandle)
+{
+       if (pSensorHandle == NULL) {
+               VideoLogError("pSensorHandle is NULL");
+               return FALSE;
+       }
+
+       SensorHandle *pSensor = (SensorHandle *) pSensorHandle;
+       bool bReturn = TRUE;
+       int nRet = SENSOR_ERROR_NONE;
+
+       if (pSensor->bIsRealize == FALSE) {
+               VideoLogWarning("Not yet Realize");
+               return TRUE;
+       }
+
+       if (pSensor->bDoubleTabEnable) {
+               nRet = sensor_motion_doubletap_unset_cb(pSensor->pSensorH);
+               if (nRet != SENSOR_ERROR_NONE) {
+                       VideoLogInfo
+                               ("sensor_motion_doubletap_unset_cb is fail : 0x%x", nRet);
+                       bReturn = FALSE;
+               }
+
+               nRet = sensor_stop(pSensor->pSensorH, SENSOR_MOTION_DOUBLETAP);
+               if (nRet != SENSOR_ERROR_NONE) {
+                       VideoLogInfo("sensor_stop is fail : 0x%x", nRet);
+                       bReturn = FALSE;
+               } else {
+                       pSensor->bDoubleTabEnable = FALSE;
+               }
+
+       }
+       if (pSensor->bFaceDownEnable) {
+               nRet = sensor_motion_facedown_unset_cb(pSensor->pSensorH);
+               if (nRet != SENSOR_ERROR_NONE) {
+                       VideoLogInfo("sensor_motion_facedown_unset_cb is fail : 0x%x",
+                                                nRet);
+                       bReturn = FALSE;
+               }
+
+               nRet = sensor_stop(pSensor->pSensorH, SENSOR_MOTION_FACEDOWN);
+               if (nRet != SENSOR_ERROR_NONE) {
+                       VideoLogInfo("sensor_stop is fail : 0x%x", nRet);
+                       bReturn = FALSE;
+               } else {
+                       pSensor->bFaceDownEnable = FALSE;
+               }
+
+       }
+
+       pSensor->bIsRealize = FALSE;
+
+       return bReturn;
+}
+
+/**
+ *
+ * @param pSensorHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_sensor_set_user_data(sensor_handle pSensorHandle, void *pUserData)
+{
+       if (pSensorHandle == NULL) {
+               VideoLogError("pSensorHandle is NULL");
+               return FALSE;
+       }
+
+       SensorHandle *pSensor = (SensorHandle *) pSensorHandle;
+
+       pSensor->pUserData = pUserData;
+
+       return TRUE;
+}
+
+#endif
diff --git a/playview/src/core/vp-sound.c b/playview/src/core/vp-sound.c
new file mode 100755 (executable)
index 0000000..c529e89
--- /dev/null
@@ -0,0 +1,462 @@
+/*
+ * Copyright (c) 2020 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 <sound_manager.h>
+#include "vp-play-macro-define.h"
+#include "vp-play-normal-view.h"
+#include "vp-play-view.h"
+#include "vp-sound.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+/* callback functions */
+
+/* internal functions */
+
+/* external functions */
+
+
+static int earjack_conn_changed_cb_id;
+/**
+ *
+ * @param stream_info
+ * @param focus_mask
+ * @param focus_state
+ * @param reason_for_change
+ * @param sound_behaviors
+ * @param extra_info
+ * @param user_data
+ */
+void vp_player_focus_callback(sound_stream_info_h stream_info,
+                                                         sound_stream_focus_mask_e focus_mask,
+                                                         sound_stream_focus_state_e focus_state,
+                                                         sound_stream_focus_change_reason_e
+                                                         reason_for_change, int sound_behaviors,
+                                                         const char *extra_info, void *user_data)
+{
+       PlayView *pPlayView = (PlayView *) user_data;
+       sound_stream_focus_state_e state_for_playback;
+       sound_stream_focus_state_e state_for_recording;
+       int ret = -1;
+
+       if (!pPlayView) {
+               return;
+       }
+
+       ret =
+               sound_manager_get_focus_state(pPlayView->stream_info,
+                                                                         &state_for_playback,
+                                                                         &state_for_recording);
+       if (ret != SOUND_MANAGER_ERROR_NONE) {
+               VideoLogError("sound_manager_get_focus_state fail");
+               return;
+       }
+       VideoLogDebug("Reason for change : %d and state of playback is : %d",
+                                 reason_for_change, state_for_playback);
+       if (state_for_playback == SOUND_STREAM_FOCUS_STATE_RELEASED) {
+               vp_play_normal_view_pause_player(pPlayView);
+               sound_manager_get_focus_reacquisition(pPlayView->stream_info,
+                                                                                         &pPlayView->reacquire_state);
+               if (reason_for_change == SOUND_STREAM_FOCUS_CHANGED_BY_VOIP
+                       || reason_for_change == SOUND_STREAM_FOCUS_CHANGED_BY_CALL
+                       || reason_for_change == SOUND_STREAM_FOCUS_CHANGED_BY_RINGTONE
+                       || reason_for_change ==
+                       SOUND_STREAM_FOCUS_CHANGED_BY_VOICE_RECOGNITION) {
+                       sound_manager_set_focus_reacquisition(pPlayView->stream_info,
+                                                                                                 EINA_TRUE);
+               } else if (reason_for_change != SOUND_STREAM_FOCUS_CHANGED_BY_ALARM
+                                  && reason_for_change !=
+                                  SOUND_STREAM_FOCUS_CHANGED_BY_NOTIFICATION) {
+                       if (pPlayView->reacquire_state == EINA_TRUE) {
+                               sound_manager_set_focus_reacquisition(pPlayView->
+                                                                                                         stream_info,
+                                                                                                         EINA_FALSE);
+                       }
+               }
+       } else {
+               vp_play_normal_view_play_player(pPlayView);
+       }
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_sound_init_session(play_view_handle pViewHandle)
+{
+       VideoLogInfo(">> Sound Session : Init");
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+       int nRet = SOUND_MANAGER_ERROR_NONE;
+       nRet =
+               sound_manager_create_stream_information(SOUND_STREAM_TYPE_MEDIA,
+                                                                                               vp_player_focus_callback,
+                                                                                               pPlayView,
+                                                                                               &pPlayView->stream_info);
+
+       if (nRet != SOUND_MANAGER_ERROR_NONE) {
+               VideoLogError("failed to create_stream_information [%x]", nRet);
+               return FALSE;
+       }
+
+       VideoLogInfo("<< Sound Session : Init");
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_sound_deinit_session(play_view_handle pViewHandle)
+{
+       int nRet = SOUND_MANAGER_ERROR_NONE;
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return true;
+       }
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       if (pPlayView->stream_info) {
+               nRet =
+                       sound_manager_destroy_stream_information(pPlayView->
+                                                                                                        stream_info);
+               if (nRet != SOUND_MANAGER_ERROR_NONE) {
+                       VideoLogError("sound_manager_destroy_stream_information fail");
+                       return FALSE;
+               }
+       }
+
+       sound_manager_remove_volume_changed_cb(pPlayView->volume_changed_cb_id);
+       return TRUE;
+}
+
+/**
+ *
+ * @param nValue
+ * @return
+ */
+bool vp_sound_get_volume(int *nValue)
+{
+       int nRet = SOUND_MANAGER_ERROR_NONE;
+       int nVal = 0;
+       nRet = sound_manager_get_volume(SOUND_TYPE_MEDIA, &nVal);
+       if (nRet != SOUND_MANAGER_ERROR_NONE) {
+               VideoLogError("sound_manager_get_volume fail");
+               return FALSE;
+       }
+
+       *nValue = nVal;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nValue
+ * @return
+ */
+bool vp_sound_set_volume(int nValue)
+{
+       int nRet = SOUND_MANAGER_ERROR_NONE;
+
+       nRet = sound_manager_set_volume(SOUND_TYPE_MEDIA, nValue);
+       if (nRet != SOUND_MANAGER_ERROR_NONE) {
+               VideoLogError("sound_manager_set_volume fail");
+               return FALSE;
+       }
+       return TRUE;
+}
+
+/**
+ *
+ * @param nMaxValue
+ * @return
+ */
+bool vp_sound_get_max_volume(int *nMaxValue)
+{
+       int nRet = SOUND_MANAGER_ERROR_NONE;
+       int nVal = 0;
+       nRet = sound_manager_get_max_volume(SOUND_TYPE_MEDIA, &nVal);
+       if (nRet != SOUND_MANAGER_ERROR_NONE) {
+               VideoLogError("sound_manager_get_max_volume fail");
+               return FALSE;
+       }
+
+       *nMaxValue = nVal;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nDeviceType
+ * @return
+ */
+bool vp_sound_get_active_device(video_sound_device_type_t * nDeviceType)
+{
+       sound_device_h device;
+       sound_device_type_e type = SOUND_DEVICE_BUILTIN_SPEAKER;
+       sound_device_list_h g_device_list = NULL;
+       sound_device_mask_e g_device_mask = SOUND_DEVICE_IO_DIRECTION_OUT_MASK;
+       int ret;
+       if ((ret =
+                sound_manager_get_device_list(g_device_mask, &g_device_list)))
+
+
+               if (!(ret = sound_manager_get_next_device(g_device_list, &device))) {
+                       if ((ret = sound_manager_get_device_type(device, &type))) {
+                               return FALSE;
+                       }
+               }
+
+
+       switch (type) {
+       case SOUND_DEVICE_BUILTIN_SPEAKER:
+               *nDeviceType = VP_SOUND_DEVICE_SPEAKER;
+               break;
+
+       case SOUND_DEVICE_AUDIO_JACK:
+               *nDeviceType = VP_SOUND_DEVICE_EARJACK;
+               break;
+
+       case SOUND_DEVICE_BLUETOOTH_MEDIA:
+               *nDeviceType = VP_SOUND_DEVICE_BLUETOOTH;
+               break;
+
+       case SOUND_DEVICE_HDMI:
+               *nDeviceType = VP_SOUND_DEVICE_HDMI;
+               break;
+
+       case SOUND_DEVICE_FORWARDING:
+               *nDeviceType = VP_SOUND_DEVICE_MIRRORING;
+               break;
+
+       case SOUND_DEVICE_USB_AUDIO:
+               *nDeviceType = VP_SOUND_DEVICE_USB_AUDIO;
+               break;
+
+       default:
+               *nDeviceType = VP_SOUND_DEVICE_SPEAKER;
+               break;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bIsSoundPath
+ * @return
+ */
+bool vp_sound_is_sound_path_enable(bool * bIsSoundPath)
+{
+       bool bConnected = FALSE;
+
+       int nPathCount = 1;                     //speaker or headphone
+
+       sound_device_h device;
+       sound_device_type_e type;
+       sound_device_list_h g_device_list = NULL;
+       sound_device_mask_e g_device_mask = SOUND_DEVICE_IO_DIRECTION_OUT_MASK;
+
+       int ret;
+       if ((ret =
+                sound_manager_get_device_list(g_device_mask, &g_device_list))) {
+               return bConnected;
+       }
+
+       while (!(ret = sound_manager_get_next_device(g_device_list, &device))) {
+               if ((ret = sound_manager_get_device_type(device, &type))) {
+                       nPathCount++;
+                       goto COUNT_CHECK;
+               }
+       }
+
+  COUNT_CHECK:
+       if (nPathCount > 1) {
+               bConnected = TRUE;
+       }
+
+       *bIsSoundPath = bConnected;
+
+       return bConnected;
+}
+
+/**
+ *
+ * @param device
+ * @param is_connected
+ * @param user_data
+ * @return
+ */
+static void vp_audio_jack_connected_cb(sound_device_h device,
+                                                                bool is_connected,
+                                                                void *user_data)
+{
+       if (!user_data) {
+               return;
+       }
+       sound_device_type_e type;
+       void *pPlayview = NULL;
+       pPlayview = user_data;
+       if (sound_manager_get_device_type(device, &type) ==
+               SOUND_MANAGER_ERROR_NONE) {
+               if (type == SOUND_DEVICE_AUDIO_JACK) {
+                       vp_play_normal_view_show_volume_popup(pPlayview);
+                       if (!is_connected) {
+                               vp_play_normal_view_pause_player(pPlayview);
+                       }
+               }
+       }
+       return;
+}
+
+void vp_sound_set_earjack_connection_changed_cb(void *pUserData)
+{
+       sound_manager_add_device_connection_changed_cb
+               (SOUND_DEVICE_ALL_MASK,
+                (sound_device_connection_changed_cb) vp_audio_jack_connected_cb,
+                (void *) pUserData, &earjack_conn_changed_cb_id);
+}
+
+void vp_sound_unset_earjack_connection_changed_cb()
+{
+       sound_manager_remove_device_connection_changed_cb(earjack_conn_changed_cb_id);
+}
+
+/**
+ *
+ * @param nDeviceType
+ * @param pUserdata
+ * @return
+ */
+bool vp_sound_device_is_enable(video_sound_device_type_t nDeviceType,
+                                                          void *pUserdata)
+{
+       if (!pUserdata) {
+               return FALSE;
+       }
+       void *pPlayview = NULL;
+       pPlayview = pUserdata;
+       sound_device_h device;
+       sound_device_type_e type;
+       sound_device_list_h g_device_list = NULL;
+       sound_device_mask_e g_device_mask = SOUND_DEVICE_IO_DIRECTION_OUT_MASK;
+
+       if (sound_manager_get_device_list
+               (g_device_mask, &g_device_list) != SOUND_MANAGER_ERROR_NONE) {
+               return FALSE;
+       }
+
+       while (sound_manager_get_next_device(g_device_list, &device) ==
+                  SOUND_MANAGER_ERROR_NONE) {
+               if (sound_manager_get_device_type(device, &type) ==
+                       SOUND_MANAGER_ERROR_NONE) {
+                       if (type == SOUND_DEVICE_AUDIO_JACK) {
+                               return TRUE;
+                       }
+               }
+       }
+
+
+       return FALSE;
+
+}
+
+/**
+ *
+ * @param szBTName
+ * @return
+ */
+bool vp_sound_get_a2dp_name(char **szBTName)
+{
+
+       bool bIsConnect = FALSE;
+
+       if (bIsConnect == FALSE) {
+               VideoLogError("Not connected BT");
+               VP_FREE(*szBTName);
+       }
+
+       return FALSE;
+}
+
+/**
+ *
+ * @param nDeviceType
+ * @return
+ */
+bool vp_sound_set_active_route(video_sound_device_type_t nDeviceType)
+{
+
+       if (nDeviceType == VP_SOUND_DEVICE_NONE) {
+               VideoLogError("Invalid device type");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param func
+ * @param pUserData
+ * @return
+ */
+bool vp_sound_set_route_change_cb(vp_sound_route_change_cb func,
+                                                                 void *pUserData)
+{
+       int nRet = SOUND_MANAGER_ERROR_NONE;
+
+       PlayView *pPlayView = (PlayView *)pUserData;
+       sound_device_mask_e g_device_mask = SOUND_DEVICE_IO_DIRECTION_OUT_MASK;
+
+       nRet =
+                       sound_manager_add_device_state_changed_cb(g_device_mask,
+                                       NULL, pPlayView, &pPlayView->device_state_id);
+       if (nRet != SOUND_MANAGER_ERROR_NONE) {
+               VideoLogError("sound_manager_set_available_route_changed_cb fail");
+               return FALSE;
+       }
+       return TRUE;
+}
+
+/**
+ *
+ * @param func
+ * @param pUserData
+ * @return
+ */
+bool vp_sound_set_volume_change_cb(vp_sound_volume_change_cb func,
+                                                                  void *pUserData)
+{
+       int nRet = SOUND_MANAGER_ERROR_NONE;
+       PlayView *pPlayView = (PlayView *)pUserData;
+       if (!pPlayView)
+               return FALSE;
+       nRet =
+                       sound_manager_add_volume_changed_cb((sound_manager_volume_changed_cb) func, pUserData,
+                                                       &pPlayView->volume_changed_cb_id);
+       if (nRet != SOUND_MANAGER_ERROR_NONE) {
+               VideoLogError("sound_manager_add_volume_changed_cb fail");
+               return FALSE;
+       }
+       return TRUE;
+}
diff --git a/playview/src/feature/include/vp-audio-track.h b/playview/src/feature/include/vp-audio-track.h
new file mode 100755 (executable)
index 0000000..a920bce
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *audio_track_handle;
+
+
+audio_track_handle vp_audio_track_create(Evas_Object * pParent,
+                                                                                PopupCloseCbFunc pCloseCb,
+                                                                                int nDefaultIndex);
+void vp_audio_track_destroy(audio_track_handle pAudioTrackHandle);
+bool vp_audio_track_realize(audio_track_handle pAudioTrackHandle);
+bool vp_audio_track_unrealize(audio_track_handle pAudioTrackHandle);
+bool vp_audio_track_add_Item(audio_track_handle pAudioTrackHandle,
+                                                        char *szCode, int nIndex);
+bool vp_audio_track_set_user_data(audio_track_handle pAudioTrackHandle,
+                                                                 void *pUserData);
+bool vp_audio_track_get_name(char *szCode, char **szName);
diff --git a/playview/src/feature/include/vp-capture.h b/playview/src/feature/include/vp-capture.h
new file mode 100755 (executable)
index 0000000..a5c1451
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *capture_popup_handle;
+
+capture_popup_handle vp_capture_popup_create(Evas_Object * pParent,
+                                                                                        bool bCaptureOn,
+                                                                                        PopupCloseCbFunc pCloseCb);
+void vp_capture_popup_destroy(capture_popup_handle pCapturePopupHandle);
+bool vp_capture_popup_realize(capture_popup_handle pCapturePopupHandle);
+bool vp_capture_popup_unrealize(capture_popup_handle pCapturePopupHandle);
+bool vp_capture_popup_set_user_data(capture_popup_handle
+                                                                       pCapturePopupHandle, void *pUserData);
diff --git a/playview/src/feature/include/vp-detail.h b/playview/src/feature/include/vp-detail.h
new file mode 100755 (executable)
index 0000000..146e43d
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *detail_handle;
+
+typedef struct _vp_detail_info {
+       char *szTitle;
+       char *szFormat;
+       char *szDate;
+       char *szSize;
+       char *szLastModified;
+       char *szResolution;
+       char *szLocation;
+       char *szLatitude;
+       char *szLongitude;
+
+       bool bDrm;
+       bool bForwardLock;
+       bool bPlayready;
+} vp_detail_info;
+
+detail_handle vp_detail_page_create(void *pNaviFrame,
+                                                                       PopupCloseCbFunc pCloseCb,
+                                                                       vp_detail_info * pDetailInfo);
+void vp_detail_destroy(detail_handle pDetailHandle);
+bool vp_detail_set_user_data(detail_handle pDetailHandle, void *pUserData);
diff --git a/playview/src/feature/include/vp-play-speed.h b/playview/src/feature/include/vp-play-speed.h
new file mode 100755 (executable)
index 0000000..3bbb1b2
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *play_speed_popup;
+
+typedef void (*PlaySpeedUpdateCbFunc) (double fValue, void *pUserData);
+typedef void (*PlaySpeedDoneCbFunc) (double fValue, bool bSetValue,
+                                                                        void *pUserData);
+
+
+play_speed_popup vp_play_speed_popup_create(Evas_Object * pParent,
+                                                                                       double fSpeedVal,
+                                                                                       PlaySpeedUpdateCbFunc
+                                                                                       pUpdateCb,
+                                                                                       PlaySpeedDoneCbFunc pDoneCb);
+void vp_play_speed_popup_destroy(play_speed_popup pPlaySpeedHandle);
+bool vp_play_speed_popup_realize(play_speed_popup pPlaySpeedHandle);
+bool vp_play_speed_popup_unrealize(play_speed_popup pPlaySpeedHandle);
+bool vp_play_speed_popup_set_user_data(play_speed_popup pPlaySpeedHandle,
+                                                                          void *pUserData);
diff --git a/playview/src/feature/include/vp-repeat.h b/playview/src/feature/include/vp-repeat.h
new file mode 100755 (executable)
index 0000000..179a802
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *repeat_handle;
+
+
+repeat_handle vp_repeat_create(Evas_Object * pParent, char *pMediaUrl,
+                                                          PopupCloseCbFunc pCloseCb);
+void vp_repeat_destroy(repeat_handle pRepeatHandle);
+bool vp_repeat_realize(repeat_handle pRepeatHandle);
+bool vp_repeat_unrealize(repeat_handle pRepeatHandle);
+bool vp_repeat_set_user_data(repeat_handle pRepeatHandle, void *pUserData);
diff --git a/playview/src/feature/include/vp-setting.h b/playview/src/feature/include/vp-setting.h
new file mode 100755 (executable)
index 0000000..4410f3e
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *setting_popup_handle;
+
+typedef enum {
+       VP_SETTING_MODE_NONE = 0x00,
+       VP_SETTING_MODE_PLAY_SPEED,
+       VP_SETTING_MODE_SOUND_ALIVE,
+       VP_SETTING_MODE_AUDIO_TRACK,
+       VP_SETTING_MODE_REPEAT_MODE,
+       VP_SETTING_MODE_CAPTURE,
+} vp_setting_mode_t;
+
+typedef struct _SettingInfo {
+       float fSpeed;
+       int nSoundAlive;
+       bool bSelectSubtitle;
+       char *szAudioTrack;
+       int nRepeatMode;
+       bool bCapture;
+       bool bTagBuddy;
+       bool bEditWeatherTag;
+       bool bStreaming;
+       bool bRepeat;
+       bool bDrm;
+       bool bExternalMode;
+       bool bShowEditWeather;
+} SettingInfo;
+
+setting_popup_handle vp_setting_create(Evas_Object * pParent,
+                                                                          SettingInfo * pSettingInfo,
+                                                                          PopupCloseCbFunc pCloseCb);
+void vp_setting_destroy(setting_popup_handle pSettingHandle);
+bool vp_setting_realize(setting_popup_handle pSettingHandle);
+bool vp_setting_unrealize(setting_popup_handle pSettingHandle);
+bool vp_setting_set_user_data(setting_popup_handle pSettingHandle,
+                                                         void *pUserData);
diff --git a/playview/src/feature/include/vp-share.h b/playview/src/feature/include/vp-share.h
new file mode 100755 (executable)
index 0000000..94330ac
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *share_handle;
+
+typedef enum {
+       VP_SHARE_NONE = 0x00,
+       VP_SHARE_MESSAGE,
+       VP_SHARE_EMAIL,
+       VP_SHARE_BLUETOOTH,
+       VP_SHARE_FTM,
+       VP_SHARE_FACEBOOK,
+       VP_SHARE_YOUTUBE,
+       VP_SHARE_NFC,
+       VP_SHARE_FILE_TRANSFER,
+       VP_SHARE_DROP_BOX,
+} video_share_type_t;
+
+share_handle vp_share_create(Evas_Object * pParent, char *pMediaUrl,
+                                                        PopupCloseCbFunc pCloseCb);
+void vp_share_destroy(share_handle pShareHandle);
+bool vp_share_realize(share_handle pShareHandle);
+bool vp_share_unrealize(share_handle pShareHandle);
+bool vp_share_set_user_data(share_handle pShareHandle, void *pUserData);
diff --git a/playview/src/feature/include/vp-sound-alive.h b/playview/src/feature/include/vp-sound-alive.h
new file mode 100755 (executable)
index 0000000..45a7139
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *sound_alive_handle;
+
+sound_alive_handle vp_sound_alive_create(Evas_Object * pParent,
+                                                                                char *pMediaUrl,
+                                                                                PopupCloseCbFunc pCloseCb,
+                                                                                video_sound_alive_t nType);
+void vp_sound_alive_destroy(sound_alive_handle pSAHandle);
+bool vp_sound_alive_realize(sound_alive_handle pSAHandle);
+bool vp_sound_alive_unrealize(sound_alive_handle pSAHandle);
+bool vp_sound_alive_set_user_data(sound_alive_handle pSAHandle,
+                                                                 void *pUserData);
diff --git a/playview/src/feature/include/vp-sound-path.h b/playview/src/feature/include/vp-sound-path.h
new file mode 100755 (executable)
index 0000000..8bcd311
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <glib.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *sound_path_handle;
+
+sound_path_handle vp_sound_path_create(Evas_Object * pParent,
+                                                                          PopupCloseCbFunc pCloseCb);
+void vp_sound_path_destroy(sound_path_handle pSoundPathHandle);
+bool vp_sound_path_realize(sound_path_handle pSoundPathHandle);
+bool vp_sound_path_unrealize(sound_path_handle pSoundPathHandle);
+bool vp_sound_path_set_user_data(sound_path_handle pSoundPathHandle,
+                                                                void *pUserData);
diff --git a/playview/src/feature/include/vp-subtitle-alignment.h b/playview/src/feature/include/vp-subtitle-alignment.h
new file mode 100755 (executable)
index 0000000..ed448d0
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *subtitle_alignment_handle;
+
+typedef void (*SubtitleAlignmentUpdateCbFunc) (double fValue,
+                                                                                          void *pUserData);
+
+subtitle_alignment_handle vp_subtitle_alignment_create(Evas_Object *
+                                                                                                          pParent,
+                                                                                                          PopupCloseCbFunc
+                                                                                                          pCloseCb,
+                                                                                                          int nDefaultAlign);
+void vp_subtitle_alignment_destroy(subtitle_alignment_handle
+                                                                  pSubtitleAlignmentHandle);
+bool vp_subtitle_alignment_realize(subtitle_alignment_handle
+                                                                  pSubtitleAlignmentHandle);
+bool vp_subtitle_alignment_unrealize(subtitle_alignment_handle
+                                                                        pSubtitleAlignmentHandle);
+bool vp_subtitle_alignment_set_user_data(subtitle_alignment_handle
+                                                                                pSubtitleAlignmentHandle,
+                                                                                void *pUserData);
diff --git a/playview/src/feature/include/vp-subtitle-bg-color.h b/playview/src/feature/include/vp-subtitle-bg-color.h
new file mode 100755 (executable)
index 0000000..36c9434
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *subtitle_bg_color_handle;
+
+
+subtitle_bg_color_handle vp_subtitle_bg_color_create(Evas_Object * pParent,
+                                                                                                        PopupCloseCbFunc
+                                                                                                        pCloseCb,
+                                                                                                        int nDefaultColor);
+void vp_subtitle_bg_color_destroy(subtitle_bg_color_handle
+                                                                 pSubtitleBGColorHandle);
+bool vp_subtitle_bg_color_realize(subtitle_bg_color_handle
+                                                                 pSubtitleBGColorHandle);
+bool vp_subtitle_bg_color_unrealize(subtitle_bg_color_handle
+                                                                       pSubtitleBGColorHandle);
+bool vp_subtitle_bg_color_set_user_data(subtitle_bg_color_handle
+                                                                               pSubtitleBGColorHandle,
+                                                                               void *pUserData);
diff --git a/playview/src/feature/include/vp-subtitle-color.h b/playview/src/feature/include/vp-subtitle-color.h
new file mode 100755 (executable)
index 0000000..e36f3ea
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *subtitle_color_handle;
+
+typedef void (*SubtitleColorUpdateCbFunc) (double fValue, void *pUserData);
+
+#ifndef SUBTITLE_K_FEATURE
+typedef void (*SubtitlePopupCloseCbFunc) (int nType, bool bPause,
+                                                                                 void *pUserData);
+#else
+typedef void (*SubtitlePopupCloseCbFunc) (char *pColorHex, bool bSetValue,
+                                                                                 void *pUserData);
+#endif
+
+#ifndef SUBTITLE_K_FEATURE
+subtitle_color_handle vp_subtitle_color_create(Evas_Object * pParent,
+                                                                                          SubtitlePopupCloseCbFunc
+                                                                                          pCloseCb,
+                                                                                          int nDefaultColor);
+#else
+subtitle_color_handle vp_subtitle_color_hex_create(Evas_Object * pParent,
+                                                                                                  SubtitlePopupCloseCbFunc
+                                                                                                  pCloseCb,
+                                                                                                  char *pDefaultColor);
+#endif
+void vp_subtitle_color_destroy(subtitle_color_handle
+                                                          pSubtitleFontColorHandle);
+bool vp_subtitle_color_realize(subtitle_color_handle
+                                                          pSubtitleFontColorHandle);
+bool vp_subtitle_color_unrealize(subtitle_color_handle
+                                                                pSubtitleFontColorHandle);
+bool vp_subtitle_color_set_user_data(subtitle_color_handle
+                                                                        pSubtitleFontColorHandle,
+                                                                        void *pUserData);
diff --git a/playview/src/feature/include/vp-subtitle-edge.h b/playview/src/feature/include/vp-subtitle-edge.h
new file mode 100755 (executable)
index 0000000..1bf57b8
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *subtitle_edge_handle;
+
+
+subtitle_edge_handle vp_subtitle_edge_create(Evas_Object * pParent,
+                                                                                        PopupCloseCbFunc pCloseCb,
+                                                                                        int nDefaultSize);
+void vp_subtitle_edge_destroy(subtitle_edge_handle pSubtitleSizeHandle);
+bool vp_subtitle_edge_realize(subtitle_edge_handle pSubtitleSizeHandle);
+bool vp_subtitle_edge_unrealize(subtitle_edge_handle pSubtitleSizeHandle);
+bool vp_subtitle_edge_set_user_data(subtitle_edge_handle
+                                                                       pSubtitleSizeHandle, void *pUserData);
diff --git a/playview/src/feature/include/vp-subtitle-font.h b/playview/src/feature/include/vp-subtitle-font.h
new file mode 100755 (executable)
index 0000000..288d1ef
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *subtitle_font_handle;
+
+typedef void (*SubtitleFontCbFunc) (char *szSelectURL, void *pUserData);
+
+subtitle_font_handle vp_subtitle_font_create(Evas_Object * pParent,
+                                                                                        SubtitleFontCbFunc pCloseCb,
+                                                                                        char *szCurrentFont);
+void vp_subtitle_font_destroy(subtitle_font_handle pSubtitleFontHandle);
+bool vp_subtitle_font_realize(subtitle_font_handle pSubtitleFontHandle);
+bool vp_subtitle_font_unrealize(subtitle_font_handle pSubtitleFontHandle);
+bool vp_subtitle_font_set_user_data(subtitle_font_handle
+                                                                       pSubtitleFontHandle, void *pUserData);
diff --git a/playview/src/feature/include/vp-subtitle-select.h b/playview/src/feature/include/vp-subtitle-select.h
new file mode 100755 (executable)
index 0000000..0908764
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <glib.h>
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *subtitle_select_handle;
+
+typedef void (*SubtitleCloseCbFunc) (char *szSelectURL, void *pUserData);
+
+subtitle_select_handle vp_subtitle_select_create(Evas_Object * pParent,
+                                                                                                SubtitleCloseCbFunc
+                                                                                                pCloseCb,
+                                                                                                SubtitleCloseCbFunc
+                                                                                                pButtonCb,
+                                                                                                GList * pFileList,
+                                                                                                char *szCurrentPath,
+                                                                                                bool isSubtitleOff);
+void vp_subtitle_select_destroy(subtitle_select_handle
+                                                               pSubtitleSelectHandle);
+bool vp_subtitle_select_realize(subtitle_select_handle
+                                                               pSubtitleSelectHandle);
+bool vp_subtitle_select_unrealize(subtitle_select_handle
+                                                                 pSubtitleSelectHandle);
+bool vp_subtitle_select_set_user_data(subtitle_select_handle
+                                                                         pSubtitleSelectHandle,
+                                                                         void *pUserData);
diff --git a/playview/src/feature/include/vp-subtitle-size.h b/playview/src/feature/include/vp-subtitle-size.h
new file mode 100755 (executable)
index 0000000..601b562
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *subtitle_size_handle;
+
+
+subtitle_size_handle vp_subtitle_size_create(Evas_Object * pParent,
+                                                                                        PopupCloseCbFunc pCloseCb,
+                                                                                        int nDefaultSize);
+void vp_subtitle_size_destroy(subtitle_size_handle pSubtitleSizeHandle);
+bool vp_subtitle_size_realize(subtitle_size_handle pSubtitleSizeHandle);
+bool vp_subtitle_size_unrealize(subtitle_size_handle pSubtitleSizeHandle);
+bool vp_subtitle_size_set_user_data(subtitle_size_handle
+                                                                       pSubtitleSizeHandle, void *pUserData);
diff --git a/playview/src/feature/include/vp-subtitle-sync.h b/playview/src/feature/include/vp-subtitle-sync.h
new file mode 100755 (executable)
index 0000000..d438e86
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *subtitle_sync_popup;
+
+typedef void (*SubtitleSyncUpdateCbFunc) (float fValue, void *pUserData);
+typedef void (*SubtitleSyncDoneCbFunc) (float fValue, bool bSetValue,
+                                                                               void *pUserData);
+
+
+subtitle_sync_popup vp_subtitle_sync_popup_create(Evas_Object * pParent,
+                                                                                                 float fSyncVal,
+                                                                                                 SubtitleSyncUpdateCbFunc
+                                                                                                 pUpdateCb,
+                                                                                                 SubtitleSyncDoneCbFunc
+                                                                                                 pDoneCb);
+void vp_subtitle_sync_popup_destroy(subtitle_sync_popup pSubtitleSync);
+bool vp_subtitle_sync_popup_realize(subtitle_sync_popup pSubtitleSync);
+bool vp_subtitle_sync_popup_unrealize(subtitle_sync_popup pSubtitleSync);
+bool vp_subtitle_sync_popup_set_user_data(subtitle_sync_popup
+                                                                                 pSubtitleSync, void *pUserData);
diff --git a/playview/src/feature/include/vp-subtitle-track.h b/playview/src/feature/include/vp-subtitle-track.h
new file mode 100755 (executable)
index 0000000..417c242
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+typedef void (*SubtitleLanguageChangeCbFunc) (int index, void *pUserData);
+#endif
+typedef void *subtitle_track_handle;
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+subtitle_track_handle vp_subtitle_track_create(Evas_Object * pParent,
+                                                                                          PopupCloseCbFunc pCloseCb);
+#else
+subtitle_track_handle vp_subtitle_track_create(Evas_Object * pParent,
+                                                                                          PopupCloseCbFunc pCloseCb,
+                                                                                          int nDefaultIndex);
+#endif
+void vp_subtitle_track_destroy(subtitle_track_handle pSubtitleTrackHandle);
+bool vp_subtitle_track_realize(subtitle_track_handle pSubtitleTrackHandle);
+bool vp_subtitle_track_unrealize(subtitle_track_handle
+                                                                pSubtitleTrackHandle);
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+bool vp_subtitle_track_add_Item(subtitle_track_handle pSubtitleTrackHandle,
+                                                               char *szCode, int nIndex, bool bCheck);
+#else
+bool vp_subtitle_track_add_Item(subtitle_track_handle pSubtitleTrackHandle,
+                                                               char *szCode, int nIndex);
+#endif
+bool vp_subtitle_track_set_user_data(subtitle_track_handle
+                                                                        pSubtitleTrackHandle,
+                                                                        void *pUserData);
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+bool vp_subtitle_track_set_add_language_cb(subtitle_track_handle
+                                                                                  pSubtitleTrackHandle,
+                                                                                  SubtitleLanguageChangeCbFunc
+                                                                                  pCallback);
+bool vp_subtitle_track_set_remove_language_cb(subtitle_track_handle
+                                                                                         pSubtitleTrackHandle,
+                                                                                         SubtitleLanguageChangeCbFunc
+                                                                                         pCallback);
+#endif
+bool vp_subtitle_track_get_name(char *szCode, char **szName);
diff --git a/playview/src/feature/include/vp-subtitle.h b/playview/src/feature/include/vp-subtitle.h
new file mode 100755 (executable)
index 0000000..bedfc5b
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#include <vp-play-popup.h>
+
+typedef void *subtitle_popup_handle;
+
+typedef enum {
+       VP_SUBTITLE_MODE_NONE = 0x00,
+       VP_SUBTITLE_MODE_ACTIVATION,
+       VP_SUBTITLE_MODE_SYNC,
+       VP_SUBTITLE_MODE_SELECT,
+       VP_SUBTITLE_MODE_LANGUAGE,
+#ifdef SUBTITLE_K_FEATURE
+       VP_SUBTITLE_MODE_ALIGNMENT,
+#endif
+       VP_SUBTITLE_MODE_FONT,
+       VP_SUBTITLE_MODE_SIZE,
+       VP_SUBTITLE_MODE_TEXT,
+       VP_SUBTITLE_MODE_BG_COLOR,
+#ifdef SUBTITLE_K_FEATURE
+       VP_SUBTITLE_MODE_CAPTION_WINDOW,
+#endif
+       VP_SUBTITLE_MODE_EDGE,
+       VP_SUBTITLE_MODE_CLOSE,
+       VP_SUBTITLE_MODE_FONT_COLOR
+} vp_subtitle_mode_t;
+
+typedef enum {
+       VP_SUBTITLE_EDGE_NO_EDGE = 0x00,
+       VP_SUBTITLE_EDGE_RAISED,
+       VP_SUBTITLE_EDGE_DEPRESSED,
+       VP_SUBTITLE_EDGE_UNIFORM,
+       VP_SUBTITLE_EDGE_DROP_SHADOW
+} vp_subtitle_edge_t;
+
+
+typedef struct _SubtitleInfo {
+       bool bClosedCaption;
+       bool original_activation;
+       float fSync;
+       char *szURL;
+       char *szText;
+       char *szLanguage;
+#ifdef SUBTITLE_K_FEATURE
+       video_play_subtitle_alignment_t eAlignment;
+       video_play_subtitle_alignment_t original_eAlignment;
+#endif
+       char *szFontName;
+       float fZoom;
+       int nFontSize;
+       int original_nFontSize;
+       int nEdge;
+#ifndef SUBTITLE_K_FEATURE
+       int nTextColor;
+       int nBGColor;
+#else
+       char *pTextColorHex;
+       char *pOriginalTextColorHex;
+       char *pBGColorHex;
+       char *pCaptionWinColorHex;
+#endif
+       bool bSupportSelect;
+} SubtitleInfo;
+
+
+subtitle_popup_handle vp_subtitle_create(Evas_Object * pParent,
+                                                                                SubtitleInfo * pSubtitleInfo,
+                                                                                PopupCloseCbFunc pCloseCb);
+void vp_subtitle_destroy(subtitle_popup_handle pSubtitleHandle);
+bool vp_subtitle_realize(subtitle_popup_handle pSubtitleHandle);
+bool vp_subtitle_unrealize(subtitle_popup_handle pSubtitleHandle);
+bool vp_subtitle_update(subtitle_popup_handle pSubtitleHandle,
+                                               SubtitleInfo * pSubtitleInfo);
+bool vp_subtitle_set_user_data(subtitle_popup_handle pSubtitleHandle,
+                                                          void *pUserData);
diff --git a/playview/src/feature/include/vp-zoom-guide.h b/playview/src/feature/include/vp-zoom-guide.h
new file mode 100755 (executable)
index 0000000..6923b33
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+typedef void *zoom_guide_handle;
+
+zoom_guide_handle vp_zoom_guide_create(Evas_Object * pParent);
+void vp_zoom_guide_destroy(zoom_guide_handle pWidgetHandle);
+bool vp_zoom_guide_realize(zoom_guide_handle pWidgetHandle);
+bool vp_zoom_guide_unrealize(zoom_guide_handle pWidgetHandle);
+Evas_Object *vp_zoom_guide_get_object(zoom_guide_handle pWidgetHandle);
+bool vp_zoom_guide_set_zoom_value(zoom_guide_handle pWidgetHandle,
+                                                                 double fZoomVal);
+bool vp_zoom_guide_get_zoom_value(zoom_guide_handle pWidgetHandle,
+                                                                 double *fZoomVal);
+bool vp_zoom_guide_set_move_position(zoom_guide_handle pWidgetHandle,
+                                                                        double fPosX, double fPosY);
+bool vp_zoom_guide_get_move_position(zoom_guide_handle pWidgetHandle,
+                                                                        double *fPosX, double *fPosY);
+bool vp_zoom_guide_get_real_position(zoom_guide_handle pWidgetHandle,
+                                                                        double *fPosX, double *fPosY);
+bool vp_zoom_guide_update(zoom_guide_handle pWidgetHandle);
diff --git a/playview/src/feature/vp-audio-track.c b/playview/src/feature/vp-audio-track.c
new file mode 100755 (executable)
index 0000000..15cce4b
--- /dev/null
@@ -0,0 +1,748 @@
+/*
+ * Copyright (c) 2020 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 <glib.h>
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-audio-track.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_AUDIO_TRACK_GENLIST_DATA_KEY                "vp.audio.track.genlist"
+
+typedef struct _RegionCode {
+       char *szCode;
+       char *szName;
+} RegionCode;
+
+
+static RegionCode st_RegionCode[] = {
+       {"az", "Azerbaijani"},
+       {"ca", "Catalan"},
+       {"cs", "Czech"},
+       {"sr", "Serbian"},
+       {"da", "Danish"},
+       {"de", "German"},
+       {"et", "Estonian"},
+       {"en", "English"},
+       {"es", "Spanish"},
+       {"eu", "Basque"},
+       {"fr", "French"},
+       {"gl", "Galician"},
+       {"hr", "Croatian"},
+       {"is", "Icelandic"},
+       {"it", "Italian"},
+       {"lv", "Latvian"},
+       {"lt", "Lithuanian"},
+       {"hu", "Hungarian"},
+       {"nl", "Dutch"},
+       {"nb", "Norwegian"},
+       {"uz", "Uzbek"},
+       {"pl", "Polish"},
+       {"pt", "Portuguese"},
+       {"ru", "Russian"},
+       {"ro", "Romanian"},
+       {"sk", "Slovak"},
+       {"sl", "Slovenian"},
+       {"fi", "Finnish"},
+       {"sv", "Swedish"},
+       {"tr", "Turkish"},
+       {"el", "Greek"},
+       {"bg", "Bulgarian"},
+       {"kk", "Kazakh"},
+       {"uk", "Ukrainian"},
+       {"hy", "Armenian"},
+       {"ka", "Georgian"},
+       {"ko", "Korean"},
+       {"ja", "Japanese"},
+};
+
+
+typedef struct _AudioTrackItem {
+       Elm_Object_Item *pItem;
+       char *szName;
+       int nIndex;
+} AudioTrackItem;
+
+
+typedef struct _AudioTrackPopup {
+       Evas_Object *pParent;
+       Evas_Object *pPopup;
+       Evas_Object *pRadio;
+       Evas_Object *pButton;
+       Evas_Object *pBox;
+       Evas_Object *pGenList;
+       Elm_Genlist_Item_Class *st_AudioTrack_Itc;
+
+       int nDefaultIndex;
+       int nListCount;
+
+       void *pUserData;
+       PopupCloseCbFunc pCloseCb;
+
+       GList *pItemList;
+       int nAudoTrackIdx;
+} AudioTrackPopup;
+
+
+
+static void _vp_audio_track_destroy_handle(AudioTrackPopup * pAudioTrack);
+static void __vp_audio_track_popup_rotate_cb(void *data,
+                                                                                        Evas_Object * obj,
+                                                                                        void *event_info);
+static void __vp_audio_track_genlist_realized(void *data,
+                                                                                         Evas_Object * obj,
+                                                                                         void *event_info);
+static void __vp_audio_track_genlist_item_selected_cb(void *pUserData,
+                                                                                                         Evas_Object *
+                                                                                                         pObject,
+                                                                                                         void *pEventInfo);
+
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_audio_track_genlist_text_get_cb(const void *pUserData,
+                                                                                                 Evas_Object * pObj,
+                                                                                                 const char *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+       AudioTrackItem *pItem = (AudioTrackItem *) pUserData;
+
+       if (!strcmp(pPart, "elm.text")) {
+               if (pItem->szName) {
+                       return strdup(pItem->szName);
+               }
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_audio_track_genlist_content_get_cb(const void
+                                                                                                                       *pUserData,
+                                                                                                                       Evas_Object *
+                                                                                                                       pObj,
+                                                                                                                       const char
+                                                                                                                       *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       AudioTrackItem *pItem = (AudioTrackItem *) pUserData;
+
+       if (!strcmp(pPart, "elm.icon")) {
+               Evas_Object *pRadioObj = NULL;
+
+               AudioTrackPopup *pAudioTrack =
+                       (AudioTrackPopup *) evas_object_data_get(pObj,
+                                                                                                        VP_AUDIO_TRACK_GENLIST_DATA_KEY);
+               if (pAudioTrack == NULL) {
+                       VideoLogWarning("evas_object_data_get is fail");
+                       return NULL;
+               }
+
+               if (pAudioTrack->pItemList == NULL) {
+                       VideoLogWarning("pItemList is NULL");
+                       return NULL;
+               }
+
+               pRadioObj = elm_radio_add(pObj);
+               elm_radio_state_value_set(pRadioObj, pItem->nIndex);
+               elm_radio_group_add(pRadioObj, pAudioTrack->pRadio);
+               elm_radio_value_set(pAudioTrack->pRadio,
+                                                       pAudioTrack->nAudoTrackIdx);
+               evas_object_smart_callback_add(pRadioObj, "changed",
+                                                                          __vp_audio_track_genlist_item_selected_cb,
+                                                                          pAudioTrack);
+               evas_object_show(pRadioObj);
+
+               return pRadioObj;
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_audio_track_genlist_item_selected_cb(void *pUserData,
+                                                                                                         Evas_Object *
+                                                                                                         pObject,
+                                                                                                         void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Elm_Object_Item *pElmItem = (Elm_Object_Item *) pEventInfo;
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+       AudioTrackItem *pItem =
+               (AudioTrackItem *) elm_object_item_data_get(pElmItem);
+
+       AudioTrackPopup *pAudioTrack = (AudioTrackPopup *) pUserData;
+
+       if (pItem == NULL) {
+               VideoLogError("pItem is NULL");
+               return;
+       }
+
+       pAudioTrack->nAudoTrackIdx = pItem->nIndex;
+       if (pAudioTrack->pCloseCb) {
+               pAudioTrack->pCloseCb(pItem->nIndex, FALSE,
+                                                         (void *) pAudioTrack->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_audio_track_popup_key_event_cb(void *pUserData,
+                                                                                               Evas_Object * pObj,
+                                                                                               void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       AudioTrackPopup *pAudioTrack = (AudioTrackPopup *) pUserData;
+
+       if (pAudioTrack->pCloseCb) {
+               pAudioTrack->pCloseCb(-1, FALSE, (void *) pAudioTrack->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_audio_track_popup_mouse_event_cb(void *pUserData,
+                                                                                                 Evas * pEvas,
+                                                                                                 Evas_Object * pObj,
+                                                                                                 void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Evas_Event_Mouse_Up *ev = pEventInfo;
+
+       if (ev->button == 3) {
+               AudioTrackPopup *pAudioTrack = (AudioTrackPopup *) pUserData;
+
+               if (pAudioTrack->pCloseCb) {
+                       pAudioTrack->pCloseCb(-1, FALSE,
+                                                                 (void *) pAudioTrack->pUserData);
+               }
+       }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pAudioTrack
+ */
+static void _vp_audio_track_clear_item_list(AudioTrackPopup * pAudioTrack)
+{
+       if (pAudioTrack == NULL) {
+               VideoLogError("pAudioTrack is NULL");
+               return;
+       }
+
+       if (pAudioTrack->pItemList == NULL) {
+               VideoLogError("pAudioTrack->pItemList is NULL");
+               return;
+       }
+
+
+       int len = g_list_length(pAudioTrack->pItemList);
+       int idx = 0;
+       for (idx = 0; idx < len; idx++) {
+               AudioTrackItem *pItem = NULL;
+
+               pItem =
+                       (AudioTrackItem *) g_list_nth_data(pAudioTrack->pItemList,
+                                                                                          idx);
+               if (pItem) {
+                       VP_EVAS_ITEM_DEL(pItem->pItem);
+                       VP_FREE(pItem->szName);
+                       VP_FREE(pItem);
+               }
+       }
+
+       g_list_free(pAudioTrack->pItemList);
+       pAudioTrack->pItemList = NULL;
+}
+
+/**
+ *
+ * @param pAudioTrack
+ */
+static void _vp_audio_track_destroy_handle(AudioTrackPopup * pAudioTrack)
+{
+       if (pAudioTrack == NULL) {
+               VideoLogError("pAudioTrack is NULL");
+               return;
+       }
+
+       evas_object_smart_callback_del(pAudioTrack->pGenList, "realized",
+                                                                  __vp_audio_track_genlist_realized);
+       evas_object_smart_callback_del(pAudioTrack->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_audio_track_popup_rotate_cb);
+
+       _vp_audio_track_clear_item_list(pAudioTrack);
+
+
+       VP_EVAS_DEL(pAudioTrack->pRadio);
+       VP_EVAS_DEL(pAudioTrack->pGenList);
+       VP_EVAS_DEL(pAudioTrack->pButton);
+       VP_EVAS_DEL(pAudioTrack->pBox);
+
+       if (pAudioTrack->st_AudioTrack_Itc) {
+               elm_genlist_item_class_free(pAudioTrack->st_AudioTrack_Itc);
+               pAudioTrack->st_AudioTrack_Itc = NULL;
+       }
+
+
+       VP_EVAS_DEL(pAudioTrack->pPopup);
+
+       VP_FREE(pAudioTrack);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_audio_track_create_genlist(Evas_Object * pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_genlist_add(pParent);
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(pObj);
+       return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_audio_track_add_genlist_item(Evas_Object * pObj,
+                                                                                        void *pUserData)
+{
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return FALSE;
+       }
+
+       AudioTrackPopup *pAudioTrack = (AudioTrackPopup *) pUserData;
+
+       if (pAudioTrack->st_AudioTrack_Itc) {
+               elm_genlist_item_class_free(pAudioTrack->st_AudioTrack_Itc);
+               pAudioTrack->st_AudioTrack_Itc = NULL;
+       }
+
+       pAudioTrack->st_AudioTrack_Itc = elm_genlist_item_class_new();
+       if (pAudioTrack->st_AudioTrack_Itc == NULL) {
+               VideoLogError("failed to create genlist class");
+               return FALSE;
+       }
+
+       pAudioTrack->st_AudioTrack_Itc->version =
+               ELM_GENLIST_ITEM_CLASS_VERSION;
+       pAudioTrack->st_AudioTrack_Itc->item_style = "1text.1icon.3/popup";
+       pAudioTrack->st_AudioTrack_Itc->func.text_get =
+               (void *) __vp_audio_track_genlist_text_get_cb;
+       pAudioTrack->st_AudioTrack_Itc->func.content_get =
+               (void *) __vp_audio_track_genlist_content_get_cb;
+       pAudioTrack->st_AudioTrack_Itc->func.state_get = NULL;
+       pAudioTrack->st_AudioTrack_Itc->func.del = NULL;
+       int len = g_list_length(pAudioTrack->pItemList);
+       int idx = 0;
+       pAudioTrack->nListCount = 0;
+
+       for (idx = 0; idx < len; idx++) {
+               AudioTrackItem *pItem = NULL;
+
+               pItem =
+                       (AudioTrackItem *) g_list_nth_data(pAudioTrack->pItemList,
+                                                                                          idx);
+               if (pItem) {
+                       pItem->pItem =
+                               elm_genlist_item_append(pObj,
+                                                                               pAudioTrack->st_AudioTrack_Itc,
+                                                                               (void *) pItem, NULL,
+                                                                               ELM_GENLIST_ITEM_NONE,
+                                                                               __vp_audio_track_genlist_item_selected_cb,
+                                                                               pUserData);
+                       pAudioTrack->nListCount++;
+               }
+       }
+
+
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_audio_track_genlist_realized(void *data,
+                                                                                         Evas_Object * obj,
+                                                                                         void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_audio_track_popup_rotate_cb(void *data,
+                                                                                        Evas_Object * obj,
+                                                                                        void *event_info)
+{
+       AudioTrackPopup *pAudioTrack = (AudioTrackPopup *) data;
+       if (!pAudioTrack) {
+               VideoLogError("pAudioTrack IS null");
+               return;
+       }
+       if (pAudioTrack->nListCount < VP_POPUP_MIN_ITEMS) {
+               return;
+       }
+       vp_popup_set_popup_min_size(pAudioTrack->pParent, pAudioTrack->pBox,
+                                                               pAudioTrack->nListCount,
+                                                               VIDEO_POPUP_DEFAULT);
+
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pCloseCb
+ * @param nDefaultIndex
+ * @return
+ */
+audio_track_handle vp_audio_track_create(Evas_Object * pParent,
+                                                                                PopupCloseCbFunc pCloseCb,
+                                                                                int nDefaultIndex)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       AudioTrackPopup *pAudioTrack = NULL;
+
+       pAudioTrack = calloc(1, sizeof(AudioTrackPopup));
+
+       if (pAudioTrack == NULL) {
+               VideoLogError("pAudioTrack alloc fail");
+               return NULL;
+       }
+
+       pAudioTrack->pParent = pParent;
+       pAudioTrack->pCloseCb = pCloseCb;
+
+       pAudioTrack->pPopup =
+               vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+                                               VP_PLAY_STRING_POPUP_AUDIO_TRACK, NULL, 0.0, NULL,
+                                               __vp_audio_track_popup_key_event_cb,
+                                               __vp_audio_track_popup_mouse_event_cb,
+                                               (void *) pAudioTrack);
+       if (pAudioTrack->pPopup == NULL) {
+               VideoLogError("vp_popup_create fail");
+               _vp_audio_track_destroy_handle(pAudioTrack);
+               return NULL;
+       }
+
+       pAudioTrack->pGenList =
+               _vp_audio_track_create_genlist(pAudioTrack->pPopup);
+       if (pAudioTrack->pGenList == NULL) {
+               VideoLogError("_vp_audio_track_create_genlist fail");
+               _vp_audio_track_destroy_handle(pAudioTrack);
+               return NULL;
+       }
+       evas_object_smart_callback_add(pAudioTrack->pGenList, "realized",
+                                                                  __vp_audio_track_genlist_realized,
+                                                                  NULL);
+       evas_object_smart_callback_add(pAudioTrack->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_audio_track_popup_rotate_cb,
+                                                                  pAudioTrack);
+
+       evas_object_data_set(pAudioTrack->pGenList,
+                                                VP_AUDIO_TRACK_GENLIST_DATA_KEY,
+                                                (void *) pAudioTrack);
+       pAudioTrack->nDefaultIndex = nDefaultIndex;
+
+       pAudioTrack->pRadio = elm_radio_add(pAudioTrack->pGenList);
+       pAudioTrack->pBox = elm_box_add(pAudioTrack->pPopup);
+
+
+       return pAudioTrack;
+}
+
+/**
+ *
+ * @param pAudioTrackHandle
+ */
+void vp_audio_track_destroy(audio_track_handle pAudioTrackHandle)
+{
+       if (pAudioTrackHandle == NULL) {
+               VideoLogError("pAudioTrackHandle is NULL");
+               return;
+       }
+
+       AudioTrackPopup *pAudioTrack = (AudioTrackPopup *) pAudioTrackHandle;
+
+       _vp_audio_track_destroy_handle(pAudioTrack);
+
+}
+
+/**
+ *
+ * @param pAudioTrackHandle
+ * @return
+ */
+bool vp_audio_track_realize(audio_track_handle pAudioTrackHandle)
+{
+       if (pAudioTrackHandle == NULL) {
+               VideoLogError("pAudioTrackHandle is NULL");
+               return FALSE;
+       }
+
+       AudioTrackPopup *pAudioTrack = (AudioTrackPopup *) pAudioTrackHandle;
+
+       int len = g_list_length(pAudioTrack->pItemList);
+       pAudioTrack->nListCount = len;
+       if (len == 1) {
+               vp_popup_set_popup_min_size(pAudioTrack->pParent,
+                                                                       pAudioTrack->pBox,
+                                                                       pAudioTrack->nListCount,
+                                                                       VIDEO_POPUP_DEFAULT);
+               elm_scroller_policy_set(pAudioTrack->pGenList,
+                                                               ELM_SCROLLER_POLICY_OFF,
+                                                               ELM_SCROLLER_POLICY_OFF);
+       } else {
+               vp_popup_set_popup_min_size(pAudioTrack->pParent,
+                                                                       pAudioTrack->pBox,
+                                                                       pAudioTrack->nListCount,
+                                                                       VIDEO_POPUP_DEFAULT);
+       }
+
+       elm_box_pack_end(pAudioTrack->pBox, pAudioTrack->pGenList);
+       elm_object_content_set(pAudioTrack->pPopup, pAudioTrack->pBox);
+
+       if (!_vp_audio_track_add_genlist_item
+               (pAudioTrack->pGenList, (void *) pAudioTrack)) {
+               VideoLogError("_vp_audio_track_add_genlist_item fail");
+               return FALSE;
+       }
+
+       pAudioTrack->nAudoTrackIdx = pAudioTrack->nDefaultIndex;
+
+       evas_object_show(pAudioTrack->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pAudioTrackHandle
+ * @return
+ */
+bool vp_audio_track_unrealize(audio_track_handle pAudioTrackHandle)
+{
+       if (pAudioTrackHandle == NULL) {
+               VideoLogError("pAudioTrackHandle is NULL");
+               return FALSE;
+       }
+
+       AudioTrackPopup *pAudioTrack = (AudioTrackPopup *) pAudioTrackHandle;
+
+       _vp_audio_track_clear_item_list(pAudioTrack);
+
+       evas_object_hide(pAudioTrack->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pAudioTrackHandle
+ * @param szCode
+ * @param nIndex
+ * @return
+ */
+bool vp_audio_track_add_Item(audio_track_handle pAudioTrackHandle,
+                                                        char *szCode, int nIndex)
+{
+       if (pAudioTrackHandle == NULL) {
+               VideoLogError("pAudioTrackHandle is NULL");
+               return FALSE;
+       }
+
+       AudioTrackPopup *pAudioTrack = (AudioTrackPopup *) pAudioTrackHandle;
+
+       AudioTrackItem *pItem = calloc(1, sizeof(AudioTrackItem));
+       if (pItem == NULL) {
+               VideoLogError("AudioTrackItem alloc fail");
+               return FALSE;
+       }
+
+       pItem->nIndex = nIndex;
+
+       int nCount = sizeof(st_RegionCode) / sizeof(RegionCode);
+
+       int nSelectIdex = -1;
+       int nIdx = 0;
+       for (nIdx = 0; nIdx < nCount; nIdx++) {
+               if (!strcmp(st_RegionCode[nIdx].szCode, szCode)) {
+                       nSelectIdex = nIdx;
+                       break;
+               }
+       }
+
+       if (nSelectIdex == -1) {
+               char *szDefaultTrack =
+                       g_strdup_printf("%s %d", VP_PLAY_STRING_AUDIO_TRACK, 0);
+
+               if (!strcmp(szDefaultTrack, szCode)) {
+                       VP_STRDUP(pItem->szName, szCode);
+               } else {
+                       VP_STRDUP(pItem->szName, VP_PLAY_STRING_COM_UNKNOWN);
+               }
+               VP_FREE(szDefaultTrack);
+       } else {
+               VP_STRDUP(pItem->szName, st_RegionCode[nSelectIdex].szName);
+       }
+
+       pAudioTrack->pItemList = g_list_append(pAudioTrack->pItemList, pItem);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pAudioTrackHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_audio_track_set_user_data(audio_track_handle pAudioTrackHandle,
+                                                                 void *pUserData)
+{
+       if (pAudioTrackHandle == NULL) {
+               VideoLogError("pAudioTrackHandle is NULL");
+               return FALSE;
+       }
+
+       AudioTrackPopup *pAudioTrack = (AudioTrackPopup *) pAudioTrackHandle;
+
+       pAudioTrack->pUserData = pUserData;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szCode
+ * @param szName
+ * @return
+ */
+bool vp_audio_track_get_name(char *szCode, char **szName)
+{
+       if (szCode == NULL) {
+               VideoLogError("szCode is NULL");
+               return FALSE;
+       }
+       int nCount = sizeof(st_RegionCode) / sizeof(RegionCode);
+
+       int nIdx = 0;
+       for (nIdx = 0; nIdx < nCount; nIdx++) {
+               if (!strcmp(st_RegionCode[nIdx].szCode, szCode)) {
+                       VP_STRDUP(*szName, st_RegionCode[nIdx].szName);
+                       return TRUE;
+               }
+       }
+
+       if (*szName == NULL) {
+               VP_STRDUP(*szName, VP_PLAY_STRING_COM_UNKNOWN);
+       }
+
+       return TRUE;
+}
diff --git a/playview/src/feature/vp-capture.c b/playview/src/feature/vp-capture.c
new file mode 100755 (executable)
index 0000000..d846b30
--- /dev/null
@@ -0,0 +1,526 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+#include "vp-capture.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_CAPTURE_POPUP_GENLIST_DATA_KEY              "vp.capture.popup.genlist"
+
+typedef struct _CapturePopup {
+       Evas_Object *pParent;
+       Evas_Object *pPopup;
+       Evas_Object *pRadio;
+       Evas_Object *pButton;
+       Evas_Object *pBox;
+       Evas_Object *pGenList;
+       Elm_Genlist_Item_Class *st_Capture_Itc;
+       int nListCount;
+
+       void *pUserData;
+       PopupCloseCbFunc pCloseCb;
+       bool bCaptureOn;
+} CapturePopup;
+
+
+
+static void _vp_capture_popup_destroy_handle(CapturePopup * pCapturePopup);
+static void __vp_capture_popup_genlist_item_selected_cb(void *pUserData,
+                                                                                                               Evas_Object *
+                                                                                                               pObject,
+                                                                                                               void *pEventInfo);
+
+static void __vp_capture_genlist_realized(void *data, Evas_Object * obj,
+                                                                                 void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_capture_popup_rotate_cb(void *data, Evas_Object * obj,
+                                                                                void *event_info)
+{
+       CapturePopup *pCapture = (CapturePopup *) data;
+       if (!pCapture) {
+               VideoLogError("pCapture IS null");
+               return;
+       }
+       if (pCapture->nListCount < VP_POPUP_MIN_ITEMS) {
+               return;
+       }
+       vp_popup_set_popup_min_size(pCapture->pParent, pCapture->pBox,
+                                                               pCapture->nListCount, VIDEO_POPUP_DEFAULT);
+
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_capture_popup_genlist_text_get_cb(const void *pUserData,
+                                                                                                       Evas_Object * pObj,
+                                                                                                       const char *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!strcmp(pPart, "elm.text")) {
+               return strdup(szTxt);
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_capture_popup_genlist_content_get_cb(const void
+                                                                                                                         *pUserData,
+                                                                                                                         Evas_Object *
+                                                                                                                         pObj,
+                                                                                                                         const char
+                                                                                                                         *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!strcmp(pPart, "elm.icon")) {
+               Evas_Object *pRadioObj = NULL;
+
+               CapturePopup *pCapture =
+                       (CapturePopup *) evas_object_data_get(pObj,
+                                                                                                 VP_CAPTURE_POPUP_GENLIST_DATA_KEY);
+               if (pCapture == NULL) {
+                       VideoLogWarning("evas_object_data_get is fail");
+                       return NULL;
+               }
+
+               int nVal = 0;
+
+               if (!strcmp(szTxt, VP_PLAY_STRING_COM_ON)) {
+                       nVal = 1;
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_COM_OFF)) {
+                       nVal = 0;
+               }
+
+               pRadioObj = elm_radio_add(pObj);
+               elm_radio_state_value_set(pRadioObj, nVal);
+               elm_radio_group_add(pRadioObj, pCapture->pRadio);
+               elm_radio_value_set(pCapture->pRadio, (int) pCapture->bCaptureOn);
+               evas_object_smart_callback_add(pRadioObj, "changed",
+                                                                          __vp_capture_popup_genlist_item_selected_cb,
+                                                                          pCapture);
+               evas_object_show(pRadioObj);
+
+               return pRadioObj;
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_capture_popup_genlist_item_selected_cb(void *pUserData,
+                                                                                                               Evas_Object *
+                                                                                                               pObject,
+                                                                                                               void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       char *szTxt = (char *) elm_object_item_data_get(pItem);
+       if (szTxt == NULL) {
+               VideoLogError("szTxt is NULL");
+               return;
+       }
+
+       int nVal = 0;
+       bool bCapture = FALSE;
+       if (!strcmp(szTxt, VP_PLAY_STRING_COM_ON)) {
+               bCapture = TRUE;
+               nVal = 1;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_COM_OFF)) {
+               nVal = 0;
+               bCapture = FALSE;
+       }
+
+       CapturePopup *pCapture = (CapturePopup *) pUserData;
+       pCapture->bCaptureOn = bCapture;
+       if (pCapture->pCloseCb) {
+               pCapture->pCloseCb(nVal, FALSE, (void *) pCapture->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_capture_popup_key_event_cb(void *pUserData,
+                                                                                       Evas_Object * pObj,
+                                                                                       void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       CapturePopup *pCapture = (CapturePopup *) pUserData;
+
+       if (pCapture->pCloseCb) {
+               pCapture->pCloseCb(-1, FALSE, (void *) pCapture->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_capture_popup_mouse_event_cb(void *pUserData,
+                                                                                         Evas * pEvas,
+                                                                                         Evas_Object * pObj,
+                                                                                         void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Evas_Event_Mouse_Up *ev = pEventInfo;
+
+       if (ev->button == 3) {
+               CapturePopup *pCapture = (CapturePopup *) pUserData;
+
+               if (pCapture->pCloseCb) {
+                       pCapture->pCloseCb(-1, FALSE, (void *) pCapture->pUserData);
+               }
+       }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pCapture
+ */
+static void _vp_capture_popup_destroy_handle(CapturePopup * pCapture)
+{
+       if (pCapture == NULL) {
+               VideoLogError("pCapture is NULL");
+               return;
+       }
+
+       evas_object_smart_callback_del(pCapture->pGenList, "realized",
+                                                                  __vp_capture_genlist_realized);
+       evas_object_smart_callback_del(pCapture->pParent, "rotation,changed",
+                                                                  __vp_capture_popup_rotate_cb);
+
+       VP_EVAS_DEL(pCapture->pRadio);
+       VP_EVAS_DEL(pCapture->pGenList);
+       VP_EVAS_DEL(pCapture->pButton);
+       VP_EVAS_DEL(pCapture->pBox);
+
+       if (pCapture->st_Capture_Itc) {
+               elm_genlist_item_class_free(pCapture->st_Capture_Itc);
+               pCapture->st_Capture_Itc = NULL;
+       }
+
+       VP_EVAS_DEL(pCapture->pPopup);
+
+       VP_FREE(pCapture);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_capture_popup_create_genlist(Evas_Object * pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_genlist_add(pParent);
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(pObj);
+       return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_capture_popup_add_genlist_item(Evas_Object * pObj,
+                                                                                          void *pUserData)
+{
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return FALSE;
+       }
+
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return FALSE;
+       }
+
+       CapturePopup *pCapture = (CapturePopup *) pUserData;
+       if (pCapture->st_Capture_Itc) {
+               elm_genlist_item_class_free(pCapture->st_Capture_Itc);
+               pCapture->st_Capture_Itc = NULL;
+       }
+
+       pCapture->st_Capture_Itc = elm_genlist_item_class_new();
+       if (pCapture->st_Capture_Itc == NULL) {
+               VideoLogError("failed to create genlist class");
+               return FALSE;
+       }
+
+       pCapture->st_Capture_Itc->version = ELM_GENLIST_ITEM_CLASS_VERSION;
+       pCapture->st_Capture_Itc->item_style = "1text.1icon.3/popup";
+       pCapture->st_Capture_Itc->func.text_get =
+               (void *) __vp_capture_popup_genlist_text_get_cb;
+       pCapture->st_Capture_Itc->func.content_get =
+               (void *) __vp_capture_popup_genlist_content_get_cb;
+       pCapture->st_Capture_Itc->func.state_get = NULL;
+       pCapture->st_Capture_Itc->func.del = NULL;
+       pCapture->nListCount = 0;
+
+       elm_genlist_item_append(pObj, pCapture->st_Capture_Itc,
+                                                       (void *) VP_PLAY_STRING_COM_ON, NULL,
+                                                       ELM_GENLIST_ITEM_NONE,
+                                                       __vp_capture_popup_genlist_item_selected_cb,
+                                                       pUserData);
+       pCapture->nListCount++;
+       elm_genlist_item_append(pObj, pCapture->st_Capture_Itc,
+                                                       (void *) VP_PLAY_STRING_COM_OFF, NULL,
+                                                       ELM_GENLIST_ITEM_NONE,
+                                                       __vp_capture_popup_genlist_item_selected_cb,
+                                                       pUserData);
+       pCapture->nListCount++;
+
+       return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param bCaptureOn
+ * @param pCloseCb
+ * @return
+ */
+capture_popup_handle vp_capture_popup_create(Evas_Object * pParent,
+                                                                                        bool bCaptureOn,
+                                                                                        PopupCloseCbFunc pCloseCb)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       CapturePopup *pCapture = NULL;
+
+       pCapture = calloc(1, sizeof(CapturePopup));
+
+       if (pCapture == NULL) {
+               VideoLogError("pCapture alloc fail");
+               return NULL;
+       }
+
+       pCapture->pParent = pParent;
+       pCapture->pCloseCb = pCloseCb;
+
+       pCapture->pPopup =
+               vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+                                               VP_PLAY_STRING_POPUP_CAPTURE, NULL, 0.0, NULL,
+                                               __vp_capture_popup_key_event_cb,
+                                               __vp_capture_popup_mouse_event_cb,
+                                               (void *) pCapture);
+       if (pCapture->pPopup == NULL) {
+               VideoLogError("vp_popup_create fail");
+               _vp_capture_popup_destroy_handle(pCapture);
+               return NULL;
+       }
+
+       pCapture->pGenList =
+               _vp_capture_popup_create_genlist(pCapture->pPopup);
+       if (pCapture->pGenList == NULL) {
+               VideoLogError("_vp_capture_popup_create_genlist fail");
+               _vp_capture_popup_destroy_handle(pCapture);
+               return NULL;
+       }
+       evas_object_data_set(pCapture->pGenList,
+                                                VP_CAPTURE_POPUP_GENLIST_DATA_KEY,
+                                                (void *) pCapture);
+       evas_object_smart_callback_add(pCapture->pGenList, "realized",
+                                                                  __vp_capture_genlist_realized, NULL);
+
+       pCapture->pRadio = elm_radio_add(pCapture->pGenList);
+
+       if (!_vp_capture_popup_add_genlist_item
+               (pCapture->pGenList, (void *) pCapture)) {
+               VideoLogError("_vp_capture_popup_add_genlist_item fail");
+               _vp_capture_popup_destroy_handle(pCapture);
+               return NULL;
+       }
+       evas_object_smart_callback_add(pCapture->pParent, "rotation,changed",
+                                                                  __vp_capture_popup_rotate_cb, pCapture);
+
+       pCapture->bCaptureOn = bCaptureOn;
+
+       pCapture->pBox = elm_box_add(pCapture->pPopup);
+       vp_popup_set_popup_min_size(pCapture->pParent, pCapture->pBox,
+                                                               pCapture->nListCount, VIDEO_POPUP_DEFAULT);
+
+       elm_box_pack_end(pCapture->pBox, pCapture->pGenList);
+
+       elm_object_content_set(pCapture->pPopup, pCapture->pBox);
+
+       return pCapture;
+}
+
+/**
+ *
+ * @param pCapturePopupHandle
+ */
+void vp_capture_popup_destroy(capture_popup_handle pCapturePopupHandle)
+{
+       if (pCapturePopupHandle == NULL) {
+               VideoLogError("pCapturePopupHandle is NULL");
+               return;
+       }
+
+       CapturePopup *pCapture = (CapturePopup *) pCapturePopupHandle;
+
+       _vp_capture_popup_destroy_handle(pCapture);
+
+}
+
+/**
+ *
+ * @param pCapturePopupHandle
+ * @return
+ */
+bool vp_capture_popup_realize(capture_popup_handle pCapturePopupHandle)
+{
+       if (pCapturePopupHandle == NULL) {
+               VideoLogError("pCapturePopupHandle is NULL");
+               return FALSE;
+       }
+
+       CapturePopup *pCapture = (CapturePopup *) pCapturePopupHandle;
+
+       evas_object_show(pCapture->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pCapturePopupHandle
+ * @return
+ */
+bool vp_capture_popup_unrealize(capture_popup_handle pCapturePopupHandle)
+{
+       if (pCapturePopupHandle == NULL) {
+               VideoLogError("pCapturePopupHandle is NULL");
+               return FALSE;
+       }
+
+       CapturePopup *pCapture = (CapturePopup *) pCapturePopupHandle;
+
+       evas_object_hide(pCapture->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pCapturePopupHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_capture_popup_set_user_data(capture_popup_handle
+                                                                       pCapturePopupHandle, void *pUserData)
+{
+       if (pCapturePopupHandle == NULL) {
+               VideoLogError("pCapturePopupHandle is NULL");
+               return FALSE;
+       }
+
+       CapturePopup *pCapture = (CapturePopup *) pCapturePopupHandle;
+
+
+       pCapture->pUserData = pUserData;
+
+       return TRUE;
+}
diff --git a/playview/src/feature/vp-detail.c b/playview/src/feature/vp-detail.c
new file mode 100755 (executable)
index 0000000..51bd13e
--- /dev/null
@@ -0,0 +1,546 @@
+/*
+ * Copyright (c) 2020 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 <glib.h>
+
+#include "vp-util.h"
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-detail.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_DETAIL_GENLIST_DATA_KEY             "vp.detail.genlist"
+
+
+typedef struct _DetailPopup {
+       Evas_Object *pParent;
+       Evas_Object *pPopup;
+       Evas_Object *pButton;
+       Evas_Object *pBox;
+       Evas_Object *pGenList;
+       Elm_Genlist_Item_Class *st_Detail_Itc;
+       vp_detail_info *pDetailInfo;
+       int nListCount;
+
+       void *pUserData;
+       PopupCloseCbFunc pCloseCb;
+
+} DetailPopup;
+
+typedef struct _DetailView {
+       Evas_Object *pParent;
+       Evas_Object *BaseLayout;
+       void *pNaviFrameHandle;
+       void *pNaviFrameItem;
+       Evas_Object *pGenList;
+       Elm_Genlist_Item_Class *st_Detail_Itc;
+       vp_detail_info *pDetailInfo;
+       int nListCount;
+
+       void *pUserData;
+       PopupCloseCbFunc pCloseCb;
+
+} DetailView;
+
+DetailView *pDetailViewHandle = NULL;
+
+static void _vp_detail_destroy_handle();
+
+
+/* callback functions */
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_detail_genlist_realized(void *data, Evas_Object * obj,
+                                                                                void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_detail_genlist_text_get_cb(const void *pUserData,
+                                                                                        Evas_Object * pObj,
+                                                                                        const char *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       VideoLogWarning("%s : %s", pPart, szTxt);
+
+       if (!strcmp(pPart, "elm.text")) {
+               return strdup(szTxt);
+       } else if (!strcmp(pPart, "elm.text.sub")) {
+
+               DetailView *pDetailPopup =
+                       (DetailView *) evas_object_data_get(pObj,
+                                                                                               VP_DETAIL_GENLIST_DATA_KEY);
+               if (pDetailPopup == NULL) {
+                       return NULL;
+               }
+
+               vp_detail_info *pDetailInfo = pDetailPopup->pDetailInfo;
+               if (pDetailInfo == NULL) {
+                       return NULL;
+               }
+
+               if (!strcmp(szTxt, VP_PLAY_STRING_DETAIL_TITLE)) {
+                       if (pDetailInfo->szTitle) {
+                               return elm_entry_utf8_to_markup(pDetailInfo->szTitle);
+                       }
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_DETAIL_FORMAT)) {
+                       if (pDetailInfo->szFormat) {
+                               return elm_entry_utf8_to_markup(pDetailInfo->szFormat);
+                       }
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_DETAIL_DATE)) {
+                       if (pDetailInfo->szDate) {
+                               return elm_entry_utf8_to_markup(pDetailInfo->szDate);
+                       }
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_DETAIL_SIZE)) {
+                       if (pDetailInfo->szSize) {
+                               return elm_entry_utf8_to_markup(pDetailInfo->szSize);
+                       }
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_DETAIL_LAST_MODIFIED)) {
+                       if (pDetailInfo->szLastModified)
+                               return
+                                       elm_entry_utf8_to_markup(pDetailInfo->szLastModified);
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_DETAIL_RESOLUTION)) {
+                       if (pDetailInfo->szResolution)
+                               return elm_entry_utf8_to_markup(pDetailInfo->szResolution);
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_DETAIL_LOCATION)) {
+                       if (pDetailInfo->szLocation) {
+                               return elm_entry_utf8_to_markup(pDetailInfo->szLocation);
+                       }
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_DETAIL_LATITUDE)) {
+                       if (pDetailInfo->szLatitude) {
+                               if (atof(pDetailInfo->szLatitude) !=
+                                       VP_DETAIL_VALUE_GPS_DEFAULT)
+                                       return
+                                               elm_entry_utf8_to_markup(pDetailInfo->szLatitude);
+                               else {
+                                       return g_strdup(VP_PLAY_STRING_DETAIL_VALUE_UNKNOWN);
+                               }
+                       }
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_DETAIL_LONGITUDE)) {
+                       if (pDetailInfo->szLongitude) {
+                               if (atof(pDetailInfo->szLongitude) !=
+                                       VP_DETAIL_VALUE_GPS_DEFAULT)
+                                       return
+                                               elm_entry_utf8_to_markup(pDetailInfo->szLongitude);
+                               else {
+                                       return g_strdup(VP_PLAY_STRING_DETAIL_VALUE_UNKNOWN);
+                               }
+                       }
+               }
+       }
+
+       return NULL;
+}
+
+/* internal functions */
+/**
+ *
+ */
+static void _vp_detail_destroy_handle()
+{
+       if (pDetailViewHandle == NULL) {
+               VideoLogError("pDetailViewHandle is NULL");
+               return;
+       }
+       evas_object_smart_callback_del(pDetailViewHandle->pGenList, "realized",
+                                                                  __vp_detail_genlist_realized);
+
+
+       VP_EVAS_DEL(pDetailViewHandle->pGenList);
+
+       VP_FREE(pDetailViewHandle->pDetailInfo->szTitle);
+       VP_FREE(pDetailViewHandle->pDetailInfo->szDate);
+       VP_FREE(pDetailViewHandle->pDetailInfo->szSize);
+       VP_FREE(pDetailViewHandle->pDetailInfo->szFormat);
+       VP_FREE(pDetailViewHandle->pDetailInfo->szResolution);
+       VP_FREE(pDetailViewHandle->pDetailInfo->szLatitude);
+       VP_FREE(pDetailViewHandle->pDetailInfo->szLongitude);
+       VP_FREE(pDetailViewHandle->pDetailInfo->szLocation);
+
+       VP_FREE(pDetailViewHandle->pDetailInfo);
+
+       if (pDetailViewHandle->st_Detail_Itc) {
+               elm_genlist_item_class_free(pDetailViewHandle->st_Detail_Itc);
+               pDetailViewHandle->st_Detail_Itc = NULL;
+       }
+
+       VP_FREE(pDetailViewHandle);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_detail_create_genlist(Evas_Object * pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_genlist_add(pParent);
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(pObj);
+       return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @param added_item_cnt
+ * @return
+ */
+static bool _vp_detail_add_genlist_item(Evas_Object * pObj,
+                                                                               void *pUserData,
+                                                                               int *added_item_cnt)
+{
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return FALSE;
+       }
+
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return FALSE;
+       }
+
+       DetailView *pDetailPopup = (DetailView *) pUserData;
+       if (pDetailPopup->st_Detail_Itc) {
+               elm_genlist_item_class_free(pDetailPopup->st_Detail_Itc);
+               pDetailPopup->st_Detail_Itc = NULL;
+       }
+
+       int item_cnt = 0;
+
+       pDetailPopup->st_Detail_Itc = elm_genlist_item_class_new();
+       if (pDetailPopup->st_Detail_Itc == NULL) {
+               VideoLogError("failed to create genlist class");
+               return FALSE;
+       }
+
+       pDetailPopup->st_Detail_Itc->version = ELM_GENLIST_ITEM_CLASS_VERSION;
+       pDetailPopup->st_Detail_Itc->item_style = "type1";
+       pDetailPopup->st_Detail_Itc->func.text_get =
+               (void *) __vp_detail_genlist_text_get_cb;
+       pDetailPopup->st_Detail_Itc->func.content_get = NULL;
+       pDetailPopup->st_Detail_Itc->func.state_get = NULL;
+       pDetailPopup->st_Detail_Itc->func.del = NULL;
+
+       Elm_Object_Item *pItem = NULL;
+
+       pItem =
+               elm_genlist_item_append(pObj, pDetailPopup->st_Detail_Itc,
+                                                               (void *) VP_PLAY_STRING_DETAIL_TITLE,
+                                                               NULL, ELM_GENLIST_ITEM_NONE, NULL,
+                                                               (void *) pDetailPopup);
+       elm_genlist_item_select_mode_set(pItem,
+                                                                        ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+       item_cnt++;
+
+       pItem =
+               elm_genlist_item_append(pObj, pDetailPopup->st_Detail_Itc,
+                                                               (void *) VP_PLAY_STRING_DETAIL_SIZE, NULL,
+                                                               ELM_GENLIST_ITEM_NONE, NULL,
+                                                               (void *) pDetailPopup);
+       elm_genlist_item_select_mode_set(pItem,
+                                                                        ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+       item_cnt++;
+
+       if (pDetailPopup->pDetailInfo->bPlayready == FALSE) {
+               pItem =
+                       elm_genlist_item_append(pObj, pDetailPopup->st_Detail_Itc,
+                                                                       (void *) VP_PLAY_STRING_DETAIL_FORMAT,
+                                                                       NULL, ELM_GENLIST_ITEM_NONE, NULL,
+                                                                       (void *) pDetailPopup);
+               elm_genlist_item_select_mode_set(pItem,
+                                                                                ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+               item_cnt++;
+       }
+
+
+       if (pDetailPopup->pDetailInfo->bPlayready == FALSE) {
+               pItem =
+                       elm_genlist_item_append(pObj, pDetailPopup->st_Detail_Itc,
+                                                                       (void *)
+                                                                       VP_PLAY_STRING_DETAIL_RESOLUTION,
+                                                                       NULL, ELM_GENLIST_ITEM_NONE, NULL,
+                                                                       (void *) pDetailPopup);
+               elm_genlist_item_select_mode_set(pItem,
+                                                                                ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+               item_cnt++;
+       }
+
+       pItem =
+               elm_genlist_item_append(pObj, pDetailPopup->st_Detail_Itc, (void *)
+                                                               VP_PLAY_STRING_DETAIL_LAST_MODIFIED, NULL,
+                                                               ELM_GENLIST_ITEM_NONE, NULL,
+                                                               (void *) pDetailPopup);
+       elm_genlist_item_select_mode_set(pItem,
+                                                                        ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+       item_cnt++;
+
+       if (pDetailPopup->pDetailInfo->bPlayready == FALSE) {
+               pItem =
+                       elm_genlist_item_append(pObj, pDetailPopup->st_Detail_Itc,
+                                                                       (void *)
+                                                                       VP_PLAY_STRING_DETAIL_LOCATION, NULL,
+                                                                       ELM_GENLIST_ITEM_NONE, NULL,
+                                                                       (void *) pDetailPopup);
+               elm_genlist_item_select_mode_set(pItem,
+                                                                                ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+               item_cnt++;
+
+       }
+
+       *added_item_cnt = item_cnt;
+
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+static Eina_Bool vp_detail_view_back_btn_cb(void *pUserData,
+                                                                                       Elm_Object_Item * pItem)
+{
+       if (!pDetailViewHandle) {
+               VideoLogInfo("[ERR] pDetailViewHandle is NULL.");
+               return EINA_TRUE;
+       }
+
+       if (pDetailViewHandle->pCloseCb) {
+               pDetailViewHandle->pCloseCb(-1, FALSE,
+                                                                       (void *) pDetailViewHandle->pUserData);
+       }
+
+       return EINA_TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+void __vp_detail_soft_back_button_cb(void *data, Evas_Object * obj,
+                                                                        void *event_info)
+{
+       VideoLogInfo(" ");
+       Evas_Object *pTopNaviFrame = NULL;
+       pTopNaviFrame =
+               elm_naviframe_item_pop(pDetailViewHandle->pNaviFrameHandle);
+       evas_object_del(pTopNaviFrame);
+}
+
+/**
+ *
+ * @param pNaviFrame
+ * @param pCloseCb
+ * @param pDetailInfo
+ * @return
+ */
+detail_handle vp_detail_page_create(void *pNaviFrame,
+                                                                       PopupCloseCbFunc pCloseCb,
+                                                                       vp_detail_info * pDetailInfo)
+{
+       if (!pNaviFrame) {
+               VideoLogError("[ERR] No existed pNaviFrame.");
+               return NULL;
+       }
+
+       if (pDetailInfo == NULL) {
+               VideoLogError("pDetailInfo is NULL");
+               return NULL;
+       }
+
+       VideoLogInfo("");
+
+       pDetailViewHandle = (DetailView *) calloc(1, sizeof(DetailView));
+       if (pDetailViewHandle == NULL) {
+               VideoLogError("pDetailViewHandle alloc fail");
+               return NULL;
+       } else {
+               memset(pDetailViewHandle, 0, sizeof(DetailView));
+       }
+
+       pDetailViewHandle->pDetailInfo = calloc(1, sizeof(vp_detail_info));
+       if (pDetailViewHandle->pDetailInfo == NULL) {
+               VideoLogError("pDetailViewHandle pDetailInfo alloc fail");
+               _vp_detail_destroy_handle();
+               return NULL;
+       }
+       VP_STRDUP(pDetailViewHandle->pDetailInfo->szTitle,
+                         pDetailInfo->szTitle);
+       VP_STRDUP(pDetailViewHandle->pDetailInfo->szDate, pDetailInfo->szDate);
+       VP_STRDUP(pDetailViewHandle->pDetailInfo->szFormat,
+                         pDetailInfo->szFormat);
+       VP_STRDUP(pDetailViewHandle->pDetailInfo->szSize, pDetailInfo->szSize);
+       VP_STRDUP(pDetailViewHandle->pDetailInfo->szLastModified,
+                         pDetailInfo->szLastModified);
+       VP_STRDUP(pDetailViewHandle->pDetailInfo->szResolution,
+                         pDetailInfo->szResolution);
+       VP_STRDUP(pDetailViewHandle->pDetailInfo->szLatitude,
+                         pDetailInfo->szLatitude);
+       VP_STRDUP(pDetailViewHandle->pDetailInfo->szLongitude,
+                         pDetailInfo->szLongitude);
+       pDetailViewHandle->pDetailInfo->szLocation =
+               vp_util_convert_file_location(pDetailInfo->szLocation);
+
+       pDetailViewHandle->pDetailInfo->bDrm = pDetailInfo->bDrm;
+       pDetailViewHandle->pDetailInfo->bForwardLock =
+               pDetailInfo->bForwardLock;
+       pDetailViewHandle->pDetailInfo->bPlayready = pDetailInfo->bPlayready;
+       pDetailViewHandle->pNaviFrameHandle = pNaviFrame;
+
+       pDetailViewHandle->BaseLayout =
+               elm_layout_add(pDetailViewHandle->pNaviFrameHandle);
+       elm_layout_theme_set(pDetailViewHandle->BaseLayout,
+                                                VP_PLAY_CUSTOM_LAYOUT_KLASS,
+                                                VP_PLAY_CUSTOM_LAYOUT_GROUP,
+                                                VP_PLAY_DETAIL_LAYOUT_STYLE);
+       evas_object_size_hint_weight_set(pDetailViewHandle->BaseLayout,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pDetailViewHandle->BaseLayout,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       Evas_Object *pLeftbtn =
+               elm_button_add(pDetailViewHandle->pNaviFrameHandle);
+       elm_object_style_set(pLeftbtn, "naviframe/end_btn/default");
+       evas_object_smart_callback_add(pLeftbtn, "clicked",
+                                                                  __vp_detail_soft_back_button_cb, NULL);
+
+       pDetailViewHandle->pNaviFrameItem =
+               elm_naviframe_item_push(pDetailViewHandle->pNaviFrameHandle,
+                                                               (const char *) VP_PLAY_STRING_COM_DETAILS,
+                                                               pLeftbtn, NULL,
+                                                               pDetailViewHandle->BaseLayout, NULL);
+       elm_naviframe_item_pop_cb_set(pDetailViewHandle->pNaviFrameItem,
+                                                                 vp_detail_view_back_btn_cb,
+                                                                 pDetailViewHandle);
+
+       pDetailViewHandle->pParent = pDetailViewHandle->BaseLayout;
+       pDetailViewHandle->pCloseCb = pCloseCb;
+
+       pDetailViewHandle->pGenList =
+               _vp_detail_create_genlist(pDetailViewHandle->pParent);
+       if (pDetailViewHandle->pGenList == NULL) {
+               VideoLogError("_vp_detail_create_genlist fail");
+               _vp_detail_destroy_handle();
+               return NULL;
+       }
+
+       evas_object_data_set(pDetailViewHandle->pGenList,
+                                                VP_DETAIL_GENLIST_DATA_KEY,
+                                                (void *) pDetailViewHandle);
+       elm_genlist_mode_set(pDetailViewHandle->pGenList, ELM_LIST_COMPRESS);
+
+       int added_item_cnt = 0;
+       if (!_vp_detail_add_genlist_item
+               (pDetailViewHandle->pGenList, (void *) pDetailViewHandle,
+                &added_item_cnt)) {
+               VideoLogError("_vp_detail_add_genlist_item fail");
+               _vp_detail_destroy_handle();
+               return NULL;
+       }
+       pDetailViewHandle->nListCount = added_item_cnt;
+       evas_object_smart_callback_add(pDetailViewHandle->pGenList, "realized",
+                                                                  __vp_detail_genlist_realized, NULL);
+
+       VideoLogInfo("item cnt = %d", added_item_cnt);
+       elm_object_part_content_set(pDetailViewHandle->pParent,
+                                                               "elm.swallow.content",
+                                                               pDetailViewHandle->pGenList);
+       return pDetailViewHandle;
+}
+
+/* external functions */
+/**
+ *
+ * @param pDetailHandle
+ */
+void vp_detail_destroy(detail_handle pDetailHandle)
+{
+       VideoLogError("vp_detail_destroy called");
+       if (pDetailHandle == NULL) {
+               VideoLogError("pDetailHandle is NULL");
+               return;
+       }
+
+       if (pDetailViewHandle->pGenList) {
+               evas_object_del(pDetailViewHandle->pGenList);
+       }
+       if (pDetailViewHandle->BaseLayout) {
+               evas_object_del(pDetailViewHandle->BaseLayout);
+       }
+       Evas_Object *pTopNaviFrame = NULL;
+       pTopNaviFrame =
+               elm_naviframe_item_pop(pDetailViewHandle->pNaviFrameHandle);
+       evas_object_del(pTopNaviFrame);
+
+       _vp_detail_destroy_handle();
+
+}
+
+/**
+ *
+ * @param pDetailHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_detail_set_user_data(detail_handle pDetailHandle, void *pUserData)
+{
+       if (pDetailHandle == NULL) {
+               VideoLogError("pDetailHandle is NULL");
+               return FALSE;
+       }
+
+       DetailView *pDetailPopup = (DetailView *) pDetailHandle;
+
+       pDetailPopup->pUserData = pUserData;
+
+       return TRUE;
+}
diff --git a/playview/src/feature/vp-play-speed.c b/playview/src/feature/vp-play-speed.c
new file mode 100755 (executable)
index 0000000..cf6c87e
--- /dev/null
@@ -0,0 +1,688 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-speed.h"
+#include "vp-play-util.h"
+#include "vp-play-button.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_PLAY_SPEED_MAX_VALUE                1.5
+#define VP_PLAY_SPEED_MIN_VALUE                0.5
+
+
+typedef struct _PlaySpeedPopup {
+       Evas_Object *pParent;
+       Evas_Object *pPopup;
+       Evas_Object *pLayout;
+       Evas_Object *pBox;
+       Evas_Object *pSlider;
+       Evas_Object *pOkButton;
+       Evas_Object *pCancelButton;
+       Evas_Object *pAddButton;
+       Evas_Object *pDelButton;
+
+       double fSpeedVal;
+
+       void *pUserData;
+
+       PlaySpeedDoneCbFunc pDoneCb;
+       PlaySpeedUpdateCbFunc pUpdateCb;
+
+} PlaySpeedPopup;
+
+
+
+static void _vp_play_speed_popup_destroy_handle(PlaySpeedPopup *
+                                                                                               pPlaySpeedPopup);
+static void _vp_play_speed_update_text(PlaySpeedPopup * pPlaySpeedPopup);
+
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_speed_popup_ok_btn_cb(void *pUserData,
+                                                                                       Evas_Object * pObj,
+                                                                                       void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pUserData;
+
+       if (pPlaySpeedPopup->pDoneCb) {
+               pPlaySpeedPopup->pDoneCb(pPlaySpeedPopup->fSpeedVal, TRUE,
+                                                                (void *) pPlaySpeedPopup->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_speed_popup_cancel_btn_cb(void *pUserData,
+                                                                                               Evas_Object * pObj,
+                                                                                               void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pUserData;
+
+       if (pPlaySpeedPopup->pDoneCb) {
+               pPlaySpeedPopup->pDoneCb(pPlaySpeedPopup->fSpeedVal, FALSE,
+                                                                (void *) pPlaySpeedPopup->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_speed_popup_key_event_cb(void *pUserData,
+                                                                                          Evas_Object * pObj,
+                                                                                          void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pUserData;
+       if (pPlaySpeedPopup->pDoneCb) {
+               pPlaySpeedPopup->pDoneCb(pPlaySpeedPopup->fSpeedVal, FALSE,
+                                                                (void *) pPlaySpeedPopup->pUserData);
+       }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_speed_popup_mouse_event_cb(void *pUserData,
+                                                                                                Evas * pEvas,
+                                                                                                Evas_Object * pObj,
+                                                                                                void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Evas_Event_Mouse_Up *ev = pEventInfo;
+
+       if (ev->button == 3) {
+               PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pUserData;
+               if (pPlaySpeedPopup->pDoneCb) {
+                       pPlaySpeedPopup->pDoneCb(pPlaySpeedPopup->fSpeedVal, FALSE,
+                                                                        (void *) pPlaySpeedPopup->pUserData);
+               }
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_speed_popup_slider_change_cb(void *pUserData,
+                                                                                                  Evas_Object * pObj,
+                                                                                                  void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pUserData;
+
+       double fValue = elm_slider_value_get(pPlaySpeedPopup->pSlider);
+       VideoLogDebug("== %f ==", fValue);
+
+       if (fValue != pPlaySpeedPopup->fSpeedVal) {
+               if (pPlaySpeedPopup->pUpdateCb) {
+                       pPlaySpeedPopup->fSpeedVal = fValue;
+                       pPlaySpeedPopup->pUpdateCb(pPlaySpeedPopup->fSpeedVal,
+                                                                          (void *)
+                                                                          pPlaySpeedPopup->pUserData);
+                       _vp_play_speed_update_text(pPlaySpeedPopup);
+               }
+       }
+
+       char szValue[6] = { 0, };
+       snprintf(szValue, 6, "%0.1f X", (double) pPlaySpeedPopup->fSpeedVal);
+       double realValue = atof(szValue);
+
+       if (pPlaySpeedPopup->fSpeedVal != realValue) {
+               elm_slider_value_set(pPlaySpeedPopup->pSlider, (double) realValue);
+               pPlaySpeedPopup->fSpeedVal = realValue;
+       }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_speed_btn_clicked_cb(void *pUserData,
+                                                                                  Evas_Object * pObj,
+                                                                                  void *pEvent)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pUserData;
+
+       double fValue = elm_slider_value_get(pPlaySpeedPopup->pSlider);
+       VideoLogDebug("== %f ==", fValue);
+
+       if (pObj == pPlaySpeedPopup->pAddButton) {
+               fValue += 0.1;
+               if (fValue > (double) VP_PLAY_SPEED_MAX_VALUE) {
+                       fValue = (double) VP_PLAY_SPEED_MAX_VALUE;
+               }
+               elm_slider_value_set(pPlaySpeedPopup->pSlider, fValue);
+
+               if (fValue != pPlaySpeedPopup->fSpeedVal) {
+                       if (pPlaySpeedPopup->pUpdateCb) {
+                               pPlaySpeedPopup->fSpeedVal = fValue;
+                               pPlaySpeedPopup->pUpdateCb(pPlaySpeedPopup->fSpeedVal,
+                                                                                  (void *)
+                                                                                  pPlaySpeedPopup->pUserData);
+                               _vp_play_speed_update_text(pPlaySpeedPopup);
+                       }
+               }
+
+       } else if (pObj == pPlaySpeedPopup->pDelButton) {
+               fValue -= 0.1;
+               if (fValue < (double) VP_PLAY_SPEED_MIN_VALUE) {
+                       fValue = (double) VP_PLAY_SPEED_MIN_VALUE;
+               }
+
+               elm_slider_value_set(pPlaySpeedPopup->pSlider, fValue);
+               if (fValue != pPlaySpeedPopup->fSpeedVal) {
+                       if (pPlaySpeedPopup->pUpdateCb) {
+                               pPlaySpeedPopup->fSpeedVal = fValue;
+                               pPlaySpeedPopup->pUpdateCb(pPlaySpeedPopup->fSpeedVal,
+                                                                                  (void *)
+                                                                                  pPlaySpeedPopup->pUserData);
+                               _vp_play_speed_update_text(pPlaySpeedPopup);
+                       }
+               }
+
+       }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pPlaySpeedPopup
+ */
+static void _vp_play_speed_popup_destroy_handle(PlaySpeedPopup *
+                                                                                               pPlaySpeedPopup)
+{
+       if (pPlaySpeedPopup == NULL) {
+               VideoLogError("pPlaySpeedPopup is NULL");
+               return;
+       }
+
+       VP_EVAS_DEL(pPlaySpeedPopup->pAddButton);
+       VP_EVAS_DEL(pPlaySpeedPopup->pDelButton);
+
+       VP_EVAS_DEL(pPlaySpeedPopup->pOkButton);
+       VP_EVAS_DEL(pPlaySpeedPopup->pCancelButton);
+       VP_EVAS_DEL(pPlaySpeedPopup->pSlider);
+       VP_EVAS_DEL(pPlaySpeedPopup->pBox);
+       VP_EVAS_DEL(pPlaySpeedPopup->pLayout);
+       VP_EVAS_DEL(pPlaySpeedPopup->pPopup);
+
+       VP_FREE(pPlaySpeedPopup);
+}
+
+/**
+ *
+ * @param pPlaySpeedPopup
+ */
+static void _vp_play_speed_update_text(PlaySpeedPopup * pPlaySpeedPopup)
+{
+       if (pPlaySpeedPopup == NULL) {
+               VideoLogError("pPlaySpeedPopup is NULL");
+               return;
+       }
+
+       char szValue[6] = { 0, };
+
+       snprintf(szValue, 6, "%0.1f X", (double) pPlaySpeedPopup->fSpeedVal);
+       elm_object_part_text_set(pPlaySpeedPopup->pLayout, "elm.text.title",
+                                                        szValue);
+
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object *_vp_play_speed_popup_create_ok_button(Evas_Object *
+                                                                                                                 pParent,
+                                                                                                                 void *pUserData)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       pObj = elm_button_add(pParent);
+       elm_object_style_set(pObj, "popup_button/default");
+       elm_object_domain_translatable_text_set(pObj, VP_SYS_STR_PREFIX,
+                                                                                       VP_PLAY_STRING_COM_DONE);
+       elm_object_part_content_set(pParent, "button2", pObj);
+       evas_object_smart_callback_add(pObj, "clicked",
+                                                                  __vp_play_speed_popup_ok_btn_cb,
+                                                                  pUserData);
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object *_vp_play_speed_popup_create_cancel_button(Evas_Object
+                                                                                                                         *pParent,
+                                                                                                                         void
+                                                                                                                         *pUserData)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       pObj = elm_button_add(pParent);
+       elm_object_style_set(pObj, "popup_button/default");
+       elm_object_domain_translatable_text_set(pObj, VP_SYS_STR_PREFIX,
+                                                                                       VP_PLAY_STRING_COM_CANCEL);
+       elm_object_part_content_set(pParent, "button1", pObj);
+       evas_object_smart_callback_add(pObj, "clicked",
+                                                                  __vp_play_speed_popup_cancel_btn_cb,
+                                                                  pUserData);
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object *_vp_play_speed_popup_create_slider(Evas_Object *
+                                                                                                          pParent,
+                                                                                                          void *pUserData)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_slider_add(pParent);
+       elm_slider_indicator_show_set(pObj, EINA_FALSE);
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND, 0.0);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, 0.5);
+
+       elm_slider_min_max_set(pObj, VP_PLAY_SPEED_MIN_VALUE,
+                                                  VP_PLAY_SPEED_MAX_VALUE);
+       evas_object_smart_callback_add(pObj, "changed",
+                                                                  __vp_play_speed_popup_slider_change_cb,
+                                                                  pUserData);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static bool _vp_play_speed_popup_create_button(Evas_Object * pParent,
+                                                                                          void *pUserData)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return FALSE;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_RESROUCE_EDJ_PATH);
+       free(path);
+       PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pUserData;
+
+       pPlaySpeedPopup->pDelButton =
+               vp_button_create(pParent, "custom/flat_63_78/default",
+                                                NULL,
+                                                (Evas_Smart_Cb) __vp_play_speed_btn_clicked_cb,
+                                                (Evas_Smart_Cb) NULL, (Evas_Smart_Cb) NULL,
+                                                (void *) pPlaySpeedPopup);
+
+
+
+       pPlaySpeedPopup->pAddButton =
+               vp_button_create(pParent, "custom/flat_63_78/default",
+                                                NULL,
+                                                (Evas_Smart_Cb) __vp_play_speed_btn_clicked_cb,
+                                                (Evas_Smart_Cb) NULL, (Evas_Smart_Cb) NULL,
+                                                (void *) pPlaySpeedPopup);
+
+       Evas_Object *pIcon = NULL;
+
+       pIcon =
+               vp_button_create_icon(pPlaySpeedPopup->pDelButton,
+                                                         edj_path, VP_PLAY_RES_BUTTON_DEL);
+       elm_object_part_content_set(pPlaySpeedPopup->pDelButton,
+                                                               VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       pIcon =
+               vp_button_create_icon(pPlaySpeedPopup->pDelButton,
+                                                         edj_path, VP_PLAY_RES_BUTTON_DEL_PRESS);
+       elm_object_part_content_set(pPlaySpeedPopup->pDelButton,
+                                                               VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+       pIcon =
+               vp_button_create_icon(pPlaySpeedPopup->pDelButton,
+                                                         edj_path, VP_PLAY_RES_BUTTON_DEL);
+       elm_object_part_content_set(pPlaySpeedPopup->pDelButton,
+                                                               VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+
+       pIcon =
+               vp_button_create_icon(pPlaySpeedPopup->pAddButton,
+                                                         edj_path, VP_PLAY_RES_BUTTON_ADD);
+       elm_object_part_content_set(pPlaySpeedPopup->pAddButton,
+                                                               VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       pIcon =
+               vp_button_create_icon(pPlaySpeedPopup->pAddButton,
+                                                         edj_path, VP_PLAY_RES_BUTTON_ADD_PRESS);
+       elm_object_part_content_set(pPlaySpeedPopup->pAddButton,
+                                                               VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+       pIcon =
+               vp_button_create_icon(pPlaySpeedPopup->pAddButton,
+                                                         edj_path, VP_PLAY_RES_BUTTON_ADD);
+       elm_object_part_content_set(pPlaySpeedPopup->pAddButton,
+                                                               VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+
+       elm_object_part_content_set(pParent, "elm.swallow.icon.1",
+                                                               pPlaySpeedPopup->pDelButton);
+       elm_object_part_content_set(pParent, "elm.swallow.icon.2",
+                                                               pPlaySpeedPopup->pAddButton);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_speed_popup_create_layout(Evas_Object *
+                                                                                                          pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pLayout = elm_layout_add(pParent);
+       if (pLayout == NULL) {
+               VideoLogError("pLayout object is NULL");
+               return NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_SPEED_POPUP_EDJ);
+       free(path);
+       elm_layout_file_set(pLayout, edj_path,
+                                               VP_PLAY_EDJ_GROUP_PLAY_SPEED_POPUP);
+
+       evas_object_size_hint_weight_set(pLayout, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pLayout, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+
+       evas_object_show(pLayout);
+
+       return pLayout;
+
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param fSpeedVal
+ * @param pUpdateCb
+ * @param pDoneCb
+ * @return
+ */
+play_speed_popup vp_play_speed_popup_create(Evas_Object * pParent,
+                                                                                       double fSpeedVal,
+                                                                                       PlaySpeedUpdateCbFunc
+                                                                                       pUpdateCb,
+                                                                                       PlaySpeedDoneCbFunc pDoneCb)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       PlaySpeedPopup *pPlaySpeedPopup = NULL;
+
+       pPlaySpeedPopup = calloc(1, sizeof(PlaySpeedPopup));
+
+       if (pPlaySpeedPopup == NULL) {
+               VideoLogError("pPlaySpeedPopup alloc fail");
+               return NULL;
+       }
+
+       pPlaySpeedPopup->pParent = pParent;
+       pPlaySpeedPopup->pUpdateCb = pUpdateCb;
+       pPlaySpeedPopup->pDoneCb = pDoneCb;
+       pPlaySpeedPopup->fSpeedVal = fSpeedVal;
+
+       pPlaySpeedPopup->pPopup =
+               vp_popup_create(pParent, POPUP_STYLE_EXPAND_WITH_CANCEL_BTN,
+                                               VP_PLAY_STRING_POPUP_PLAY_SPEED, NULL, 0.0, NULL,
+                                               __vp_play_speed_popup_key_event_cb,
+                                               __vp_play_speed_popup_mouse_event_cb,
+                                               (void *) pPlaySpeedPopup);
+
+       if (pPlaySpeedPopup->pPopup == NULL) {
+               VideoLogError("vp_popup_create fail");
+               _vp_play_speed_popup_destroy_handle(pPlaySpeedPopup);
+               return NULL;
+       }
+
+       pPlaySpeedPopup->pCancelButton =
+               _vp_play_speed_popup_create_cancel_button(pPlaySpeedPopup->pPopup,
+                                                                                                 (void *)
+                                                                                                 pPlaySpeedPopup);
+       if (pPlaySpeedPopup->pCancelButton == NULL) {
+               VideoLogError("_vp_play_speed_popup_create_cancel_button fail");
+               _vp_play_speed_popup_destroy_handle(pPlaySpeedPopup);
+               return NULL;
+       }
+
+       pPlaySpeedPopup->pOkButton =
+               _vp_play_speed_popup_create_ok_button(pPlaySpeedPopup->pPopup,
+                                                                                         (void *) pPlaySpeedPopup);
+       if (pPlaySpeedPopup->pOkButton == NULL) {
+               VideoLogError("_vp_play_speed_popup_create_ok_button fail");
+               _vp_play_speed_popup_destroy_handle(pPlaySpeedPopup);
+               return NULL;
+       }
+
+       pPlaySpeedPopup->pLayout =
+               _vp_play_speed_popup_create_layout(pPlaySpeedPopup->pPopup);
+       if (pPlaySpeedPopup->pLayout == NULL) {
+               VideoLogError("_vp_play_speed_popup_create_layout fail");
+               _vp_play_speed_popup_destroy_handle(pPlaySpeedPopup);
+               return NULL;
+       }
+
+       pPlaySpeedPopup->pSlider =
+               _vp_play_speed_popup_create_slider(pPlaySpeedPopup->pLayout,
+                                                                                  pPlaySpeedPopup);
+       if (pPlaySpeedPopup->pSlider == NULL) {
+               VideoLogError("_vp_play_speed_popup_create_slider fail");
+               _vp_play_speed_popup_destroy_handle(pPlaySpeedPopup);
+               return NULL;
+       }
+
+       _vp_play_speed_popup_create_button(pPlaySpeedPopup->pLayout,
+                                                                          pPlaySpeedPopup);
+
+       elm_slider_value_set(pPlaySpeedPopup->pSlider,
+                                                (double) pPlaySpeedPopup->fSpeedVal);
+       _vp_play_speed_update_text(pPlaySpeedPopup);
+
+       elm_object_part_content_set(pPlaySpeedPopup->pLayout,
+                                                               "elm.swallow.content",
+                                                               pPlaySpeedPopup->pSlider);
+       elm_object_content_set(pPlaySpeedPopup->pPopup,
+                                                  pPlaySpeedPopup->pLayout);
+       evas_object_show(pPlaySpeedPopup->pLayout);
+
+       return pPlaySpeedPopup;
+}
+
+/**
+ *
+ * @param pPlaySpeedHandle
+ */
+void vp_play_speed_popup_destroy(play_speed_popup pPlaySpeedHandle)
+{
+       if (pPlaySpeedHandle == NULL) {
+               VideoLogError("pPlaySpeedHandle is NULL");
+               return;
+       }
+
+       PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pPlaySpeedHandle;
+
+       _vp_play_speed_popup_destroy_handle(pPlaySpeedPopup);
+
+}
+
+/**
+ *
+ * @param pPlaySpeedHandle
+ * @return
+ */
+bool vp_play_speed_popup_realize(play_speed_popup pPlaySpeedHandle)
+{
+       if (pPlaySpeedHandle == NULL) {
+               VideoLogError("pPlaySpeedHandle is NULL");
+               return FALSE;
+       }
+
+       PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pPlaySpeedHandle;
+
+       evas_object_show(pPlaySpeedPopup->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlaySpeedHandle
+ * @return
+ */
+bool vp_play_speed_popup_unrealize(play_speed_popup pPlaySpeedHandle)
+{
+       if (pPlaySpeedHandle == NULL) {
+               VideoLogError("pPlaySpeedHandle is NULL");
+               return FALSE;
+       }
+
+       PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pPlaySpeedHandle;
+
+       evas_object_hide(pPlaySpeedPopup->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlaySpeedHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_play_speed_popup_set_user_data(play_speed_popup pPlaySpeedHandle,
+                                                                          void *pUserData)
+{
+       if (pPlaySpeedHandle == NULL) {
+               VideoLogError("pPlaySpeedHandle is NULL");
+               return FALSE;
+       }
+
+       PlaySpeedPopup *pPlaySpeedPopup = (PlaySpeedPopup *) pPlaySpeedHandle;
+
+       pPlaySpeedPopup->pUserData = pUserData;
+
+       return TRUE;
+}
diff --git a/playview/src/feature/vp-repeat.c b/playview/src/feature/vp-repeat.c
new file mode 100755 (executable)
index 0000000..e0a1958
--- /dev/null
@@ -0,0 +1,559 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+#include "vp-play-preference.h"
+
+#include "vp-repeat.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_REPEAT_GENLIST_DATA_KEY             "vp.repeat.genlist"
+
+typedef struct _RepeatPopup {
+       Evas_Object *pParent;
+       Evas_Object *pPopup;
+       Evas_Object *pRadio;
+       Evas_Object *pButton;
+       Evas_Object *pBox;
+       Evas_Object *pGenList;
+
+       Elm_Genlist_Item_Class *st_Repeat_Itc;
+       int nListCount;
+       char *pMediUrl;
+
+       void *pUserData;
+       PopupCloseCbFunc pCloseCb;
+       video_play_repeat_mode_t repeatMode;
+} RepeatPopup;
+
+
+
+static void _vp_repeat_destroy_handle(RepeatPopup * pRepeat);
+static void __vp_repeat_genlist_item_selected_cb(void *pUserData,
+                                                                                                Evas_Object * pObject,
+                                                                                                void *pEventInfo);
+
+
+static void __vp_repeat_genlist_realized(void *data, Evas_Object * obj,
+                                                                                void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_repeat_popup_rotate_cb(void *data, Evas_Object * obj,
+                                                                               void *event_info)
+{
+       RepeatPopup *pRepeat = (RepeatPopup *) data;
+       if (!pRepeat) {
+               VideoLogError("pCapture IS null");
+               return;
+       }
+       if (pRepeat->nListCount < VP_POPUP_MIN_ITEMS) {
+               return;
+       }
+       vp_popup_set_popup_min_size(pRepeat->pParent, pRepeat->pBox,
+                                                               pRepeat->nListCount, VIDEO_POPUP_DEFAULT);
+
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_repeat_genlist_text_get_cb(const void *pUserData,
+                                                                                        Evas_Object * pObj,
+                                                                                        const char *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!strcmp(pPart, "elm.text.main.left")) {
+               return strdup(szTxt);
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_repeat_genlist_content_get_cb(const void
+                                                                                                          *pUserData,
+                                                                                                          Evas_Object * pObj,
+                                                                                                          const char *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!strcmp(pPart, "elm.icon.right")) {
+               Evas_Object *pRadioObj = NULL;
+
+               RepeatPopup *pRepeat = (RepeatPopup *) evas_object_data_get(pObj,
+                                                                                                                                       VP_REPEAT_GENLIST_DATA_KEY);
+               if (pRepeat == NULL) {
+                       VideoLogWarning("evas_object_data_get is fail");
+                       return NULL;
+               }
+
+               video_play_repeat_mode_t nType = VIDEO_PLAY_REPEAT_NONE;
+
+               if (!strcmp(szTxt, VP_PLAY_STRING_REPEAT_OFF)) {
+                       nType = VIDEO_PLAY_REPEAT_OFF;
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_REPEAT_ALL_OFF)) {
+                       nType = VIDEO_PLAY_REPEAT_ALL_STOP;
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_REPEAT_ONE)) {
+                       nType = VIDEO_PLAY_REPEAT_ONE;
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_REPEAT_ALL)) {
+                       nType = VIDEO_PLAY_REPEAT_ALL;
+               }
+
+               pRadioObj = elm_radio_add(pObj);
+               elm_radio_state_value_set(pRadioObj, nType);
+               elm_radio_group_add(pRadioObj, pRepeat->pRadio);
+               elm_radio_value_set(pRepeat->pRadio, pRepeat->repeatMode);
+               evas_object_smart_callback_add(pRadioObj, "changed",
+                                                                          __vp_repeat_genlist_item_selected_cb,
+                                                                          pRepeat);
+               evas_object_show(pRadioObj);
+
+               return pRadioObj;
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_repeat_genlist_item_selected_cb(void *pUserData,
+                                                                                                Evas_Object * pObject,
+                                                                                                void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+       char *szTxt = (char *) elm_object_item_data_get(pItem);
+
+       RepeatPopup *pRepeat = (RepeatPopup *) pUserData;
+
+       if (szTxt == NULL) {
+               VideoLogError("szTxt is NULL");
+               return;
+       }
+
+       video_play_repeat_mode_t nType = VIDEO_PLAY_REPEAT_NONE;
+
+       if (!strcmp(szTxt, VP_PLAY_STRING_REPEAT_OFF)) {
+               nType = VIDEO_PLAY_REPEAT_OFF;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_REPEAT_ALL_OFF)) {
+               nType = VIDEO_PLAY_REPEAT_ALL_STOP;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_REPEAT_ONE)) {
+               nType = VIDEO_PLAY_REPEAT_ONE;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_REPEAT_ALL)) {
+               nType = VIDEO_PLAY_REPEAT_ALL;
+       }
+
+       if (nType != VIDEO_PLAY_REPEAT_NONE) {
+               vp_play_preference_set_repeat_mode_key((int) nType);
+       }
+
+       pRepeat->repeatMode = nType;
+       VideoLogInfo("repeatMode=%d", pRepeat->repeatMode);
+       if (pRepeat->pCloseCb) {
+               pRepeat->pCloseCb((int) nType, FALSE, (void *) pRepeat->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_repeat_popup_key_event_cb(void *pUserData,
+                                                                                  Evas_Object * pObj,
+                                                                                  void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       RepeatPopup *pRepeat = (RepeatPopup *) pUserData;
+
+       if (pRepeat->pCloseCb) {
+               pRepeat->pCloseCb(VIDEO_PLAY_REPEAT_NONE, FALSE,
+                                                 (void *) pRepeat->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_repeat_popup_mouse_event_cb(void *pUserData,
+                                                                                        Evas * pEvas,
+                                                                                        Evas_Object * pObj,
+                                                                                        void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Evas_Event_Mouse_Up *ev = pEventInfo;
+
+       if (ev->button == 3) {
+               RepeatPopup *pRepeat = (RepeatPopup *) pUserData;
+
+               if (pRepeat->pCloseCb) {
+                       pRepeat->pCloseCb(VIDEO_PLAY_REPEAT_NONE, FALSE,
+                                                         (void *) pRepeat->pUserData);
+               }
+       }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pRepeat
+ */
+static void _vp_repeat_destroy_handle(RepeatPopup * pRepeat)
+{
+       if (pRepeat == NULL) {
+               VideoLogError("pRepeat is NULL");
+               return;
+       }
+       evas_object_smart_callback_del(pRepeat->pGenList, "realized",
+                                                                  __vp_repeat_genlist_realized);
+       evas_object_smart_callback_del(pRepeat->pParent, "rotation,changed",
+                                                                  __vp_repeat_popup_rotate_cb);
+
+
+       VP_EVAS_DEL(pRepeat->pRadio);
+       VP_EVAS_DEL(pRepeat->pGenList);
+       VP_EVAS_DEL(pRepeat->pButton);
+       VP_EVAS_DEL(pRepeat->pBox);
+
+       VP_EVAS_DEL(pRepeat->pPopup);
+
+       VP_FREE(pRepeat->pMediUrl);
+
+       if (pRepeat->st_Repeat_Itc) {
+               elm_genlist_item_class_free(pRepeat->st_Repeat_Itc);
+               pRepeat->st_Repeat_Itc = NULL;
+       }
+
+       VP_FREE(pRepeat);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_repeat_create_genlist(Evas_Object * pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_genlist_add(pParent);
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(pObj);
+       return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_repeat_add_genlist_item(Evas_Object * pObj,
+                                                                               void *pUserData)
+{
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return FALSE;
+       }
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return FALSE;
+       }
+
+       RepeatPopup *pRepeat = (RepeatPopup *) pUserData;
+
+       if (pRepeat->st_Repeat_Itc) {
+               elm_genlist_item_class_free(pRepeat->st_Repeat_Itc);
+               pRepeat->st_Repeat_Itc = NULL;
+       }
+
+       pRepeat->st_Repeat_Itc = elm_genlist_item_class_new();
+
+       if (pRepeat->st_Repeat_Itc != NULL) {
+               pRepeat->st_Repeat_Itc->version = ELM_GENLIST_ITEM_CLASS_VERSION;
+               pRepeat->st_Repeat_Itc->item_style = "1line";
+               pRepeat->st_Repeat_Itc->func.text_get =
+                       (void *) __vp_repeat_genlist_text_get_cb;
+               pRepeat->st_Repeat_Itc->func.content_get =
+                       (void *) __vp_repeat_genlist_content_get_cb;
+               pRepeat->st_Repeat_Itc->func.state_get = NULL;
+               pRepeat->st_Repeat_Itc->func.del = NULL;
+               pRepeat->nListCount = 0;
+
+               elm_genlist_item_append(pObj, pRepeat->st_Repeat_Itc,
+                                                               (void *) VP_PLAY_STRING_REPEAT_OFF, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               __vp_repeat_genlist_item_selected_cb,
+                                                               pUserData);
+               pRepeat->nListCount++;
+               elm_genlist_item_append(pObj, pRepeat->st_Repeat_Itc,
+                                                               (void *) VP_PLAY_STRING_REPEAT_ALL_OFF,
+                                                               NULL, ELM_GENLIST_ITEM_NONE,
+                                                               __vp_repeat_genlist_item_selected_cb,
+                                                               pUserData);
+               pRepeat->nListCount++;
+               elm_genlist_item_append(pObj, pRepeat->st_Repeat_Itc,
+                                                               (void *) VP_PLAY_STRING_REPEAT_ONE, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               __vp_repeat_genlist_item_selected_cb,
+                                                               pUserData);
+               pRepeat->nListCount++;
+               elm_genlist_item_append(pObj, pRepeat->st_Repeat_Itc,
+                                                               (void *) VP_PLAY_STRING_REPEAT_ALL, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               __vp_repeat_genlist_item_selected_cb,
+                                                               pUserData);
+               pRepeat->nListCount++;
+       }
+
+       return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pMediaUrl
+ * @param pCloseCb
+ * @return
+ */
+repeat_handle vp_repeat_create(Evas_Object * pParent, char *pMediaUrl,
+                                                          PopupCloseCbFunc pCloseCb)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       if (pMediaUrl == NULL) {
+               VideoLogError("pMediaUrl is NULL");
+               return NULL;
+       }
+
+       RepeatPopup *pRepeat = NULL;
+
+       pRepeat = calloc(1, sizeof(RepeatPopup));
+
+       if (pRepeat == NULL) {
+               VideoLogError("pRepeat alloc fail");
+               return NULL;
+       }
+
+       pRepeat->pParent = pParent;
+       pRepeat->pCloseCb = pCloseCb;
+
+       VP_STRDUP(pRepeat->pMediUrl, pMediaUrl);
+
+       pRepeat->pPopup =
+               vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+                                               VP_PLAY_STRING_POPUP_REPEAT_SETTING, NULL, 0.0,
+                                               NULL, __vp_repeat_popup_key_event_cb,
+                                               __vp_repeat_popup_mouse_event_cb,
+                                               (void *) pRepeat);
+
+       if (pRepeat->pPopup == NULL) {
+               VideoLogError("vp_popup_create fail");
+               _vp_repeat_destroy_handle(pRepeat);
+               return NULL;
+       }
+       pRepeat->pGenList = _vp_repeat_create_genlist(pRepeat->pPopup);
+       if (pRepeat->pGenList == NULL) {
+               VideoLogError("_vp_repeat_create_genlist fail");
+               _vp_repeat_destroy_handle(pRepeat);
+               return NULL;
+       }
+       evas_object_data_set(pRepeat->pGenList, VP_REPEAT_GENLIST_DATA_KEY,
+                                                (void *) pRepeat);
+
+       pRepeat->pRadio = elm_radio_add(pRepeat->pGenList);
+
+       if (!_vp_repeat_add_genlist_item(pRepeat->pGenList, (void *) pRepeat)) {
+               VideoLogError("_vp_repeat_add_genlist_item fail");
+               _vp_repeat_destroy_handle(pRepeat);
+               return NULL;
+       }
+       evas_object_smart_callback_add(pRepeat->pGenList, "realized",
+                                                                  __vp_repeat_genlist_realized, NULL);
+       evas_object_smart_callback_add(pRepeat->pParent, "rotation,changed",
+                                                                  __vp_repeat_popup_rotate_cb, pRepeat);
+
+       int nType = 0;
+
+       vp_play_preference_get_repeat_mode_key(&nType);
+
+       pRepeat->repeatMode = nType;
+
+       pRepeat->pBox = elm_box_add(pRepeat->pPopup);
+       vp_popup_set_popup_min_size(pRepeat->pParent, pRepeat->pBox,
+                                                               pRepeat->nListCount, VIDEO_POPUP_DEFAULT);
+
+       elm_box_pack_end(pRepeat->pBox, pRepeat->pGenList);
+
+       elm_object_content_set(pRepeat->pPopup, pRepeat->pBox);
+
+       return pRepeat;
+}
+
+/**
+ *
+ * @param pRepeatHandle
+ */
+void vp_repeat_destroy(repeat_handle pRepeatHandle)
+{
+       if (pRepeatHandle == NULL) {
+               VideoLogError("pRepeatHandle is NULL");
+               return;
+       }
+
+       RepeatPopup *pRepeat = (RepeatPopup *) pRepeatHandle;
+
+       _vp_repeat_destroy_handle(pRepeat);
+
+}
+
+/**
+ *
+ * @param pRepeatHandle
+ * @return
+ */
+bool vp_repeat_realize(repeat_handle pRepeatHandle)
+{
+       if (pRepeatHandle == NULL) {
+               VideoLogError("pRepeatHandle is NULL");
+               return FALSE;
+       }
+
+       RepeatPopup *pRepeat = (RepeatPopup *) pRepeatHandle;
+
+       evas_object_show(pRepeat->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pRepeatHandle
+ * @return
+ */
+bool vp_repeat_unrealize(repeat_handle pRepeatHandle)
+{
+       if (pRepeatHandle == NULL) {
+               VideoLogError("pRepeatHandle is NULL");
+               return FALSE;
+       }
+
+       RepeatPopup *pRepeat = (RepeatPopup *) pRepeatHandle;
+
+       evas_object_hide(pRepeat->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pRepeatHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_repeat_set_user_data(repeat_handle pRepeatHandle, void *pUserData)
+{
+       if (pRepeatHandle == NULL) {
+               VideoLogError("pRepeatHandle is NULL");
+               return FALSE;
+       }
+
+       RepeatPopup *pRepeat = (RepeatPopup *) pRepeatHandle;
+
+       pRepeat->pUserData = pUserData;
+
+       return TRUE;
+}
diff --git a/playview/src/feature/vp-setting.c b/playview/src/feature/vp-setting.c
new file mode 100755 (executable)
index 0000000..38632ed
--- /dev/null
@@ -0,0 +1,635 @@
+/*
+ * Copyright (c) 2020 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 <glib.h>
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-setting.h"
+#include "vp-device-language.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SETTING_GENLIST_DATA_KEY            "vp.setting.genlist"
+
+typedef struct _SettingPopup {
+       Evas_Object *pParent;
+       Evas_Object *pPopup;
+       Evas_Object *pButton;
+       Evas_Object *pBox;
+       Evas_Object *pGenList;
+
+       int nAppendItemCnt;
+       Elm_Genlist_Item_Class *st_Setting_Itc;
+
+
+       SettingInfo *pSettingInfo;
+
+       void *pUserData;
+       PopupCloseCbFunc pCloseCb;
+
+} SettingPopup;
+
+static void _vp_setting_destroy_handle(SettingPopup * pSetting);
+static void __vp_setting_genlist_realized(void *data, Evas_Object * obj,
+                                                                                 void *event_info);
+static void __vp_setting_popup_rotate_cb(void *data, Evas_Object * obj,
+                                                                                void *event_info);
+
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_setting_genlist_text_get_cb(const void *pUserData,
+                                                                                         Evas_Object * pObj,
+                                                                                         const char *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!strcmp(pPart, "elm.text.1")) {
+               return strdup(szTxt);
+       } else if (!strcmp(pPart, "elm.text.2")) {
+
+               SettingPopup *pSetting =
+                       (SettingPopup *) evas_object_data_get(pObj,
+                                                                                                 VP_SETTING_GENLIST_DATA_KEY);
+               if (pSetting == NULL) {
+                       return NULL;
+               }
+
+               SettingInfo *pSettingInfo = pSetting->pSettingInfo;
+               if (pSettingInfo == NULL) {
+                       return NULL;
+               }
+
+               if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_PLAY_SPEED)) {
+                       return g_strdup_printf("%0.1f x", pSettingInfo->fSpeed);
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_SOUND_ALIVE)) {
+                       if (pSettingInfo->nSoundAlive == VIDEO_SA_NONE) {
+                               return strdup(VP_PLAY_STRING_SOUND_ALIVE_NORMAL);
+                       } else if (pSettingInfo->nSoundAlive == VIDEO_SA_NORMAL) {
+                               return strdup(VP_PLAY_STRING_SOUND_ALIVE_NORMAL);
+                       } else if (pSettingInfo->nSoundAlive == VIDEO_SA_VOICE) {
+                               return strdup(VP_PLAY_STRING_SOUND_ALIVE_VOICE);
+                       } else if (pSettingInfo->nSoundAlive == VIDEO_SA_MOVIE) {
+                               return strdup(VP_PLAY_STRING_SOUND_ALIVE_MOVIE);
+                       } else if (pSettingInfo->nSoundAlive == VIDEO_SA_7_1_CH) {
+                               return strdup(VP_PLAY_STRING_SOUND_ALIVE_71CH);
+                       }
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_AUDIO_TRACK)) {
+                       return strdup(pSettingInfo->szAudioTrack);
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_REPEAT_SETTING)) {
+                       if (pSettingInfo->nRepeatMode == VIDEO_PLAY_REPEAT_OFF) {
+                               return strdup(VP_PLAY_STRING_REPEAT_OFF);
+                       } else if (pSettingInfo->nRepeatMode ==
+                                          VIDEO_PLAY_REPEAT_ALL_STOP) {
+                               return strdup(VP_PLAY_STRING_REPEAT_ALL_OFF);
+                       } else if (pSettingInfo->nRepeatMode == VIDEO_PLAY_REPEAT_ONE) {
+                               return strdup(VP_PLAY_STRING_REPEAT_ONE);
+                       } else if (pSettingInfo->nRepeatMode == VIDEO_PLAY_REPEAT_ALL) {
+                               return strdup(VP_PLAY_STRING_REPEAT_ALL);
+                       }
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_CAPTURE)) {
+                       if (pSettingInfo->bCapture) {
+                               return strdup(VP_PLAY_STRING_COM_ON);
+                       } else {
+                               return strdup(VP_PLAY_STRING_COM_OFF);
+                       }
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_TAG_BUDDY)) {
+                       if (pSettingInfo->bTagBuddy) {
+                               return strdup(VP_PLAY_STRING_COM_ON);
+                       } else {
+                               return strdup(VP_PLAY_STRING_COM_OFF);
+                       }
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_EDIT_WEATHER_TAG)) {
+                       if (pSettingInfo->bEditWeatherTag) {
+                               return strdup(VP_PLAY_STRING_COM_ON);
+                       } else {
+                               return strdup(VP_PLAY_STRING_COM_OFF);
+                       }
+               }
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_setting_genlist_item_selected_cb(void *pUserData,
+                                                                                                 Evas_Object * pObject,
+                                                                                                 void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       char *szTxt = (char *) elm_object_item_data_get(pItem);
+
+       SettingPopup *pSetting = (SettingPopup *) pUserData;
+
+       Elm_Object_Item *item = (Elm_Object_Item *) pEventInfo;
+
+       if (item) {
+               elm_genlist_item_selected_set(item, EINA_FALSE);
+       }
+
+       if (szTxt == NULL) {
+               VideoLogError("szTxt is NULL");
+               return;
+       }
+       vp_setting_mode_t nMode = VP_SETTING_MODE_NONE;
+       bool bPause = FALSE;
+
+       if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_PLAY_SPEED)) {
+               nMode = VP_SETTING_MODE_PLAY_SPEED;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_SOUND_ALIVE)) {
+               nMode = VP_SETTING_MODE_SOUND_ALIVE;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_AUDIO_TRACK)) {
+               nMode = VP_SETTING_MODE_AUDIO_TRACK;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_REPEAT_SETTING)) {
+               nMode = VP_SETTING_MODE_REPEAT_MODE;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_POPUP_CAPTURE)) {
+               nMode = VP_SETTING_MODE_CAPTURE;
+       }
+
+       if (pSetting->pCloseCb) {
+               pSetting->pCloseCb((int) nMode, bPause,
+                                                  (void *) pSetting->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_setting_popup_key_event_cb(void *pUserData,
+                                                                                       Evas_Object * pObj,
+                                                                                       void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       SettingPopup *pSetting = (SettingPopup *) pUserData;
+
+       if (pSetting->pCloseCb) {
+               pSetting->pCloseCb(VP_SETTING_MODE_NONE, FALSE,
+                                                  (void *) pSetting->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_setting_popup_mouse_event_cb(void *pUserData,
+                                                                                         Evas * pEvas,
+                                                                                         Evas_Object * pObj,
+                                                                                         void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Evas_Event_Mouse_Up *ev = pEventInfo;
+
+       if (ev->button == 3) {
+               SettingPopup *pSetting = (SettingPopup *) pUserData;
+
+               if (pSetting->pCloseCb) {
+                       pSetting->pCloseCb(VP_SETTING_MODE_NONE, FALSE,
+                                                          (void *) pSetting->pUserData);
+               }
+       }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pSetting
+ */
+static void _vp_setting_destroy_handle(SettingPopup * pSetting)
+{
+       if (pSetting == NULL) {
+               VideoLogError("pSetting is NULL");
+               return;
+       }
+       evas_object_smart_callback_del(pSetting->pGenList, "realized",
+                                                                  __vp_setting_genlist_realized);
+       evas_object_smart_callback_del(pSetting->pParent, "rotation,changed",
+                                                                  __vp_setting_popup_rotate_cb);
+
+
+       VP_EVAS_DEL(pSetting->pGenList);
+       VP_EVAS_DEL(pSetting->pButton);
+       VP_EVAS_DEL(pSetting->pBox);
+
+       VP_EVAS_DEL(pSetting->pPopup);
+
+       if (pSetting->st_Setting_Itc) {
+               elm_genlist_item_class_free(pSetting->st_Setting_Itc);
+               pSetting->st_Setting_Itc = NULL;
+       }
+
+       VP_FREE(pSetting->pSettingInfo->szAudioTrack);
+       VP_FREE(pSetting->pSettingInfo);
+
+       VP_FREE(pSetting);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_setting_create_genlist(Evas_Object * pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_genlist_add(pParent);
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(pObj);
+       return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_setting_add_genlist_item(Evas_Object * pObj,
+                                                                                void *pUserData)
+{
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return FALSE;
+       }
+
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return FALSE;
+       }
+
+       SettingPopup *pSetting = (SettingPopup *) pUserData;
+       bool bStreaming = FALSE;
+       bool bDrm = FALSE;
+       bool bExternalVideoMode = FALSE;
+       bool bShowEditWeather = FALSE;
+
+       if (pSetting->pSettingInfo) {
+               bStreaming = pSetting->pSettingInfo->bStreaming;
+               bDrm = pSetting->pSettingInfo->bDrm;
+               bExternalVideoMode = pSetting->pSettingInfo->bExternalMode;
+               bShowEditWeather = pSetting->pSettingInfo->bShowEditWeather;
+       }
+
+       if (pSetting->st_Setting_Itc) {
+               elm_genlist_item_class_free(pSetting->st_Setting_Itc);
+               pSetting->st_Setting_Itc = NULL;
+       }
+
+       pSetting->st_Setting_Itc = elm_genlist_item_class_new();
+
+       if (pSetting->st_Setting_Itc != NULL) {
+               pSetting->st_Setting_Itc->version = ELM_GENLIST_ITEM_CLASS_VERSION;
+               pSetting->st_Setting_Itc->item_style = "2text.2/popup";
+               pSetting->st_Setting_Itc->func.text_get =
+                       (void *) __vp_setting_genlist_text_get_cb;
+               pSetting->st_Setting_Itc->func.content_get = NULL;
+               pSetting->st_Setting_Itc->func.state_get = NULL;
+               pSetting->st_Setting_Itc->func.del = NULL;
+       }
+
+       if (bStreaming == FALSE) {
+               elm_genlist_item_append(pObj, pSetting->st_Setting_Itc,
+                                                               (void *) VP_PLAY_STRING_POPUP_PLAY_SPEED,
+                                                               NULL, ELM_GENLIST_ITEM_NONE,
+                                                               __vp_setting_genlist_item_selected_cb,
+                                                               (void *) pSetting);
+               pSetting->nAppendItemCnt++;
+       }
+
+       elm_genlist_item_append(pObj, pSetting->st_Setting_Itc,
+                                                       (void *) VP_PLAY_STRING_POPUP_SOUND_ALIVE,
+                                                       NULL, ELM_GENLIST_ITEM_NONE,
+                                                       __vp_setting_genlist_item_selected_cb,
+                                                       (void *) pSetting);
+       pSetting->nAppendItemCnt++;
+
+
+       if (bStreaming == FALSE) {
+               elm_genlist_item_append(pObj, pSetting->st_Setting_Itc,
+                                                               (void *) VP_PLAY_STRING_POPUP_AUDIO_TRACK,
+                                                               NULL, ELM_GENLIST_ITEM_NONE,
+                                                               __vp_setting_genlist_item_selected_cb,
+                                                               (void *) pSetting);
+               pSetting->nAppendItemCnt++;
+               elm_genlist_item_append(pObj, pSetting->st_Setting_Itc, (void *)
+                                                               VP_PLAY_STRING_POPUP_REPEAT_SETTING, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               __vp_setting_genlist_item_selected_cb,
+                                                               (void *) pSetting);
+               pSetting->nAppendItemCnt++;
+
+               if (bDrm == FALSE && bExternalVideoMode == FALSE) {
+                       elm_genlist_item_append(pObj, pSetting->st_Setting_Itc,
+                                                                       (void *) VP_PLAY_STRING_POPUP_CAPTURE,
+                                                                       NULL, ELM_GENLIST_ITEM_NONE,
+                                                                       __vp_setting_genlist_item_selected_cb,
+                                                                       (void *) pSetting);
+                       pSetting->nAppendItemCnt++;
+               }
+       }
+
+       if (bStreaming == FALSE && bDrm == FALSE) {
+               elm_genlist_item_append(pObj, pSetting->st_Setting_Itc,
+                                                               (void *) VP_PLAY_STRING_POPUP_TAG_BUDDY,
+                                                               NULL, ELM_GENLIST_ITEM_NONE,
+                                                               __vp_setting_genlist_item_selected_cb,
+                                                               (void *) pSetting);
+               pSetting->nAppendItemCnt++;
+               if (bShowEditWeather == TRUE) {
+                       elm_genlist_item_append(pObj, pSetting->st_Setting_Itc,
+                                                                       (void *)
+                                                                       VP_PLAY_STRING_POPUP_EDIT_WEATHER_TAG,
+                                                                       NULL, ELM_GENLIST_ITEM_NONE,
+                                                                       __vp_setting_genlist_item_selected_cb,
+                                                                       (void *) pSetting);
+                       pSetting->nAppendItemCnt++;
+               }
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_setting_genlist_realized(void *data, Evas_Object * obj,
+                                                                                 void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_setting_popup_rotate_cb(void *data, Evas_Object * obj,
+                                                                                void *event_info)
+{
+       SettingPopup *pSetting = (SettingPopup *) data;
+       if (!pSetting) {
+               VideoLogError("pSetting IS null");
+               return;
+       }
+       if (pSetting->nAppendItemCnt < VP_POPUP_MIN_ITEMS) {
+               return;
+       }
+       vp_popup_set_popup_min_size(pSetting->pParent, pSetting->pBox,
+                                                               pSetting->nAppendItemCnt,
+                                                               VIDEO_POPUP_2_TEXT);
+
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pSettingInfo
+ * @param pCloseCb
+ * @return
+ */
+setting_popup_handle vp_setting_create(Evas_Object * pParent,
+                                                                          SettingInfo * pSettingInfo,
+                                                                          PopupCloseCbFunc pCloseCb)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       if (pSettingInfo == NULL) {
+               VideoLogError("pSettingInfo is NULL");
+               return NULL;
+       }
+
+       SettingPopup *pSetting = NULL;
+
+       pSetting = calloc(1, sizeof(SettingPopup));
+
+       if (pSetting == NULL) {
+               VideoLogError("pSetting alloc fail");
+               return NULL;
+       }
+
+       pSetting->pSettingInfo = calloc(1, sizeof(SettingInfo));
+       if (pSetting->pSettingInfo == NULL) {
+               VideoLogError("pSettingInfo alloc fail");
+               _vp_setting_destroy_handle(pSetting);
+               return NULL;
+       }
+
+       pSetting->pSettingInfo->fSpeed = pSettingInfo->fSpeed;
+       pSetting->pSettingInfo->nSoundAlive = pSettingInfo->nSoundAlive;
+       VP_STRDUP(pSetting->pSettingInfo->szAudioTrack,
+                         pSettingInfo->szAudioTrack);
+       pSetting->pSettingInfo->nRepeatMode = pSettingInfo->nRepeatMode;
+       pSetting->pSettingInfo->bCapture = pSettingInfo->bCapture;
+       pSetting->pSettingInfo->bTagBuddy = pSettingInfo->bTagBuddy;
+       pSetting->pSettingInfo->bEditWeatherTag =
+               pSettingInfo->bEditWeatherTag;
+       pSetting->pSettingInfo->bStreaming = pSettingInfo->bStreaming;
+       pSetting->pSettingInfo->bRepeat = pSettingInfo->bRepeat;
+       pSetting->pSettingInfo->bSelectSubtitle =
+               pSettingInfo->bSelectSubtitle;
+       pSetting->pSettingInfo->bDrm = pSettingInfo->bDrm;
+       pSetting->pSettingInfo->bExternalMode = pSettingInfo->bExternalMode;
+       pSetting->pSettingInfo->bShowEditWeather =
+               pSettingInfo->bShowEditWeather;
+
+       pSetting->pParent = pParent;
+       pSetting->pCloseCb = pCloseCb;
+
+       pSetting->pPopup =
+               vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+                                               VP_PLAY_STRING_SETTINGS, NULL, 0.0, NULL,
+                                               __vp_setting_popup_key_event_cb,
+                                               __vp_setting_popup_mouse_event_cb,
+                                               (void *) pSetting);
+       if (pSetting->pPopup == NULL) {
+               VideoLogError("vp_popup_create fail");
+               _vp_setting_destroy_handle(pSetting);
+               return NULL;
+       }
+
+       pSetting->pGenList = _vp_setting_create_genlist(pSetting->pPopup);
+       if (pSetting->pGenList == NULL) {
+               VideoLogError("_vp_setting_create_button fail");
+               _vp_setting_destroy_handle(pSetting);
+               return NULL;
+       }
+       evas_object_data_set(pSetting->pGenList, VP_SETTING_GENLIST_DATA_KEY,
+                                                (void *) pSetting);
+       vp_language_list_create();
+
+       if (!_vp_setting_add_genlist_item
+               (pSetting->pGenList, (void *) pSetting)) {
+               VideoLogError("_vp_setting_add_genlist_item fail");
+               _vp_setting_destroy_handle(pSetting);
+               return NULL;
+       }
+       evas_object_smart_callback_add(pSetting->pGenList, "realized",
+                                                                  __vp_setting_genlist_realized, NULL);
+       evas_object_smart_callback_add(pSetting->pParent, "rotation,changed",
+                                                                  __vp_setting_popup_rotate_cb, pSetting);
+
+       pSetting->pBox = elm_box_add(pSetting->pPopup);
+       vp_popup_set_popup_min_size(pSetting->pParent, pSetting->pBox,
+                                                               pSetting->nAppendItemCnt,
+                                                               VIDEO_POPUP_2_TEXT);
+
+       elm_box_pack_end(pSetting->pBox, pSetting->pGenList);
+
+       elm_object_content_set(pSetting->pPopup, pSetting->pBox);
+
+       return pSetting;
+}
+
+/**
+ *
+ * @param pSettingHandle
+ */
+void vp_setting_destroy(setting_popup_handle pSettingHandle)
+{
+       if (pSettingHandle == NULL) {
+               VideoLogError("pSettingHandle is NULL");
+               return;
+       }
+
+       SettingPopup *pSetting = (SettingPopup *) pSettingHandle;
+
+       _vp_setting_destroy_handle(pSetting);
+
+}
+
+/**
+ *
+ * @param pSettingHandle
+ * @return
+ */
+bool vp_setting_realize(setting_popup_handle pSettingHandle)
+{
+       if (pSettingHandle == NULL) {
+               VideoLogError("pSettingHandle is NULL");
+               return FALSE;
+       }
+
+       SettingPopup *pSetting = (SettingPopup *) pSettingHandle;
+
+       evas_object_show(pSetting->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSettingHandle
+ * @return
+ */
+bool vp_setting_unrealize(setting_popup_handle pSettingHandle)
+{
+       if (pSettingHandle == NULL) {
+               VideoLogError("pSettingHandle is NULL");
+               return FALSE;
+       }
+
+       SettingPopup *pSetting = (SettingPopup *) pSettingHandle;
+
+
+       evas_object_hide(pSetting->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSettingHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_setting_set_user_data(setting_popup_handle pSettingHandle,
+                                                         void *pUserData)
+{
+       if (pSettingHandle == NULL) {
+               VideoLogError("pSettingHandle is NULL");
+               return FALSE;
+       }
+
+       SettingPopup *pSetting = (SettingPopup *) pSettingHandle;
+
+       pSetting->pUserData = pUserData;
+
+       return TRUE;
+}
diff --git a/playview/src/feature/vp-share.c b/playview/src/feature/vp-share.c
new file mode 100755 (executable)
index 0000000..f8f9903
--- /dev/null
@@ -0,0 +1,526 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-share.h"
+
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+typedef struct _SharePopup {
+       Evas_Object *pParent;
+       Evas_Object *pPopup;
+       Evas_Object *pButton;
+       Evas_Object *pBox;
+       Evas_Object *pGenList;
+
+       char *pMediUrl;
+       int nListCount;
+
+       void *pUserData;
+       PopupCloseCbFunc pCloseCb;
+
+} SharePopup;
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_share_popup_rotate_cb(void *data, Evas_Object * obj,
+                                                                          void *event_info)
+{
+       SharePopup *pShare = (SharePopup *) data;
+       if (!pShare) {
+               VideoLogError("pShare IS null");
+               return;
+       }
+       if (pShare->nListCount < VP_POPUP_MIN_ITEMS) {
+               return;
+       }
+       vp_popup_set_popup_min_size(pShare->pParent, pShare->pBox,
+                                                               pShare->nListCount, VIDEO_POPUP_DEFAULT);
+
+}
+
+/**
+ *
+ * @param pShare
+ */
+static void _vp_share_destroy_handle(SharePopup * pShare)
+{
+       if (pShare == NULL) {
+               VideoLogError("pShare is NULL");
+               return;
+       }
+       evas_object_smart_callback_del(pShare->pParent, "rotation,changed",
+                                                                  __vp_share_popup_rotate_cb);
+
+       VP_EVAS_DEL(pShare->pGenList);
+       VP_EVAS_DEL(pShare->pButton);
+       VP_EVAS_DEL(pShare->pBox);
+
+       VP_EVAS_DEL(pShare->pPopup);
+
+       VP_FREE(pShare->pMediUrl);
+
+       VP_FREE(pShare);
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_share_genlist_text_get_cb(const void *pUserData,
+                                                                                       Evas_Object * pObj,
+                                                                                       const char *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!strcmp(pPart, "elm.text")) {
+               return strdup(szTxt);
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_share_genlist_item_selected_cb(void *pUserData,
+                                                                                               Evas_Object * pObject,
+                                                                                               void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       char *szTxt = (char *) elm_object_item_data_get(pItem);
+       SharePopup *pShare = (SharePopup *) pUserData;
+
+       if (szTxt == NULL) {
+               VideoLogError("szTxt is NULL");
+               return;
+       }
+
+       video_share_type_t nType = VP_SHARE_NONE;
+
+       if (!strcmp(szTxt, VP_PLAY_STRING_SHARE_MESSAGE)) {
+               VideoLogWarning
+                       ("SELECT SHARE ITEM (VP_PLAY_STRING_SHARE_MESSAGE)");
+               nType = VP_SHARE_MESSAGE;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SHARE_EMAIL)) {
+               VideoLogWarning("SELECT SHARE ITEM (VP_PLAY_STRING_SHARE_EMAIL)");
+               nType = VP_SHARE_EMAIL;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SHARE_BLUETOOTH)) {
+               VideoLogWarning
+                       ("SELECT SHARE ITEM (VP_PLAY_STRING_SHARE_BLUETOOTH)");
+               nType = VP_SHARE_BLUETOOTH;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SHARE_FTM)) {
+               VideoLogWarning("SELECT SHARE ITEM (VP_PLAY_STRING_SHARE_FTM)");
+               nType = VP_SHARE_FTM;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SHARE_FACEBOOK)) {
+               VideoLogWarning
+                       ("SELECT SHARE ITEM (VP_PLAY_STRING_SHARE_FACEBOOK)");
+               nType = VP_SHARE_FACEBOOK;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SHARE_YOUTUBE)) {
+               VideoLogWarning
+                       ("SELECT SHARE ITEM (VP_PLAY_STRING_SHARE_YOUTUBE)");
+               nType = VP_SHARE_YOUTUBE;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SHARE_NFC)) {
+               VideoLogWarning("SELECT SHARE ITEM (VP_PLAY_STRING_SHARE_NFC)");
+               nType = VP_SHARE_NFC;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SHARE_FILE_TRANSFER)) {
+               VideoLogWarning
+                       ("SELECT SHARE ITEM (VP_PLAY_STRING_SHARE_FILE_TRANSFER)");
+               nType = VP_SHARE_FILE_TRANSFER;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SHARE_DROPBOX)) {
+               VideoLogWarning
+                       ("SELECT SHARE ITEM (VP_PLAY_STRING_SHARE_DROPBOX)");
+               nType = VP_SHARE_DROP_BOX;
+       }
+
+       if (pShare->pCloseCb) {
+               pShare->pCloseCb((int) nType, TRUE, (void *) pShare->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_share_close_btn_cb(void *pUserData, Evas_Object * pObj,
+                                                                       void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pShareHandle is NULL");
+               return;
+       }
+
+       SharePopup *pShare = (SharePopup *) pUserData;
+
+       if (pShare->pCloseCb) {
+               pShare->pCloseCb(VP_SHARE_NONE, FALSE, (void *) pShare->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_share_popup_key_event_cb(void *pUserData,
+                                                                                 Evas_Object * pObj,
+                                                                                 void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SharePopup *pShare = (SharePopup *) pUserData;
+
+       if (pShare->pCloseCb) {
+               pShare->pCloseCb(VP_SHARE_NONE, FALSE, (void *) pShare->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_share_popup_mouse_event_cb(void *pUserData, Evas * pEvas,
+                                                                                       Evas_Object * pObj,
+                                                                                       void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Evas_Event_Mouse_Up *ev = pEventInfo;
+
+       if (ev->button == 3) {
+               SharePopup *pShare = (SharePopup *) pUserData;
+
+               if (pShare->pCloseCb) {
+                       pShare->pCloseCb(VP_SHARE_NONE, FALSE,
+                                                        (void *) pShare->pUserData);
+               }
+       }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object *_vp_share_create_button(Evas_Object * pParent,
+                                                                                       void *pUserData)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       pObj = elm_button_add(pParent);
+       elm_object_style_set(pObj, "popup_button/default");
+       elm_object_domain_translatable_text_set(pObj, VP_SYS_STR_PREFIX,
+                                                                                       VP_PLAY_STRING_COM_CLOSE_IDS);
+       elm_object_part_content_set(pParent, "button1", pObj);
+       evas_object_smart_callback_add(pObj, "clicked",
+                                                                  __vp_share_close_btn_cb, pUserData);
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_share_create_genlist(Evas_Object * pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_genlist_add(pParent);
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(pObj);
+       return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_share_add_genlist_item(Evas_Object * pObj, void *pUserData)
+{
+       if (!pObj || !pUserData) {
+               VideoLogError("pObj is NULL");
+               return FALSE;
+       }
+       SharePopup *pShare = (SharePopup *) pUserData;
+
+       Elm_Genlist_Item_Class *st_Share_Itc = NULL;
+
+       st_Share_Itc = elm_genlist_item_class_new();
+
+       if (st_Share_Itc != NULL) {
+               st_Share_Itc->version = ELM_GENLIST_ITEM_CLASS_VERSION;
+               st_Share_Itc->item_style = "1text/popup";
+               st_Share_Itc->func.text_get =
+                       (void *) __vp_share_genlist_text_get_cb;
+               st_Share_Itc->func.content_get = NULL;
+               st_Share_Itc->func.state_get = NULL;
+               st_Share_Itc->func.del = NULL;
+               pShare->nListCount = 0;
+
+               elm_genlist_item_append(pObj, st_Share_Itc,
+                                                               (void *) VP_PLAY_STRING_SHARE_MESSAGE,
+                                                               NULL, ELM_GENLIST_ITEM_NONE,
+                                                               __vp_share_genlist_item_selected_cb,
+                                                               pUserData);
+               pShare->nListCount++;
+               elm_genlist_item_append(pObj, st_Share_Itc,
+                                                               (void *) VP_PLAY_STRING_SHARE_EMAIL, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               __vp_share_genlist_item_selected_cb,
+                                                               pUserData);
+               pShare->nListCount++;
+               elm_genlist_item_append(pObj, st_Share_Itc,
+                                                               (void *) VP_PLAY_STRING_SHARE_FTM, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               __vp_share_genlist_item_selected_cb,
+                                                               pUserData);
+               pShare->nListCount++;
+               elm_genlist_item_append(pObj, st_Share_Itc,
+                                                               (void *) VP_PLAY_STRING_SHARE_BLUETOOTH,
+                                                               NULL, ELM_GENLIST_ITEM_NONE,
+                                                               __vp_share_genlist_item_selected_cb,
+                                                               pUserData);
+               pShare->nListCount++;
+               elm_genlist_item_append(pObj, st_Share_Itc,
+                                                               (void *) VP_PLAY_STRING_SHARE_FACEBOOK,
+                                                               NULL, ELM_GENLIST_ITEM_NONE,
+                                                               __vp_share_genlist_item_selected_cb,
+                                                               pUserData);
+               elm_genlist_item_class_free(st_Share_Itc);
+       }
+
+       return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pMediaUrl
+ * @param pCloseCb
+ * @return
+ */
+share_handle vp_share_create(Evas_Object * pParent, char *pMediaUrl,
+                                                        PopupCloseCbFunc pCloseCb)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       if (pMediaUrl == NULL) {
+               VideoLogError("pMediaUrl is NULL");
+               return NULL;
+       }
+
+       SharePopup *pShare = NULL;
+
+       pShare = calloc(1, sizeof(SharePopup));
+
+       if (pShare == NULL) {
+               VideoLogError("pShare alloc fail");
+               return NULL;
+       }
+
+       pShare->pParent = pParent;
+       pShare->pCloseCb = pCloseCb;
+
+       VP_STRDUP(pShare->pMediUrl, pMediaUrl);
+
+       pShare->pPopup =
+               vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_WITH_CANCEL_BTN,
+                                               VP_PLAY_STRING_POPUP_SHARE, NULL, 0.0, NULL,
+                                               __vp_share_popup_key_event_cb,
+                                               __vp_share_popup_mouse_event_cb, (void *) pShare);
+       if (pShare->pPopup == NULL) {
+               VideoLogError("_vp_share_create_popup fail");
+               _vp_share_destroy_handle(pShare);
+               return NULL;
+       }
+
+       pShare->pButton =
+               _vp_share_create_button(pShare->pPopup, (void *) pShare);
+       if (pShare->pButton == NULL) {
+               VideoLogError("_vp_share_create_button fail");
+               _vp_share_destroy_handle(pShare);
+               return NULL;
+       }
+
+       pShare->pGenList = _vp_share_create_genlist(pShare->pPopup);
+       if (pShare->pGenList == NULL) {
+               VideoLogError("_vp_share_create_genlist fail");
+               _vp_share_destroy_handle(pShare);
+               return NULL;
+       }
+       if (!_vp_share_add_genlist_item(pShare->pGenList, (void *) pShare)) {
+               VideoLogError("_vp_share_add_genlist_item fail");
+               _vp_share_destroy_handle(pShare);
+               return NULL;
+       }
+       evas_object_smart_callback_add(pShare->pParent, "rotation,changed",
+                                                                  __vp_share_popup_rotate_cb, pShare);
+
+       pShare->pBox = elm_box_add(pShare->pPopup);
+
+       vp_popup_set_popup_min_size(pShare->pParent, pShare->pBox,
+                                                               pShare->nListCount, VIDEO_POPUP_DEFAULT);
+
+       elm_box_pack_end(pShare->pBox, pShare->pGenList);
+
+       elm_object_content_set(pShare->pPopup, pShare->pBox);
+
+       return pShare;
+}
+
+/**
+ *
+ * @param pShareHandle
+ */
+void vp_share_destroy(share_handle pShareHandle)
+{
+       if (pShareHandle == NULL) {
+               VideoLogError("pShareHandle is NULL");
+               return;
+       }
+
+       SharePopup *pShare = (SharePopup *) pShareHandle;
+
+       _vp_share_destroy_handle(pShare);
+
+}
+
+/**
+ *
+ * @param pShareHandle
+ * @return
+ */
+bool vp_share_realize(share_handle pShareHandle)
+{
+       if (pShareHandle == NULL) {
+               VideoLogError("pShareHandle is NULL");
+               return FALSE;
+       }
+
+       SharePopup *pShare = (SharePopup *) pShareHandle;
+
+       evas_object_show(pShare->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pShareHandle
+ * @return
+ */
+bool vp_share_unrealize(share_handle pShareHandle)
+{
+       if (pShareHandle == NULL) {
+               VideoLogError("pShareHandle is NULL");
+               return FALSE;
+       }
+
+       SharePopup *pShare = (SharePopup *) pShareHandle;
+
+       evas_object_hide(pShare->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pShareHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_share_set_user_data(share_handle pShareHandle, void *pUserData)
+{
+       if (pShareHandle == NULL) {
+               VideoLogError("pShareHandle is NULL");
+               return FALSE;
+       }
+
+       SharePopup *pShare = (SharePopup *) pShareHandle;
+
+       pShare->pUserData = pUserData;
+
+       return TRUE;
+}
diff --git a/playview/src/feature/vp-sound-alive.c b/playview/src/feature/vp-sound-alive.c
new file mode 100755 (executable)
index 0000000..3991ecf
--- /dev/null
@@ -0,0 +1,598 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-sound-alive.h"
+#include "vp-sound.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SOUND_ALIVE_GENLIST_DATA_KEY                "vp.sound.alive.genlist"
+
+typedef struct _SoundAlivePopup {
+       Evas_Object *pParent;
+       Evas_Object *pPopup;
+       Evas_Object *pRadio;
+       Evas_Object *pButton;
+       Evas_Object *pBox;
+       Evas_Object *pGenList;
+       Elm_Genlist_Item_Class *st_Sa_Itc;
+
+       char *pMediUrl;
+       int nListCount;
+
+       void *pUserData;
+       PopupCloseCbFunc pCloseCb;
+       video_sound_alive_t soundAliveType;
+} SoundAlivePopup;
+
+static void __vp_sound_alive_genlist_item_selected_cb(void *pUserData,
+                                                                                                         Evas_Object *
+                                                                                                         pObject,
+                                                                                                         void *pEventInfo);
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_sound_alive_genlist_realized(void *data,
+                                                                                         Evas_Object * obj,
+                                                                                         void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_sound_alive_popup_rotate_cb(void *data,
+                                                                                        Evas_Object * obj,
+                                                                                        void *event_info)
+{
+       SoundAlivePopup *pSoundAlive = (SoundAlivePopup *) data;
+       if (!pSoundAlive) {
+               VideoLogError("pSoundAlive IS null");
+               return;
+       }
+       if (pSoundAlive->nListCount < VP_POPUP_MIN_ITEMS) {
+               return;
+       }
+       vp_popup_set_popup_min_size(pSoundAlive->pParent, pSoundAlive->pBox,
+                                                               pSoundAlive->nListCount,
+                                                               VIDEO_POPUP_DEFAULT);
+
+}
+
+/**
+ *
+ * @param pSoundAlive
+ */
+static void _vp_sound_alive_destroy_handle(SoundAlivePopup * pSoundAlive)
+{
+       if (pSoundAlive == NULL) {
+               VideoLogError("pSoundAlive is NULL");
+               return;
+       }
+
+       evas_object_smart_callback_del(pSoundAlive->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_sound_alive_popup_rotate_cb);
+       evas_object_smart_callback_del(pSoundAlive->pGenList, "realized",
+                                                                  __vp_sound_alive_genlist_realized);
+
+       VP_EVAS_DEL(pSoundAlive->pRadio);
+       VP_EVAS_DEL(pSoundAlive->pGenList);
+       VP_EVAS_DEL(pSoundAlive->pButton);
+       VP_EVAS_DEL(pSoundAlive->pBox);
+
+       if (pSoundAlive->st_Sa_Itc) {
+               elm_genlist_item_class_free(pSoundAlive->st_Sa_Itc);
+               pSoundAlive->st_Sa_Itc = NULL;
+       }
+
+
+       VP_EVAS_DEL(pSoundAlive->pPopup);
+
+       VP_FREE(pSoundAlive->pMediUrl);
+
+       VP_FREE(pSoundAlive);
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_sound_alive_genlist_text_get_cb(const void *pUserData,
+                                                                                                 Evas_Object * pObj,
+                                                                                                 const char *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!strcmp(pPart, "elm.text.main.left")) {
+               return strdup(szTxt);
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_sound_alive_genlist_content_get_cb(const void
+                                                                                                                       *pUserData,
+                                                                                                                       Evas_Object *
+                                                                                                                       pObj,
+                                                                                                                       const char
+                                                                                                                       *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!strcmp(pPart, "elm.icon.right")) {
+               Evas_Object *pRadioObj = NULL;
+
+               SoundAlivePopup *pSoundAlive =
+                       (SoundAlivePopup *) evas_object_data_get(pObj,
+                                                                                                        VP_SOUND_ALIVE_GENLIST_DATA_KEY);
+               if (pSoundAlive == NULL) {
+                       VideoLogWarning("evas_object_data_get is fail");
+                       return NULL;
+               }
+
+               video_sound_alive_t nType = VIDEO_SA_NONE;
+
+               if (!strcmp(szTxt, VP_PLAY_STRING_SOUND_ALIVE_NORMAL)) {
+                       nType = VIDEO_SA_NORMAL;
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_SOUND_ALIVE_VOICE)) {
+                       nType = VIDEO_SA_VOICE;
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_SOUND_ALIVE_MOVIE)) {
+                       nType = VIDEO_SA_MOVIE;
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_SOUND_ALIVE_71CH)) {
+                       nType = VIDEO_SA_7_1_CH;
+               }
+
+               pRadioObj = elm_radio_add(pObj);
+               elm_radio_state_value_set(pRadioObj, nType);
+               elm_radio_group_add(pRadioObj, pSoundAlive->pRadio);
+               elm_radio_value_set(pSoundAlive->pRadio,
+                                                       pSoundAlive->soundAliveType);
+               evas_object_smart_callback_add(pRadioObj, "changed",
+                                                                          __vp_sound_alive_genlist_item_selected_cb,
+                                                                          pSoundAlive);
+               evas_object_show(pRadioObj);
+
+               return pRadioObj;
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_sound_alive_genlist_item_selected_cb(void *pUserData,
+                                                                                                         Evas_Object *
+                                                                                                         pObject,
+                                                                                                         void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+       char *szTxt = (char *) elm_object_item_data_get(pItem);
+       SoundAlivePopup *pSoundAlive = (SoundAlivePopup *) pUserData;
+
+       if (szTxt == NULL) {
+               VideoLogError("szTxt is NULL");
+               return;
+       }
+
+       video_sound_alive_t nType = VIDEO_SA_NONE;
+
+       if (!strcmp(szTxt, VP_PLAY_STRING_SOUND_ALIVE_NORMAL)) {
+               VideoLogWarning
+                       ("SELECT SOUND ALIVE ITEM (VP_PLAY_STRING_SOUND_ALIVE_NORMAL)");
+               nType = VIDEO_SA_NORMAL;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SOUND_ALIVE_VOICE)) {
+               VideoLogWarning
+                       ("SELECT SOUND ALIVE ITEM (VP_PLAY_STRING_SOUND_ALIVE_VOICE)");
+               nType = VIDEO_SA_VOICE;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SOUND_ALIVE_MOVIE)) {
+               VideoLogWarning
+                       ("SELECT SOUND ALIVE ITEM (VP_PLAY_STRING_SOUND_ALIVE_MOVIE)");
+               nType = VIDEO_SA_MOVIE;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SOUND_ALIVE_71CH)) {
+               VideoLogWarning
+                       ("SELECT SOUND ALIVE ITEM (VP_PLAY_STRING_SOUND_ALIVE_71CH)");
+               nType = VIDEO_SA_7_1_CH;
+       }
+
+       pSoundAlive->soundAliveType = nType;
+       if (pSoundAlive->pCloseCb) {
+               pSoundAlive->pCloseCb((int) nType, FALSE,
+                                                         (void *) pSoundAlive->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_sound_alive_popup_key_event_cb(void *pUserData,
+                                                                                               Evas_Object * pObj,
+                                                                                               void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SoundAlivePopup *pSoundAlive = (SoundAlivePopup *) pUserData;
+
+       if (pSoundAlive->pCloseCb) {
+               pSoundAlive->pCloseCb(VIDEO_SA_NONE, FALSE,
+                                                         (void *) pSoundAlive->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_sound_alive_popup_mouse_event_cb(void *pUserData,
+                                                                                                 Evas * pEvas,
+                                                                                                 Evas_Object * pObj,
+                                                                                                 void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Evas_Event_Mouse_Up *ev = pEventInfo;
+
+       if (ev->button == 3) {
+               SoundAlivePopup *pSoundAlive = (SoundAlivePopup *) pUserData;
+
+               if (pSoundAlive->pCloseCb) {
+                       pSoundAlive->pCloseCb(VIDEO_SA_NONE, FALSE,
+                                                                 (void *) pSoundAlive->pUserData);
+               }
+       }
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_sound_alive_create_genlist(Evas_Object * pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_genlist_add(pParent);
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(pObj);
+       return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_sound_alive_add_genlist_item(Evas_Object * pObj,
+                                                                                        void *pUserData)
+{
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return FALSE;
+       }
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return FALSE;
+       }
+
+       SoundAlivePopup *pSoundAlive = (SoundAlivePopup *) pUserData;
+
+       if (pSoundAlive->st_Sa_Itc) {
+               elm_genlist_item_class_free(pSoundAlive->st_Sa_Itc);
+               pSoundAlive->st_Sa_Itc = NULL;
+       }
+
+       pSoundAlive->st_Sa_Itc = elm_genlist_item_class_new();
+
+       if (pSoundAlive->st_Sa_Itc != NULL) {
+               pSoundAlive->st_Sa_Itc->version = ELM_GENLIST_ITEM_CLASS_VERSION;
+               pSoundAlive->st_Sa_Itc->item_style = "1line";
+               pSoundAlive->st_Sa_Itc->func.text_get =
+                       (void *) __vp_sound_alive_genlist_text_get_cb;
+               pSoundAlive->st_Sa_Itc->func.content_get =
+                       (void *) __vp_sound_alive_genlist_content_get_cb;
+               pSoundAlive->st_Sa_Itc->func.state_get = NULL;
+               pSoundAlive->st_Sa_Itc->func.del = NULL;
+       }
+
+       pSoundAlive->nListCount = 0;
+
+       elm_genlist_item_append(pObj, pSoundAlive->st_Sa_Itc,
+                                                       (void *) VP_PLAY_STRING_SOUND_ALIVE_NORMAL,
+                                                       NULL, ELM_GENLIST_ITEM_NONE,
+                                                       __vp_sound_alive_genlist_item_selected_cb,
+                                                       pUserData);
+       pSoundAlive->nListCount++;
+
+       video_sound_device_type_t nSoundDevType = VP_SOUND_DEVICE_NONE;
+       vp_sound_get_active_device(&nSoundDevType);
+       if (nSoundDevType == VP_SOUND_DEVICE_SPEAKER) {
+               elm_genlist_item_append(pObj, pSoundAlive->st_Sa_Itc,
+                                                               (void *) VP_PLAY_STRING_SOUND_ALIVE_VOICE,
+                                                               NULL, ELM_GENLIST_ITEM_NONE,
+                                                               __vp_sound_alive_genlist_item_selected_cb,
+                                                               pUserData);
+               pSoundAlive->nListCount++;
+       } else if (nSoundDevType == VP_SOUND_DEVICE_HDMI
+                          || nSoundDevType == VP_SOUND_DEVICE_BLUETOOTH) {
+       } else {
+               elm_genlist_item_append(pObj, pSoundAlive->st_Sa_Itc,
+                                                               (void *) VP_PLAY_STRING_SOUND_ALIVE_VOICE,
+                                                               NULL, ELM_GENLIST_ITEM_NONE,
+                                                               __vp_sound_alive_genlist_item_selected_cb,
+                                                               pUserData);
+               pSoundAlive->nListCount++;
+               elm_genlist_item_append(pObj, pSoundAlive->st_Sa_Itc,
+                                                               (void *) VP_PLAY_STRING_SOUND_ALIVE_MOVIE,
+                                                               NULL, ELM_GENLIST_ITEM_NONE,
+                                                               __vp_sound_alive_genlist_item_selected_cb,
+                                                               pUserData);
+               pSoundAlive->nListCount++;
+               elm_genlist_item_append(pObj, pSoundAlive->st_Sa_Itc,
+                                                               (void *) VP_PLAY_STRING_SOUND_ALIVE_71CH,
+                                                               NULL, ELM_GENLIST_ITEM_NONE,
+                                                               __vp_sound_alive_genlist_item_selected_cb,
+                                                               pUserData);
+               pSoundAlive->nListCount++;
+       }
+
+       return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pMediaUrl
+ * @param pCloseCb
+ * @param nType
+ * @return
+ */
+sound_alive_handle vp_sound_alive_create(Evas_Object * pParent,
+                                                                                char *pMediaUrl,
+                                                                                PopupCloseCbFunc pCloseCb,
+                                                                                video_sound_alive_t nType)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       if (pMediaUrl == NULL) {
+               VideoLogError("pMediaUrl is NULL");
+               return NULL;
+       }
+
+       SoundAlivePopup *pSoundAlive = NULL;
+
+       pSoundAlive = calloc(1, sizeof(SoundAlivePopup));
+
+       if (pSoundAlive == NULL) {
+               VideoLogError("pSoundAlive alloc fail");
+               return NULL;
+       }
+
+       pSoundAlive->pParent = pParent;
+       pSoundAlive->pCloseCb = pCloseCb;
+
+       VP_STRDUP(pSoundAlive->pMediUrl, pMediaUrl);
+
+       pSoundAlive->pPopup =
+               vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+                                               VP_PLAY_STRING_POPUP_SOUND_ALIVE, NULL, 0.0, NULL,
+                                               __vp_sound_alive_popup_key_event_cb,
+                                               __vp_sound_alive_popup_mouse_event_cb,
+                                               (void *) pSoundAlive);
+       if (pSoundAlive->pPopup == NULL) {
+               VideoLogError("vp_popup_create fail");
+               _vp_sound_alive_destroy_handle(pSoundAlive);
+               return NULL;
+       }
+
+       pSoundAlive->pGenList =
+               _vp_sound_alive_create_genlist(pSoundAlive->pPopup);
+       if (pSoundAlive->pGenList == NULL) {
+               VideoLogError("_vp_sound_alive_create_genlist fail");
+               _vp_sound_alive_destroy_handle(pSoundAlive);
+               return NULL;
+       }
+       evas_object_data_set(pSoundAlive->pGenList,
+                                                VP_SOUND_ALIVE_GENLIST_DATA_KEY,
+                                                (void *) pSoundAlive);
+       evas_object_smart_callback_add(pSoundAlive->pGenList, "realized",
+                                                                  __vp_sound_alive_genlist_realized,
+                                                                  NULL);
+
+       pSoundAlive->pRadio = elm_radio_add(pSoundAlive->pGenList);
+
+       if (!_vp_sound_alive_add_genlist_item
+               (pSoundAlive->pGenList, (void *) pSoundAlive)) {
+               VideoLogError("_vp_sound_alive_add_genlist_item fail");
+               _vp_sound_alive_destroy_handle(pSoundAlive);
+               return NULL;
+       }
+
+       VideoLogInfo("nType: %d", nType);
+       pSoundAlive->soundAliveType = nType;
+       evas_object_smart_callback_add(pSoundAlive->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_sound_alive_popup_rotate_cb,
+                                                                  pSoundAlive);
+
+       pSoundAlive->pBox = elm_box_add(pSoundAlive->pPopup);
+
+       vp_popup_set_popup_min_size(pSoundAlive->pParent, pSoundAlive->pBox,
+                                                               pSoundAlive->nListCount,
+                                                               VIDEO_POPUP_DEFAULT);
+
+       elm_box_pack_end(pSoundAlive->pBox, pSoundAlive->pGenList);
+
+       elm_object_content_set(pSoundAlive->pPopup, pSoundAlive->pBox);
+
+       return pSoundAlive;
+}
+
+/**
+ *
+ * @param pSAHandle
+ */
+void vp_sound_alive_destroy(sound_alive_handle pSAHandle)
+{
+       if (pSAHandle == NULL) {
+               VideoLogError("pSAHandle is NULL");
+               return;
+       }
+
+       SoundAlivePopup *pSoundAlive = (SoundAlivePopup *) pSAHandle;
+
+       _vp_sound_alive_destroy_handle(pSoundAlive);
+
+}
+
+/**
+ *
+ * @param pSAHandle
+ * @return
+ */
+bool vp_sound_alive_realize(sound_alive_handle pSAHandle)
+{
+       if (pSAHandle == NULL) {
+               VideoLogError("pSAHandle is NULL");
+               return FALSE;
+       }
+
+       SoundAlivePopup *pSoundAlive = (SoundAlivePopup *) pSAHandle;
+
+       evas_object_show(pSoundAlive->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSAHandle
+ * @return
+ */
+bool vp_sound_alive_unrealize(sound_alive_handle pSAHandle)
+{
+       if (pSAHandle == NULL) {
+               VideoLogError("pSAHandle is NULL");
+               return FALSE;
+       }
+
+       SoundAlivePopup *pSoundAlive = (SoundAlivePopup *) pSAHandle;
+
+       evas_object_hide(pSoundAlive->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSAHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_sound_alive_set_user_data(sound_alive_handle pSAHandle,
+                                                                 void *pUserData)
+{
+       if (pSAHandle == NULL) {
+               VideoLogError("pSAHandle is NULL");
+               return FALSE;
+       }
+
+       SoundAlivePopup *pSoundAlive = (SoundAlivePopup *) pSAHandle;
+
+       pSoundAlive->pUserData = pUserData;
+
+       return TRUE;
+}
diff --git a/playview/src/feature/vp-sound-path.c b/playview/src/feature/vp-sound-path.c
new file mode 100755 (executable)
index 0000000..cf3f903
--- /dev/null
@@ -0,0 +1,634 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-sound.h"
+#include "vp-sound-path.h"
+#include <glib.h>
+
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SOUND_PATH_GENLIST_DATA_KEY         "vp.sound.path.genlist"
+
+typedef struct _SoundPathPopup {
+       Evas_Object *pParent;
+       Evas_Object *pPopup;
+       Evas_Object *pRadio;
+       Evas_Object *pButton;
+       Evas_Object *pBox;
+       Evas_Object *pGenList;
+       Elm_Genlist_Item_Class *st_Sp_Itc;
+
+       void *pUserData;
+       PopupCloseCbFunc pCloseCb;
+
+       char *szBTName;
+
+       int nItemCnt;
+       video_sound_path_t soundPathType;
+} SoundPathPopup;
+
+static void __vp_sound_path_genlist_item_selected_cb(void *pUserData,
+                                                                                                        Evas_Object *
+                                                                                                        pObject,
+                                                                                                        void *pEventInfo);
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_sound_genlist_realized(void *data, Evas_Object * obj,
+                                                                               void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_sound_path_popup_rotate_cb(void *data, Evas_Object * obj,
+                                                                                       void *event_info)
+{
+       SoundPathPopup *pSoundPath = (SoundPathPopup *) data;
+       if (!pSoundPath) {
+               VideoLogError("pSoundPath IS null");
+               return;
+       }
+       if (pSoundPath->nItemCnt < VP_POPUP_MIN_ITEMS) {
+               return;
+       }
+       vp_popup_set_popup_min_size(pSoundPath->pParent, pSoundPath->pBox,
+                                                               pSoundPath->nItemCnt, VIDEO_POPUP_DEFAULT);
+
+}
+
+/**
+ *
+ * @param pSoundPath
+ */
+static void _vp_sound_path_destroy_handle(SoundPathPopup * pSoundPath)
+{
+       if (pSoundPath == NULL) {
+               VideoLogError("pSoundPath is NULL");
+               return;
+       }
+       evas_object_smart_callback_del(pSoundPath->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_sound_path_popup_rotate_cb);
+       evas_object_smart_callback_del(pSoundPath->pGenList, "realized",
+                                                                  __vp_sound_genlist_realized);
+
+       VP_EVAS_DEL(pSoundPath->pRadio);
+       VP_EVAS_DEL(pSoundPath->pGenList);
+       VP_EVAS_DEL(pSoundPath->pButton);
+       VP_EVAS_DEL(pSoundPath->pBox);
+
+       if (pSoundPath->st_Sp_Itc) {
+               elm_genlist_item_class_free(pSoundPath->st_Sp_Itc);
+               pSoundPath->st_Sp_Itc = NULL;
+       }
+
+
+       VP_EVAS_DEL(pSoundPath->pPopup);
+
+       VP_FREE(pSoundPath->szBTName);
+
+       VP_FREE(pSoundPath);
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_sound_path_genlist_text_get_cb(const void *pUserData,
+                                                                                                Evas_Object * pObj,
+                                                                                                const char *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!strcmp(pPart, "elm.text.main.left")) {
+               return strdup(szTxt);
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_sound_path_genlist_content_get_cb(const void
+                                                                                                                  *pUserData,
+                                                                                                                  Evas_Object *
+                                                                                                                  pObj,
+                                                                                                                  const char
+                                                                                                                  *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!strcmp(pPart, "elm.icon.2")) {
+               Evas_Object *pRadioObj = NULL;
+               Evas_Object *pLayout = NULL;
+
+               SoundPathPopup *pSoundPath =
+                       (SoundPathPopup *) evas_object_data_get(pObj,
+                                                                                                       VP_SOUND_PATH_GENLIST_DATA_KEY);
+               if (pSoundPath == NULL) {
+                       VideoLogWarning("evas_object_data_get is fail");
+                       return NULL;
+               }
+
+               video_sound_path_t nType = VIDEO_SOUND_PATH_NONE;
+
+               if (!g_strcmp0(szTxt, VP_PLAY_STRING_SOUND_SPEAKER)) {
+                       nType = VIDEO_SOUND_PATH_SPEAKER;
+               } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_SOUND_EARJACK)) {
+                       nType = VIDEO_SOUND_PATH_EARJACK;
+               } else if (!g_strcmp0(szTxt, pSoundPath->szBTName)) {
+                       nType = VIDEO_SOUND_PATH_BLUETOOTH;
+               } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_SOUND_HDMI)) {
+                       nType = VIDEO_SOUND_PATH_HDMI;
+               } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_SOUND_MIRRORING)) {
+                       nType = VIDEO_SOUND_PATH_MIRRORING;
+               } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_SOUND_USB_AUDIO)) {
+                       nType = VIDEO_SOUND_PATH_USB_AUDIO;
+               }
+
+               pLayout = elm_layout_add(pObj);
+               pRadioObj = elm_radio_add(pLayout);
+
+               elm_layout_theme_set(pLayout, "layout", "list/C/type.2",
+                                                        "default");
+               elm_radio_group_add(pRadioObj, pSoundPath->pRadio);
+               elm_radio_state_value_set(pRadioObj, nType);
+
+               if (nType == pSoundPath->soundPathType) {
+                       VideoLogInfo("pSoundPath->soundPathType = %d",
+                                                pSoundPath->soundPathType);
+                       elm_radio_value_set(pSoundPath->pRadio, nType);
+               }
+
+               evas_object_smart_callback_add(pRadioObj, "changed",
+                                                                          __vp_sound_path_genlist_item_selected_cb,
+                                                                          (void *) pUserData);
+               elm_object_part_content_set(pLayout, "elm.swallow.content",
+                                                                       pRadioObj);
+               evas_object_show(pRadioObj);
+               evas_object_show(pLayout);
+
+               return pLayout;
+       }
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_sound_path_genlist_item_selected_cb(void *pUserData,
+                                                                                                        Evas_Object * pObject,
+                                                                                                        void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       char *szTxt = (char *) elm_object_item_data_get(pItem);
+
+       SoundPathPopup *pSoundPath = (SoundPathPopup *) pUserData;
+
+       if (szTxt == NULL) {
+               VideoLogError("szTxt is NULL");
+               return;
+       }
+
+       video_sound_path_t nType = VIDEO_SOUND_PATH_NONE;
+
+       if (!g_strcmp0(szTxt, VP_PLAY_STRING_SOUND_SPEAKER)) {
+               VideoLogWarning
+                       ("SELECT SOUND PATH ITEM (VP_PLAY_STRING_SOUND_SPEAKER)");
+               nType = VIDEO_SOUND_PATH_SPEAKER;
+               vp_sound_set_active_route(VP_SOUND_DEVICE_SPEAKER);
+       } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_SOUND_EARJACK)) {
+               VideoLogWarning
+                       ("SELECT SOUND PATH ITEM (VP_PLAY_STRING_SOUND_EARJACK)");
+               nType = VIDEO_SOUND_PATH_EARJACK;
+               vp_sound_set_active_route(VP_SOUND_DEVICE_EARJACK);
+       } else if (!g_strcmp0(szTxt, pSoundPath->szBTName)) {
+               nType = VIDEO_SOUND_PATH_BLUETOOTH;
+               VideoLogWarning
+                       ("SELECT SOUND PATH ITEM (VIDEO_SOUND_PATH_BLUETOOTH)");
+               vp_sound_set_active_route(VP_SOUND_DEVICE_BLUETOOTH);
+       } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_SOUND_HDMI)) {
+               VideoLogWarning("SELECT SOUND PATH ITEM (VIDEO_SOUND_PATH_HDMI)");
+               nType = VIDEO_SOUND_PATH_HDMI;
+               vp_sound_set_active_route(VP_SOUND_DEVICE_HDMI);
+       } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_SOUND_MIRRORING)) {
+               VideoLogWarning
+                       ("SELECT SOUND PATH ITEM (VIDEO_SOUND_PATH_MIRRORING)");
+               nType = VIDEO_SOUND_PATH_MIRRORING;
+               vp_sound_set_active_route(VP_SOUND_DEVICE_MIRRORING);
+       } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_SOUND_USB_AUDIO)) {
+               VideoLogWarning
+                       ("SELECT SOUND PATH ITEM (VIDEO_SOUND_PATH_USB_AUDIO)");
+               nType = VIDEO_SOUND_PATH_USB_AUDIO;
+               vp_sound_set_active_route(VP_SOUND_DEVICE_USB_AUDIO);
+       }
+
+       pSoundPath->soundPathType = nType;
+       if (pSoundPath->pCloseCb) {
+               pSoundPath->pCloseCb((int) nType, FALSE,
+                                                        (void *) pSoundPath->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_sound_path_popup_key_event_cb(void *pUserData,
+                                                                                          Evas_Object * pObj,
+                                                                                          void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SoundPathPopup *pSoundPath = (SoundPathPopup *) pUserData;
+
+       if (pSoundPath->pCloseCb) {
+               pSoundPath->pCloseCb(VIDEO_SOUND_PATH_NONE, FALSE,
+                                                        (void *) pSoundPath->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_sound_path_popup_mouse_event_cb(void *pUserData,
+                                                                                                Evas * pEvas,
+                                                                                                Evas_Object * pObj,
+                                                                                                void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Evas_Event_Mouse_Up *ev = pEventInfo;
+
+       if (ev->button == 3) {
+               SoundPathPopup *pSoundPath = (SoundPathPopup *) pUserData;
+
+               if (pSoundPath->pCloseCb) {
+                       pSoundPath->pCloseCb(VIDEO_SOUND_PATH_NONE, FALSE,
+                                                                (void *) pSoundPath->pUserData);
+               }
+       }
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_sound_path_create_genlist(Evas_Object * pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_genlist_add(pParent);
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(pObj);
+       return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_sound_path_add_genlist_item(Evas_Object * pObj,
+                                                                                       void *pUserData)
+{
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return FALSE;
+       }
+
+       SoundPathPopup *pSoundPath = (SoundPathPopup *) pUserData;
+
+       if (pSoundPath->st_Sp_Itc) {
+               elm_genlist_item_class_free(pSoundPath->st_Sp_Itc);
+               pSoundPath->st_Sp_Itc = NULL;
+       }
+
+       pSoundPath->st_Sp_Itc = elm_genlist_item_class_new();
+
+       if (pSoundPath->st_Sp_Itc != NULL) {
+               pSoundPath->st_Sp_Itc->version = ELM_GENLIST_ITEM_CLASS_VERSION;
+               pSoundPath->st_Sp_Itc->item_style = "1line";
+               pSoundPath->st_Sp_Itc->func.text_get =
+                       (void *) __vp_sound_path_genlist_text_get_cb;
+               pSoundPath->st_Sp_Itc->func.content_get =
+                       (void *) __vp_sound_path_genlist_content_get_cb;
+               pSoundPath->st_Sp_Itc->func.state_get = NULL;
+               pSoundPath->st_Sp_Itc->func.del = NULL;
+       }
+
+       if (vp_sound_device_is_enable(VP_SOUND_DEVICE_BLUETOOTH, pSoundPath)) {
+               char *szBTName = NULL;
+               if (vp_sound_get_a2dp_name(&szBTName)) {
+                       VP_STRDUP(pSoundPath->szBTName, szBTName);
+                       VP_FREE(szBTName);
+                       elm_genlist_item_append(pObj, pSoundPath->st_Sp_Itc,
+                                                                       (void *) pSoundPath->szBTName, NULL,
+                                                                       ELM_GENLIST_ITEM_NONE,
+                                                                       __vp_sound_path_genlist_item_selected_cb,
+                                                                       pUserData);
+                       pSoundPath->nItemCnt++;
+               }
+       }
+
+       if (vp_sound_device_is_enable(VP_SOUND_DEVICE_HDMI, pSoundPath)) {
+               elm_genlist_item_append(pObj, pSoundPath->st_Sp_Itc,
+                                                               (void *) VP_PLAY_STRING_SOUND_HDMI, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               __vp_sound_path_genlist_item_selected_cb,
+                                                               pUserData);
+               pSoundPath->nItemCnt++;
+       }
+
+       if (vp_sound_device_is_enable(VP_SOUND_DEVICE_MIRRORING, pSoundPath)) {
+               elm_genlist_item_append(pObj, pSoundPath->st_Sp_Itc,
+                                                               (void *) VP_PLAY_STRING_SOUND_MIRRORING,
+                                                               NULL, ELM_GENLIST_ITEM_NONE,
+                                                               __vp_sound_path_genlist_item_selected_cb,
+                                                               pUserData);
+               pSoundPath->nItemCnt++;
+       }
+
+       if (vp_sound_device_is_enable(VP_SOUND_DEVICE_USB_AUDIO, pSoundPath)) {
+               elm_genlist_item_append(pObj, pSoundPath->st_Sp_Itc,
+                                                               (void *) VP_PLAY_STRING_SOUND_USB_AUDIO,
+                                                               NULL, ELM_GENLIST_ITEM_NONE,
+                                                               __vp_sound_path_genlist_item_selected_cb,
+                                                               pUserData);
+               pSoundPath->nItemCnt++;
+       }
+
+       if (vp_sound_device_is_enable(VP_SOUND_DEVICE_EARJACK, pSoundPath)) {
+               elm_genlist_item_append(pObj, pSoundPath->st_Sp_Itc,
+                                                               (void *) VP_PLAY_STRING_SOUND_EARJACK,
+                                                               NULL, ELM_GENLIST_ITEM_NONE,
+                                                               __vp_sound_path_genlist_item_selected_cb,
+                                                               pUserData);
+               pSoundPath->nItemCnt++;
+       }
+
+       if (vp_sound_device_is_enable(VP_SOUND_DEVICE_EARJACK, pSoundPath)
+               && vp_sound_device_is_enable(VP_SOUND_DEVICE_BLUETOOTH,
+                                                                        pSoundPath)) {
+               VideoLogError("Skip for sound policy");
+       } else {
+               elm_genlist_item_append(pObj, pSoundPath->st_Sp_Itc,
+                                                               (void *) VP_PLAY_STRING_SOUND_SPEAKER,
+                                                               NULL, ELM_GENLIST_ITEM_NONE,
+                                                               __vp_sound_path_genlist_item_selected_cb,
+                                                               pUserData);
+               pSoundPath->nItemCnt++;
+       }
+
+       return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pCloseCb
+ * @return
+ */
+sound_path_handle vp_sound_path_create(Evas_Object * pParent,
+                                                                          PopupCloseCbFunc pCloseCb)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+
+       SoundPathPopup *pSoundPath = NULL;
+
+       pSoundPath = calloc(1, sizeof(SoundPathPopup));
+
+       if (pSoundPath == NULL) {
+               VideoLogError("pSoundPath alloc fail");
+               return NULL;
+       }
+
+       pSoundPath->pParent = pParent;
+       pSoundPath->pCloseCb = pCloseCb;
+
+       pSoundPath->pPopup =
+               vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+                                               VP_PLAY_STRING_SOUND_PATH, NULL, 0.0, NULL,
+                                               __vp_sound_path_popup_key_event_cb,
+                                               __vp_sound_path_popup_mouse_event_cb,
+                                               (void *) pSoundPath);
+       if (pSoundPath->pPopup == NULL) {
+               VideoLogError("vp_popup_create fail");
+               _vp_sound_path_destroy_handle(pSoundPath);
+               return NULL;
+       }
+
+       pSoundPath->pGenList =
+               _vp_sound_path_create_genlist(pSoundPath->pPopup);
+       if (pSoundPath->pGenList == NULL) {
+               VideoLogError("_vp_sound_path_create_genlist fail");
+               _vp_sound_path_destroy_handle(pSoundPath);
+               return NULL;
+       }
+       evas_object_smart_callback_add(pSoundPath->pGenList, "realized",
+                                                                  __vp_sound_genlist_realized, NULL);
+
+       evas_object_data_set(pSoundPath->pGenList,
+                                                VP_SOUND_PATH_GENLIST_DATA_KEY,
+                                                (void *) pSoundPath);
+
+       pSoundPath->pRadio = elm_radio_add(pSoundPath->pGenList);
+
+       if (!_vp_sound_path_add_genlist_item
+               (pSoundPath->pGenList, (void *) pSoundPath)) {
+               VideoLogError("_vp_sound_path_add_genlist_item fail");
+               _vp_sound_path_destroy_handle(pSoundPath);
+               return NULL;
+       }
+
+       video_sound_device_type_t nType = VP_SOUND_DEVICE_NONE;
+
+       vp_sound_get_active_device(&nType);
+       if (nType != VP_SOUND_DEVICE_NONE) {
+               //elm_radio_value_set(pSoundPath->pRadio, nType);
+               pSoundPath->soundPathType = nType;
+       }
+       evas_object_smart_callback_add(pSoundPath->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_sound_path_popup_rotate_cb,
+                                                                  pSoundPath);
+
+       pSoundPath->pBox = elm_box_add(pSoundPath->pPopup);
+
+       vp_popup_set_popup_min_size(pSoundPath->pParent, pSoundPath->pBox,
+                                                               pSoundPath->nItemCnt, VIDEO_POPUP_DEFAULT);
+
+
+       elm_box_pack_end(pSoundPath->pBox, pSoundPath->pGenList);
+
+       elm_object_content_set(pSoundPath->pPopup, pSoundPath->pBox);
+
+       return pSoundPath;
+}
+
+/**
+ *
+ * @param pSoundPathHandle
+ */
+void vp_sound_path_destroy(sound_path_handle pSoundPathHandle)
+{
+       if (pSoundPathHandle == NULL) {
+               VideoLogError("pSoundPathHandle is NULL");
+               return;
+       }
+
+       SoundPathPopup *pSoundPath = (SoundPathPopup *) pSoundPathHandle;
+
+       _vp_sound_path_destroy_handle(pSoundPath);
+
+}
+
+/**
+ *
+ * @param pSoundPathHandle
+ * @return
+ */
+bool vp_sound_path_realize(sound_path_handle pSoundPathHandle)
+{
+       if (pSoundPathHandle == NULL) {
+               VideoLogError("pSoundPathHandle is NULL");
+               return FALSE;
+       }
+
+       SoundPathPopup *pSoundPath = (SoundPathPopup *) pSoundPathHandle;
+
+       evas_object_show(pSoundPath->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSoundPathHandle
+ * @return
+ */
+bool vp_sound_path_unrealize(sound_path_handle pSoundPathHandle)
+{
+       if (pSoundPathHandle == NULL) {
+               VideoLogError("pSoundPathHandle is NULL");
+               return FALSE;
+       }
+
+       SoundPathPopup *pSoundPath = (SoundPathPopup *) pSoundPathHandle;
+
+       evas_object_hide(pSoundPath->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSoundPathHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_sound_path_set_user_data(sound_path_handle pSoundPathHandle,
+                                                                void *pUserData)
+{
+       if (pSoundPathHandle == NULL) {
+               VideoLogError("pSoundPathHandle is NULL");
+               return FALSE;
+       }
+
+       SoundPathPopup *pSoundPath = (SoundPathPopup *) pSoundPathHandle;
+
+       pSoundPath->pUserData = pUserData;
+
+       return TRUE;
+}
diff --git a/playview/src/feature/vp-subtitle-alignment.c b/playview/src/feature/vp-subtitle-alignment.c
new file mode 100755 (executable)
index 0000000..49ce1ce
--- /dev/null
@@ -0,0 +1,591 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-subtitle-alignment.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SUBTITLE_ALIGNMENT_GENLIST_DATA_KEY         "vp.subtitle.alignment.genlist"
+
+typedef struct _SubtitleAlignmentPopup {
+       Evas_Object *pParent;
+       Evas_Object *pPopup;
+       Evas_Object *pRadio;
+       Evas_Object *pButton;
+       Evas_Object *pBox;
+       Evas_Object *pGenList;
+       Elm_Genlist_Item_Class *st_SubtitleAlignment_Itc;
+
+       int nDefaultIndex;
+       int nListCount;
+
+       void *pUserData;
+       PopupCloseCbFunc pCloseCb;
+       video_play_subtitle_alignment_t currentAlignment;
+} SubtitleAlignmentPopup;
+
+static void _vp_subtitle_alignment_destroy_handle(SubtitleAlignmentPopup *
+                                                                                                 pSubtitleAlignment);
+
+static void __vp_subtitle_alignment_genlist_item_selected_cb(void
+                                                                                                                        *pUserData,
+                                                                                                                        Evas_Object *
+                                                                                                                        pObject, void
+                                                                                                                        *pEventInfo);
+
+static void __vp_subtitle_alignment_genlist_realized(void *data,
+                                                                                                        Evas_Object * obj,
+                                                                                                        void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_alignment_popup_rotate_cb(void *data,
+                                                                                                       Evas_Object * obj,
+                                                                                                       void *event_info)
+{
+       SubtitleAlignmentPopup *pSubtitleAlignment =
+               (SubtitleAlignmentPopup *) data;
+       if (!pSubtitleAlignment) {
+               VideoLogError("pSubtitleAlignment IS null");
+               return;
+       }
+       if (pSubtitleAlignment->nListCount < VP_POPUP_MIN_ITEMS) {
+               return;
+       }
+       vp_popup_set_popup_min_size(pSubtitleAlignment->pParent,
+                                                               pSubtitleAlignment->pBox,
+                                                               pSubtitleAlignment->nListCount,
+                                                               VIDEO_POPUP_DEFAULT);
+
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_subtitle_alignment_genlist_text_get_cb(const void
+                                                                                                                *pUserData,
+                                                                                                                Evas_Object *
+                                                                                                                pObj,
+                                                                                                                const char *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!strcmp(pPart, "elm.text")) {
+               return strdup(szTxt);
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_subtitle_alignment_genlist_content_get_cb(const
+                                                                                                                                  void
+                                                                                                                                  *pUserData,
+                                                                                                                                  Evas_Object
+                                                                                                                                  *pObj,
+                                                                                                                                  const
+                                                                                                                                  char
+                                                                                                                                  *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!strcmp(pPart, "elm.swallow.end")) {
+               Evas_Object *pRadioObj = NULL;
+
+               SubtitleAlignmentPopup *pSubtitleAlignment =
+                       (SubtitleAlignmentPopup *) evas_object_data_get(pObj,
+                                                                                                                       VP_SUBTITLE_ALIGNMENT_GENLIST_DATA_KEY);
+               if (pSubtitleAlignment == NULL) {
+                       VideoLogWarning("evas_object_data_get is fail");
+                       return NULL;
+               }
+               video_play_subtitle_alignment_t nAlignment =
+                       VIDEO_SUBTITLE_ALIGNMENT_CENTER;
+               if (!strcmp(szTxt, VP_PLAY_STRING_ALIGNMENT_LEFT)) {
+                       nAlignment = VIDEO_SUBTITLE_ALIGNMENT_LEFT;
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_ALIGNMENT_CENTER)) {
+                       nAlignment = VIDEO_SUBTITLE_ALIGNMENT_CENTER;
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_ALIGNMENT_RIGHT)) {
+                       nAlignment = VIDEO_SUBTITLE_ALIGNMENT_RIGHT;
+               }
+
+               pRadioObj = elm_radio_add(pObj);
+               elm_radio_state_value_set(pRadioObj, nAlignment);
+               elm_radio_group_add(pRadioObj, pSubtitleAlignment->pRadio);
+               elm_radio_value_set(pSubtitleAlignment->pRadio,
+                                                       pSubtitleAlignment->currentAlignment);
+               evas_object_smart_callback_add(pRadioObj, "changed",
+                                                                          __vp_subtitle_alignment_genlist_item_selected_cb,
+                                                                          pSubtitleAlignment);
+               evas_object_show(pRadioObj);
+
+               return pRadioObj;
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_subtitle_alignment_genlist_item_selected_cb(void
+                                                                                                                        *pUserData,
+                                                                                                                        Evas_Object *
+                                                                                                                        pObject,
+                                                                                                                        void
+                                                                                                                        *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+       char *szTxt = (char *) elm_object_item_data_get(pItem);
+
+       SubtitleAlignmentPopup *pSubtitleAlignment =
+               (SubtitleAlignmentPopup *) pUserData;
+
+       if (szTxt == NULL) {
+               VideoLogError("szTxt is NULL");
+               return;
+       }
+
+       video_play_subtitle_alignment_t nAlignment =
+               VIDEO_SUBTITLE_ALIGNMENT_CENTER;
+       if (!strcmp(szTxt, VP_PLAY_STRING_ALIGNMENT_LEFT)) {
+               nAlignment = VIDEO_SUBTITLE_ALIGNMENT_LEFT;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_ALIGNMENT_CENTER)) {
+               nAlignment = VIDEO_SUBTITLE_ALIGNMENT_CENTER;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_ALIGNMENT_RIGHT)) {
+               nAlignment = VIDEO_SUBTITLE_ALIGNMENT_RIGHT;
+       }
+
+       pSubtitleAlignment->currentAlignment = nAlignment;
+       if (pSubtitleAlignment->pCloseCb) {
+               pSubtitleAlignment->pCloseCb(nAlignment, FALSE,
+                                                                        (void *)
+                                                                        pSubtitleAlignment->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_alignment_popup_key_event_cb(void *pUserData,
+                                                                                                          Evas_Object * pObj,
+                                                                                                          void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitleAlignmentPopup *pSubtitleAlignment =
+               (SubtitleAlignmentPopup *) pUserData;
+
+       if (pSubtitleAlignment->pCloseCb) {
+               pSubtitleAlignment->pCloseCb(-1, FALSE,
+                                                                        (void *)
+                                                                        pSubtitleAlignment->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_alignment_popup_mouse_event_cb(void *pUserData,
+                                                                                                                Evas * pEvas,
+                                                                                                                Evas_Object *
+                                                                                                                pObj,
+                                                                                                                void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Evas_Event_Mouse_Up *ev = pEventInfo;
+
+       if (ev->button == 3) {
+               SubtitleAlignmentPopup *pSubtitleAlignment =
+                       (SubtitleAlignmentPopup *) pUserData;
+
+               if (pSubtitleAlignment->pCloseCb) {
+                       pSubtitleAlignment->pCloseCb(-1, FALSE,
+                                                                                (void *)
+                                                                                pSubtitleAlignment->pUserData);
+               }
+       }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pSubtitleAlignment
+ */
+static void _vp_subtitle_alignment_destroy_handle(SubtitleAlignmentPopup *
+                                                                                                 pSubtitleAlignment)
+{
+       if (pSubtitleAlignment == NULL) {
+               VideoLogError("pSubtitleAlignment is NULL");
+               return;
+       }
+
+       evas_object_smart_callback_del(pSubtitleAlignment->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_subtitle_alignment_popup_rotate_cb);
+       evas_object_smart_callback_del(pSubtitleAlignment->pGenList,
+                                                                  "realized",
+                                                                  __vp_subtitle_alignment_genlist_realized);
+
+       VP_EVAS_DEL(pSubtitleAlignment->pRadio);
+
+       VP_EVAS_DEL(pSubtitleAlignment->pGenList);
+       VP_EVAS_DEL(pSubtitleAlignment->pButton);
+       VP_EVAS_DEL(pSubtitleAlignment->pBox);
+
+       if (pSubtitleAlignment->st_SubtitleAlignment_Itc) {
+               elm_genlist_item_class_free
+                       (pSubtitleAlignment->st_SubtitleAlignment_Itc);
+               pSubtitleAlignment->st_SubtitleAlignment_Itc = NULL;
+       }
+
+       VP_EVAS_DEL(pSubtitleAlignment->pPopup);
+
+       VP_FREE(pSubtitleAlignment);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_alignment_create_genlist(Evas_Object *
+                                                                                                                 pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_genlist_add(pParent);
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(pObj);
+       return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_subtitle_alignment_add_genlist_item(Evas_Object * pObj,
+                                                                                                       void *pUserData)
+{
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return FALSE;
+       }
+
+       SubtitleAlignmentPopup *pSubtitleAlignment =
+               (SubtitleAlignmentPopup *) pUserData;
+
+       if (pSubtitleAlignment->st_SubtitleAlignment_Itc) {
+               elm_genlist_item_class_free
+                       (pSubtitleAlignment->st_SubtitleAlignment_Itc);
+               pSubtitleAlignment->st_SubtitleAlignment_Itc = NULL;
+       }
+
+       pSubtitleAlignment->st_SubtitleAlignment_Itc =
+               elm_genlist_item_class_new();
+
+       if (pSubtitleAlignment->st_SubtitleAlignment_Itc != NULL) {
+               pSubtitleAlignment->st_SubtitleAlignment_Itc->version =
+                       ELM_GENLIST_ITEM_CLASS_VERSION;
+               pSubtitleAlignment->st_SubtitleAlignment_Itc->item_style = "type1";
+               pSubtitleAlignment->st_SubtitleAlignment_Itc->func.text_get =
+                       (void *) __vp_subtitle_alignment_genlist_text_get_cb;
+               pSubtitleAlignment->st_SubtitleAlignment_Itc->func.content_get =
+                       (void *) __vp_subtitle_alignment_genlist_content_get_cb;
+               pSubtitleAlignment->st_SubtitleAlignment_Itc->func.state_get =
+                       NULL;
+               pSubtitleAlignment->st_SubtitleAlignment_Itc->func.del = NULL;
+               pSubtitleAlignment->nListCount = 0;
+
+               elm_genlist_item_append(pObj,
+                                                               pSubtitleAlignment->
+                                                               st_SubtitleAlignment_Itc,
+                                                               (void *) VP_PLAY_STRING_ALIGNMENT_LEFT,
+                                                               NULL, ELM_GENLIST_ITEM_NONE,
+                                                               __vp_subtitle_alignment_genlist_item_selected_cb,
+                                                               pUserData);
+               pSubtitleAlignment->nListCount++;
+               elm_genlist_item_append(pObj,
+                                                               pSubtitleAlignment->
+                                                               st_SubtitleAlignment_Itc,
+                                                               (void *) VP_PLAY_STRING_ALIGNMENT_CENTER,
+                                                               NULL, ELM_GENLIST_ITEM_NONE,
+                                                               __vp_subtitle_alignment_genlist_item_selected_cb,
+                                                               pUserData);
+               pSubtitleAlignment->nListCount++;
+               elm_genlist_item_append(pObj,
+                                                               pSubtitleAlignment->
+                                                               st_SubtitleAlignment_Itc,
+                                                               (void *) VP_PLAY_STRING_ALIGNMENT_RIGHT,
+                                                               NULL, ELM_GENLIST_ITEM_NONE,
+                                                               __vp_subtitle_alignment_genlist_item_selected_cb,
+                                                               pUserData);
+               pSubtitleAlignment->nListCount++;
+       }
+
+       return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pCloseCb
+ * @param nDefaultAlign
+ * @return
+ */
+subtitle_alignment_handle vp_subtitle_alignment_create(Evas_Object *
+                                                                                                          pParent,
+                                                                                                          PopupCloseCbFunc
+                                                                                                          pCloseCb,
+                                                                                                          int nDefaultAlign)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       SubtitleAlignmentPopup *pSubtitleAlignment = NULL;
+
+       pSubtitleAlignment = calloc(1, sizeof(SubtitleAlignmentPopup));
+
+       if (pSubtitleAlignment == NULL) {
+               VideoLogError("pSubtitleAlignment alloc fail");
+               return NULL;
+       }
+
+       pSubtitleAlignment->pParent = pParent;
+       pSubtitleAlignment->pCloseCb = pCloseCb;
+
+       pSubtitleAlignment->pPopup =
+               vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+                                               VP_PLAY_STRING_SUBTITLE_ALIGNMENT, NULL, 0.0,
+                                               NULL, __vp_subtitle_alignment_popup_key_event_cb,
+                                               __vp_subtitle_alignment_popup_mouse_event_cb,
+                                               (void *) pSubtitleAlignment);
+
+       if (pSubtitleAlignment->pPopup == NULL) {
+               VideoLogError("vp_popup_create fail");
+               _vp_subtitle_alignment_destroy_handle(pSubtitleAlignment);
+               return NULL;
+       }
+       pSubtitleAlignment->pGenList =
+               _vp_subtitle_alignment_create_genlist(pSubtitleAlignment->pPopup);
+       if (pSubtitleAlignment->pGenList == NULL) {
+               VideoLogError("_vp_subtitle_alignment_create_genlist fail");
+               _vp_subtitle_alignment_destroy_handle(pSubtitleAlignment);
+               return NULL;
+       }
+       evas_object_data_set(pSubtitleAlignment->pGenList,
+                                                VP_SUBTITLE_ALIGNMENT_GENLIST_DATA_KEY,
+                                                (void *) pSubtitleAlignment);
+       evas_object_smart_callback_add(pSubtitleAlignment->pGenList,
+                                                                  "realized",
+                                                                  __vp_subtitle_alignment_genlist_realized,
+                                                                  NULL);
+
+       pSubtitleAlignment->nDefaultIndex = nDefaultAlign;
+       pSubtitleAlignment->pRadio =
+               elm_radio_add(pSubtitleAlignment->pGenList);
+
+       if (!_vp_subtitle_alignment_add_genlist_item
+               (pSubtitleAlignment->pGenList, (void *) pSubtitleAlignment)) {
+               VideoLogError("_vp_subtitle_alignment_add_genlist_item fail");
+               _vp_subtitle_alignment_destroy_handle(pSubtitleAlignment);
+               return FALSE;
+       }
+
+       pSubtitleAlignment->currentAlignment = nDefaultAlign;
+       evas_object_smart_callback_add(pSubtitleAlignment->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_subtitle_alignment_popup_rotate_cb,
+                                                                  pSubtitleAlignment);
+
+       pSubtitleAlignment->pBox = elm_box_add(pSubtitleAlignment->pPopup);
+       vp_popup_set_popup_min_size(pSubtitleAlignment->pParent,
+                                                               pSubtitleAlignment->pBox,
+                                                               pSubtitleAlignment->nListCount,
+                                                               VIDEO_POPUP_DEFAULT);
+       elm_box_pack_end(pSubtitleAlignment->pBox,
+                                        pSubtitleAlignment->pGenList);
+       elm_object_content_set(pSubtitleAlignment->pPopup,
+                                                  pSubtitleAlignment->pBox);
+
+       return pSubtitleAlignment;
+}
+
+/**
+ *
+ * @param pSubtitleAlignmentHandle
+ */
+void vp_subtitle_alignment_destroy(subtitle_alignment_handle
+                                                                  pSubtitleAlignmentHandle)
+{
+       if (pSubtitleAlignmentHandle == NULL) {
+               VideoLogError("pSubtitleAlignmentHandle is NULL");
+               return;
+       }
+
+       SubtitleAlignmentPopup *pSubtitleAlignment =
+               (SubtitleAlignmentPopup *) pSubtitleAlignmentHandle;
+
+       _vp_subtitle_alignment_destroy_handle(pSubtitleAlignment);
+
+}
+
+/**
+ *
+ * @param pSubtitleAlignmentHandle
+ * @return
+ */
+bool vp_subtitle_alignment_realize(subtitle_alignment_handle
+                                                                  pSubtitleAlignmentHandle)
+{
+       if (pSubtitleAlignmentHandle == NULL) {
+               VideoLogError("pSubtitleAlignmentHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleAlignmentPopup *pSubtitleAlignment =
+               (SubtitleAlignmentPopup *) pSubtitleAlignmentHandle;
+
+       evas_object_show(pSubtitleAlignment->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleAlignmentHandle
+ * @return
+ */
+bool vp_subtitle_alignment_unrealize(subtitle_alignment_handle
+                                                                        pSubtitleAlignmentHandle)
+{
+       if (pSubtitleAlignmentHandle == NULL) {
+               VideoLogError("pSubtitleAlignmentHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleAlignmentPopup *pSubtitleAlignment =
+               (SubtitleAlignmentPopup *) pSubtitleAlignmentHandle;
+
+       evas_object_hide(pSubtitleAlignment->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleAlignmentHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_subtitle_alignment_set_user_data(subtitle_alignment_handle
+                                                                                pSubtitleAlignmentHandle,
+                                                                                void *pUserData)
+{
+       if (pSubtitleAlignmentHandle == NULL) {
+               VideoLogError("pSubtitleAlignmentHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleAlignmentPopup *pSubtitleAlignment =
+               (SubtitleAlignmentPopup *) pSubtitleAlignmentHandle;
+
+       pSubtitleAlignment->pUserData = pUserData;
+
+       return TRUE;
+}
diff --git a/playview/src/feature/vp-subtitle-bg-color.c b/playview/src/feature/vp-subtitle-bg-color.c
new file mode 100755 (executable)
index 0000000..19be1f9
--- /dev/null
@@ -0,0 +1,590 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-subtitle-bg-color.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SUBTITLE_BG_COLOR_GENLIST_DATA_KEY          "vp.subtitle.bg.color.genlist"
+
+
+typedef struct _SubtitleBGColorPopup {
+       Evas_Object *pParent;
+       Evas_Object *pPopup;
+       Evas_Object *pRadio;
+       Evas_Object *pButton;
+       Evas_Object *pBox;
+       Evas_Object *pGenList;
+       Elm_Genlist_Item_Class *st_SubtitleBGColor_Itc;
+
+       int nDefaultIndex;
+       int nListCount;
+
+       void *pUserData;
+       PopupCloseCbFunc pCloseCb;
+       video_play_subtitle_color_t currentBgColor;
+} SubtitleBGColorPopup;
+
+
+
+static void _vp_subtitle_bg_color_destroy_handle(SubtitleBGColorPopup *
+                                                                                                pSubtitleBGColor);
+static void __vp_subtitle_bg_color_genlist_item_selected_cb(void
+                                                                                                                       *pUserData,
+                                                                                                                       Evas_Object *
+                                                                                                                       pObject,
+                                                                                                                       void
+                                                                                                                       *pEventInfo);
+
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_bg_color_genlist_realized(void *data,
+                                                                                                       Evas_Object * obj,
+                                                                                                       void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_bg_color_popup_rotate_cb(void *data,
+                                                                                                  Evas_Object * obj,
+                                                                                                  void *event_info)
+{
+       SubtitleBGColorPopup *pSubtitleBGColor = (SubtitleBGColorPopup *) data;
+       if (!pSubtitleBGColor) {
+               VideoLogError("pSubtitleBGColor IS null");
+               return;
+       }
+       if (pSubtitleBGColor->nListCount < VP_POPUP_MIN_ITEMS) {
+               return;
+       }
+       vp_popup_set_popup_min_size(pSubtitleBGColor->pParent,
+                                                               pSubtitleBGColor->pBox,
+                                                               pSubtitleBGColor->nListCount,
+                                                               VIDEO_POPUP_DEFAULT);
+
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_subtitle_bg_color_genlist_text_get_cb(const void
+                                                                                                               *pUserData,
+                                                                                                               Evas_Object * pObj,
+                                                                                                               const char *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!strcmp(pPart, "elm.text")) {
+               return strdup(szTxt);
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_subtitle_bg_color_genlist_content_get_cb(const
+                                                                                                                                 void
+                                                                                                                                 *pUserData,
+                                                                                                                                 Evas_Object
+                                                                                                                                 *pObj,
+                                                                                                                                 const
+                                                                                                                                 char
+                                                                                                                                 *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!strcmp(pPart, "elm.icon")) {
+               Evas_Object *pRadioObj = NULL;
+
+               SubtitleBGColorPopup *pSubtitleBGColor =
+                       (SubtitleBGColorPopup *) evas_object_data_get(pObj,
+                                                                                                                 VP_SUBTITLE_BG_COLOR_GENLIST_DATA_KEY);
+               if (pSubtitleBGColor == NULL) {
+                       VideoLogWarning("evas_object_data_get is fail");
+                       return NULL;
+               }
+               video_play_subtitle_color_t nColor = VIDEO_SUBTITLE_COLOR_NONE;
+               if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_NONE)) {
+                       nColor = VIDEO_SUBTITLE_COLOR_NONE;
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_BLACK)) {
+                       nColor = VIDEO_SUBTITLE_COLOR_BLACK;
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_WHITE)) {
+                       nColor = VIDEO_SUBTITLE_COLOR_WHITE;
+               }
+
+               pRadioObj = elm_radio_add(pObj);
+               elm_radio_state_value_set(pRadioObj, nColor);
+               elm_radio_group_add(pRadioObj, pSubtitleBGColor->pRadio);
+               elm_radio_value_set(pSubtitleBGColor->pRadio,
+                                                       pSubtitleBGColor->currentBgColor);
+               evas_object_smart_callback_add(pRadioObj, "changed",
+                                                                          __vp_subtitle_bg_color_genlist_item_selected_cb,
+                                                                          pSubtitleBGColor);
+               evas_object_show(pRadioObj);
+
+               return pRadioObj;
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_subtitle_bg_color_genlist_item_selected_cb(void
+                                                                                                                       *pUserData,
+                                                                                                                       Evas_Object *
+                                                                                                                       pObject,
+                                                                                                                       void
+                                                                                                                       *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+       char *szTxt = (char *) elm_object_item_data_get(pItem);
+
+       SubtitleBGColorPopup *pSubtitleBGColor =
+               (SubtitleBGColorPopup *) pUserData;
+
+       if (szTxt == NULL) {
+               VideoLogError("szTxt is NULL");
+               return;
+       }
+
+       video_play_subtitle_color_t nColor = VIDEO_SUBTITLE_COLOR_NONE;
+       if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_NONE)) {
+               nColor = VIDEO_SUBTITLE_COLOR_NONE;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_BLACK)) {
+               nColor = VIDEO_SUBTITLE_COLOR_BLACK;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_WHITE)) {
+               nColor = VIDEO_SUBTITLE_COLOR_WHITE;
+       }
+
+       pSubtitleBGColor->currentBgColor = nColor;
+       if (pSubtitleBGColor->pCloseCb) {
+               pSubtitleBGColor->pCloseCb(nColor, FALSE,
+                                                                  (void *) pSubtitleBGColor->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_bg_color_popup_key_event_cb(void *pUserData,
+                                                                                                         Evas_Object * pObj,
+                                                                                                         void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitleBGColorPopup *pSubtitleBGColor =
+               (SubtitleBGColorPopup *) pUserData;
+
+       if (pSubtitleBGColor->pCloseCb) {
+               pSubtitleBGColor->pCloseCb(-1, FALSE,
+                                                                  (void *) pSubtitleBGColor->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_bg_color_popup_mouse_event_cb(void *pUserData,
+                                                                                                               Evas * pEvas,
+                                                                                                               Evas_Object * pObj,
+                                                                                                               void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Evas_Event_Mouse_Up *ev = pEventInfo;
+
+       if (ev->button == 3) {
+               SubtitleBGColorPopup *pSubtitleBGColor =
+                       (SubtitleBGColorPopup *) pUserData;
+
+               if (pSubtitleBGColor->pCloseCb) {
+                       pSubtitleBGColor->pCloseCb(-1, FALSE,
+                                                                          (void *)
+                                                                          pSubtitleBGColor->pUserData);
+               }
+       }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pSubtitleBGColor
+ */
+static void _vp_subtitle_bg_color_destroy_handle(SubtitleBGColorPopup *
+                                                                                                pSubtitleBGColor)
+{
+       if (pSubtitleBGColor == NULL) {
+               VideoLogError("pSubtitleBGColor is NULL");
+               return;
+       }
+
+       evas_object_smart_callback_del(pSubtitleBGColor->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_subtitle_bg_color_popup_rotate_cb);
+       evas_object_smart_callback_del(pSubtitleBGColor->pGenList, "realized",
+                                                                  __vp_subtitle_bg_color_genlist_realized);
+
+       VP_EVAS_DEL(pSubtitleBGColor->pRadio);
+       VP_EVAS_DEL(pSubtitleBGColor->pGenList);
+       VP_EVAS_DEL(pSubtitleBGColor->pButton);
+       VP_EVAS_DEL(pSubtitleBGColor->pBox);
+
+       if (pSubtitleBGColor->st_SubtitleBGColor_Itc) {
+               elm_genlist_item_class_free
+                       (pSubtitleBGColor->st_SubtitleBGColor_Itc);
+               pSubtitleBGColor->st_SubtitleBGColor_Itc = NULL;
+       }
+
+       VP_EVAS_DEL(pSubtitleBGColor->pPopup);
+
+       VP_FREE(pSubtitleBGColor);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_bg_color_create_genlist(Evas_Object *
+                                                                                                                pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_genlist_add(pParent);
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(pObj);
+       return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_subtitle_bg_color_add_genlist_item(Evas_Object * pObj,
+                                                                                                  void *pUserData)
+{
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return FALSE;
+       }
+
+       SubtitleBGColorPopup *pSubtitleBGColor =
+               (SubtitleBGColorPopup *) pUserData;
+
+       if (pSubtitleBGColor->st_SubtitleBGColor_Itc) {
+               elm_genlist_item_class_free
+                       (pSubtitleBGColor->st_SubtitleBGColor_Itc);
+               pSubtitleBGColor->st_SubtitleBGColor_Itc = NULL;
+       }
+
+       pSubtitleBGColor->st_SubtitleBGColor_Itc =
+               elm_genlist_item_class_new();
+
+       if (pSubtitleBGColor->st_SubtitleBGColor_Itc != NULL) {
+               pSubtitleBGColor->st_SubtitleBGColor_Itc->version =
+                       ELM_GENLIST_ITEM_CLASS_VERSION;
+               pSubtitleBGColor->st_SubtitleBGColor_Itc->item_style =
+                       "1text.1icon.3/popup";
+               pSubtitleBGColor->st_SubtitleBGColor_Itc->func.text_get =
+                       (void *) __vp_subtitle_bg_color_genlist_text_get_cb;
+               pSubtitleBGColor->st_SubtitleBGColor_Itc->func.content_get =
+                       (void *) __vp_subtitle_bg_color_genlist_content_get_cb;
+               pSubtitleBGColor->st_SubtitleBGColor_Itc->func.state_get = NULL;
+               pSubtitleBGColor->st_SubtitleBGColor_Itc->func.del = NULL;
+               pSubtitleBGColor->nListCount = 0;
+
+               elm_genlist_item_append(pObj,
+                                                               pSubtitleBGColor->st_SubtitleBGColor_Itc,
+                                                               (void *)
+                                                               VP_PLAY_STRING_SUBTITLE_COLOR_NONE, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               __vp_subtitle_bg_color_genlist_item_selected_cb,
+                                                               pUserData);
+               pSubtitleBGColor->nListCount++;
+               elm_genlist_item_append(pObj,
+                                                               pSubtitleBGColor->st_SubtitleBGColor_Itc,
+                                                               (void *)
+                                                               VP_PLAY_STRING_SUBTITLE_COLOR_BLACK, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               __vp_subtitle_bg_color_genlist_item_selected_cb,
+                                                               pUserData);
+               pSubtitleBGColor->nListCount++;
+               elm_genlist_item_append(pObj,
+                                                               pSubtitleBGColor->st_SubtitleBGColor_Itc,
+                                                               (void *)
+                                                               VP_PLAY_STRING_SUBTITLE_COLOR_WHITE, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               __vp_subtitle_bg_color_genlist_item_selected_cb,
+                                                               pUserData);
+               pSubtitleBGColor->nListCount++;
+       }
+
+       return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pCloseCb
+ * @param nDefaultColor
+ * @return
+ */
+subtitle_bg_color_handle vp_subtitle_bg_color_create(Evas_Object *
+                                                                                                        pParent,
+                                                                                                        PopupCloseCbFunc
+                                                                                                        pCloseCb,
+                                                                                                        int nDefaultColor)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       SubtitleBGColorPopup *pSubtitleBGColor = NULL;
+
+       pSubtitleBGColor = calloc(1, sizeof(SubtitleBGColorPopup));
+
+       if (pSubtitleBGColor == NULL) {
+               VideoLogError("pSubtitleBGColor alloc fail");
+               return NULL;
+       }
+
+       pSubtitleBGColor->pParent = pParent;
+       pSubtitleBGColor->pCloseCb = pCloseCb;
+
+       pSubtitleBGColor->pPopup =
+               vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+                                               VP_PLAY_STRING_SUBTITLE_BG_COLOR, NULL, 0.0, NULL,
+                                               __vp_subtitle_bg_color_popup_key_event_cb,
+                                               __vp_subtitle_bg_color_popup_mouse_event_cb,
+                                               (void *) pSubtitleBGColor);
+       if (pSubtitleBGColor->pPopup == NULL) {
+               VideoLogError("vp_popup_create fail");
+               _vp_subtitle_bg_color_destroy_handle(pSubtitleBGColor);
+               return NULL;
+       }
+
+       pSubtitleBGColor->pGenList =
+               _vp_subtitle_bg_color_create_genlist(pSubtitleBGColor->pPopup);
+       if (pSubtitleBGColor->pGenList == NULL) {
+               VideoLogError("_vp_subtitle_bg_color_create_genlist fail");
+               _vp_subtitle_bg_color_destroy_handle(pSubtitleBGColor);
+               return NULL;
+       }
+       evas_object_data_set(pSubtitleBGColor->pGenList,
+                                                VP_SUBTITLE_BG_COLOR_GENLIST_DATA_KEY,
+                                                (void *) pSubtitleBGColor);
+       evas_object_smart_callback_add(pSubtitleBGColor->pGenList, "realized",
+                                                                  __vp_subtitle_bg_color_genlist_realized,
+                                                                  NULL);
+
+       pSubtitleBGColor->nDefaultIndex = nDefaultColor;
+       pSubtitleBGColor->pRadio = elm_radio_add(pSubtitleBGColor->pGenList);
+
+       if (!_vp_subtitle_bg_color_add_genlist_item
+               (pSubtitleBGColor->pGenList, (void *) pSubtitleBGColor)) {
+               VideoLogError("_vp_subtitle_bg_color_add_genlist_item fail");
+               _vp_subtitle_bg_color_destroy_handle(pSubtitleBGColor);
+               return NULL;
+       }
+
+       pSubtitleBGColor->currentBgColor = nDefaultColor;
+       evas_object_smart_callback_add(pSubtitleBGColor->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_subtitle_bg_color_popup_rotate_cb,
+                                                                  pSubtitleBGColor);
+
+       pSubtitleBGColor->pBox = elm_box_add(pSubtitleBGColor->pPopup);
+       vp_popup_set_popup_min_size(pSubtitleBGColor->pParent,
+                                                               pSubtitleBGColor->pBox,
+                                                               pSubtitleBGColor->nListCount,
+                                                               VIDEO_POPUP_DEFAULT);
+
+       elm_box_pack_end(pSubtitleBGColor->pBox, pSubtitleBGColor->pGenList);
+       elm_object_content_set(pSubtitleBGColor->pPopup,
+                                                  pSubtitleBGColor->pBox);
+
+       return pSubtitleBGColor;
+}
+
+/**
+ *
+ * @param pSubtitleBGColorHandle
+ */
+void vp_subtitle_bg_color_destroy(subtitle_bg_color_handle
+                                                                 pSubtitleBGColorHandle)
+{
+       if (pSubtitleBGColorHandle == NULL) {
+               VideoLogError("pSubtitleBGColorHandle is NULL");
+               return;
+       }
+
+       SubtitleBGColorPopup *pSubtitleBGColor =
+               (SubtitleBGColorPopup *) pSubtitleBGColorHandle;
+
+       _vp_subtitle_bg_color_destroy_handle(pSubtitleBGColor);
+
+}
+
+/**
+ *
+ * @param pSubtitleBGColorHandle
+ * @return
+ */
+bool vp_subtitle_bg_color_realize(subtitle_bg_color_handle
+                                                                 pSubtitleBGColorHandle)
+{
+       if (pSubtitleBGColorHandle == NULL) {
+               VideoLogError("pSubtitleBGColorHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleBGColorPopup *pSubtitleBGColor =
+               (SubtitleBGColorPopup *) pSubtitleBGColorHandle;
+
+       evas_object_show(pSubtitleBGColor->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleBGColorHandle
+ * @return
+ */
+bool vp_subtitle_bg_color_unrealize(subtitle_bg_color_handle
+                                                                       pSubtitleBGColorHandle)
+{
+       if (pSubtitleBGColorHandle == NULL) {
+               VideoLogError("pSubtitleBGColorHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleBGColorPopup *pSubtitleBGColor =
+               (SubtitleBGColorPopup *) pSubtitleBGColorHandle;
+
+       evas_object_hide(pSubtitleBGColor->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleBGColorHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_subtitle_bg_color_set_user_data(subtitle_bg_color_handle
+                                                                               pSubtitleBGColorHandle,
+                                                                               void *pUserData)
+{
+       if (pSubtitleBGColorHandle == NULL) {
+               VideoLogError("pSubtitleBGColorHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleBGColorPopup *pSubtitleBGColor =
+               (SubtitleBGColorPopup *) pSubtitleBGColorHandle;
+
+       pSubtitleBGColor->pUserData = pUserData;
+
+       return TRUE;
+}
diff --git a/playview/src/feature/vp-subtitle-color.c b/playview/src/feature/vp-subtitle-color.c
new file mode 100755 (executable)
index 0000000..69ff923
--- /dev/null
@@ -0,0 +1,1417 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-subtitle-color.h"
+#include "vp-play-button.h"
+#include "vp-play-util.h"
+#include "vp-play-preference.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SUBTITLE_COLOR_GENLIST_DATA_KEY             "vp.subtitle.color.genlist"
+#define VP_PLAY_OPACITY_MAX_VALUE              100
+#define VP_PLAY_OPACITY_MIN_VALUE              0
+
+typedef struct _SubtitleColorplane_Data {
+       Evas_Object *layout;
+       Evas_Object *colorselector;
+       Elm_Object_Item *it_last;
+       Elm_Object_Item *sel_it;
+       Eina_Bool changed;
+       int r, g, b, a;
+} SubtitleColorplaneData;
+
+typedef struct _SubtitleColorPopup {
+       Evas_Object *pParent;
+       Evas_Object *pPopup;
+#ifndef SUBTITLE_K_FEATURE
+       Evas_Object *pRadio;
+#else
+       Evas_Object *pLayout;
+       Evas_Object *pLayoutOut;
+       Evas_Object *pScroller;
+       Evas_Object *pOkButton;
+       Evas_Object *pCancelButton;
+       Evas_Object *pDelButton;
+       Evas_Object *pAddButton;
+       Evas_Object *pSlider;
+       int nOpacityVal;
+       SubtitleColorUpdateCbFunc pUpdateCb;
+#endif
+       Evas_Object *pButton;
+       Evas_Object *pBox;
+       Evas_Object *pGenList;
+       Elm_Genlist_Item_Class *st_SubtitleFontColor_Itc;
+
+       int nDefaultIndex;
+       int nListCount;
+
+       void *pUserData;
+       SubtitlePopupCloseCbFunc pCloseCb;
+       video_play_subtitle_color_t currentFontColor;
+       SubtitleColorplaneData *pColorplaneData;
+       char *pCurrentColorHex;
+} SubtitleColorPopup;
+
+/**
+ *
+ * @param pSubtitleColor
+ */
+static void _vp_subtitle_color_destroy_handle(SubtitleColorPopup *
+                                                                                         pSubtitleColor);
+
+#ifndef SUBTITLE_K_FEATURE
+static void __vp_subtitle_color_genlist_item_selected_cb(void *pUserData,
+                                                                                                                Evas_Object *
+                                                                                                                pObject,
+                                                                                                                void *pEventInfo);
+
+static void __vp_subtitle_color_genlist_realized(void *data,
+                                                                                                Evas_Object * obj,
+                                                                                                void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+#endif
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_color_popup_rotate_cb(void *data,
+                                                                                               Evas_Object * obj,
+                                                                                               void *event_info)
+{
+       SubtitleColorPopup *pSubtitleColor = (SubtitleColorPopup *) data;
+       if (!pSubtitleColor) {
+               VideoLogError("pSubtitleColor IS null");
+               return;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_SUBTITLE_COLOR_POPUP_EDJ);
+       free(path);
+#ifndef SUBTITLE_K_FEATURE
+       if (pSubtitleColor->nListCount < VP_POPUP_MIN_ITEMS) {
+               return;
+       }
+       vp_popup_set_popup_min_size(pSubtitleColor->pParent,
+                                                               pSubtitleColor->pBox,
+                                                               pSubtitleColor->nListCount,
+                                                               VIDEO_POPUP_DEFAULT);
+#else
+       int nRotation = elm_win_rotation_get(pSubtitleColor->pParent);
+       if (nRotation == 90 || nRotation == 270)
+               elm_layout_file_set(pSubtitleColor->pLayoutOut,
+                                                       edj_path,
+                                                       "pv.subtitle.scroller.layout.landscape");
+       else
+               elm_layout_file_set(pSubtitleColor->pLayoutOut,
+                                                       edj_path, "pv.subtitle.scroller.layout");
+#endif
+}
+
+#ifndef SUBTITLE_K_FEATURE
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_subtitle_color_genlist_text_get_cb(const void
+                                                                                                        *pUserData,
+                                                                                                        Evas_Object * pObj,
+                                                                                                        const char *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!strcmp(pPart, "elm.text")) {
+               return strdup(szTxt);
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_subtitle_color_genlist_content_get_cb(const void
+                                                                                                                          *pUserData,
+                                                                                                                          Evas_Object
+                                                                                                                          *pObj,
+                                                                                                                          const char
+                                                                                                                          *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!strcmp(pPart, "elm.icon")) {
+               Evas_Object *pRadioObj = NULL;
+
+               SubtitleColorPopup *pSubtitleColor =
+                       (SubtitleColorPopup *) evas_object_data_get(pObj,
+                                                                                                               VP_SUBTITLE_COLOR_GENLIST_DATA_KEY);
+               if (pSubtitleColor == NULL) {
+                       VideoLogWarning("evas_object_data_get is fail");
+                       return NULL;
+               }
+               video_play_subtitle_color_t nColor = VIDEO_SUBTITLE_COLOR_BLACK;
+               if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_BLACK)) {
+                       nColor = VIDEO_SUBTITLE_COLOR_BLACK;
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_BLUE)) {
+                       nColor = VIDEO_SUBTITLE_COLOR_BLUE;
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_GREEN)) {
+                       nColor = VIDEO_SUBTITLE_COLOR_GREEN;
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_WHITE)) {
+                       nColor = VIDEO_SUBTITLE_COLOR_WHITE;
+               }
+
+               pRadioObj = elm_radio_add(pObj);
+               elm_radio_state_value_set(pRadioObj, nColor);
+               elm_radio_group_add(pRadioObj, pSubtitleColor->pRadio);
+               elm_radio_value_set(pSubtitleColor->pRadio,
+                                                       pSubtitleColor->currentFontColor);
+               evas_object_smart_callback_add(pRadioObj, "changed",
+                                                                          __vp_subtitle_color_genlist_item_selected_cb,
+                                                                          pSubtitleColor);
+               evas_object_show(pRadioObj);
+
+               return pRadioObj;
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_subtitle_color_genlist_item_selected_cb(void *pUserData,
+                                                                                                                Evas_Object *
+                                                                                                                pObject,
+                                                                                                                void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+       char *szTxt = (char *) elm_object_item_data_get(pItem);
+
+       SubtitleColorPopup *pSubtitleColor = (SubtitleColorPopup *) pUserData;
+
+       if (szTxt == NULL) {
+               VideoLogError("szTxt is NULL");
+               return;
+       }
+
+       video_play_subtitle_color_t nColor = VIDEO_SUBTITLE_COLOR_BLACK;
+       if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_BLACK)) {
+               nColor = VIDEO_SUBTITLE_COLOR_BLACK;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_BLUE)) {
+               nColor = VIDEO_SUBTITLE_COLOR_BLUE;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_GREEN)) {
+               nColor = VIDEO_SUBTITLE_COLOR_GREEN;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR_WHITE)) {
+               nColor = VIDEO_SUBTITLE_COLOR_WHITE;
+       }
+
+       pSubtitleColor->currentFontColor = nColor;
+       if (pSubtitleColor->pCloseCb) {
+               pSubtitleColor->pCloseCb(nColor, FALSE,
+                                                                (void *) pSubtitleColor->pUserData);
+       }
+}
+
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_color_popup_key_event_cb(void *pUserData,
+                                                                                                  Evas_Object * pObj,
+                                                                                                  void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitleColorPopup *pSubtitleColor = (SubtitleColorPopup *) pUserData;
+
+       if (pSubtitleColor->pCloseCb) {
+#ifndef SUBTITLE_K_FEATURE
+               pSubtitleColor->pCloseCb(-1, FALSE,
+                                                                (void *) pSubtitleColor->pUserData);
+#else
+               pSubtitleColor->pCloseCb(pSubtitleColor->pCurrentColorHex, FALSE,
+                                                                (void *) pSubtitleColor->pUserData);
+#endif
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_color_popup_mouse_event_cb(void *pUserData,
+                                                                                                        Evas * pEvas,
+                                                                                                        Evas_Object * pObj,
+                                                                                                        void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Evas_Event_Mouse_Up *ev = pEventInfo;
+
+       if (ev->button == 3) {
+               SubtitleColorPopup *pSubtitleColor =
+                       (SubtitleColorPopup *) pUserData;
+
+#ifndef SUBTITLE_K_FEATURE
+               pSubtitleColor->pCloseCb(-1, FALSE,
+                                                                (void *) pSubtitleColor->pUserData);
+#else
+               pSubtitleColor->pCloseCb(pSubtitleColor->pCurrentColorHex, FALSE,
+                                                                (void *) pSubtitleColor->pUserData);
+#endif
+       }
+}
+
+/* internal functions */
+/**
+ *
+ * @param colorHex
+ * @return
+ */
+int _vp_subtitle_color_get_opacity(char *colorHex)
+{
+       if (colorHex == NULL) {
+               VideoLogError("colorHex is NULL");
+               return 0;
+       }
+
+       char *szOpacity = g_strndup(colorHex + 7, 2);
+
+       float fOpacity = strtol(szOpacity, NULL, 16);
+
+       VP_FREE(szOpacity);
+
+       int nOpacity = (int) ((fOpacity * 100) / 255.0 + 0.5);
+
+       VideoLogInfo("nOpacity", nOpacity);
+
+       return nOpacity;
+}
+
+/**
+ *
+ * @param colorHex
+ * @return
+ */
+int _vp_subtitle_color_get_platte_index(char *colorHex)
+{
+       if (colorHex == NULL) {
+               VideoLogError("colorHex is NULL");
+               return 0;
+       }
+       int nIndex = 0;
+       char *pColorHex = g_strndup(colorHex, 7);
+       VideoLogInfo("pColorHex %s", pColorHex);
+       if (pColorHex == NULL) {
+               VideoLogError("pColorHex is NULL");
+               return 0;
+       }
+       if (!strcmp(pColorHex, "#ffffff")) {
+               nIndex = 0;
+       } else if (!strcmp(pColorHex, "#ffff00")) {
+               nIndex = 1;
+       } else if (!strcmp(pColorHex, "#ff8080")) {
+               nIndex = 2;
+       } else if (!strcmp(pColorHex, "#ff0000")) {
+               nIndex = 3;
+       } else if (!strcmp(pColorHex, "#f74acd")) {
+               nIndex = 4;
+       } else if (!strcmp(pColorHex, "#cd84ff")) {
+               nIndex = 5;
+       } else if (!strcmp(pColorHex, "#7037de")) {
+               nIndex = 6;
+       } else if (!strcmp(pColorHex, "#5add32")) {
+               nIndex = 7;
+       } else if (!strcmp(pColorHex, "#1e8d31")) {
+               nIndex = 8;
+       } else if (!strcmp(pColorHex, "#38a8fe")) {
+               nIndex = 9;
+       } else if (!strcmp(pColorHex, "#0000ff")) {
+               nIndex = 10;
+       } else if (!strcmp(pColorHex, "#09296b")) {
+               nIndex = 11;
+       } else if (!strcmp(pColorHex, "#a7a4a5")) {
+               nIndex = 12;
+       } else if (!strcmp(pColorHex, "#000000")) {
+               nIndex = 13;
+       }
+
+       VP_FREE(pColorHex);
+       return nIndex;
+}
+
+/**
+ *
+ * @param pColor
+ * @param nOpacity
+ * @return
+ */
+char *_vp_subtitle_color_get_select_color(char *pColor, int nOpacity)
+{
+       if (pColor == NULL) {
+               VideoLogError("colorHex is NULL");
+               return 0;
+       }
+
+       int nOpacitytmp = (int) (((float) (nOpacity * 255) / 100.0) + 0.5);
+
+       char *pOpacityHex = g_strdup_printf("%02x", nOpacitytmp);
+
+       char *polorHex = g_strndup(pColor, 7);
+
+       char *pColorHex = g_strdup_printf("%s%s", polorHex, pOpacityHex);
+
+       VP_FREE(pOpacityHex);
+       VP_FREE(polorHex);
+
+       return pColorHex;
+}
+
+/**
+ *
+ * @param pSubtitleColor
+ */
+static void _vp_subtitle_color_destroy_handle(SubtitleColorPopup *
+                                                                                         pSubtitleColor)
+{
+       if (pSubtitleColor == NULL) {
+               VideoLogError("pSubtitleColor is NULL");
+               return;
+       }
+
+       evas_object_smart_callback_del(pSubtitleColor->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_subtitle_color_popup_rotate_cb);
+#ifndef SUBTITLE_K_FEATURE
+       evas_object_smart_callback_del(pSubtitleColor->pGenList, "realized",
+                                                                  __vp_subtitle_color_genlist_realized);
+#endif
+
+
+#ifndef SUBTITLE_K_FEATURE
+       VP_EVAS_DEL(pSubtitleColor->pRadio);
+       VP_EVAS_DEL(pSubtitleColor->pGenList);
+       VP_EVAS_DEL(pSubtitleColor->pButton);
+       VP_EVAS_DEL(pSubtitleColor->pBox);
+#else
+       VP_FREE(pSubtitleColor->pColorplaneData);
+       pSubtitleColor->pColorplaneData = NULL;
+
+       VP_FREE(pSubtitleColor->pCurrentColorHex);
+       pSubtitleColor->pCurrentColorHex = NULL;
+
+       VP_EVAS_DEL(pSubtitleColor->pOkButton);
+       VP_EVAS_DEL(pSubtitleColor->pCancelButton);
+#endif
+       if (pSubtitleColor->st_SubtitleFontColor_Itc) {
+               elm_genlist_item_class_free
+                       (pSubtitleColor->st_SubtitleFontColor_Itc);
+               pSubtitleColor->st_SubtitleFontColor_Itc = NULL;
+       }
+
+       VP_EVAS_DEL(pSubtitleColor->pPopup);
+
+       VP_FREE(pSubtitleColor);
+}
+
+#ifndef SUBTITLE_K_FEATURE
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_color_create_genlist(Evas_Object *
+                                                                                                         pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_genlist_add(pParent);
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(pObj);
+       return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_subtitle_color_add_genlist_item(Evas_Object * pObj,
+                                                                                               void *pUserData)
+{
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return FALSE;
+       }
+
+       SubtitleColorPopup *pSubtitleColor = (SubtitleColorPopup *) pUserData;
+
+       if (pSubtitleColor->st_SubtitleFontColor_Itc) {
+               elm_genlist_item_class_free
+                       (pSubtitleColor->st_SubtitleFontColor_Itc);
+               pSubtitleColor->st_SubtitleFontColor_Itc = NULL;
+       }
+
+       pSubtitleColor->st_SubtitleFontColor_Itc =
+               elm_genlist_item_class_new();
+       pSubtitleColor->st_SubtitleFontColor_Itc->version =
+               ELM_GENLIST_ITEM_CLASS_VERSION;
+       pSubtitleColor->st_SubtitleFontColor_Itc->item_style =
+               "1text.1icon.3/popup";
+       pSubtitleColor->st_SubtitleFontColor_Itc->func.text_get =
+               (void *) __vp_subtitle_color_genlist_text_get_cb;
+       pSubtitleColor->st_SubtitleFontColor_Itc->func.content_get =
+               (void *) __vp_subtitle_color_genlist_content_get_cb;
+       pSubtitleColor->st_SubtitleFontColor_Itc->func.state_get = NULL;
+       pSubtitleColor->st_SubtitleFontColor_Itc->func.del = NULL;
+       pSubtitleColor->nListCount = 0;
+
+       elm_genlist_item_append(pObj,
+                                                       pSubtitleColor->st_SubtitleFontColor_Itc,
+                                                       (void *) VP_PLAY_STRING_SUBTITLE_COLOR_WHITE,
+                                                       NULL, ELM_GENLIST_ITEM_NONE,
+                                                       __vp_subtitle_color_genlist_item_selected_cb,
+                                                       pUserData);
+       pSubtitleColor->nListCount++;
+       elm_genlist_item_append(pObj,
+                                                       pSubtitleColor->st_SubtitleFontColor_Itc,
+                                                       (void *) VP_PLAY_STRING_SUBTITLE_COLOR_BLUE,
+                                                       NULL, ELM_GENLIST_ITEM_NONE,
+                                                       __vp_subtitle_color_genlist_item_selected_cb,
+                                                       pUserData);
+       pSubtitleColor->nListCount++;
+       elm_genlist_item_append(pObj,
+                                                       pSubtitleColor->st_SubtitleFontColor_Itc,
+                                                       (void *) VP_PLAY_STRING_SUBTITLE_COLOR_GREEN,
+                                                       NULL, ELM_GENLIST_ITEM_NONE,
+                                                       __vp_subtitle_color_genlist_item_selected_cb,
+                                                       pUserData);
+       pSubtitleColor->nListCount++;
+       elm_genlist_item_append(pObj,
+                                                       pSubtitleColor->st_SubtitleFontColor_Itc,
+                                                       (void *) VP_PLAY_STRING_SUBTITLE_COLOR_BLACK,
+                                                       NULL, ELM_GENLIST_ITEM_NONE,
+                                                       __vp_subtitle_color_genlist_item_selected_cb,
+                                                       pUserData);
+       pSubtitleColor->nListCount++;
+
+       return TRUE;
+}
+#else
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_subtitle_color_popup_ok_btn_cb(void *pUserData,
+                                                                                                        Evas_Object * pObj,
+                                                                                                        void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitleColorPopup *pSubtitleColor = (SubtitleColorPopup *) pUserData;
+       char *pColorHex =
+               _vp_subtitle_color_get_select_color
+               (pSubtitleColor->pCurrentColorHex,
+                pSubtitleColor->nOpacityVal);
+
+       if (pSubtitleColor->pCloseCb) {
+               pSubtitleColor->pCloseCb(pColorHex, TRUE,
+                                                                (void *) pSubtitleColor->pUserData);
+       }
+       VP_FREE(pColorHex);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_subtitle_color_popup_cancel_btn_cb(void *pUserData,
+                                                                                                                Evas_Object *
+                                                                                                                pObj,
+                                                                                                                void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitleColorPopup *pSubtitleColor = (SubtitleColorPopup *) pUserData;
+
+       if (pSubtitleColor->pCloseCb) {
+               pSubtitleColor->pCloseCb(pSubtitleColor->pCurrentColorHex, FALSE,
+                                                                (void *) pSubtitleColor->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object
+       *_vp_play_subtitle_color_popup_create_ok_button(Evas_Object *pParent,
+                                                                                                        void *pUserData)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       pObj = elm_button_add(pParent);
+       elm_object_style_set(pObj, "popup_button/default");
+       elm_object_domain_translatable_text_set(pObj, VP_SYS_STR_PREFIX,
+                                                                                       VP_PLAY_STRING_COM_DONE);
+       elm_object_part_content_set(pParent, "button2", pObj);
+       evas_object_smart_callback_add(pObj, "clicked",
+                                                                  __vp_play_subtitle_color_popup_ok_btn_cb,
+                                                                  pUserData);
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object
+       *_vp_play_subtitle_color_popup_create_cancel_button(Evas_Object
+                                                                                                                *pParent,
+                                                                                                                void *pUserData)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       pObj = elm_button_add(pParent);
+       elm_object_style_set(pObj, "popup_button/default");
+       elm_object_domain_translatable_text_set(pObj, VP_SYS_STR_PREFIX,
+                                                                                       VP_PLAY_STRING_COM_CANCEL_IDS);
+       elm_object_part_content_set(pParent, "button1", pObj);
+       evas_object_smart_callback_add(pObj, "clicked",
+                                                                  __vp_play_subtitle_color_popup_cancel_btn_cb,
+                                                                  pUserData);
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_play_subtitle_color_popup_colorpalette_cb(void *data,
+                                                                                                                 Evas_Object *
+                                                                                                                 obj,
+                                                                                                                 void *event_info)
+{
+       if (data == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       VideoLogInfo("");
+
+       SubtitleColorPopup *pSubtitleColor = (SubtitleColorPopup *) data;
+
+       int r = 255, g = 255, b = 255, a = 255;
+       SubtitleColorplaneData *cp = pSubtitleColor->pColorplaneData;
+       Elm_Object_Item *color_it = (Elm_Object_Item *) event_info;
+       cp->sel_it = color_it;
+       elm_colorselector_palette_item_color_get(color_it, &r, &g, &b, &a);
+       elm_colorselector_color_set(cp->colorselector, r, g, b, a);
+
+       VP_FREE(pSubtitleColor->pCurrentColorHex);
+       pSubtitleColor->pCurrentColorHex =
+               vp_play_util_convert_rgba_to_hex(r, g, b, a);
+
+       char *color_fmt = "<color=%s>%s</color>";
+       char *caption_txt =
+               g_strdup_printf(color_fmt, pSubtitleColor->pCurrentColorHex,
+                                               VP_PLAY_STRING_PREVIEW_SUBTITLE_CC);
+       elm_object_part_text_set(cp->layout, "pv.subtitle-color-popup.subject",
+                                                        caption_txt);
+
+       //Need Free;
+       free(caption_txt);
+       VideoLogInfo("p = %s", pSubtitleColor->pCurrentColorHex);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_play_subtitle_color_popup_colorplane_cb(void *data,
+                                                                                                               Evas_Object * obj,
+                                                                                                               void *event_info)
+{
+       if (data == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       VideoLogInfo("");
+
+       SubtitleColorPopup *pSubtitleColor = (SubtitleColorPopup *) data;
+
+       int r = 255, g = 255, b = 255, a = 255;
+       SubtitleColorplaneData *cp = pSubtitleColor->pColorplaneData;
+       if (!cp->changed) {
+               elm_object_item_signal_emit(cp->it_last, "elm,state,custom,hide",
+                                                                       "");
+               cp->changed = EINA_TRUE;
+       }
+       elm_colorselector_color_get(cp->colorselector, &r, &g, &b, &a);
+       cp->r = r;
+       cp->g = g;
+       cp->b = b;
+       cp->a = a;
+
+       VP_FREE(pSubtitleColor->pCurrentColorHex);
+       pSubtitleColor->pCurrentColorHex =
+               vp_play_util_convert_rgba_to_hex(r, g, b, a);
+
+}
+
+/**
+ *
+ * @param layout
+ * @param pSubtitleColorPopup
+ */
+static void _vp_play_subtitle_color_popup_create_colorpalette(Evas_Object *
+                                                                                                                         layout,
+                                                                                                                         SubtitleColorPopup
+                                                                                                                         *
+                                                                                                                         pSubtitleColorPopup)
+{
+       if (pSubtitleColorPopup == NULL) {
+               VideoLogError("pSubtitleColorPopup is NULL");
+               return;
+       }
+
+       if (pSubtitleColorPopup->pColorplaneData == NULL) {
+               VideoLogError("pSubtitleColorPopup is NULL");
+               return;
+       }
+       VideoLogInfo("");
+
+       SubtitleColorplaneData *cp = pSubtitleColorPopup->pColorplaneData;
+
+       int nIndex =
+               _vp_subtitle_color_get_platte_index
+               (pSubtitleColorPopup->pCurrentColorHex);
+
+       /* add color palette widget */
+       Eina_List *last_list;
+       const Eina_List *color_list;
+
+       cp->layout = layout;
+       cp->colorselector = elm_colorselector_add(layout);
+       elm_object_style_set(cp->colorselector, "colorplane");
+       evas_object_size_hint_fill_set(cp->colorselector, EVAS_HINT_FILL,
+                                                                  EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(cp->colorselector, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       elm_object_part_content_set(layout,
+                                                               "pv.subtitle-color-popup.colorpalette.swallow",
+                                                               cp->colorselector);
+       evas_object_smart_callback_add(cp->colorselector,
+                                                                  "color,item,selected",
+                                                                  _vp_play_subtitle_color_popup_colorpalette_cb,
+                                                                  pSubtitleColorPopup);
+
+       edje_object_message_signal_process(elm_layout_edje_get(layout));
+       elm_colorselector_palette_color_add(cp->colorselector, 255, 255, 255, 255);     //white
+       elm_colorselector_palette_color_add(cp->colorselector, 255, 255, 0, 255);       //yellow
+       elm_colorselector_palette_color_add(cp->colorselector, 255, 128, 128, 255);     //Orange
+       elm_colorselector_palette_color_add(cp->colorselector, 255, 0, 0, 255); //red
+       elm_colorselector_palette_color_add(cp->colorselector, 247, 74, 205, 255);      //pink
+       elm_colorselector_palette_color_add(cp->colorselector, 205, 132, 255, 255);     //violet
+       elm_colorselector_palette_color_add(cp->colorselector, 112, 55, 222, 255);      //Blue violet
+       elm_colorselector_palette_color_add(cp->colorselector, 90, 221, 50, 255);       //lime-green
+       elm_colorselector_palette_color_add(cp->colorselector, 30, 141, 33, 255);       //forest-green
+       elm_colorselector_palette_color_add(cp->colorselector, 56, 168, 254, 255);      //dodger blue
+       elm_colorselector_palette_color_add(cp->colorselector, 0, 0, 255, 255); //blue
+       elm_colorselector_palette_color_add(cp->colorselector, 9, 41, 107, 255);        //sapphire
+       elm_colorselector_palette_color_add(cp->colorselector, 167, 164, 165, 255);     //grey
+       elm_colorselector_palette_color_add(cp->colorselector, 0, 0, 0, 255);   //black
+
+       color_list = elm_colorselector_palette_items_get(cp->colorselector);
+       last_list = eina_list_last(color_list);
+       cp->it_last = eina_list_data_get(last_list);
+       cp->changed = EINA_FALSE;
+       evas_object_smart_callback_add(cp->colorselector, "changed",
+                                                                  _vp_play_subtitle_color_popup_colorplane_cb,
+                                                                  pSubtitleColorPopup);
+       cp->sel_it = eina_list_nth(color_list, nIndex);
+       elm_object_item_signal_emit(cp->sel_it, "elm,state,selected", "elm");
+
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object
+       *_vp_play_subtitle_color_popup_create_layout(Evas_Object * pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pLayout = elm_layout_add(pParent);
+       if (pLayout == NULL) {
+               VideoLogError("pLayout object is NULL");
+               return NULL;
+       }
+       char edj_path[1024] = { 0 };
+       char *szColorHex = NULL;
+       int r = 255, g = 255, b = 255, a = 255;
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_SUBTITLE_COLOR_POPUP_EDJ);
+       free(path);
+       elm_layout_file_set(pLayout, edj_path,
+                                               VP_PLAY_EDJ_GROUP_PLAY_SUBTITLE_COLOR_POPUP);
+
+       evas_object_size_hint_weight_set(pLayout, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pLayout, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+
+       if (vp_play_preference_get_subtitle_font_color_hex_key(&szColorHex) ==
+               TRUE) {
+               vp_play_util_convert_hex_to_rgba(szColorHex, &r, &g, &b, &a);
+               char *color_fmt = "<color=%s>%s</color>";
+               char *caption_txt =
+                       g_strdup_printf(color_fmt, szColorHex,
+                                                       VP_PLAY_STRING_PREVIEW_SUBTITLE_CC);
+               elm_object_part_text_set(pLayout,
+                                                                "pv.subtitle-color-popup.subject",
+                                                                caption_txt);
+               free(caption_txt);
+               VP_FREE(szColorHex);
+       }
+
+
+       elm_object_part_text_set(pLayout, "pv.subtitle-color-popup.subject",
+                                                        VP_PLAY_STRING_PREVIEW_SUBTITLE_CC);
+       evas_object_show(pLayout);
+
+       return pLayout;
+
+}
+
+/**
+ *
+ * @param pSubtitleColorPopup
+ */
+static void _vp_play_subtitle_color_update_text(SubtitleColorPopup *
+                                                                                               pSubtitleColorPopup)
+{
+       if (pSubtitleColorPopup == NULL) {
+               VideoLogError("pSubtitleColorPopup is NULL");
+               return;
+       }
+
+       char szValue[6] = { 0, };
+
+       snprintf(szValue, 6, "%2d %%", (int) pSubtitleColorPopup->nOpacityVal);
+       elm_object_part_text_set(pSubtitleColorPopup->pLayout,
+                                                        "pv.subtitle-color-popup.opacity.percent",
+                                                        szValue);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_subtitle_color_btn_clicked_cb(void *pUserData,
+                                                                                                       Evas_Object * pObj,
+                                                                                                       void *pEvent)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitleColorPopup *pSubtitleColorPopup =
+               (SubtitleColorPopup *) pUserData;
+
+       int nValue = elm_slider_value_get(pSubtitleColorPopup->pSlider);
+       VideoLogDebug("== %d ==", nValue);
+
+       if (pObj == pSubtitleColorPopup->pAddButton) {
+               nValue += 1;
+               if (nValue > (int) VP_PLAY_OPACITY_MAX_VALUE) {
+                       nValue = (int) VP_PLAY_OPACITY_MAX_VALUE;
+               }
+               elm_slider_value_set(pSubtitleColorPopup->pSlider, nValue);
+
+               if (nValue != pSubtitleColorPopup->nOpacityVal) {
+                       pSubtitleColorPopup->nOpacityVal = nValue;
+                       _vp_play_subtitle_color_update_text(pSubtitleColorPopup);
+               }
+
+       } else if (pObj == pSubtitleColorPopup->pDelButton) {
+               nValue -= 1;
+               if (nValue < (double) VP_PLAY_OPACITY_MIN_VALUE) {
+                       nValue = (double) VP_PLAY_OPACITY_MIN_VALUE;
+               }
+
+               elm_slider_value_set(pSubtitleColorPopup->pSlider, nValue);
+               if (nValue != pSubtitleColorPopup->nOpacityVal) {
+                       pSubtitleColorPopup->nOpacityVal = nValue;
+                       _vp_play_subtitle_color_update_text(pSubtitleColorPopup);
+               }
+       }
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static bool _vp_play_subtitle_color_popup_create_button(Evas_Object *
+                                                                                                               pParent,
+                                                                                                               void *pUserData)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return FALSE;
+       }
+
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_RESROUCE_EDJ_PATH);
+       free(path);
+       SubtitleColorPopup *pSubtitleColorPopup =
+               (SubtitleColorPopup *) pUserData;
+
+       pSubtitleColorPopup->pDelButton =
+               vp_button_create(pParent, "custom/flat_63_78/default",
+                                                NULL, (Evas_Smart_Cb)
+                                                __vp_play_subtitle_color_btn_clicked_cb,
+                                                (Evas_Smart_Cb) NULL, (Evas_Smart_Cb) NULL,
+                                                (void *) pSubtitleColorPopup);
+
+       pSubtitleColorPopup->pAddButton =
+               vp_button_create(pParent, "custom/flat_63_78/default",
+                                                NULL, (Evas_Smart_Cb)
+                                                __vp_play_subtitle_color_btn_clicked_cb,
+                                                (Evas_Smart_Cb) NULL, (Evas_Smart_Cb) NULL,
+                                                (void *) pSubtitleColorPopup);
+
+       Evas_Object *pIcon = NULL;
+
+       pIcon =
+               vp_button_create_icon(pSubtitleColorPopup->pDelButton,
+                                                         edj_path, VP_PLAY_RES_BUTTON_DEL);
+       elm_object_part_content_set(pSubtitleColorPopup->pDelButton,
+                                                               VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       pIcon =
+               vp_button_create_icon(pSubtitleColorPopup->pDelButton,
+                                                         edj_path, VP_PLAY_RES_BUTTON_DEL_PRESS);
+       elm_object_part_content_set(pSubtitleColorPopup->pDelButton,
+                                                               VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+       pIcon =
+               vp_button_create_icon(pSubtitleColorPopup->pDelButton,
+                                                         edj_path, VP_PLAY_RES_BUTTON_DEL);
+       elm_object_part_content_set(pSubtitleColorPopup->pDelButton,
+                                                               VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+
+       pIcon =
+               vp_button_create_icon(pSubtitleColorPopup->pAddButton,
+                                                         edj_path, VP_PLAY_RES_BUTTON_ADD);
+       elm_object_part_content_set(pSubtitleColorPopup->pAddButton,
+                                                               VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       pIcon =
+               vp_button_create_icon(pSubtitleColorPopup->pAddButton,
+                                                         edj_path, VP_PLAY_RES_BUTTON_ADD_PRESS);
+       elm_object_part_content_set(pSubtitleColorPopup->pAddButton,
+                                                               VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+       pIcon =
+               vp_button_create_icon(pSubtitleColorPopup->pAddButton,
+                                                         edj_path, VP_PLAY_RES_BUTTON_ADD);
+       elm_object_part_content_set(pSubtitleColorPopup->pAddButton,
+                                                               VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+
+       elm_object_part_content_set(pParent, "elm.swallow.icon.1",
+                                                               pSubtitleColorPopup->pDelButton);
+       elm_object_part_content_set(pParent, "elm.swallow.icon.2",
+                                                               pSubtitleColorPopup->pAddButton);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_subtitle_color_popup_slider_change_cb(void
+                                                                                                                       *pUserData,
+                                                                                                                       Evas_Object *
+                                                                                                                       pObj,
+                                                                                                                       void
+                                                                                                                       *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       SubtitleColorPopup *pSubtitleColor = (SubtitleColorPopup *) pUserData;
+
+       int nValue = elm_slider_value_get(pSubtitleColor->pSlider);
+       VideoLogDebug("== %d ==", nValue);
+
+       if (nValue != pSubtitleColor->nOpacityVal) {
+               pSubtitleColor->nOpacityVal = nValue;
+               _vp_play_subtitle_color_update_text(pSubtitleColor);
+       }
+
+       char szValue[6] = { 0, };
+       snprintf(szValue, 6, "%2d %%", (int) pSubtitleColor->nOpacityVal);
+       int realValue = atoi(szValue);
+
+       if (pSubtitleColor->nOpacityVal != realValue) {
+               elm_slider_value_set(pSubtitleColor->pSlider, (int) realValue);
+               pSubtitleColor->nOpacityVal = realValue;
+       }
+
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object
+       *_vp_play_subtitle_color_popup_create_slider(Evas_Object * pParent,
+                                                                                                 void *pUserData)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_slider_add(pParent);
+       elm_slider_indicator_show_set(pObj, EINA_FALSE);
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND, 0.0);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, 0.5);
+
+       elm_slider_min_max_set(pObj, 0, 100);
+       evas_object_smart_callback_add(pObj, "changed",
+                                                                  __vp_play_subtitle_color_popup_slider_change_cb,
+                                                                  pUserData);
+
+       return pObj;
+}
+
+#endif
+
+/* external functions */
+#ifndef SUBTITLE_K_FEATURE
+subtitle_color_handle vp_subtitle_color_create(Evas_Object * pParent,
+                                                                                          SubtitlePopupCloseCbFunc
+                                                                                          pCloseCb, int nDefaultColor)
+#else
+
+/**
+ *
+ * @param pParent
+ * @param pCloseCb
+ * @param pDefaultColor
+ * @return
+ */
+subtitle_color_handle vp_subtitle_color_hex_create(Evas_Object * pParent,
+                                                                                                  SubtitlePopupCloseCbFunc
+                                                                                                  pCloseCb,
+                                                                                                  char *pDefaultColor)
+#endif
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       SubtitleColorPopup *pSubtitleColor = NULL;
+
+       pSubtitleColor = calloc(1, sizeof(SubtitleColorPopup));
+
+       if (pSubtitleColor == NULL) {
+               VideoLogError("pSubtitleColor alloc fail");
+               return NULL;
+       }
+
+       pSubtitleColor->pParent = pParent;
+       pSubtitleColor->pCloseCb = pCloseCb;
+
+#ifndef SUBTITLE_K_FEATURE
+       pSubtitleColor->pPopup =
+               vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+                                               VP_PLAY_STRING_SUBTITLE_TEXT, NULL, 0.0, NULL,
+                                               __vp_subtitle_color_popup_key_event_cb,
+                                               __vp_subtitle_color_popup_mouse_event_cb,
+                                               (void *) pSubtitleColor);
+#else
+       pSubtitleColor->pPopup =
+               vp_popup_create(pParent, POPUP_STYLE_EXPAND_WITH_CANCEL_BTN,
+                                               VP_PLAY_STRING_SUBTITLE_COLOR, NULL,
+                                               0.0, NULL, __vp_subtitle_color_popup_key_event_cb,
+                                               __vp_subtitle_color_popup_mouse_event_cb,
+                                               (void *) pSubtitleColor);
+#endif
+       if (pSubtitleColor->pPopup == NULL) {
+               VideoLogError("vp_popup_create fail");
+               _vp_subtitle_color_destroy_handle(pSubtitleColor);
+               return NULL;
+       }
+       elm_popup_align_set(pSubtitleColor->pPopup, ELM_NOTIFY_ALIGN_FILL,
+                                               1.0);
+
+#ifndef SUBTITLE_K_FEATURE
+       pSubtitleColor->pGenList =
+               _vp_subtitle_color_create_genlist(pSubtitleColor->pPopup);
+       if (pSubtitleColor->pGenList == NULL) {
+               VideoLogError("_vp_subtitle_color_create_genlist fail");
+               _vp_subtitle_color_destroy_handle(pSubtitleColor);
+               return NULL;
+       }
+       evas_object_data_set(pSubtitleColor->pGenList,
+                                                VP_SUBTITLE_COLOR_GENLIST_DATA_KEY,
+                                                (void *) pSubtitleColor);
+       evas_object_smart_callback_add(pSubtitleColor->pGenList, "realized",
+                                                                  __vp_subtitle_color_genlist_realized,
+                                                                  NULL);
+
+       pSubtitleColor->nDefaultIndex = nDefaultColor;
+       pSubtitleColor->pRadio = elm_radio_add(pSubtitleColor->pGenList);
+
+       if (!_vp_subtitle_color_add_genlist_item
+               (pSubtitleColor->pGenList, (void *) pSubtitleColor)) {
+               VideoLogError("_vp_subtitle_color_add_genlist_item fail");
+               return FALSE;
+       }
+       //elm_radio_value_set(pSubtitleColor->pRadio, nDefaultColor);
+       pSubtitleColor->currentFontColor = nDefaultColor;
+       evas_object_smart_callback_add(pSubtitleColor->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_subtitle_color_popup_rotate_cb,
+                                                                  pSubtitleColor);
+
+       pSubtitleColor->pBox = elm_box_add(pSubtitleColor->pPopup);
+       vp_popup_set_popup_min_size(pSubtitleColor->pParent,
+                                                               pSubtitleColor->pBox,
+                                                               pSubtitleColor->nListCount,
+                                                               VIDEO_POPUP_DEFAULT);
+       elm_box_pack_end(pSubtitleColor->pBox, pSubtitleColor->pGenList);
+       elm_object_content_set(pSubtitleColor->pPopup, pSubtitleColor->pBox);
+#else
+       pSubtitleColor->pCurrentColorHex = strdup(pDefaultColor);
+
+       pSubtitleColor->pCancelButton =
+               _vp_play_subtitle_color_popup_create_cancel_button
+               (pSubtitleColor->pPopup, (void *) pSubtitleColor);
+       if (pSubtitleColor->pCancelButton == NULL) {
+               VideoLogError("_vp_play_speed_popup_create_cancel_button fail");
+               _vp_subtitle_color_destroy_handle(pSubtitleColor);
+               return NULL;
+       }
+
+       pSubtitleColor->pOkButton =
+               _vp_play_subtitle_color_popup_create_ok_button
+               (pSubtitleColor->pPopup, (void *)
+                pSubtitleColor);
+       if (pSubtitleColor->pOkButton == NULL) {
+               VideoLogError("_vp_play_speed_popup_create_ok_button fail");
+               _vp_subtitle_color_destroy_handle(pSubtitleColor);
+               return NULL;
+       }
+
+       pSubtitleColor->pLayout =
+               _vp_play_subtitle_color_popup_create_layout
+               (pSubtitleColor->pPopup);
+       if (pSubtitleColor->pLayout == NULL) {
+               VideoLogError("_vp_play_speed_popup_create_layout fail");
+               _vp_subtitle_color_destroy_handle(pSubtitleColor);
+               return NULL;
+       }
+
+       pSubtitleColor->pColorplaneData =
+               (SubtitleColorplaneData *) malloc(sizeof(SubtitleColorplaneData));
+       if (!pSubtitleColor->pColorplaneData) {
+               _vp_subtitle_color_destroy_handle(pSubtitleColor);
+               return NULL;
+       }
+       memset(pSubtitleColor->pColorplaneData, 0,
+                  sizeof(SubtitleColorplaneData));
+
+       _vp_play_subtitle_color_popup_create_colorpalette
+               (pSubtitleColor->pLayout, pSubtitleColor);
+
+       pSubtitleColor->pSlider =
+               _vp_play_subtitle_color_popup_create_slider
+               (pSubtitleColor->pLayout, pSubtitleColor);
+       if (pSubtitleColor->pSlider == NULL) {
+               VideoLogError("_vp_play_subtitle_color_popup_create_slider fail");
+               _vp_subtitle_color_destroy_handle(pSubtitleColor);
+               return NULL;
+       }
+       _vp_play_subtitle_color_popup_create_button(pSubtitleColor->pLayout,
+                                                                                               pSubtitleColor);
+       pSubtitleColor->nOpacityVal =
+               _vp_subtitle_color_get_opacity(pSubtitleColor->pCurrentColorHex);
+       elm_slider_value_set(pSubtitleColor->pSlider,
+                                                (int) pSubtitleColor->nOpacityVal);
+       _vp_play_subtitle_color_update_text(pSubtitleColor);
+
+       elm_object_part_content_set(pSubtitleColor->pLayout,
+                                                               "elm.swallow.content",
+                                                               pSubtitleColor->pSlider);
+
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_SUBTITLE_COLOR_POPUP_EDJ);
+       free(path);
+       pSubtitleColor->pLayoutOut = elm_layout_add(pSubtitleColor->pPopup);
+       int nRotation = elm_win_rotation_get(pSubtitleColor->pParent);
+       if (nRotation == 90 || nRotation == 270)
+               elm_layout_file_set(pSubtitleColor->pLayoutOut,
+                                                       edj_path,
+                                                       "pv.subtitle.scroller.layout.landscape");
+       else
+               elm_layout_file_set(pSubtitleColor->pLayoutOut,
+                                                       edj_path, "pv.subtitle.scroller.layout");
+       evas_object_size_hint_weight_set(pSubtitleColor->pLayoutOut,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       pSubtitleColor->pScroller =
+               elm_scroller_add(pSubtitleColor->pLayoutOut);
+       elm_scroller_bounce_set(pSubtitleColor->pScroller, EINA_TRUE,
+                                                       EINA_TRUE);
+       elm_scroller_policy_set(pSubtitleColor->pScroller,
+                                                       ELM_SCROLLER_POLICY_OFF,
+                                                       ELM_SCROLLER_POLICY_AUTO);
+       evas_object_show(pSubtitleColor->pScroller);
+       elm_object_content_set(pSubtitleColor->pScroller,
+                                                  pSubtitleColor->pLayout);
+
+       elm_object_part_content_set(pSubtitleColor->pLayoutOut,
+                                                               "elm.swallow.content",
+                                                               pSubtitleColor->pScroller);
+       elm_object_content_set(pSubtitleColor->pPopup,
+                                                  pSubtitleColor->pLayoutOut);
+
+       evas_object_smart_callback_add(pSubtitleColor->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_subtitle_color_popup_rotate_cb,
+                                                                  pSubtitleColor);
+       evas_object_show(pSubtitleColor->pLayout);
+
+#endif
+       return pSubtitleColor;
+}
+
+/**
+ *
+ * @param pSubtitleColorHandle
+ */
+void vp_subtitle_color_destroy(subtitle_color_handle pSubtitleColorHandle)
+{
+       if (pSubtitleColorHandle == NULL) {
+               VideoLogError("pSubtitleColorHandle is NULL");
+               return;
+       }
+
+       SubtitleColorPopup *pSubtitleColor =
+               (SubtitleColorPopup *) pSubtitleColorHandle;
+
+       _vp_subtitle_color_destroy_handle(pSubtitleColor);
+
+}
+
+/**
+ *
+ * @param pSubtitleColorHandle
+ * @return
+ */
+bool vp_subtitle_color_realize(subtitle_color_handle pSubtitleColorHandle)
+{
+       if (pSubtitleColorHandle == NULL) {
+               VideoLogError("pSubtitleColorHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleColorPopup *pSubtitleColor =
+               (SubtitleColorPopup *) pSubtitleColorHandle;
+
+       evas_object_show(pSubtitleColor->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleColorHandle
+ * @return
+ */
+bool vp_subtitle_color_unrealize(subtitle_color_handle
+                                                                pSubtitleColorHandle)
+{
+       if (pSubtitleColorHandle == NULL) {
+               VideoLogError("pSubtitleColorHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleColorPopup *pSubtitleColor =
+               (SubtitleColorPopup *) pSubtitleColorHandle;
+
+       evas_object_hide(pSubtitleColor->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleColorHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_subtitle_color_set_user_data(subtitle_color_handle
+                                                                        pSubtitleColorHandle, void *pUserData)
+{
+       if (pSubtitleColorHandle == NULL) {
+               VideoLogError("pSubtitleColorHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleColorPopup *pSubtitleColor =
+               (SubtitleColorPopup *) pSubtitleColorHandle;
+
+       pSubtitleColor->pUserData = pUserData;
+
+       return TRUE;
+}
diff --git a/playview/src/feature/vp-subtitle-edge.c b/playview/src/feature/vp-subtitle-edge.c
new file mode 100755 (executable)
index 0000000..23cbb67
--- /dev/null
@@ -0,0 +1,573 @@
+/*
+ * Copyright (c) 2020 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 <glib.h>
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-subtitle-edge.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SUBTITLE_EDGE_GENLIST_DATA_KEY              "vp.subtitle.edge.genlist"
+
+
+typedef struct _SubtitleEdgePopup {
+       Evas_Object *pParent;
+       Evas_Object *pPopup;
+       Evas_Object *pRadio;
+       Evas_Object *pButton;
+       Evas_Object *pBox;
+       Evas_Object *pGenList;
+       Elm_Genlist_Item_Class *st_SubtitleEdge_Itc;
+
+       int nListCount;
+
+       void *pUserData;
+       PopupCloseCbFunc pCloseCb;
+       video_play_subtitle_edge_t currentSubtitleEdge;
+} SubtitleEdgePopup;
+
+
+
+static void _vp_subtitle_edge_destroy_handle(SubtitleEdgePopup *
+                                                                                        pSubtitleEdge);
+static void __vp_subtitle_edge_genlist_item_selected_cb(void *pUserData,
+                                                                                                               Evas_Object *
+                                                                                                               pObject,
+                                                                                                               void *pEventInfo);
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_edge_genlist_realized(void *data,
+                                                                                               Evas_Object * obj,
+                                                                                               void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_edge_popup_rotate_cb(void *data,
+                                                                                          Evas_Object * obj,
+                                                                                          void *event_info)
+{
+       SubtitleEdgePopup *pSubtitleEdge = (SubtitleEdgePopup *) data;
+       if (!pSubtitleEdge) {
+               VideoLogError("pSubtitleEdge IS null");
+               return;
+       }
+       if (pSubtitleEdge->nListCount < VP_POPUP_MIN_ITEMS) {
+               return;
+       }
+       vp_popup_set_popup_min_size(pSubtitleEdge->pParent,
+                                                               pSubtitleEdge->pBox,
+                                                               pSubtitleEdge->nListCount,
+                                                               VIDEO_POPUP_DEFAULT);
+
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_subtitle_edge_genlist_text_get_cb(const void *pUserData,
+                                                                                                       Evas_Object * pObj,
+                                                                                                       const char *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!g_strcmp0(pPart, "elm.text")) {
+               return strdup(szTxt);
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_subtitle_edge_genlist_content_get_cb(const void
+                                                                                                                         *pUserData,
+                                                                                                                         Evas_Object *
+                                                                                                                         pObj,
+                                                                                                                         const char
+                                                                                                                         *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!g_strcmp0(pPart, "elm.icon")) {
+               Evas_Object *pRadioObj = NULL;
+
+               SubtitleEdgePopup *pSubtitleEdge =
+                       (SubtitleEdgePopup *) evas_object_data_get(pObj,
+                                                                                                          VP_SUBTITLE_EDGE_GENLIST_DATA_KEY);
+               if (pSubtitleEdge == NULL) {
+                       VideoLogWarning("evas_object_data_get is fail");
+                       return NULL;
+               }
+               video_play_subtitle_edge_t nEdge = VIDEO_SUBTITLE_EDGE_NONE;
+               if (!g_strcmp0(szTxt, VP_PLAY_STRING_EDGE_RAISED)) {
+                       nEdge = VIDEO_SUBTITLE_EDGE_RAISED;
+               } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_EDGE_DEPRESSED)) {
+                       nEdge = VIDEO_SUBTITLE_EDGE_DEPRESSED;
+               } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_EDGE_UNIFORM)) {
+                       nEdge = VIDEO_SUBTITLE_EDGE_UNIFORM;
+               } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_EDGE_DROP_SHADOW)) {
+                       nEdge = VIDEO_SUBTITLE_EDGE_DROP_SHADOW;
+               }
+
+               pRadioObj = elm_radio_add(pObj);
+               elm_radio_state_value_set(pRadioObj, nEdge);
+               elm_radio_group_add(pRadioObj, pSubtitleEdge->pRadio);
+               elm_radio_value_set(pSubtitleEdge->pRadio,
+                                                       pSubtitleEdge->currentSubtitleEdge);
+               evas_object_smart_callback_add(pRadioObj, "changed",
+                                                                          __vp_subtitle_edge_genlist_item_selected_cb,
+                                                                          pSubtitleEdge);
+               evas_object_show(pRadioObj);
+
+               return pRadioObj;
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_subtitle_edge_genlist_item_selected_cb(void *pUserData,
+                                                                                                               Evas_Object *
+                                                                                                               pObject,
+                                                                                                               void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+       char *szTxt = (char *) elm_object_item_data_get(pItem);
+
+       SubtitleEdgePopup *pSubtitleEdge = (SubtitleEdgePopup *) pUserData;
+
+       if (szTxt == NULL) {
+               VideoLogError("szTxt is NULL");
+               return;
+       }
+       video_play_subtitle_edge_t nEdge = VIDEO_SUBTITLE_EDGE_NONE;
+       if (!g_strcmp0(szTxt, VP_PLAY_STRING_EDGE_RAISED)) {
+               nEdge = VIDEO_SUBTITLE_EDGE_RAISED;
+       } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_EDGE_DEPRESSED)) {
+               nEdge = VIDEO_SUBTITLE_EDGE_DEPRESSED;
+       } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_EDGE_UNIFORM)) {
+               nEdge = VIDEO_SUBTITLE_EDGE_UNIFORM;
+       } else if (!g_strcmp0(szTxt, VP_PLAY_STRING_EDGE_DROP_SHADOW)) {
+               nEdge = VIDEO_SUBTITLE_EDGE_DROP_SHADOW;
+       }
+
+       pSubtitleEdge->currentSubtitleEdge = nEdge;
+       if (pSubtitleEdge->pCloseCb) {
+               pSubtitleEdge->pCloseCb(nEdge, FALSE,
+                                                               (void *) pSubtitleEdge->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_edge_popup_key_event_cb(void *pUserData,
+                                                                                                 Evas_Object * pObj,
+                                                                                                 void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitleEdgePopup *pSubtitleEdge = (SubtitleEdgePopup *) pUserData;
+
+       if (pSubtitleEdge->pCloseCb) {
+               pSubtitleEdge->pCloseCb(-1, FALSE,
+                                                               (void *) pSubtitleEdge->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_edge_popup_mouse_event_cb(void *pUserData,
+                                                                                                       Evas * pEvas,
+                                                                                                       Evas_Object * pObj,
+                                                                                                       void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Evas_Event_Mouse_Up *ev = pEventInfo;
+
+       if (ev->button == 3) {
+               SubtitleEdgePopup *pSubtitleEdge = (SubtitleEdgePopup *) pUserData;
+
+               if (pSubtitleEdge->pCloseCb) {
+                       pSubtitleEdge->pCloseCb(-1, FALSE,
+                                                                       (void *) pSubtitleEdge->pUserData);
+               }
+       }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pSubtitleEdge
+ */
+static void _vp_subtitle_edge_destroy_handle(SubtitleEdgePopup *
+                                                                                        pSubtitleEdge)
+{
+       if (pSubtitleEdge == NULL) {
+               VideoLogError("pSubtitleEdge is NULL");
+               return;
+       }
+
+       evas_object_smart_callback_del(pSubtitleEdge->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_subtitle_edge_popup_rotate_cb);
+       evas_object_smart_callback_del(pSubtitleEdge->pGenList, "realized",
+                                                                  __vp_subtitle_edge_genlist_realized);
+
+       VP_EVAS_DEL(pSubtitleEdge->pRadio);
+       VP_EVAS_DEL(pSubtitleEdge->pGenList);
+       VP_EVAS_DEL(pSubtitleEdge->pButton);
+       VP_EVAS_DEL(pSubtitleEdge->pBox);
+
+       if (pSubtitleEdge->st_SubtitleEdge_Itc) {
+               elm_genlist_item_class_free(pSubtitleEdge->st_SubtitleEdge_Itc);
+               pSubtitleEdge->st_SubtitleEdge_Itc = NULL;
+       }
+
+       VP_EVAS_DEL(pSubtitleEdge->pPopup);
+
+       VP_FREE(pSubtitleEdge);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_edge_create_genlist(Evas_Object * pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_genlist_add(pParent);
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(pObj);
+       return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_subtitle_edge_add_genlist_item(Evas_Object * pObj,
+                                                                                          void *pUserData)
+{
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return FALSE;
+       }
+
+       SubtitleEdgePopup *pSubtitleEdge = (SubtitleEdgePopup *) pUserData;
+
+       if (pSubtitleEdge->st_SubtitleEdge_Itc) {
+               elm_genlist_item_class_free(pSubtitleEdge->st_SubtitleEdge_Itc);
+               pSubtitleEdge->st_SubtitleEdge_Itc = NULL;
+       }
+
+       pSubtitleEdge->st_SubtitleEdge_Itc = elm_genlist_item_class_new();
+
+       if (pSubtitleEdge->st_SubtitleEdge_Itc != NULL) {
+               pSubtitleEdge->st_SubtitleEdge_Itc->version =
+                       ELM_GENLIST_ITEM_CLASS_VERSION;
+               pSubtitleEdge->st_SubtitleEdge_Itc->item_style =
+                       "1text.1icon.3/popup";
+               pSubtitleEdge->st_SubtitleEdge_Itc->func.text_get =
+                       (void *) __vp_subtitle_edge_genlist_text_get_cb;
+               pSubtitleEdge->st_SubtitleEdge_Itc->func.content_get =
+                       (void *) __vp_subtitle_edge_genlist_content_get_cb;
+               pSubtitleEdge->st_SubtitleEdge_Itc->func.state_get = NULL;
+               pSubtitleEdge->st_SubtitleEdge_Itc->func.del = NULL;
+               pSubtitleEdge->nListCount = 0;
+
+               elm_genlist_item_append(pObj, pSubtitleEdge->st_SubtitleEdge_Itc,
+                                                               (void *) VP_PLAY_STRING_EDGE_NO_EDGE, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               __vp_subtitle_edge_genlist_item_selected_cb,
+                                                               pUserData);
+               pSubtitleEdge->nListCount++;
+               elm_genlist_item_append(pObj, pSubtitleEdge->st_SubtitleEdge_Itc,
+                                                               (void *) VP_PLAY_STRING_EDGE_RAISED, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               __vp_subtitle_edge_genlist_item_selected_cb,
+                                                               pUserData);
+               pSubtitleEdge->nListCount++;
+               elm_genlist_item_append(pObj, pSubtitleEdge->st_SubtitleEdge_Itc,
+                                                               (void *) VP_PLAY_STRING_EDGE_DEPRESSED,
+                                                               NULL, ELM_GENLIST_ITEM_NONE,
+                                                               __vp_subtitle_edge_genlist_item_selected_cb,
+                                                               pUserData);
+               pSubtitleEdge->nListCount++;
+               elm_genlist_item_append(pObj, pSubtitleEdge->st_SubtitleEdge_Itc,
+                                                               (void *) VP_PLAY_STRING_EDGE_UNIFORM, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               __vp_subtitle_edge_genlist_item_selected_cb,
+                                                               pUserData);
+               pSubtitleEdge->nListCount++;
+               elm_genlist_item_append(pObj, pSubtitleEdge->st_SubtitleEdge_Itc,
+                                                               (void *) VP_PLAY_STRING_EDGE_DROP_SHADOW,
+                                                               NULL, ELM_GENLIST_ITEM_NONE,
+                                                               __vp_subtitle_edge_genlist_item_selected_cb,
+                                                               pUserData);
+               pSubtitleEdge->nListCount++;
+       }
+
+       return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pCloseCb
+ * @param nDefaultSize
+ * @return
+ */
+subtitle_edge_handle vp_subtitle_edge_create(Evas_Object * pParent,
+                                                                                        PopupCloseCbFunc pCloseCb,
+                                                                                        int nDefaultSize)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       SubtitleEdgePopup *pSubtitleEdge = NULL;
+
+       pSubtitleEdge = calloc(1, sizeof(SubtitleEdgePopup));
+
+       if (pSubtitleEdge == NULL) {
+               VideoLogError("pSubtitleEdge alloc fail");
+               return NULL;
+       }
+
+       pSubtitleEdge->pParent = pParent;
+       pSubtitleEdge->pCloseCb = pCloseCb;
+
+       pSubtitleEdge->pPopup =
+               vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+                                               VP_PLAY_STRING_SUBTITLE_EDGE, NULL, 0.0, NULL,
+                                               __vp_subtitle_edge_popup_key_event_cb,
+                                               __vp_subtitle_edge_popup_mouse_event_cb,
+                                               (void *) pSubtitleEdge);
+       if (pSubtitleEdge->pPopup == NULL) {
+               VideoLogError("vp_popup_create fail");
+               _vp_subtitle_edge_destroy_handle(pSubtitleEdge);
+               return NULL;
+       }
+
+       pSubtitleEdge->pGenList =
+               _vp_subtitle_edge_create_genlist(pSubtitleEdge->pPopup);
+       if (pSubtitleEdge->pGenList == NULL) {
+               VideoLogError("_vp_subtitle_size_create_genlist fail");
+               _vp_subtitle_edge_destroy_handle(pSubtitleEdge);
+               return NULL;
+       }
+       evas_object_data_set(pSubtitleEdge->pGenList,
+                                                VP_SUBTITLE_EDGE_GENLIST_DATA_KEY,
+                                                (void *) pSubtitleEdge);
+       evas_object_smart_callback_add(pSubtitleEdge->pGenList, "realized",
+                                                                  __vp_subtitle_edge_genlist_realized,
+                                                                  NULL);
+
+       pSubtitleEdge->pRadio = elm_radio_add(pSubtitleEdge->pGenList);
+
+       if (!_vp_subtitle_edge_add_genlist_item
+               (pSubtitleEdge->pGenList, (void *) pSubtitleEdge)) {
+               VideoLogError("_vp_subtitle_size_add_genlist_item fail");
+               _vp_subtitle_edge_destroy_handle(pSubtitleEdge);
+               return NULL;
+       }
+
+       pSubtitleEdge->currentSubtitleEdge = nDefaultSize;
+       evas_object_smart_callback_add(pSubtitleEdge->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_subtitle_edge_popup_rotate_cb,
+                                                                  pSubtitleEdge);
+
+       pSubtitleEdge->pBox = elm_box_add(pSubtitleEdge->pPopup);
+       vp_popup_set_popup_min_size(pSubtitleEdge->pParent,
+                                                               pSubtitleEdge->pBox,
+                                                               pSubtitleEdge->nListCount,
+                                                               VIDEO_POPUP_DEFAULT);
+       elm_box_pack_end(pSubtitleEdge->pBox, pSubtitleEdge->pGenList);
+       elm_object_content_set(pSubtitleEdge->pPopup, pSubtitleEdge->pBox);
+
+       return pSubtitleEdge;
+}
+
+/**
+ *
+ * @param pSubtitleEdgeHandle
+ */
+void vp_subtitle_edge_destroy(subtitle_edge_handle pSubtitleEdgeHandle)
+{
+       if (pSubtitleEdgeHandle == NULL) {
+               VideoLogError("pSubtitleEdgeHandle is NULL");
+               return;
+       }
+
+       SubtitleEdgePopup *pSubtitleEdge =
+               (SubtitleEdgePopup *) pSubtitleEdgeHandle;
+
+       _vp_subtitle_edge_destroy_handle(pSubtitleEdge);
+
+}
+
+/**
+ *
+ * @param pSubtitleEdgeHandle
+ * @return
+ */
+bool vp_subtitle_edge_realize(subtitle_edge_handle pSubtitleEdgeHandle)
+{
+       if (pSubtitleEdgeHandle == NULL) {
+               VideoLogError("pSubtitleEdgeHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleEdgePopup *pSubtitleEdge =
+               (SubtitleEdgePopup *) pSubtitleEdgeHandle;
+
+       evas_object_show(pSubtitleEdge->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleEdgeHandle
+ * @return
+ */
+bool vp_subtitle_edge_unrealize(subtitle_edge_handle pSubtitleEdgeHandle)
+{
+       if (pSubtitleEdgeHandle == NULL) {
+               VideoLogError("pSubtitleEdgeHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleEdgePopup *pSubtitleEdge =
+               (SubtitleEdgePopup *) pSubtitleEdgeHandle;
+
+       evas_object_hide(pSubtitleEdge->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleEdgeHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_subtitle_edge_set_user_data(subtitle_edge_handle
+                                                                       pSubtitleEdgeHandle, void *pUserData)
+{
+       if (pSubtitleEdgeHandle == NULL) {
+               VideoLogError("pSubtitleEdgeHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleEdgePopup *pSubtitleEdge =
+               (SubtitleEdgePopup *) pSubtitleEdgeHandle;
+
+       pSubtitleEdge->pUserData = pUserData;
+
+       return TRUE;
+}
diff --git a/playview/src/feature/vp-subtitle-font.c b/playview/src/feature/vp-subtitle-font.c
new file mode 100755 (executable)
index 0000000..354a68d
--- /dev/null
@@ -0,0 +1,798 @@
+/*
+ * Copyright (c) 2020 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 <glib.h>
+#include <fontconfig/fontconfig.h>
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-subtitle-font.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SUBTITLE_FONT_GENLIST_DATA_KEY              "vp.subtitle.font.genlist"
+#define VP_FONT_PRELOAD_FONT_PATH                      "/usr/share/fonts"
+#define VP_FONT_DOWNLOADED_FONT_PATH                   "/opt/share/fonts"
+#define VP_FONT_DEFAULT_FONT_NAME                      "Tizen"
+#define VP_FONT_UDRGOTHIC_FONT_NAME            "UDRGothic"
+#define VP_FONT_UDMINCHO_FONT_NAME             "UDMincho"
+#define VP_FONT_POP_FONT_NAME                  "POP"
+#define VP_FONT_CHOCOCOOKY_FONT_NAME           "Choco cooky"
+#define VP_FONT_COOLJAZZ_FONT_NAME             "Cool jazz"
+#define VP_FONT_ROSEMARY_FONT_NAME             "Rosemary"
+
+typedef struct _SubtitleFontPopup {
+       Evas_Object *pParent;
+       Evas_Object *pPopup;
+       Evas_Object *pRadio;
+       Evas_Object *pButton;
+       Evas_Object *pBox;
+       Evas_Object *pGenList;
+       Elm_Genlist_Item_Class *st_SubtitleFont_Itc;
+
+       int nCurrentFontIdx;
+       int nAppendCount;
+       char *szCurrentFont;
+
+       void *pUserData;
+       SubtitleFontCbFunc pCloseCb;
+       GList *pFontList;
+       char *szSelectFont;
+} SubtitleFontPopup;
+
+
+
+static void _vp_subtitle_font_destroy_handle(SubtitleFontPopup *
+                                                                                        pSubtitleFont);
+static void __vp_subtitle_font_genlist_item_selected_cb(void *pUserData,
+                                                                                                               Evas_Object *
+                                                                                                               pObject,
+                                                                                                               void *pEventInfo);
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_font_genlist_realized(void *data,
+                                                                                               Evas_Object * obj,
+                                                                                               void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_font_popup_rotate_cb(void *data,
+                                                                                          Evas_Object * obj,
+                                                                                          void *event_info)
+{
+       SubtitleFontPopup *pSubtitleFont = (SubtitleFontPopup *) data;
+       if (!pSubtitleFont) {
+               VideoLogError("pSubtitleFont IS null");
+               return;
+       }
+       if (pSubtitleFont->nAppendCount < VP_POPUP_MIN_ITEMS) {
+               return;
+       }
+       vp_popup_set_popup_min_size(pSubtitleFont->pParent,
+                                                               pSubtitleFont->pBox,
+                                                               pSubtitleFont->nAppendCount,
+                                                               VIDEO_POPUP_DEFAULT);
+
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_subtitle_font_genlist_text_get_cb(const void *pUserData,
+                                                                                                       Evas_Object * pObj,
+                                                                                                       const char *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!strcmp(pPart, "elm.text")) {
+               char *szFormat = NULL;
+               if (strcmp(szTxt, VP_PLAY_STRING_COM_DEFAULT) == 0) {
+                       szFormat =
+                               g_strdup_printf("<font='%s'>%s</font>",
+                                                               VP_FONT_DEFAULT_FONT_NAME,
+                                                               VP_PLAY_STRING_FONT_DEFAULT);
+               } else if (strcmp(szTxt, VP_FONT_UDRGOTHIC_FONT_NAME) == 0) {
+                       szFormat =
+                               g_strdup_printf("<font='%s'>%s</font>",
+                                                               VP_FONT_UDRGOTHIC_FONT_NAME,
+                                                               VP_PLAY_STRING_FONT_UDRCOTHICM);
+               } else if (strcmp(szTxt, VP_FONT_UDMINCHO_FONT_NAME) == 0) {
+                       szFormat =
+                               g_strdup_printf("<font='%s'>%s</font>",
+                                                               VP_FONT_UDMINCHO_FONT_NAME,
+                                                               VP_PLAY_STRING_FONT_UDMINCHO);
+               } else if (strcmp(szTxt, VP_FONT_POP_FONT_NAME) == 0) {
+                       szFormat =
+                               g_strdup_printf("<font='%s'>%s</font>",
+                                                               VP_FONT_POP_FONT_NAME,
+                                                               VP_PLAY_STRING_FONT_POP);
+               } else if (strcmp(szTxt, VP_FONT_CHOCOCOOKY_FONT_NAME) == 0) {
+                       szFormat =
+                               g_strdup_printf("<font='%s'>%s</font>",
+                                                               VP_FONT_CHOCOCOOKY_FONT_NAME,
+                                                               VP_PLAY_STRING_FONT_CHOCO_COOKY);
+               } else if (strcmp(szTxt, VP_FONT_COOLJAZZ_FONT_NAME) == 0) {
+                       szFormat =
+                               g_strdup_printf("<font='%s'>%s</font>",
+                                                               VP_FONT_COOLJAZZ_FONT_NAME,
+                                                               VP_PLAY_STRING_FONT_COOL_JAZZ);
+               } else if (strcmp(szTxt, VP_FONT_ROSEMARY_FONT_NAME) == 0) {
+                       szFormat =
+                               g_strdup_printf("<font='%s'>%s</font>",
+                                                               VP_FONT_ROSEMARY_FONT_NAME,
+                                                               VP_PLAY_STRING_FONT_ROSEMARY);
+               }
+
+               return szFormat;
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_subtitle_font_genlist_content_get_cb(const void
+                                                                                                                         *pUserData,
+                                                                                                                         Evas_Object *
+                                                                                                                         pObj,
+                                                                                                                         const char
+                                                                                                                         *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!strcmp(pPart, "elm.icon")) {
+               Evas_Object *pRadioObj = NULL;
+
+               SubtitleFontPopup *pSubtitleFont =
+                       (SubtitleFontPopup *) evas_object_data_get(pObj,
+                                                                                                          VP_SUBTITLE_FONT_GENLIST_DATA_KEY);
+               if (pSubtitleFont == NULL) {
+                       VideoLogWarning("evas_object_data_get is fail");
+                       return NULL;
+               }
+
+               int nCount = 0;
+               int i = 0;
+               int nIndex = 0;
+
+               nCount = g_list_length(pSubtitleFont->pFontList);
+               for (i = 0; i < nCount; i++) {
+                       char *szName = NULL;
+                       szName = (char *) g_list_nth_data(pSubtitleFont->pFontList, i);
+                       if (szName == NULL) {
+                               continue;
+                       }
+                       if (strcmp(szName, szTxt) == 0) {
+                               nIndex = i + 1;
+                       }
+               }
+
+               /* get font list */
+               pRadioObj = elm_radio_add(pObj);
+               elm_radio_state_value_set(pRadioObj, nIndex);
+               elm_radio_group_add(pRadioObj, pSubtitleFont->pRadio);
+               elm_radio_value_set(pSubtitleFont->pRadio,
+                                                       pSubtitleFont->nCurrentFontIdx);
+               evas_object_smart_callback_add(pRadioObj, "changed",
+                                                                          __vp_subtitle_font_genlist_item_selected_cb,
+                                                                          pSubtitleFont);
+               evas_object_show(pRadioObj);
+
+               return pRadioObj;
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_subtitle_font_genlist_item_selected_cb(void *pUserData,
+                                                                                                               Evas_Object *
+                                                                                                               pObject,
+                                                                                                               void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+       char *szTxt = (char *) elm_object_item_data_get(pItem);
+       VideoLogError("szTxt = %s", szTxt);
+       if (szTxt == NULL) {
+               VideoLogError("szTxt is NULL");
+               return;
+       }
+
+       SubtitleFontPopup *pSubtitleFont = (SubtitleFontPopup *) pUserData;
+       int nIdx = 0;
+       char *szFontText = NULL;
+       if (strcmp(szTxt, VP_PLAY_STRING_COM_DEFAULT) == 0) {
+               szFontText = VP_FONT_DEFAULT_FONT_NAME;
+               nIdx = 0;
+       } else {
+               szFontText = szTxt;
+
+               int i = 0;
+               int nCount = g_list_length(pSubtitleFont->pFontList);
+               for (i = 0; i < nCount; i++) {
+                       char *szName = NULL;
+                       szName = (char *) g_list_nth_data(pSubtitleFont->pFontList, i);
+                       if (szName == NULL) {
+                               continue;
+                       }
+                       if (strcmp(szName, szTxt) == 0) {
+                               nIdx = i + 1;
+                       }
+               }
+       }
+
+       VP_FREE(pSubtitleFont->szSelectFont);
+       VP_STRDUP(pSubtitleFont->szSelectFont, szFontText);
+       pSubtitleFont->nCurrentFontIdx = nIdx;
+       if (pSubtitleFont->pCloseCb) {
+               pSubtitleFont->pCloseCb(szTxt, (void *) pSubtitleFont->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_font_popup_key_event_cb(void *pUserData,
+                                                                                                 Evas_Object * pObj,
+                                                                                                 void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitleFontPopup *pSubtitleFont = (SubtitleFontPopup *) pUserData;
+
+       if (pSubtitleFont->pCloseCb) {
+               pSubtitleFont->pCloseCb(NULL, (void *) pSubtitleFont->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_font_popup_mouse_event_cb(void *pUserData,
+                                                                                                       Evas * pEvas,
+                                                                                                       Evas_Object * pObj,
+                                                                                                       void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Evas_Event_Mouse_Up *ev = pEventInfo;
+
+       if (ev->button == 3) {
+               SubtitleFontPopup *pSubtitleFont = (SubtitleFontPopup *) pUserData;
+
+               if (pSubtitleFont->pCloseCb) {
+                       pSubtitleFont->pCloseCb(NULL,
+                                                                       (void *) pSubtitleFont->pUserData);
+               }
+       }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pSubtitleFont
+ */
+static void _vp_subtitle_font_destroy_handle(SubtitleFontPopup *
+                                                                                        pSubtitleFont)
+{
+       if (pSubtitleFont == NULL) {
+               VideoLogError("pSubtitleFont is NULL");
+               return;
+       }
+       int nCount = 0;
+       int i = 0;
+       evas_object_smart_callback_del(pSubtitleFont->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_subtitle_font_popup_rotate_cb);
+       evas_object_smart_callback_del(pSubtitleFont->pGenList, "realized",
+                                                                  __vp_subtitle_font_genlist_realized);
+
+       VP_EVAS_DEL(pSubtitleFont->pRadio);
+       VP_EVAS_DEL(pSubtitleFont->pGenList);
+       VP_EVAS_DEL(pSubtitleFont->pButton);
+       VP_EVAS_DEL(pSubtitleFont->pBox);
+
+       if (pSubtitleFont->st_SubtitleFont_Itc) {
+               elm_genlist_item_class_free(pSubtitleFont->st_SubtitleFont_Itc);
+               pSubtitleFont->st_SubtitleFont_Itc = NULL;
+       }
+
+       nCount = g_list_length(pSubtitleFont->pFontList);
+       for (i = 0; i < nCount; i++) {
+               char *szName = NULL;
+               szName = (char *) g_list_nth_data(pSubtitleFont->pFontList, i);
+               VP_FREE(szName);
+       }
+       g_list_free(pSubtitleFont->pFontList);
+       pSubtitleFont->pFontList = NULL;
+
+       VP_EVAS_DEL(pSubtitleFont->pPopup);
+       VP_FREE(pSubtitleFont->szCurrentFont);
+       VP_FREE(pSubtitleFont->szSelectFont);
+
+       VP_FREE(pSubtitleFont);
+
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_font_create_genlist(Evas_Object * pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_genlist_add(pParent);
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(pObj);
+       return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_subtitle_font_add_genlist_item(Evas_Object * pObj,
+                                                                                          void *pUserData)
+{
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return FALSE;
+       }
+
+       SubtitleFontPopup *pSubtitleFont = (SubtitleFontPopup *) pUserData;
+
+       if (pSubtitleFont->st_SubtitleFont_Itc) {
+               elm_genlist_item_class_free(pSubtitleFont->st_SubtitleFont_Itc);
+               pSubtitleFont->st_SubtitleFont_Itc = NULL;
+       }
+
+       pSubtitleFont->st_SubtitleFont_Itc = elm_genlist_item_class_new();
+
+       if (pSubtitleFont->st_SubtitleFont_Itc != NULL) {
+               pSubtitleFont->st_SubtitleFont_Itc->version =
+                       ELM_GENLIST_ITEM_CLASS_VERSION;
+               pSubtitleFont->st_SubtitleFont_Itc->item_style =
+                       "video.multiline/1text.1icon";
+               pSubtitleFont->st_SubtitleFont_Itc->func.text_get =
+                       (void *) __vp_subtitle_font_genlist_text_get_cb;
+               pSubtitleFont->st_SubtitleFont_Itc->func.content_get =
+                       (void *) __vp_subtitle_font_genlist_content_get_cb;
+               pSubtitleFont->st_SubtitleFont_Itc->func.state_get = NULL;
+               pSubtitleFont->st_SubtitleFont_Itc->func.del = NULL;
+
+               elm_genlist_item_append(pObj, pSubtitleFont->st_SubtitleFont_Itc,
+                                                               (void *) VP_PLAY_STRING_COM_DEFAULT, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               __vp_subtitle_font_genlist_item_selected_cb,
+                                                               pUserData);
+               pSubtitleFont->nAppendCount++;
+
+               int nCount = 0;
+               int i = 0;
+
+               nCount = g_list_length(pSubtitleFont->pFontList);
+               for (i = 0; i < nCount; i++) {
+                       char *szName = NULL;
+                       szName = (char *) g_list_nth_data(pSubtitleFont->pFontList, i);
+                       if (szName == NULL) {
+                               continue;
+                       }
+                       elm_genlist_item_append(pObj,
+                                                                       pSubtitleFont->st_SubtitleFont_Itc,
+                                                                       (void *) szName, NULL,
+                                                                       ELM_GENLIST_ITEM_NONE,
+                                                                       __vp_subtitle_font_genlist_item_selected_cb,
+                                                                       pUserData);
+                       pSubtitleFont->nAppendCount++;
+               }
+       }
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleFont
+ * @return
+ */
+static bool __vp_subtitle_font_load_font_list(SubtitleFontPopup *
+                                                                                         pSubtitleFont)
+{
+       if (pSubtitleFont == NULL) {
+               VideoLogError("pSubtitleFont is NULL");
+               return FALSE;
+       }
+
+       FcObjectSet *os = NULL;
+       FcFontSet *fs = NULL;
+       FcPattern *pat = NULL;
+       FcConfig *font_config = NULL;
+
+       font_config = FcInitLoadConfigAndFonts();
+       pat = FcPatternCreate();
+       os = FcObjectSetBuild(FC_FAMILY, FC_FILE, (char *) 0);
+       if (os) {
+               fs = FcFontList(font_config, pat, os);
+               FcObjectSetDestroy(os);
+               os = NULL;
+       }
+
+       if (pat) {
+               FcPatternDestroy(pat);
+               pat = NULL;
+       }
+
+       int nPreloadPathLen = strlen(VP_FONT_PRELOAD_FONT_PATH);
+       int nDownloadPathLen = strlen(VP_FONT_DOWNLOADED_FONT_PATH);
+
+       if (fs) {
+               int j;
+               VideoLogError("fs->nfont = %d", fs->nfont);
+
+               for (j = 0; j < fs->nfont; j++) {
+                       FcChar8 *szfamily = NULL;
+                       FcChar8 *szFile = NULL;
+
+                       if (FcPatternGetString(fs->fonts[j], FC_FILE, 0, &szFile) ==
+                               FcResultMatch) {
+                               if (szFile == NULL) {
+                                       continue;
+                               }
+                               if (strncmp
+                                       ((const char *) szFile, VP_FONT_PRELOAD_FONT_PATH,
+                                        nPreloadPathLen) == 0
+                                       || strncmp((const char *) szFile,
+                                                          VP_FONT_DOWNLOADED_FONT_PATH,
+                                                          nDownloadPathLen) == 0) {
+                                       if (FcPatternGetString
+                                               (fs->fonts[j], FC_FAMILY, 0,
+                                                &szfamily) == FcResultMatch) {
+                                               bool bIsExist = FALSE;
+
+                                               if (szfamily == NULL) {
+                                                       continue;
+                                               }
+
+                                               if (pSubtitleFont->pFontList) {
+                                                       int nCount = 0;
+                                                       int nIdx = 0;
+
+                                                       nCount =
+                                                               g_list_length(pSubtitleFont->pFontList);
+                                                       for (nIdx = 0; nIdx < nCount; nIdx++) {
+                                                               char *szListName = NULL;
+                                                               szListName = (char *)
+                                                                       g_list_nth_data
+                                                                       (pSubtitleFont->pFontList, nIdx);
+                                                               if (szListName) {
+                                                                       if (strcmp
+                                                                               ((char *) szfamily,
+                                                                                szListName) == 0) {
+                                                                               bIsExist = TRUE;
+                                                                       }
+                                                               }
+                                                       }
+                                               }
+                                               if (bIsExist == FALSE) {
+                                                       if ((strcmp
+                                                                ((char *) szfamily,
+                                                                 VP_FONT_UDRGOTHIC_FONT_NAME) == 0)
+                                                               ||
+                                                               (strcmp
+                                                                ((char *) szfamily,
+                                                                 VP_FONT_UDMINCHO_FONT_NAME) == 0)
+                                                               ||
+                                                               (strcmp
+                                                                ((char *) szfamily,
+                                                                 VP_FONT_POP_FONT_NAME) == 0)
+                                                               ||
+                                                               (strcmp
+                                                                ((char *) szfamily,
+                                                                 VP_FONT_CHOCOCOOKY_FONT_NAME) == 0)
+                                                               ||
+                                                               (strcmp
+                                                                ((char *) szfamily,
+                                                                 VP_FONT_COOLJAZZ_FONT_NAME) == 0)
+                                                               ||
+                                                               (strcmp
+                                                                ((char *) szfamily,
+                                                                 VP_FONT_ROSEMARY_FONT_NAME) == 0)) {
+                                                               char *szFontName = NULL;
+                                                               VP_STRDUP(szFontName, (char *) szfamily);
+                                                               if (szFontName) {
+                                                                       pSubtitleFont->pFontList =
+                                                                               g_list_append
+                                                                               (pSubtitleFont->pFontList,
+                                                                                szFontName);
+                                                                       if (strcmp
+                                                                               (pSubtitleFont->szCurrentFont,
+                                                                                szFontName) == 0) {
+                                                                               pSubtitleFont->nCurrentFontIdx =
+                                                                                       g_list_length
+                                                                                       (pSubtitleFont->pFontList);
+                                                                       }
+                                                               }
+                                                               VideoLogError("==> [%d] : %s ", j,
+                                                                                         szfamily);
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+               }
+               FcFontSetDestroy(fs);
+               fs = NULL;
+       }
+       FcConfigDestroy(font_config);
+       font_config = NULL;
+
+       return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pCloseCb
+ * @param szCurrentFont
+ * @return
+ */
+subtitle_font_handle vp_subtitle_font_create(Evas_Object * pParent,
+                                                                                        SubtitleFontCbFunc pCloseCb,
+                                                                                        char *szCurrentFont)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       if (szCurrentFont == NULL) {
+               VideoLogError("szCurrentFont is NULL");
+               return NULL;
+       }
+       SubtitleFontPopup *pSubtitleFont = NULL;
+
+
+       pSubtitleFont = calloc(1, sizeof(SubtitleFontPopup));
+
+       if (pSubtitleFont == NULL) {
+               VideoLogError("pSubtitleFont alloc fail");
+               return NULL;
+       }
+
+       pSubtitleFont->pParent = pParent;
+       pSubtitleFont->pCloseCb = pCloseCb;
+       VP_STRDUP(pSubtitleFont->szCurrentFont, szCurrentFont);
+       pSubtitleFont->nCurrentFontIdx = 0;
+
+       pSubtitleFont->pPopup =
+               vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+                                               VP_PLAY_STRING_SUBTITLE_FONT, NULL, 0.0, NULL,
+                                               __vp_subtitle_font_popup_key_event_cb,
+                                               __vp_subtitle_font_popup_mouse_event_cb,
+                                               (void *) pSubtitleFont);
+       if (pSubtitleFont->pPopup == NULL) {
+               VideoLogError("vp_popup_create fail");
+               _vp_subtitle_font_destroy_handle(pSubtitleFont);
+               return NULL;
+       }
+
+       pSubtitleFont->pGenList =
+               _vp_subtitle_font_create_genlist(pSubtitleFont->pPopup);
+       if (pSubtitleFont->pGenList == NULL) {
+               VideoLogError("_vp_subtitle_font_create_genlist fail");
+               _vp_subtitle_font_destroy_handle(pSubtitleFont);
+               return NULL;
+       }
+       evas_object_data_set(pSubtitleFont->pGenList,
+                                                VP_SUBTITLE_FONT_GENLIST_DATA_KEY,
+                                                (void *) pSubtitleFont);
+       evas_object_smart_callback_add(pSubtitleFont->pGenList, "realized",
+                                                                  __vp_subtitle_font_genlist_realized,
+                                                                  NULL);
+
+       pSubtitleFont->pRadio = elm_radio_add(pSubtitleFont->pGenList);
+
+       __vp_subtitle_font_load_font_list(pSubtitleFont);
+
+       elm_genlist_mode_set(pSubtitleFont->pGenList, ELM_LIST_COMPRESS);
+
+       if (!_vp_subtitle_font_add_genlist_item
+               (pSubtitleFont->pGenList, (void *) pSubtitleFont)) {
+               VideoLogError("_vp_subtitle_font_add_genlist_item fail");
+               _vp_subtitle_font_destroy_handle(pSubtitleFont);
+               return NULL;
+       }
+
+       evas_object_smart_callback_add(pSubtitleFont->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_subtitle_font_popup_rotate_cb,
+                                                                  pSubtitleFont);
+
+       pSubtitleFont->pBox = elm_box_add(pSubtitleFont->pPopup);
+       vp_popup_set_popup_min_size(pSubtitleFont->pParent,
+                                                               pSubtitleFont->pBox,
+                                                               pSubtitleFont->nAppendCount,
+                                                               VIDEO_POPUP_DEFAULT);
+
+       elm_box_pack_end(pSubtitleFont->pBox, pSubtitleFont->pGenList);
+       elm_object_content_set(pSubtitleFont->pPopup, pSubtitleFont->pBox);
+
+       return pSubtitleFont;
+}
+
+/**
+ *
+ * @param pSubtitleFontHandle
+ */
+void vp_subtitle_font_destroy(subtitle_font_handle pSubtitleFontHandle)
+{
+       if (pSubtitleFontHandle == NULL) {
+               VideoLogError("pSubtitleFontHandle is NULL");
+               return;
+       }
+
+       SubtitleFontPopup *pSubtitleFont =
+               (SubtitleFontPopup *) pSubtitleFontHandle;
+
+       _vp_subtitle_font_destroy_handle(pSubtitleFont);
+
+}
+
+/**
+ *
+ * @param pSubtitleFontHandle
+ * @return
+ */
+bool vp_subtitle_font_realize(subtitle_font_handle pSubtitleFontHandle)
+{
+       if (pSubtitleFontHandle == NULL) {
+               VideoLogError("pSubtitleFontHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleFontPopup *pSubtitleFont =
+               (SubtitleFontPopup *) pSubtitleFontHandle;
+
+       evas_object_show(pSubtitleFont->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleFontHandle
+ * @return
+ */
+bool vp_subtitle_font_unrealize(subtitle_font_handle pSubtitleFontHandle)
+{
+       if (pSubtitleFontHandle == NULL) {
+               VideoLogError("pSubtitleFontHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleFontPopup *pSubtitleFont =
+               (SubtitleFontPopup *) pSubtitleFontHandle;
+
+       evas_object_hide(pSubtitleFont->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleFontHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_subtitle_font_set_user_data(subtitle_font_handle
+                                                                       pSubtitleFontHandle, void *pUserData)
+{
+       if (pSubtitleFontHandle == NULL) {
+               VideoLogError("pSubtitleFontHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleFontPopup *pSubtitleFont =
+               (SubtitleFontPopup *) pSubtitleFontHandle;
+
+       pSubtitleFont->pUserData = pUserData;
+
+       return TRUE;
+}
diff --git a/playview/src/feature/vp-subtitle-select.c b/playview/src/feature/vp-subtitle-select.c
new file mode 100755 (executable)
index 0000000..3666170
--- /dev/null
@@ -0,0 +1,688 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-subtitle-select.h"
+
+/* check temp */
+#include "vp-play-log.h"
+#include "vp-file-util.h"
+#include "vp-play-preference.h"
+
+#define VP_SUBTITLE_SELECT_GENLIST_DATA_KEY            "vp.subtitle.select.genlist"
+
+
+typedef struct _SubtitleSelectPopup {
+       Evas_Object *pParent;
+       Evas_Object *pPopup;
+       Evas_Object *pRadio;
+       Evas_Object *pButton;
+       Evas_Object *pBox;
+       Evas_Object *pGenList;
+       Elm_Genlist_Item_Class *st_SubtitleSelect_Itc;
+       Elm_Genlist_Item_Class *st_SubtitleSelect_Itc1;
+
+       int nAppendCount;
+
+       void *pUserData;
+       SubtitleCloseCbFunc pCloseCb;
+       SubtitleCloseCbFunc pButtonCb;
+       GList *pItemList;
+       int nSubtitleIdx;
+} SubtitleSelectPopup;
+
+
+
+static void _vp_subtitle_select_destroy_handle(SubtitleSelectPopup *
+                                                                                          pSubtitleSelect);
+static void __vp_subtitle_select_genlist_item_selected_cb(void *pUserData,
+                                                                                                                 Evas_Object *
+                                                                                                                 pObj,
+                                                                                                                 void
+                                                                                                                 *pEventInfo);
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_select_genlist_realized(void *data,
+                                                                                                 Evas_Object * obj,
+                                                                                                 void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_select_popup_rotate_cb(void *data,
+                                                                                                Evas_Object * obj,
+                                                                                                void *event_info)
+{
+       SubtitleSelectPopup *pSubtitleSelect = (SubtitleSelectPopup *) data;
+       if (!pSubtitleSelect) {
+               VideoLogError("pSubtitleSelect IS null");
+               return;
+       }
+       if (pSubtitleSelect->nAppendCount < VP_POPUP_MIN_ITEMS) {
+               return;
+       }
+       vp_popup_set_popup_min_size(pSubtitleSelect->pParent,
+                                                               pSubtitleSelect->pBox,
+                                                               pSubtitleSelect->nAppendCount,
+                                                               VIDEO_POPUP_2_TEXT_1_ICON);
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_subtitle_select_genlist_text_get_cb(const void
+                                                                                                         *pUserData,
+                                                                                                         Evas_Object * pObj,
+                                                                                                         const char *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       const char *szTxt = (const char *) pUserData;
+
+       if (!strcmp(pPart, "elm.text")) {
+               const char *szFileName = vp_file_get(szTxt);
+               if (szFileName) {
+                       return strdup(szFileName);
+               }
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_subtitle_select_genlist_content_get_cb(const void
+                                                                                                                               *pUserData,
+                                                                                                                               Evas_Object
+                                                                                                                               *pObj,
+                                                                                                                               const char
+                                                                                                                               *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!strcmp(pPart, "elm.swallow.end")) {
+               Evas_Object *pRadioObj = NULL;
+
+               SubtitleSelectPopup *pSubtitleSelect =
+                       (SubtitleSelectPopup *) evas_object_data_get(pObj,
+                                                                                                                VP_SUBTITLE_SELECT_GENLIST_DATA_KEY);
+               if (pSubtitleSelect == NULL) {
+                       VideoLogWarning("evas_object_data_get is fail");
+                       return NULL;
+               }
+
+               if (pSubtitleSelect->pItemList == NULL) {
+                       // sub-title does not exist
+                       pRadioObj = elm_radio_add(pObj);
+                       return pRadioObj;
+               } else {
+                       // sub-title exist
+                       int nIndex = 0;
+                       int nCount = 0;
+                       int i = 0;
+
+                       nCount = g_list_length(pSubtitleSelect->pItemList);
+                       for (i = 0; i < nCount; i++) {
+                               char *szName = NULL;
+                               szName =
+                                       (char *) g_list_nth_data(pSubtitleSelect->pItemList,
+                                                                                        i);
+
+                               if (szName == NULL) {
+                                       continue;
+                               }
+                               if (strcmp(szName, szTxt) == 0) {
+                                       break;
+                               }
+                               nIndex++;
+                       }
+
+                       /* get file name list */
+                       pRadioObj = elm_radio_add(pObj);
+                       elm_radio_state_value_set(pRadioObj, nIndex);
+                       elm_radio_group_add(pRadioObj, pSubtitleSelect->pRadio);
+                       elm_radio_value_set(pSubtitleSelect->pRadio,
+                                                               pSubtitleSelect->nSubtitleIdx);
+                       evas_object_smart_callback_add(pRadioObj, "changed",
+                                                                                  __vp_subtitle_select_genlist_item_selected_cb,
+                                                                                  pSubtitleSelect);
+                       evas_object_show(pRadioObj);
+                       return pRadioObj;
+               }
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_subtitle_select_genlist_item_selected_cb(void *pUserData,
+                                                                                                                 Evas_Object *
+                                                                                                                 pObject,
+                                                                                                                 void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+       char *szTxt = (char *) elm_object_item_data_get(pItem);
+
+       VideoSecureLogInfo("Selected subtitle path=%s", szTxt);
+       if (szTxt == NULL) {
+               VideoLogError("szTxt is NULL");
+               return;
+       }
+
+       SubtitleSelectPopup *pSubtitleSelect =
+               (SubtitleSelectPopup *) pUserData;
+       int nIndex = 0;
+       int nCount = 0;
+       int i = 0;
+
+       nCount = g_list_length(pSubtitleSelect->pItemList);
+       for (i = 0; i < nCount; i++) {
+               char *szName = NULL;
+               szName = (char *) g_list_nth_data(pSubtitleSelect->pItemList, i);
+
+               if (szName == NULL) {
+                       continue;
+               }
+               if (strcmp(szName, szTxt) == 0) {
+                       break;
+               }
+               nIndex++;
+       }
+
+       pSubtitleSelect->nSubtitleIdx = nIndex;
+       if (szTxt) {
+               char *szName = NULL;
+               VP_STRDUP(szName, szTxt);
+               if (pSubtitleSelect->pCloseCb) {
+                       pSubtitleSelect->pCloseCb(szName,
+                                                                         (void *) pSubtitleSelect->pUserData);
+               }
+               VP_FREE(szName);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_select_popup_cancel_cb(void *pUserData,
+                                                                                                Evas_Object * pObj,
+                                                                                                void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitleSelectPopup *pSubtitleSelect =
+               (SubtitleSelectPopup *) pUserData;
+
+       if (pSubtitleSelect->pButtonCb) {
+               pSubtitleSelect->pButtonCb("cancel",
+                                                                  (void *) pSubtitleSelect->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_select_popup_settings_cb(void *pUserData,
+                                                                                                  Evas_Object * pObj,
+                                                                                                  void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitleSelectPopup *pSubtitleSelect =
+               (SubtitleSelectPopup *) pUserData;
+
+       if (pSubtitleSelect->pButtonCb) {
+               pSubtitleSelect->pButtonCb("settings",
+                                                                  (void *) pSubtitleSelect->pUserData);
+       }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pSubtitleSelect
+ */
+static void _vp_subtitle_select_destroy_handle(SubtitleSelectPopup *
+                                                                                          pSubtitleSelect)
+{
+       if (pSubtitleSelect == NULL) {
+               VideoLogError("pSubtitleSelect is NULL");
+               return;
+       }
+       int nCount = 0;
+       int i = 0;
+
+       evas_object_smart_callback_del(pSubtitleSelect->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_subtitle_select_popup_rotate_cb);
+       evas_object_smart_callback_del(pSubtitleSelect->pGenList, "realized",
+                                                                  __vp_subtitle_select_genlist_realized);
+
+
+       VP_EVAS_DEL(pSubtitleSelect->pRadio);
+       VP_EVAS_DEL(pSubtitleSelect->pGenList);
+       VP_EVAS_DEL(pSubtitleSelect->pButton);
+       VP_EVAS_DEL(pSubtitleSelect->pBox);
+
+       if (pSubtitleSelect->st_SubtitleSelect_Itc) {
+               elm_genlist_item_class_free(pSubtitleSelect->
+                                                                       st_SubtitleSelect_Itc);
+               pSubtitleSelect->st_SubtitleSelect_Itc = NULL;
+       }
+
+       nCount = g_list_length(pSubtitleSelect->pItemList);
+       for (i = 0; i < nCount; i++) {
+               char *szName = NULL;
+               szName = (char *) g_list_nth_data(pSubtitleSelect->pItemList, i);
+               VP_FREE(szName);
+       }
+
+       g_list_free(pSubtitleSelect->pItemList);
+       pSubtitleSelect->pItemList = NULL;
+       VP_EVAS_DEL(pSubtitleSelect->pPopup);
+
+       VP_FREE(pSubtitleSelect);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_select_create_genlist(Evas_Object *
+                                                                                                          pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_genlist_add(pParent);
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(pObj);
+       return pObj;
+}
+
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_subtitle_select_add_genlist_item(Evas_Object * pObj,
+                                                                                                void *pUserData)
+{
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return FALSE;
+       }
+
+       SubtitleSelectPopup *pSubtitleSelect =
+               (SubtitleSelectPopup *) pUserData;
+
+       if (pSubtitleSelect->st_SubtitleSelect_Itc) {
+               elm_genlist_item_class_free(pSubtitleSelect->
+                                                                       st_SubtitleSelect_Itc);
+               pSubtitleSelect->st_SubtitleSelect_Itc = NULL;
+       }
+
+       pSubtitleSelect->st_SubtitleSelect_Itc = elm_genlist_item_class_new();
+
+       if (pSubtitleSelect->st_SubtitleSelect_Itc != NULL) {
+               pSubtitleSelect->st_SubtitleSelect_Itc->version =
+                       ELM_GENLIST_ITEM_CLASS_VERSION;
+               pSubtitleSelect->st_SubtitleSelect_Itc->item_style = "type1";
+               pSubtitleSelect->st_SubtitleSelect_Itc->func.text_get =
+                       (void *) __vp_subtitle_select_genlist_text_get_cb;
+               pSubtitleSelect->st_SubtitleSelect_Itc->func.content_get =
+                       (void *) __vp_subtitle_select_genlist_content_get_cb;
+               pSubtitleSelect->st_SubtitleSelect_Itc->func.state_get = NULL;
+               pSubtitleSelect->st_SubtitleSelect_Itc->func.del = NULL;
+       }
+
+       int nCount = 0;
+       int i = 0;
+       pSubtitleSelect->nAppendCount = 0;
+       Elm_Object_Item *it = NULL;
+       nCount = g_list_length(pSubtitleSelect->pItemList);
+       for (i = 0; i < nCount; i++) {
+               char *szName = NULL;
+               szName = (char *) g_list_nth_data(pSubtitleSelect->pItemList, i);
+               if (szName == NULL) {
+                       continue;
+               }
+               it = elm_genlist_item_append(pObj,
+                                                                        pSubtitleSelect->
+                                                                        st_SubtitleSelect_Itc,
+                                                                        (void *) szName, NULL,
+                                                                        ELM_GENLIST_ITEM_NONE,
+                                                                        __vp_subtitle_select_genlist_item_selected_cb,
+                                                                        pUserData);
+               pSubtitleSelect->nAppendCount++;
+       }
+       if (pSubtitleSelect->nAppendCount == 1) {
+               elm_object_item_disabled_set(it, EINA_TRUE);
+       }
+       VideoLogError("pSubtitleSelect->nAppendCount= %d",
+                                 pSubtitleSelect->nAppendCount);
+
+       return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pCloseCb
+ * @param pButtonCb
+ * @param pFileList
+ * @param szCurrentPath
+ * @param isSubtitleOff
+ * @return
+ */
+subtitle_select_handle vp_subtitle_select_create(Evas_Object * pParent,
+                                                                                                SubtitleCloseCbFunc
+                                                                                                pCloseCb,
+                                                                                                SubtitleCloseCbFunc
+                                                                                                pButtonCb,
+                                                                                                GList * pFileList,
+                                                                                                char *szCurrentPath,
+                                                                                                bool isSubtitleOff)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       SubtitleSelectPopup *pSubtitleSelect = NULL;
+
+       pSubtitleSelect = calloc(1, sizeof(SubtitleSelectPopup));
+
+       if (pSubtitleSelect == NULL) {
+               VideoLogError("pSubtitleSelect alloc fail");
+               return NULL;
+       }
+
+       pSubtitleSelect->pParent = pParent;
+       pSubtitleSelect->pCloseCb = pCloseCb;
+       pSubtitleSelect->pButtonCb = pButtonCb;
+       int nItemCount = 0;
+       if (pFileList) {
+               nItemCount = g_list_length(pFileList);
+       }
+       if (nItemCount > 0)
+               pSubtitleSelect->pPopup =
+                       vp_two_button_popup_create(pParent,
+                                                                          VP_PLAY_STRING_SUBTITLE_SELECT_SUBTITLES,
+                                                                          NULL, VP_PLAY_STRING_COM_CANCEL,
+                                                                          __vp_subtitle_select_popup_cancel_cb,
+                                                                          VP_PLAY_STRING_SETTINGS,
+                                                                          __vp_subtitle_select_popup_settings_cb,
+                                                                          (void *) pSubtitleSelect);
+       else {
+               pSubtitleSelect->pPopup =
+                       vp_two_button_popup_create(pParent,
+                                                                          VP_PLAY_STRING_SUBTITLE_SELECT_SUBTITLES,
+                                                                          NULL, VP_PLAY_STRING_COM_CANCEL,
+                                                                          __vp_subtitle_select_popup_cancel_cb,
+                                                                          VP_PLAY_STRING_SETTINGS, NULL,
+                                                                          (void *) pSubtitleSelect);
+               Elm_Object_Item *it = NULL;
+               it = (Evas_Object *) elm_object_part_content_get(pSubtitleSelect->
+                                                                                                                pPopup,
+                                                                                                                "button2");
+               if (it) {
+                       elm_object_disabled_set(it, EINA_TRUE);
+               }
+       }
+       eext_object_event_callback_add(pSubtitleSelect->pPopup,
+                                                                  EEXT_CALLBACK_BACK,
+                                                                  __vp_subtitle_select_popup_cancel_cb,
+                                                                  (void *) pSubtitleSelect);
+       if (pSubtitleSelect->pPopup == NULL) {
+               VideoLogError("vp_popup_create fail");
+               _vp_subtitle_select_destroy_handle(pSubtitleSelect);
+               return NULL;
+       }
+
+       pSubtitleSelect->pGenList =
+               _vp_subtitle_select_create_genlist(pSubtitleSelect->pPopup);
+       if (pSubtitleSelect->pGenList == NULL) {
+               VideoLogError("_vp_subtitle_select_create_genlist fail");
+               _vp_subtitle_select_destroy_handle(pSubtitleSelect);
+               return NULL;
+       }
+       evas_object_data_set(pSubtitleSelect->pGenList,
+                                                VP_SUBTITLE_SELECT_GENLIST_DATA_KEY,
+                                                (void *) pSubtitleSelect);
+       elm_genlist_mode_set(pSubtitleSelect->pGenList, ELM_LIST_COMPRESS);
+       evas_object_smart_callback_add(pSubtitleSelect->pGenList, "realized",
+                                                                  __vp_subtitle_select_genlist_realized,
+                                                                  NULL);
+
+       pSubtitleSelect->pRadio = elm_radio_add(pSubtitleSelect->pGenList);
+
+       int i = 0;
+       int nCount = 0;
+
+       if (pFileList) {
+               for (i = 0; i < nItemCount; i++) {
+                       char *szName = NULL;
+                       char *szItem = NULL;
+                       szName = (char *) g_list_nth_data(pFileList, i);
+                       if (szName == NULL) {
+                               continue;
+                       }
+                       if (szCurrentPath) {
+                               if (strcmp(szName, szCurrentPath) == 0) {
+                                       pSubtitleSelect->nSubtitleIdx = nCount;
+                                       elm_radio_value_set(pSubtitleSelect->pRadio,
+                                                                               pSubtitleSelect->nSubtitleIdx);
+                               }
+                       }
+                       VP_STRDUP(szItem, szName);
+                       pSubtitleSelect->pItemList =
+                               g_list_append(pSubtitleSelect->pItemList, (void *) szItem);
+                       nCount++;
+               }
+       }
+
+       char *szItem = NULL;
+       VP_STRDUP(szItem, VP_PLAY_STRING_SUBTITLE_OFF);
+       pSubtitleSelect->pItemList =
+               g_list_append(pSubtitleSelect->pItemList, (void *) szItem);
+       nCount++;
+       bool bOn = FALSE;
+       vp_play_preference_get_subtitle_show_key(&bOn);
+       if (!_vp_subtitle_select_add_genlist_item
+               (pSubtitleSelect->pGenList, (void *) pSubtitleSelect)) {
+               VideoLogError("_vp_subtitle_select_add_genlist_item fail");
+               _vp_subtitle_select_destroy_handle(pSubtitleSelect);
+               return FALSE;
+       }
+       if (isSubtitleOff || !bOn) {
+               pSubtitleSelect->nSubtitleIdx = (nCount - 1);
+               elm_radio_value_set(pSubtitleSelect->pRadio,
+                                                       pSubtitleSelect->nSubtitleIdx);
+       }
+       evas_object_smart_callback_add(pSubtitleSelect->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_subtitle_select_popup_rotate_cb,
+                                                                  pSubtitleSelect);
+
+       pSubtitleSelect->pBox = elm_box_add(pSubtitleSelect->pPopup);
+       vp_popup_set_popup_min_size(pSubtitleSelect->pParent,
+                                                               pSubtitleSelect->pBox,
+                                                               pSubtitleSelect->nAppendCount,
+                                                               VIDEO_POPUP_DEFAULT);
+
+       elm_box_pack_end(pSubtitleSelect->pBox, pSubtitleSelect->pGenList);
+       elm_object_content_set(pSubtitleSelect->pPopup, pSubtitleSelect->pBox);
+
+       return pSubtitleSelect;
+}
+
+/**
+ *
+ * @param pSubtitleSelectHandle
+ */
+void vp_subtitle_select_destroy(subtitle_select_handle
+                                                               pSubtitleSelectHandle)
+{
+       if (pSubtitleSelectHandle == NULL) {
+               VideoLogError("pSubtitleSelectHandle is NULL");
+               return;
+       }
+
+       SubtitleSelectPopup *pSubtitleSelect =
+               (SubtitleSelectPopup *) pSubtitleSelectHandle;
+
+       _vp_subtitle_select_destroy_handle(pSubtitleSelect);
+}
+
+/**
+ *
+ * @param pSubtitleSelectHandle
+ * @return
+ */
+bool vp_subtitle_select_realize(subtitle_select_handle
+                                                               pSubtitleSelectHandle)
+{
+       if (pSubtitleSelectHandle == NULL) {
+               VideoLogError("pSubtitleSelectHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleSelectPopup *pSubtitleSelect =
+               (SubtitleSelectPopup *) pSubtitleSelectHandle;
+
+       evas_object_show(pSubtitleSelect->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleSelectHandle
+ * @return
+ */
+bool vp_subtitle_select_unrealize(subtitle_select_handle
+                                                                 pSubtitleSelectHandle)
+{
+       if (pSubtitleSelectHandle == NULL) {
+               VideoLogError("pSubtitleSelectHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleSelectPopup *pSubtitleSelect =
+               (SubtitleSelectPopup *) pSubtitleSelectHandle;
+
+       evas_object_hide(pSubtitleSelect->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleSelectHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_subtitle_select_set_user_data(subtitle_select_handle
+                                                                         pSubtitleSelectHandle,
+                                                                         void *pUserData)
+{
+       if (pSubtitleSelectHandle == NULL) {
+               VideoLogError("pSubtitleSelectHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleSelectPopup *pSubtitleSelect =
+               (SubtitleSelectPopup *) pSubtitleSelectHandle;
+
+       pSubtitleSelect->pUserData = pUserData;
+
+       return TRUE;
+}
diff --git a/playview/src/feature/vp-subtitle-size.c b/playview/src/feature/vp-subtitle-size.c
new file mode 100755 (executable)
index 0000000..d754026
--- /dev/null
@@ -0,0 +1,573 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-type-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-subtitle-size.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SUBTITLE_SIZE_GENLIST_DATA_KEY              "vp.subtitle.size.genlist"
+
+
+typedef struct _SubtitleSizePopup {
+       Evas_Object *pParent;
+       Evas_Object *pPopup;
+       Evas_Object *pRadio;
+       Evas_Object *pButton;
+       Evas_Object *pBox;
+       Evas_Object *pGenList;
+       Elm_Genlist_Item_Class *st_SubtitleSize_Itc;
+
+       int nListCount;
+
+       void *pUserData;
+       PopupCloseCbFunc pCloseCb;
+       video_play_subtitle_size_t currentSubtitleSize;
+} SubtitleSizePopup;
+
+
+
+static void _vp_subtitle_size_destroy_handle(SubtitleSizePopup *
+                                                                                        pSubtitleSize);
+static void __vp_subtitle_size_genlist_item_selected_cb(void *pUserData,
+                                                                                                               Evas_Object *
+                                                                                                               pObject,
+                                                                                                               void *pEventInfo);
+
+/**
+ * .
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_size_genlist_realized(void *data,
+                                                                                               Evas_Object * obj,
+                                                                                               void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_size_popup_rotate_cb(void *data,
+                                                                                          Evas_Object * obj,
+                                                                                          void *event_info)
+{
+       SubtitleSizePopup *pSubtitleSize = (SubtitleSizePopup *) data;
+       if (!pSubtitleSize) {
+               VideoLogError("pSubtitleSize IS null");
+               return;
+       }
+       if (pSubtitleSize->nListCount < VP_POPUP_MIN_ITEMS) {
+               return;
+       }
+       vp_popup_set_popup_min_size(pSubtitleSize->pParent,
+                                                               pSubtitleSize->pBox,
+                                                               pSubtitleSize->nListCount,
+                                                               VIDEO_POPUP_DEFAULT);
+
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_subtitle_size_genlist_text_get_cb(const void *pUserData,
+                                                                                                       Evas_Object * pObj,
+                                                                                                       const char *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       if (!strcmp(pPart, "elm.text")) {
+
+               char *szTxt = (char *) pUserData;
+               char szTmp[VP_STRING_LEN_MAX] = { 0, };
+               int nSize = 0;
+
+               if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE_SMALL)) {
+                       nSize = VP_SUBTITLE_SIZE_SMALL_VALUE;
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE_MEDIUM)) {
+                       nSize = VP_SUBTITLE_SIZE_MEDIUM_VALUE;
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE_LARGE)) {
+                       nSize = VP_SUBTITLE_SIZE_LARGE_VALUE;
+               }
+
+               snprintf(szTmp, VP_STRING_LEN_MAX - 1,
+                                "<font_size=%d>%s</font_size>", nSize, szTxt);
+
+               return strdup(szTmp);
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_subtitle_size_genlist_content_get_cb(const void
+                                                                                                                         *pUserData,
+                                                                                                                         Evas_Object *
+                                                                                                                         pObj,
+                                                                                                                         const char
+                                                                                                                         *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!strcmp(pPart, "elm.swallow.end")) {
+               Evas_Object *pRadioObj = NULL;
+
+               SubtitleSizePopup *pSubtitleSize =
+                       (SubtitleSizePopup *) evas_object_data_get(pObj,
+                                                                                                          VP_SUBTITLE_SIZE_GENLIST_DATA_KEY);
+               if (pSubtitleSize == NULL) {
+                       VideoLogWarning("evas_object_data_get is fail");
+                       return NULL;
+               }
+               video_play_subtitle_size_t nSize = VIDEO_SUBTITLE_SIZE_MEDIUM;
+               if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE_SMALL)) {
+                       nSize = VIDEO_SUBTITLE_SIZE_SMALL;
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE_MEDIUM)) {
+                       nSize = VIDEO_SUBTITLE_SIZE_MEDIUM;
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE_LARGE)) {
+                       nSize = VIDEO_SUBTITLE_SIZE_LARGE;
+               }
+
+               pRadioObj = elm_radio_add(pObj);
+               elm_radio_state_value_set(pRadioObj, nSize);
+               elm_radio_group_add(pRadioObj, pSubtitleSize->pRadio);
+               elm_radio_value_set(pSubtitleSize->pRadio,
+                                                       pSubtitleSize->currentSubtitleSize);
+               evas_object_smart_callback_add(pRadioObj, "changed",
+                                                                          __vp_subtitle_size_genlist_item_selected_cb,
+                                                                          pSubtitleSize);
+               evas_object_show(pRadioObj);
+
+               return pRadioObj;
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_subtitle_size_genlist_item_selected_cb(void *pUserData,
+                                                                                                               Evas_Object *
+                                                                                                               pObject,
+                                                                                                               void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+       char *szTxt = (char *) elm_object_item_data_get(pItem);
+
+       SubtitleSizePopup *pSubtitleSize = (SubtitleSizePopup *) pUserData;
+
+       if (szTxt == NULL) {
+               VideoLogError("szTxt is NULL");
+               return;
+       }
+       video_play_subtitle_size_t nSize = VIDEO_SUBTITLE_SIZE_MEDIUM;
+       if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE_SMALL)) {
+               nSize = VIDEO_SUBTITLE_SIZE_SMALL;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE_MEDIUM)) {
+               nSize = VIDEO_SUBTITLE_SIZE_MEDIUM;
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE_LARGE)) {
+               nSize = VIDEO_SUBTITLE_SIZE_LARGE;
+       }
+
+       pSubtitleSize->currentSubtitleSize = nSize;
+       if (pSubtitleSize->pCloseCb) {
+               pSubtitleSize->pCloseCb(nSize, FALSE,
+                                                               (void *) pSubtitleSize->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_size_popup_key_event_cb(void *pUserData,
+                                                                                                 Evas_Object * pObj,
+                                                                                                 void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitleSizePopup *pSubtitleSize = (SubtitleSizePopup *) pUserData;
+
+       if (pSubtitleSize->pCloseCb) {
+               pSubtitleSize->pCloseCb(-1, FALSE,
+                                                               (void *) pSubtitleSize->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_size_popup_mouse_event_cb(void *pUserData,
+                                                                                                       Evas * pEvas,
+                                                                                                       Evas_Object * pObj,
+                                                                                                       void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Evas_Event_Mouse_Up *ev = pEventInfo;
+
+       if (ev->button == 3) {
+               SubtitleSizePopup *pSubtitleSize = (SubtitleSizePopup *) pUserData;
+
+               if (pSubtitleSize->pCloseCb) {
+                       pSubtitleSize->pCloseCb(-1, FALSE,
+                                                                       (void *) pSubtitleSize->pUserData);
+               }
+       }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pSubtitleSize
+ */
+static void _vp_subtitle_size_destroy_handle(SubtitleSizePopup *
+                                                                                        pSubtitleSize)
+{
+       if (pSubtitleSize == NULL) {
+               VideoLogError("pSubtitleSize is NULL");
+               return;
+       }
+
+       evas_object_smart_callback_del(pSubtitleSize->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_subtitle_size_popup_rotate_cb);
+       evas_object_smart_callback_del(pSubtitleSize->pGenList, "realized",
+                                                                  __vp_subtitle_size_genlist_realized);
+
+       VP_EVAS_DEL(pSubtitleSize->pRadio);
+       VP_EVAS_DEL(pSubtitleSize->pGenList);
+       VP_EVAS_DEL(pSubtitleSize->pButton);
+       VP_EVAS_DEL(pSubtitleSize->pBox);
+
+       if (pSubtitleSize->st_SubtitleSize_Itc) {
+               elm_genlist_item_class_free(pSubtitleSize->st_SubtitleSize_Itc);
+               pSubtitleSize->st_SubtitleSize_Itc = NULL;
+       }
+
+       VP_EVAS_DEL(pSubtitleSize->pPopup);
+
+       VP_FREE(pSubtitleSize);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_size_create_genlist(Evas_Object * pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_genlist_add(pParent);
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(pObj);
+       return pObj;
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_subtitle_size_add_genlist_item(Evas_Object * pObj,
+                                                                                          void *pUserData)
+{
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return FALSE;
+       }
+
+       SubtitleSizePopup *pSubtitleSize = (SubtitleSizePopup *) pUserData;
+
+       if (pSubtitleSize->st_SubtitleSize_Itc) {
+               elm_genlist_item_class_free(pSubtitleSize->st_SubtitleSize_Itc);
+               pSubtitleSize->st_SubtitleSize_Itc = NULL;
+       }
+
+       pSubtitleSize->st_SubtitleSize_Itc = elm_genlist_item_class_new();
+
+       if (pSubtitleSize->st_SubtitleSize_Itc != NULL) {
+               pSubtitleSize->st_SubtitleSize_Itc->version =
+                       ELM_GENLIST_ITEM_CLASS_VERSION;
+               pSubtitleSize->st_SubtitleSize_Itc->item_style = "type1";
+               pSubtitleSize->st_SubtitleSize_Itc->func.text_get =
+                       (void *) __vp_subtitle_size_genlist_text_get_cb;
+               pSubtitleSize->st_SubtitleSize_Itc->func.content_get =
+                       (void *) __vp_subtitle_size_genlist_content_get_cb;
+               pSubtitleSize->st_SubtitleSize_Itc->func.state_get = NULL;
+               pSubtitleSize->st_SubtitleSize_Itc->func.del = NULL;
+               pSubtitleSize->nListCount = 0;
+
+               elm_genlist_item_append(pObj,
+                                                               pSubtitleSize->st_SubtitleSize_Itc,
+                                                               (void *)
+                                                               VP_PLAY_STRING_SUBTITLE_SIZE_LARGE, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               __vp_subtitle_size_genlist_item_selected_cb,
+                                                               pUserData);
+               pSubtitleSize->nListCount++;
+               elm_genlist_item_append(pObj, pSubtitleSize->st_SubtitleSize_Itc,
+                                                               (void *)
+                                                               VP_PLAY_STRING_SUBTITLE_SIZE_MEDIUM, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               __vp_subtitle_size_genlist_item_selected_cb,
+                                                               pUserData);
+               pSubtitleSize->nListCount++;
+               elm_genlist_item_append(pObj, pSubtitleSize->st_SubtitleSize_Itc,
+                                                               (void *)
+                                                               VP_PLAY_STRING_SUBTITLE_SIZE_SMALL, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               __vp_subtitle_size_genlist_item_selected_cb,
+                                                               pUserData);
+               pSubtitleSize->nListCount++;
+       }
+
+       return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pCloseCb
+ * @param nDefaultSize
+ * @return
+ */
+subtitle_size_handle vp_subtitle_size_create(Evas_Object * pParent,
+                                                                                        PopupCloseCbFunc pCloseCb,
+                                                                                        int nDefaultSize)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       SubtitleSizePopup *pSubtitleSize = NULL;
+
+       pSubtitleSize = calloc(1, sizeof(SubtitleSizePopup));
+
+       if (pSubtitleSize == NULL) {
+               VideoLogError("pSubtitleSize alloc fail");
+               return NULL;
+       }
+
+       pSubtitleSize->pParent = pParent;
+       pSubtitleSize->pCloseCb = pCloseCb;
+
+       pSubtitleSize->pPopup =
+               vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+                                               VP_PLAY_STRING_SUBTITLE_SIZE, NULL, 0.0, NULL,
+                                               __vp_subtitle_size_popup_key_event_cb,
+                                               __vp_subtitle_size_popup_mouse_event_cb,
+                                               (void *) pSubtitleSize);
+       if (pSubtitleSize->pPopup == NULL) {
+               VideoLogError("vp_popup_create fail");
+               _vp_subtitle_size_destroy_handle(pSubtitleSize);
+               return NULL;
+       }
+
+       pSubtitleSize->pGenList =
+               _vp_subtitle_size_create_genlist(pSubtitleSize->pPopup);
+       if (pSubtitleSize->pGenList == NULL) {
+               VideoLogError("_vp_subtitle_size_create_genlist fail");
+               _vp_subtitle_size_destroy_handle(pSubtitleSize);
+               return NULL;
+       }
+       evas_object_data_set(pSubtitleSize->pGenList,
+                                                VP_SUBTITLE_SIZE_GENLIST_DATA_KEY,
+                                                (void *) pSubtitleSize);
+       evas_object_smart_callback_add(pSubtitleSize->pGenList, "realized",
+                                                                  __vp_subtitle_size_genlist_realized,
+                                                                  NULL);
+
+       pSubtitleSize->pRadio = elm_radio_add(pSubtitleSize->pGenList);
+
+       if (!_vp_subtitle_size_add_genlist_item
+               (pSubtitleSize->pGenList, (void *) pSubtitleSize)) {
+               VideoLogError("_vp_subtitle_size_add_genlist_item fail");
+               _vp_subtitle_size_destroy_handle(pSubtitleSize);
+               return NULL;
+       }
+
+       pSubtitleSize->currentSubtitleSize = nDefaultSize;
+       evas_object_smart_callback_add(pSubtitleSize->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_subtitle_size_popup_rotate_cb,
+                                                                  pSubtitleSize);
+
+       pSubtitleSize->pBox = elm_box_add(pSubtitleSize->pPopup);
+       vp_popup_set_popup_min_size(pSubtitleSize->pParent,
+                                                               pSubtitleSize->pBox,
+                                                               pSubtitleSize->nListCount,
+                                                               VIDEO_POPUP_DEFAULT);
+       elm_box_pack_end(pSubtitleSize->pBox, pSubtitleSize->pGenList);
+       elm_object_content_set(pSubtitleSize->pPopup, pSubtitleSize->pBox);
+
+       return pSubtitleSize;
+}
+
+/**
+ *
+ * @param pSubtitleSizeHandle
+ */
+void vp_subtitle_size_destroy(subtitle_size_handle pSubtitleSizeHandle)
+{
+       if (pSubtitleSizeHandle == NULL) {
+               VideoLogError("pSubtitleSizeHandle is NULL");
+               return;
+       }
+
+       SubtitleSizePopup *pSubtitleSize =
+               (SubtitleSizePopup *) pSubtitleSizeHandle;
+
+       _vp_subtitle_size_destroy_handle(pSubtitleSize);
+
+}
+
+/**
+ *
+ * @param pSubtitleSizeHandle
+ * @return
+ */
+bool vp_subtitle_size_realize(subtitle_size_handle pSubtitleSizeHandle)
+{
+       if (pSubtitleSizeHandle == NULL) {
+               VideoLogError("pSubtitleSizeHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleSizePopup *pSubtitleSize =
+               (SubtitleSizePopup *) pSubtitleSizeHandle;
+
+       evas_object_show(pSubtitleSize->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleSizeHandle
+ * @return
+ */
+bool vp_subtitle_size_unrealize(subtitle_size_handle pSubtitleSizeHandle)
+{
+       if (pSubtitleSizeHandle == NULL) {
+               VideoLogError("pSubtitleSizeHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleSizePopup *pSubtitleSize =
+               (SubtitleSizePopup *) pSubtitleSizeHandle;
+
+       evas_object_hide(pSubtitleSize->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleSizeHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_subtitle_size_set_user_data(subtitle_size_handle
+                                                                       pSubtitleSizeHandle, void *pUserData)
+{
+       if (pSubtitleSizeHandle == NULL) {
+               VideoLogError("pSubtitleSizeHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleSizePopup *pSubtitleSize =
+               (SubtitleSizePopup *) pSubtitleSizeHandle;
+
+       pSubtitleSize->pUserData = pUserData;
+
+       return TRUE;
+}
diff --git a/playview/src/feature/vp-subtitle-sync.c b/playview/src/feature/vp-subtitle-sync.c
new file mode 100755 (executable)
index 0000000..4ffd652
--- /dev/null
@@ -0,0 +1,700 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-string-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-subtitle-sync.h"
+#include "vp-play-button.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SUBTITLE_SYNC_MAX_VALUE             30.0
+#define VP_SUBTITLE_SYNC_MIN_VALUE             -30.0
+
+typedef struct _SubtitleSyncPopup {
+       Evas_Object *pParent;
+       Evas_Object *pPopup;
+       Evas_Object *pLayout;
+       Evas_Object *pBox;
+       Evas_Object *pSlider;
+       Evas_Object *pOkButton;
+       Evas_Object *pCancelButton;
+       Evas_Object *pAddButton;
+       Evas_Object *pDelButton;
+
+       float fSyncVal;
+
+       void *pUserData;
+
+       SubtitleSyncDoneCbFunc pDoneCb;
+       SubtitleSyncUpdateCbFunc pUpdateCb;
+
+} SubtitleSyncPopup;
+
+
+
+static void _vp_subtitle_sync_popup_destroy_handle(SubtitleSyncPopup *
+                                                                                                  pSubtitleSyncPopup);
+static void _vp_subtitle_sync_update_text(SubtitleSyncPopup *
+                                                                                 pSubtitleSyncPopup);
+
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_sync_popup_ok_btn_cb(void *pUserData,
+                                                                                          Evas_Object * pObj,
+                                                                                          void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitleSyncPopup *pSubtitleSyncPopup =
+               (SubtitleSyncPopup *) pUserData;
+
+       if (pSubtitleSyncPopup->pDoneCb) {
+               pSubtitleSyncPopup->pDoneCb(pSubtitleSyncPopup->fSyncVal, TRUE,
+                                                                       (void *)
+                                                                       pSubtitleSyncPopup->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_sync_popup_cancel_btn_cb(void *pUserData,
+                                                                                                  Evas_Object * pObj,
+                                                                                                  void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitleSyncPopup *pSubtitleSyncPopup =
+               (SubtitleSyncPopup *) pUserData;
+
+       if (pSubtitleSyncPopup->pDoneCb) {
+               pSubtitleSyncPopup->pDoneCb(pSubtitleSyncPopup->fSyncVal, FALSE,
+                                                                       (void *)
+                                                                       pSubtitleSyncPopup->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_sync_popup_key_event_cb(void *pUserData,
+                                                                                                 Evas_Object * pObj,
+                                                                                                 void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitleSyncPopup *pSubtitleSyncPopup =
+               (SubtitleSyncPopup *) pUserData;
+
+       if (pSubtitleSyncPopup->pDoneCb) {
+               pSubtitleSyncPopup->pDoneCb(pSubtitleSyncPopup->fSyncVal, FALSE,
+                                                                       (void *)
+                                                                       pSubtitleSyncPopup->pUserData);
+       }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_sync_popup_mouse_event_cb(void *pUserData,
+                                                                                                       Evas * pEvas,
+                                                                                                       Evas_Object * pObj,
+                                                                                                       void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Evas_Event_Mouse_Up *ev = pEventInfo;
+
+       if (ev->button == 3) {
+               SubtitleSyncPopup *pSubtitleSyncPopup =
+                       (SubtitleSyncPopup *) pUserData;
+               if (pSubtitleSyncPopup->pDoneCb) {
+                       pSubtitleSyncPopup->pDoneCb(pSubtitleSyncPopup->fSyncVal,
+                                                                               FALSE,
+                                                                               (void *)
+                                                                               pSubtitleSyncPopup->pUserData);
+               }
+
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_sync_popup_slider_change_cb(void *pUserData,
+                                                                                                         Evas_Object * pObj,
+                                                                                                         void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitleSyncPopup *pSubtitleSyncPopup =
+               (SubtitleSyncPopup *) pUserData;
+
+       float fValue =
+               (float) elm_slider_value_get(pSubtitleSyncPopup->pSlider);
+
+       if (fValue != pSubtitleSyncPopup->fSyncVal) {
+               if (pSubtitleSyncPopup->pUpdateCb) {
+                       pSubtitleSyncPopup->pUpdateCb(pSubtitleSyncPopup->fSyncVal,
+                                                                                 (void *)
+                                                                                 pSubtitleSyncPopup->pUserData);
+                       pSubtitleSyncPopup->fSyncVal = fValue;
+                       _vp_subtitle_sync_update_text(pSubtitleSyncPopup);
+               }
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_subtitle_sync_btn_clicked_cb(void *pUserData,
+                                                                                         Evas_Object * pObj,
+                                                                                         void *pEvent)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitleSyncPopup *pSubtitleSyncPopup =
+               (SubtitleSyncPopup *) pUserData;
+
+       float fValue =
+               (float) elm_slider_value_get(pSubtitleSyncPopup->pSlider);
+       VideoLogWarning("== %f ==", fValue);
+
+       if (pObj == pSubtitleSyncPopup->pAddButton) {
+               fValue += 0.2;
+               if (fValue <= VP_SUBTITLE_SYNC_MAX_VALUE) {
+                       VideoLogWarning("== %f ==", fValue);
+                       elm_slider_value_set(pSubtitleSyncPopup->pSlider,
+                                                                (double) fValue);
+                       if (pSubtitleSyncPopup->pUpdateCb) {
+                               pSubtitleSyncPopup->pUpdateCb(pSubtitleSyncPopup->fSyncVal,
+                                                                                         (void *)
+                                                                                         pSubtitleSyncPopup->pUserData);
+                               pSubtitleSyncPopup->fSyncVal = fValue;
+                               _vp_subtitle_sync_update_text(pSubtitleSyncPopup);
+                       }
+               }
+       } else if (pObj == pSubtitleSyncPopup->pDelButton) {
+               fValue -= 0.2;
+               if (fValue >= VP_SUBTITLE_SYNC_MIN_VALUE) {
+                       VideoLogWarning("== %f ==", fValue);
+                       elm_slider_value_set(pSubtitleSyncPopup->pSlider,
+                                                                (double) fValue);
+                       if (pSubtitleSyncPopup->pUpdateCb) {
+                               pSubtitleSyncPopup->pUpdateCb(pSubtitleSyncPopup->fSyncVal,
+                                                                                         (void *)
+                                                                                         pSubtitleSyncPopup->pUserData);
+                               pSubtitleSyncPopup->fSyncVal = fValue;
+                               _vp_subtitle_sync_update_text(pSubtitleSyncPopup);
+                       }
+               }
+       }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pSubtitleSyncPopup
+ */
+static void _vp_subtitle_sync_popup_destroy_handle(SubtitleSyncPopup *
+                                                                                                  pSubtitleSyncPopup)
+{
+       if (pSubtitleSyncPopup == NULL) {
+               VideoLogError("pSubtitleSyncPopup is NULL");
+               return;
+       }
+
+       VP_EVAS_DEL(pSubtitleSyncPopup->pAddButton);
+       VP_EVAS_DEL(pSubtitleSyncPopup->pDelButton);
+
+       VP_EVAS_DEL(pSubtitleSyncPopup->pOkButton);
+       VP_EVAS_DEL(pSubtitleSyncPopup->pCancelButton);
+       VP_EVAS_DEL(pSubtitleSyncPopup->pSlider);
+       VP_EVAS_DEL(pSubtitleSyncPopup->pBox);
+       VP_EVAS_DEL(pSubtitleSyncPopup->pLayout);
+       VP_EVAS_DEL(pSubtitleSyncPopup->pPopup);
+
+       VP_FREE(pSubtitleSyncPopup);
+}
+
+/**
+ *
+ * @param pSubtitleSyncPopup
+ */
+static void _vp_subtitle_sync_update_text(SubtitleSyncPopup *
+                                                                                 pSubtitleSyncPopup)
+{
+       if (pSubtitleSyncPopup == NULL) {
+               VideoLogError("pSubtitleSyncPopup is NULL");
+               return;
+       }
+
+       char szValue[6] = { 0, };
+
+       snprintf(szValue, 6, "%0.1f", (double) pSubtitleSyncPopup->fSyncVal);
+       elm_object_part_text_set(pSubtitleSyncPopup->pLayout,
+                                                        "elm.text.title", szValue);
+
+}
+
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object *_vp_subtitle_sync_popup_create_ok_button(Evas_Object *
+                                                                                                                        pParent,
+                                                                                                                        void
+                                                                                                                        *pUserData)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       pObj = elm_button_add(pParent);
+       elm_object_style_set(pObj, "popup_button/default");
+       elm_object_domain_translatable_text_set(pObj, VP_SYS_STR_PREFIX,
+                                                                                       VP_PLAY_STRING_COM_OK_IDS);
+       elm_object_part_content_set(pParent, "button2", pObj);
+       evas_object_smart_callback_add(pObj, "clicked",
+                                                                  __vp_subtitle_sync_popup_ok_btn_cb,
+                                                                  pUserData);
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object
+       *_vp_subtitle_sync_popup_create_cancel_button(Evas_Object * pParent,
+                                                                                                  void *pUserData)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       pObj = elm_button_add(pParent);
+       elm_object_style_set(pObj, "popup_button/default");
+       elm_object_domain_translatable_text_set(pObj, VP_SYS_STR_PREFIX,
+                                                                                       VP_PLAY_STRING_COM_CANCEL_IDS);
+       elm_object_part_content_set(pParent, "button1", pObj);
+       evas_object_smart_callback_add(pObj, "clicked",
+                                                                  __vp_subtitle_sync_popup_cancel_btn_cb,
+                                                                  pUserData);
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object *_vp_subtitle_sync_popup_create_slider(Evas_Object *
+                                                                                                                 pParent,
+                                                                                                                 void *pUserData)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_slider_add(pParent);
+       elm_slider_indicator_show_set(pObj, EINA_FALSE);
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       elm_slider_min_max_set(pObj, VP_SUBTITLE_SYNC_MIN_VALUE,
+                                                  VP_SUBTITLE_SYNC_MAX_VALUE);
+       evas_object_smart_callback_add(pObj, "changed",
+                                                                  __vp_subtitle_sync_popup_slider_change_cb,
+                                                                  pUserData);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static bool _vp_subtitle_sync_popup_create_button(Evas_Object * pParent,
+                                                                                                 void *pUserData)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return FALSE;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_RESROUCE_EDJ_PATH);
+       free(path);
+       SubtitleSyncPopup *pSubtitleSyncPopup =
+               (SubtitleSyncPopup *) pUserData;
+
+       pSubtitleSyncPopup->pDelButton =
+               vp_button_create(pParent, "custom/flat_63_78/default",
+                                                NULL, (Evas_Smart_Cb)
+                                                __vp_subtitle_sync_btn_clicked_cb,
+                                                (Evas_Smart_Cb) NULL, (Evas_Smart_Cb) NULL,
+                                                (void *) pSubtitleSyncPopup);
+
+
+
+       pSubtitleSyncPopup->pAddButton =
+               vp_button_create(pParent, "custom/flat_63_78/default",
+                                                NULL, (Evas_Smart_Cb)
+                                                __vp_subtitle_sync_btn_clicked_cb,
+                                                (Evas_Smart_Cb) NULL, (Evas_Smart_Cb) NULL,
+                                                (void *) pSubtitleSyncPopup);
+
+       Evas_Object *pIcon = NULL;
+
+       pIcon =
+               vp_button_create_icon(pSubtitleSyncPopup->pDelButton,
+                                                         edj_path, VP_PLAY_RES_BUTTON_DEL);
+       elm_object_part_content_set(pSubtitleSyncPopup->pDelButton,
+                                                               VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       pIcon =
+               vp_button_create_icon(pSubtitleSyncPopup->pDelButton,
+                                                         edj_path, VP_PLAY_RES_BUTTON_DEL_PRESS);
+       elm_object_part_content_set(pSubtitleSyncPopup->pDelButton,
+                                                               VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+       pIcon =
+               vp_button_create_icon(pSubtitleSyncPopup->pDelButton,
+                                                         edj_path, VP_PLAY_RES_BUTTON_DEL);
+       elm_object_part_content_set(pSubtitleSyncPopup->pDelButton,
+                                                               VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+
+       pIcon =
+               vp_button_create_icon(pSubtitleSyncPopup->pAddButton,
+                                                         edj_path, VP_PLAY_RES_BUTTON_ADD);
+       elm_object_part_content_set(pSubtitleSyncPopup->pAddButton,
+                                                               VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       pIcon =
+               vp_button_create_icon(pSubtitleSyncPopup->pAddButton,
+                                                         edj_path, VP_PLAY_RES_BUTTON_ADD_PRESS);
+       elm_object_part_content_set(pSubtitleSyncPopup->pAddButton,
+                                                               VP_PLAY_SWALLOW_BUTTON_PRESS_ICON, pIcon);
+
+       pIcon =
+               vp_button_create_icon(pSubtitleSyncPopup->pAddButton,
+                                                         edj_path, VP_PLAY_RES_BUTTON_ADD);
+       elm_object_part_content_set(pSubtitleSyncPopup->pAddButton,
+                                                               VP_PLAY_SWALLOW_BUTTON_DIM_ICON, pIcon);
+
+       elm_object_part_content_set(pParent, "elm.swallow.icon.1",
+                                                               pSubtitleSyncPopup->pDelButton);
+       elm_object_part_content_set(pParent, "elm.swallow.icon.2",
+                                                               pSubtitleSyncPopup->pAddButton);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_sync_popup_create_layout(Evas_Object *
+                                                                                                                 pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pLayout = elm_layout_add(pParent);
+       if (pLayout == NULL) {
+               VideoLogError("pLayout object is NULL");
+               return NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_SPEED_POPUP_EDJ);
+       free(path);
+       elm_layout_file_set(pLayout, edj_path,
+                                               VP_PLAY_EDJ_GROUP_PLAY_SPEED_POPUP);
+
+       evas_object_size_hint_weight_set(pLayout, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pLayout, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+
+       evas_object_show(pLayout);
+
+       return pLayout;
+
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param fSyncVal
+ * @param pUpdateCb
+ * @param pDoneCb
+ * @return
+ */
+subtitle_sync_popup vp_subtitle_sync_popup_create(Evas_Object * pParent,
+                                                                                                 float fSyncVal,
+                                                                                                 SubtitleSyncUpdateCbFunc
+                                                                                                 pUpdateCb,
+                                                                                                 SubtitleSyncDoneCbFunc
+                                                                                                 pDoneCb)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       SubtitleSyncPopup *pSubtitleSyncPopup = NULL;
+
+       pSubtitleSyncPopup = calloc(1, sizeof(SubtitleSyncPopup));
+
+       if (pSubtitleSyncPopup == NULL) {
+               VideoLogError("pSubtitleSyncPopup alloc fail");
+               return NULL;
+       }
+
+       pSubtitleSyncPopup->pParent = pParent;
+       pSubtitleSyncPopup->pUpdateCb = pUpdateCb;
+       pSubtitleSyncPopup->pDoneCb = pDoneCb;
+       pSubtitleSyncPopup->fSyncVal = fSyncVal;
+
+       pSubtitleSyncPopup->pPopup =
+               vp_popup_create(pParent, POPUP_STYLE_EXPAND_WITH_CANCEL_BTN,
+                                               VP_PLAY_STRING_SUBTITLE_SYNC, NULL, 0.0, NULL,
+                                               __vp_subtitle_sync_popup_key_event_cb,
+                                               __vp_subtitle_sync_popup_mouse_event_cb,
+                                               (void *) pSubtitleSyncPopup);
+
+       if (pSubtitleSyncPopup->pPopup == NULL) {
+               VideoLogError("vp_popup_create fail");
+               _vp_subtitle_sync_popup_destroy_handle(pSubtitleSyncPopup);
+               return NULL;
+       }
+
+       pSubtitleSyncPopup->pCancelButton =
+               _vp_subtitle_sync_popup_create_cancel_button
+               (pSubtitleSyncPopup->pPopup, (void *)
+                pSubtitleSyncPopup);
+       if (pSubtitleSyncPopup->pCancelButton == NULL) {
+               VideoLogError("_vp_subtitle_sync_popup_create_cancel_button fail");
+               _vp_subtitle_sync_popup_destroy_handle(pSubtitleSyncPopup);
+               return NULL;
+       }
+
+       pSubtitleSyncPopup->pOkButton =
+               _vp_subtitle_sync_popup_create_ok_button
+               (pSubtitleSyncPopup->pPopup, (void *)
+                pSubtitleSyncPopup);
+       if (pSubtitleSyncPopup->pOkButton == NULL) {
+               VideoLogError("_vp_subtitle_sync_popup_create_ok_button fail");
+               _vp_subtitle_sync_popup_destroy_handle(pSubtitleSyncPopup);
+               return NULL;
+       }
+
+       pSubtitleSyncPopup->pLayout =
+               _vp_subtitle_sync_popup_create_layout(pSubtitleSyncPopup->pPopup);
+       if (pSubtitleSyncPopup->pLayout == NULL) {
+               VideoLogError("_vp_subtitle_sync_popup_create_layout fail");
+               _vp_subtitle_sync_popup_destroy_handle(pSubtitleSyncPopup);
+               return NULL;
+       }
+
+       pSubtitleSyncPopup->pSlider =
+               _vp_subtitle_sync_popup_create_slider(pSubtitleSyncPopup->pLayout,
+                                                                                         pSubtitleSyncPopup);
+       if (pSubtitleSyncPopup->pSlider == NULL) {
+               VideoLogError("_vp_subtitle_sync_popup_create_slider fail");
+               _vp_subtitle_sync_popup_destroy_handle(pSubtitleSyncPopup);
+               return NULL;
+       }
+
+       _vp_subtitle_sync_popup_create_button(pSubtitleSyncPopup->pLayout,
+                                                                                 pSubtitleSyncPopup);
+
+       elm_slider_value_set(pSubtitleSyncPopup->pSlider,
+                                                (double) pSubtitleSyncPopup->fSyncVal);
+       _vp_subtitle_sync_update_text(pSubtitleSyncPopup);
+
+       elm_object_part_content_set(pSubtitleSyncPopup->pLayout,
+                                                               "elm.swallow.content",
+                                                               pSubtitleSyncPopup->pSlider);
+       elm_object_content_set(pSubtitleSyncPopup->pPopup,
+                                                  pSubtitleSyncPopup->pLayout);
+       evas_object_show(pSubtitleSyncPopup->pLayout);
+
+       elm_popup_orient_set(pSubtitleSyncPopup->pPopup,
+                                                ELM_POPUP_ORIENT_CENTER);
+
+       return pSubtitleSyncPopup;
+}
+
+/**
+ *
+ * @param pSubtitleSync
+ */
+void vp_subtitle_sync_popup_destroy(subtitle_sync_popup pSubtitleSync)
+{
+       if (pSubtitleSync == NULL) {
+               VideoLogError("pSubtitleSync is NULL");
+               return;
+       }
+
+       SubtitleSyncPopup *pSubtitleSyncPopup =
+               (SubtitleSyncPopup *) pSubtitleSync;
+
+       _vp_subtitle_sync_popup_destroy_handle(pSubtitleSyncPopup);
+
+}
+
+/**
+ *
+ * @param pSubtitleSync
+ * @return
+ */
+bool vp_subtitle_sync_popup_realize(subtitle_sync_popup pSubtitleSync)
+{
+       if (pSubtitleSync == NULL) {
+               VideoLogError("pSubtitleSync is NULL");
+               return FALSE;
+       }
+
+       SubtitleSyncPopup *pSubtitleSyncPopup =
+               (SubtitleSyncPopup *) pSubtitleSync;
+
+       evas_object_show(pSubtitleSyncPopup->pPopup);
+
+       return TRUE;
+}
+
+
+/**
+ *
+ * @param pSubtitleSync
+ * @return
+ */
+bool vp_subtitle_sync_popup_unrealize(subtitle_sync_popup pSubtitleSync)
+{
+       if (pSubtitleSync == NULL) {
+               VideoLogError("pSubtitleSync is NULL");
+               return FALSE;
+       }
+
+       SubtitleSyncPopup *pSubtitleSyncPopup =
+               (SubtitleSyncPopup *) pSubtitleSync;
+
+       evas_object_hide(pSubtitleSyncPopup->pPopup);
+
+       return TRUE;
+}
+
+
+/**
+ *
+ * @param pSubtitleSync
+ * @param pUserData
+ * @return
+ */
+bool vp_subtitle_sync_popup_set_user_data(subtitle_sync_popup
+                                                                                 pSubtitleSync, void *pUserData)
+{
+       if (pSubtitleSync == NULL) {
+               VideoLogError("pSubtitleSync is NULL");
+               return FALSE;
+       }
+
+       SubtitleSyncPopup *pSubtitleSyncPopup =
+               (SubtitleSyncPopup *) pSubtitleSync;
+
+       pSubtitleSyncPopup->pUserData = pUserData;
+
+       return TRUE;
+}
diff --git a/playview/src/feature/vp-subtitle-track.c b/playview/src/feature/vp-subtitle-track.c
new file mode 100755 (executable)
index 0000000..cc5f27b
--- /dev/null
@@ -0,0 +1,984 @@
+/*
+ * Copyright (c) 2020 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 <glib.h>
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+#include "vp-play-util.h"
+#include "vp-subtitle-track.h"
+#include "vp-device-language.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_SUBTITLE_TRACK_GENLIST_DATA_KEY             "vp.subtitle.track.genlist"
+
+
+typedef struct _SubtitleTrackItem {
+       Elm_Object_Item *pItem;
+       char *szName;
+       int nIndex;
+       void *pSubtitleTrackPopup;
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+       bool bCheck;
+#endif
+} SubtitleTrackItem;
+
+
+typedef struct _SubtitleTrackPopup {
+       Evas_Object *pParent;
+       Evas_Object *pPopup;
+#ifndef _SUBTITLE_MULTI_LANGUAGE
+       Evas_Object *pRadio;
+#endif
+       Evas_Object *pButton;
+       Evas_Object *pBox;
+       Evas_Object *pGenList;
+       Elm_Genlist_Item_Class *st_SubtitleTrack_Itc;
+
+       int nCurrentIndex;
+       int nListCount;
+
+       void *pUserData;
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+       SubtitleLanguageChangeCbFunc pAddLanguageCb;
+       SubtitleLanguageChangeCbFunc pRemoveLanguageCb;
+#endif
+       PopupCloseCbFunc pCloseCb;
+
+       GList *pItemList;
+} SubtitleTrackPopup;
+
+
+
+static void _vp_subtitle_track_destroy_handle(SubtitleTrackPopup *
+                                                                                         pSubtitleTrack);
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+static void __vp_subtitle_track_popup_check_state_change_cb(void
+                                                                                                                       *pUserData,
+                                                                                                                       Evas_Object *
+                                                                                                                       pObject, void
+                                                                                                                       *pEventInfo);
+#else
+static void __vp_subtitle_track_genlist_item_selected_cb(void *pUserData,
+                                                                                                                Evas_Object *
+                                                                                                                pObject, void
+                                                                                                                *pEventInfo);
+#endif
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_track_genlist_realized(void *data,
+                                                                                                Evas_Object * obj,
+                                                                                                void *event_info)
+{
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_track_popup_rotate_cb(void *data,
+                                                                                               Evas_Object * obj,
+                                                                                               void *event_info)
+{
+       SubtitleTrackPopup *pSubtitleTrack = (SubtitleTrackPopup *) data;
+       if (!pSubtitleTrack) {
+               VideoLogError("pSubtitleSize IS null");
+               return;
+       }
+       if (pSubtitleTrack->nListCount < VP_POPUP_MIN_ITEMS) {
+               return;
+       }
+       vp_popup_set_popup_min_size(pSubtitleTrack->pParent,
+                                                               pSubtitleTrack->pBox,
+                                                               pSubtitleTrack->nListCount,
+                                                               VIDEO_POPUP_DEFAULT);
+
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_subtitle_track_genlist_text_get_cb(const void
+                                                                                                        *pUserData,
+                                                                                                        Evas_Object * pObj,
+                                                                                                        const char *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("Invalid user data");
+               return NULL;
+       }
+
+       SubtitleTrackItem *pTrackItem = (SubtitleTrackItem *) pUserData;
+
+       if (!strcmp(pPart, "elm.text")) {
+               return strdup(pTrackItem->szName);
+       }
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_subtitle_track_genlist_content_get_cb(const void
+                                                                                                                          *pUserData,
+                                                                                                                          Evas_Object
+                                                                                                                          *pObj,
+                                                                                                                          const char
+                                                                                                                          *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("Invalid user data");
+               return NULL;
+       }
+
+       SubtitleTrackItem *pTrackItem = (SubtitleTrackItem *) pUserData;
+
+       if (!strcmp(pPart, "elm.icon")) {
+               SubtitleTrackPopup *pSubtitleTrack =
+                       (SubtitleTrackPopup *) pTrackItem->pSubtitleTrackPopup;
+               if (pSubtitleTrack == NULL) {
+                       VideoLogWarning("evas_object_data_get is fail");
+                       return NULL;
+               }
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+               Evas_Object *pCheckBox = elm_check_add(pObj);
+               evas_object_propagate_events_set(pCheckBox, EINA_FALSE);
+               evas_object_smart_callback_add(pCheckBox, "changed",
+                                                                          __vp_subtitle_track_popup_check_state_change_cb,
+                                                                          pUserData);
+               elm_check_state_set(pCheckBox, pTrackItem->bCheck);
+               evas_object_show(pCheckBox);
+
+               return pCheckBox;
+#else
+               Evas_Object *pRadioObj = NULL;
+               pRadioObj = elm_radio_add(pObj);
+               elm_radio_state_value_set(pRadioObj, pTrackItem->nIndex);
+               elm_radio_group_add(pRadioObj, pSubtitleTrack->pRadio);
+               elm_radio_value_set(pSubtitleTrack->pRadio,
+                                                       pSubtitleTrack->nCurrentIndex);
+               evas_object_smart_callback_add(pRadioObj, "changed",
+                                                                          __vp_subtitle_track_genlist_item_selected_cb,
+                                                                          pTrackItem);
+               evas_object_show(pRadioObj);
+
+               return pRadioObj;
+#endif
+       }
+
+       return NULL;
+}
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+/**
+ *
+ * @param pSubtitleTrackPopup
+ * @return
+ */
+static bool __vp_subtitle_track_select_no_item(SubtitleTrackPopup *
+                                                                                          pSubtitleTrackPopup)
+{
+       if (pSubtitleTrackPopup == NULL) {
+               VideoLogError("pSubtitleTrackPopup is NULL");
+               return false;
+       }
+
+       if (pSubtitleTrackPopup->pItemList == NULL) {
+               VideoLogError("pItemList is NULL");
+               return false;
+       }
+
+       bool ret = true;
+       int index = 0;
+       for (; index < g_list_length(pSubtitleTrackPopup->pItemList); ++index) {
+               SubtitleTrackItem *pItem = NULL;
+               pItem =
+                       (SubtitleTrackItem *)
+                       g_list_nth_data(pSubtitleTrackPopup->pItemList, index);
+               if (pItem && pItem->bCheck) {
+                       ret = false;
+                       break;
+               }
+       }
+
+       return ret;
+}
+
+/**
+ *
+ * @param pSubtitleTrackPopup
+ * @param bDisabled
+ */
+static void __vp_subtitle_track_popup_disable_button(SubtitleTrackPopup *
+                                                                                                        pSubtitleTrackPopup,
+                                                                                                        bool bDisabled)
+{
+       if (pSubtitleTrackPopup == NULL) {
+               VideoLogError("pSubtitleTrackPopup is NULL");
+               return;
+       }
+
+       if (pSubtitleTrackPopup->pPopup == NULL) {
+               VideoLogError("pPopup is NULL");
+               return;
+       }
+
+       Evas_Object *pRightButton =
+               elm_object_part_content_get(pSubtitleTrackPopup->pPopup,
+                                                                       "button2");
+       if (pRightButton && bDisabled != elm_object_disabled_get(pRightButton)) {
+               elm_object_disabled_set(pRightButton, bDisabled);
+       }
+}
+#endif
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_subtitle_track_genlist_item_selected_cb(void *pUserData,
+                                                                                                                Evas_Object *
+                                                                                                                pObject,
+                                                                                                                void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitleTrackItem *pTrackItem = (SubtitleTrackItem *) pUserData;
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+       SubtitleTrackPopup *pSubtitleTrackPopup =
+               (SubtitleTrackPopup *) pTrackItem->pSubtitleTrackPopup;
+       if (pSubtitleTrackPopup == NULL) {
+               VideoLogError("SubtitleTrackPopup is NULL");
+               return;
+       }
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+       Evas_Object *pCheckBox =
+               elm_object_item_part_content_get(pSelectedItem, "elm.icon");
+       if (pCheckBox) {
+               pTrackItem->bCheck = !pTrackItem->bCheck;
+               elm_check_state_set(pCheckBox, pTrackItem->bCheck);
+               VideoLogInfo("bCheck: %d, nIndex: %d", pTrackItem->bCheck,
+                                        pTrackItem->nIndex);
+               if (__vp_subtitle_track_select_no_item(pSubtitleTrackPopup)) {
+                       vp_play_util_status_noti_show
+                               (VP_PLAY_STRING_SELECTED_LANGUAGE);
+                       __vp_subtitle_track_popup_disable_button(pSubtitleTrackPopup,
+                                                                                                        true);
+               } else {
+                       __vp_subtitle_track_popup_disable_button(pSubtitleTrackPopup,
+                                                                                                        false);
+               }
+       }
+#else
+       if (pTrackItem->nIndex == pSubtitleTrackPopup->nCurrentIndex) {
+               if (pSubtitleTrackPopup->pCloseCb) {
+                       VideoLogInfo("Selected lang track indexp[%d]",
+                                                pTrackItem->nIndex);
+                       pSubtitleTrackPopup->pCloseCb(pTrackItem->nIndex, FALSE,
+                                                                                 (void *)
+                                                                                 pSubtitleTrackPopup->pUserData);
+               }
+       } else {
+               pSubtitleTrackPopup->nCurrentIndex = pTrackItem->nIndex;
+               elm_radio_value_set(pSubtitleTrackPopup->pRadio,
+                                                       pSubtitleTrackPopup->nCurrentIndex);
+       }
+#endif
+}
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_subtitle_track_popup_check_state_change_cb(void
+                                                                                                                       *pUserData,
+                                                                                                                       Evas_Object *
+                                                                                                                       pObject,
+                                                                                                                       void
+                                                                                                                       *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitleTrackItem *pTrackItem = (SubtitleTrackItem *) pUserData;
+       SubtitleTrackPopup *pSubtitleTrackPopup =
+               (SubtitleTrackPopup *) pTrackItem->pSubtitleTrackPopup;
+       if (pSubtitleTrackPopup == NULL) {
+               VideoLogError("SubtitleTrackPopup is NULL");
+               return;
+       }
+       pTrackItem->bCheck = elm_check_state_get(pObject);
+       VideoLogInfo("bCheck: %d, nIndex: %d", pTrackItem->bCheck,
+                                pTrackItem->nIndex);
+
+       if (__vp_subtitle_track_select_no_item(pSubtitleTrackPopup)) {
+               vp_play_util_status_noti_show(VP_PLAY_STRING_SELECTED_LANGUAGE);
+               __vp_subtitle_track_popup_disable_button(pSubtitleTrackPopup,
+                                                                                                true);
+       } else {
+               __vp_subtitle_track_popup_disable_button(pSubtitleTrackPopup,
+                                                                                                false);
+       }
+}
+#endif
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_track_popup_key_event_cb(void *pUserData,
+                                                                                                  Evas_Object * pObj,
+                                                                                                  void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitleTrackPopup *pSubtitleTrack = (SubtitleTrackPopup *) pUserData;
+
+       if (pSubtitleTrack->pCloseCb) {
+               pSubtitleTrack->pCloseCb(-1, FALSE,
+                                                                (void *) pSubtitleTrack->pUserData);
+       }
+}
+
+#ifndef _SUBTITLE_MULTI_LANGUAGE
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_track_popup_mouse_event_cb(void *pUserData,
+                                                                                                        Evas * pEvas,
+                                                                                                        Evas_Object * pObj,
+                                                                                                        void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Evas_Event_Mouse_Up *ev = pEventInfo;
+
+       if (ev->button == 3) {
+               SubtitleTrackPopup *pSubtitleTrack =
+                       (SubtitleTrackPopup *) pUserData;
+
+               if (pSubtitleTrack->pCloseCb) {
+                       pSubtitleTrack->pCloseCb(-1, FALSE,
+                                                                        (void *) pSubtitleTrack->pUserData);
+               }
+       }
+}
+#endif
+/* internal functions */
+/**
+ *
+ * @param pSubtitleTrack
+ */
+static void _vp_subtitle_track_clear_item_list(SubtitleTrackPopup *
+                                                                                          pSubtitleTrack)
+{
+       if (pSubtitleTrack == NULL) {
+               VideoLogError("pSubtitleTrack is NULL");
+               return;
+       }
+
+       if (pSubtitleTrack->pItemList == NULL) {
+               VideoLogError("pSubtitleTrack->pItemList is NULL");
+               return;
+       }
+
+
+       int len = g_list_length(pSubtitleTrack->pItemList);
+       int idx = 0;
+       for (idx = 0; idx < len; idx++) {
+               SubtitleTrackItem *pItem = NULL;
+
+               pItem =
+                       (SubtitleTrackItem *)
+                       g_list_nth_data(pSubtitleTrack->pItemList, idx);
+               if (pItem) {
+                       VP_EVAS_ITEM_DEL(pItem->pItem);
+                       VP_FREE(pItem->szName);
+
+                       memset(pItem, 0x00, sizeof(SubtitleTrackItem));
+                       VP_FREE(pItem);
+               }
+       }
+
+       g_list_free(pSubtitleTrack->pItemList);
+       pSubtitleTrack->pItemList = NULL;
+}
+
+/**
+ *
+ * @param pSubtitleTrack
+ */
+static void _vp_subtitle_track_destroy_handle(SubtitleTrackPopup *
+                                                                                         pSubtitleTrack)
+{
+       if (pSubtitleTrack == NULL) {
+               VideoLogError("pSubtitleTrack is NULL");
+               return;
+       }
+
+       evas_object_smart_callback_del(pSubtitleTrack->pGenList, "realized",
+                                                                  __vp_subtitle_track_genlist_realized);
+       evas_object_smart_callback_del(pSubtitleTrack->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_subtitle_track_popup_rotate_cb);
+
+       _vp_subtitle_track_clear_item_list(pSubtitleTrack);
+#ifndef _SUBTITLE_MULTI_LANGUAGE
+       VP_EVAS_DEL(pSubtitleTrack->pRadio);
+#endif
+       VP_EVAS_DEL(pSubtitleTrack->pGenList);
+       VP_EVAS_DEL(pSubtitleTrack->pButton);
+       VP_EVAS_DEL(pSubtitleTrack->pBox);
+
+       if (pSubtitleTrack->st_SubtitleTrack_Itc) {
+               elm_genlist_item_class_free(pSubtitleTrack->st_SubtitleTrack_Itc);
+               pSubtitleTrack->st_SubtitleTrack_Itc = NULL;
+       }
+
+       VP_EVAS_DEL(pSubtitleTrack->pPopup);
+
+       VP_FREE(pSubtitleTrack);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_track_create_genlist(Evas_Object *
+                                                                                                         pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_genlist_add(pParent);
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(pObj);
+       return pObj;
+}
+
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_subtitle_track_add_genlist_item(Evas_Object * pObj,
+                                                                                               void *pUserData)
+{
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return FALSE;
+       }
+
+       SubtitleTrackPopup *pSubtitleTrack = (SubtitleTrackPopup *) pUserData;
+
+       if (pSubtitleTrack->st_SubtitleTrack_Itc) {
+               elm_genlist_item_class_free(pSubtitleTrack->st_SubtitleTrack_Itc);
+               pSubtitleTrack->st_SubtitleTrack_Itc = NULL;
+       }
+
+       pSubtitleTrack->st_SubtitleTrack_Itc = elm_genlist_item_class_new();
+
+       if (pSubtitleTrack->st_SubtitleTrack_Itc) {
+               pSubtitleTrack->st_SubtitleTrack_Itc->version =
+                       ELM_GENLIST_ITEM_CLASS_VERSION;
+               pSubtitleTrack->st_SubtitleTrack_Itc->item_style =
+                       "1text.1icon.3/popup";
+               pSubtitleTrack->st_SubtitleTrack_Itc->func.text_get =
+                       (void *) __vp_subtitle_track_genlist_text_get_cb;
+               pSubtitleTrack->st_SubtitleTrack_Itc->func.content_get =
+                       (void *) __vp_subtitle_track_genlist_content_get_cb;
+               pSubtitleTrack->st_SubtitleTrack_Itc->func.state_get = NULL;
+               pSubtitleTrack->st_SubtitleTrack_Itc->func.del = NULL;
+       }
+
+       int len = g_list_length(pSubtitleTrack->pItemList);
+       int idx = 0;
+       pSubtitleTrack->nListCount = 0;
+
+       for (idx = 0; idx < len; idx++) {
+               SubtitleTrackItem *pItem = NULL;
+
+               pItem =
+                       (SubtitleTrackItem *)
+                       g_list_nth_data(pSubtitleTrack->pItemList, idx);
+               if (pItem) {
+                       pItem->pItem = elm_genlist_item_append(pObj,
+                                                                                                  pSubtitleTrack->st_SubtitleTrack_Itc,
+                                                                                                  (void *) pItem, NULL,
+                                                                                                  ELM_GENLIST_ITEM_NONE,
+                                                                                                  __vp_subtitle_track_genlist_item_selected_cb,
+                                                                                                  pItem);
+                       pSubtitleTrack->nListCount++;
+               }
+       }
+
+       return TRUE;
+}
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_track_popup_left_button_cb(void *pUserData,
+                                                                                                        Evas_Object * pObj,
+                                                                                                        void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       VideoLogInfo("");
+       SubtitleTrackPopup *pSubtitleTrack = (SubtitleTrackPopup *) pUserData;
+
+       if (pSubtitleTrack->pCloseCb) {
+               pSubtitleTrack->pCloseCb(-1, FALSE,
+                                                                (void *) pSubtitleTrack->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_track_popup_right_button_cb(void *pUserData,
+                                                                                                         Evas_Object * pObj,
+                                                                                                         void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       VideoLogInfo("");
+       SubtitleTrackPopup *pSubtitleTrack = (SubtitleTrackPopup *) pUserData;
+
+       if (pSubtitleTrack->pItemList == NULL) {
+               VideoLogError("pSubtitleTrack->pItemList is NULL");
+               return;
+       }
+
+
+       int len = g_list_length(pSubtitleTrack->pItemList);
+       int idx = 0;
+       for (idx = 0; idx < len; idx++) {
+               SubtitleTrackItem *pItem = NULL;
+
+               pItem =
+                       (SubtitleTrackItem *)
+                       g_list_nth_data(pSubtitleTrack->pItemList, idx);
+               /*set subtitle's language */
+               if (pItem) {
+                       VideoLogInfo("nIndex=%d,bCheck=%d", pItem->nIndex,
+                                                pItem->bCheck);
+                       if (pItem->bCheck && pSubtitleTrack->pAddLanguageCb) {
+                               pSubtitleTrack->pAddLanguageCb(pItem->nIndex,
+                                                                                          (void *)
+                                                                                          pSubtitleTrack->pUserData);
+                       } else if (!pItem->bCheck && pSubtitleTrack->pRemoveLanguageCb) {
+                               pSubtitleTrack->pRemoveLanguageCb(pItem->nIndex, (void *)
+                                                                                                 pSubtitleTrack->pUserData);
+                       }
+               }
+       }
+
+       if (pSubtitleTrack->pCloseCb) {
+               pSubtitleTrack->pCloseCb(-1, FALSE,
+                                                                (void *) pSubtitleTrack->pUserData);
+       }
+}
+#endif
+/* external functions */
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+subtitle_track_handle vp_subtitle_track_create(Evas_Object * pParent,
+                                                                                          PopupCloseCbFunc pCloseCb)
+#else
+/**
+ *
+ * @param pParent
+ * @param pCloseCb
+ * @param nDefaultIndex
+ * @return
+ */
+subtitle_track_handle vp_subtitle_track_create(Evas_Object * pParent,
+                                                                                          PopupCloseCbFunc pCloseCb,
+                                                                                          int nDefaultIndex)
+#endif
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       SubtitleTrackPopup *pSubtitleTrack = NULL;
+
+       pSubtitleTrack = calloc(1, sizeof(SubtitleTrackPopup));
+
+       if (pSubtitleTrack == NULL) {
+               VideoLogError("pSubtitleTrack alloc fail");
+               return NULL;
+       }
+
+       pSubtitleTrack->pParent = pParent;
+       pSubtitleTrack->pCloseCb = pCloseCb;
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+       pSubtitleTrack->pPopup = vp_title_two_button_popup_create(pParent,
+                                                                                                                         VP_PLAY_STRING_SUBTITLE_LANGUAGE,
+                                                                                                                         NULL,
+                                                                                                                         VP_PLAY_STRING_COM_CANCEL,
+                                                                                                                         __vp_subtitle_track_popup_left_button_cb,
+                                                                                                                         VP_PLAY_STRING_COM_OK,
+                                                                                                                         __vp_subtitle_track_popup_right_button_cb,
+                                                                                                                         (void *)
+                                                                                                                         pSubtitleTrack);
+#else
+       pSubtitleTrack->pPopup =
+               vp_popup_create(pParent, POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+                                               VP_PLAY_STRING_SUBTITLE_LANGUAGE, NULL, 0.0, NULL,
+                                               __vp_subtitle_track_popup_key_event_cb,
+                                               __vp_subtitle_track_popup_mouse_event_cb,
+                                               (void *) pSubtitleTrack);
+#endif
+       if (pSubtitleTrack->pPopup == NULL) {
+               VideoLogError("vp_popup_create fail");
+               _vp_subtitle_track_destroy_handle(pSubtitleTrack);
+               return NULL;
+       }
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+       eext_object_event_callback_add(pSubtitleTrack->pPopup,
+                                                                  EEXT_CALLBACK_BACK,
+                                                                  __vp_subtitle_track_popup_key_event_cb,
+                                                                  (void *) pSubtitleTrack);
+#endif
+
+       pSubtitleTrack->pGenList =
+               _vp_subtitle_track_create_genlist(pSubtitleTrack->pPopup);
+       if (pSubtitleTrack->pGenList == NULL) {
+               VideoLogError("_vp_subtitle_track_create_genlist fail");
+               _vp_subtitle_track_destroy_handle(pSubtitleTrack);
+               return NULL;
+       }
+
+       evas_object_smart_callback_add(pSubtitleTrack->pGenList, "realized",
+                                                                  __vp_subtitle_track_genlist_realized,
+                                                                  NULL);
+       evas_object_smart_callback_add(pSubtitleTrack->pParent,
+                                                                  "rotation,changed",
+                                                                  __vp_subtitle_track_popup_rotate_cb,
+                                                                  pSubtitleTrack);
+
+       evas_object_data_set(pSubtitleTrack->pGenList,
+                                                VP_SUBTITLE_TRACK_GENLIST_DATA_KEY,
+                                                (void *) pSubtitleTrack);
+#ifndef _SUBTITLE_MULTI_LANGUAGE
+       pSubtitleTrack->nCurrentIndex = nDefaultIndex;
+       pSubtitleTrack->pRadio = elm_radio_add(pSubtitleTrack->pGenList);
+#endif
+       pSubtitleTrack->pBox = elm_box_add(pSubtitleTrack->pPopup);
+
+
+       return pSubtitleTrack;
+}
+
+/**
+ *
+ * @param pSubtitleTrackHandle
+ */
+void vp_subtitle_track_destroy(subtitle_track_handle pSubtitleTrackHandle)
+{
+       if (pSubtitleTrackHandle == NULL) {
+               VideoLogError("pSubtitleTrackHandle is NULL");
+               return;
+       }
+
+       SubtitleTrackPopup *pSubtitleTrack =
+               (SubtitleTrackPopup *) pSubtitleTrackHandle;
+
+       _vp_subtitle_track_destroy_handle(pSubtitleTrack);
+
+}
+
+/**
+ *
+ * @param pSubtitleTrackHandle
+ * @return
+ */
+bool vp_subtitle_track_realize(subtitle_track_handle pSubtitleTrackHandle)
+{
+       if (pSubtitleTrackHandle == NULL) {
+               VideoLogError("pSubtitleTrackHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleTrackPopup *pSubtitleTrack =
+               (SubtitleTrackPopup *) pSubtitleTrackHandle;
+
+       if (!_vp_subtitle_track_add_genlist_item
+               (pSubtitleTrack->pGenList, (void *) pSubtitleTrack)) {
+               VideoLogError("_vp_subtitle_track_add_genlist_item fail");
+               return FALSE;
+       }
+       if (pSubtitleTrack->nListCount == 1) {
+               vp_popup_set_popup_min_size(pSubtitleTrack->pParent,
+                                                                       pSubtitleTrack->pBox,
+                                                                       pSubtitleTrack->nListCount,
+                                                                       VIDEO_POPUP_DEFAULT);
+               elm_scroller_policy_set(pSubtitleTrack->pGenList,
+                                                               ELM_SCROLLER_POLICY_OFF,
+                                                               ELM_SCROLLER_POLICY_OFF);
+       } else {
+               vp_popup_set_popup_min_size(pSubtitleTrack->pParent,
+                                                                       pSubtitleTrack->pBox,
+                                                                       pSubtitleTrack->nListCount,
+                                                                       VIDEO_POPUP_DEFAULT);
+       }
+
+       elm_box_pack_end(pSubtitleTrack->pBox, pSubtitleTrack->pGenList);
+       elm_object_content_set(pSubtitleTrack->pPopup, pSubtitleTrack->pBox);
+
+       evas_object_show(pSubtitleTrack->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleTrackHandle
+ * @return
+ */
+bool vp_subtitle_track_unrealize(subtitle_track_handle
+                                                                pSubtitleTrackHandle)
+{
+       if (pSubtitleTrackHandle == NULL) {
+               VideoLogError("pSubtitleTrackHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleTrackPopup *pSubtitleTrack =
+               (SubtitleTrackPopup *) pSubtitleTrackHandle;
+
+       _vp_subtitle_track_clear_item_list(pSubtitleTrack);
+
+       evas_object_hide(pSubtitleTrack->pPopup);
+
+       return TRUE;
+}
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+bool vp_subtitle_track_add_Item(subtitle_track_handle
+                                                               pSubtitleTrackHandle, char *szCode,
+                                                               int nIndex, bool bCheck)
+#else
+/**
+ *
+ * @param pSubtitleTrackHandle
+ * @param szCode
+ * @param nIndex
+ * @return
+ */
+bool vp_subtitle_track_add_Item(subtitle_track_handle
+                                                               pSubtitleTrackHandle, char *szCode,
+                                                               int nIndex)
+#endif
+{
+       if (pSubtitleTrackHandle == NULL) {
+               VideoLogError("pSubtitleTrackHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleTrackPopup *pSubtitleTrack =
+               (SubtitleTrackPopup *) pSubtitleTrackHandle;
+
+       SubtitleTrackItem *pItem = calloc(1, sizeof(SubtitleTrackItem));
+       if (pItem == NULL) {
+               VideoLogError("SubtitleTrackItem alloc fail");
+               return FALSE;
+       }
+
+       pItem->pSubtitleTrackPopup = (void *) pSubtitleTrack;
+       pItem->nIndex = nIndex;
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+       pItem->bCheck = bCheck;
+#endif
+       char *pName = NULL;
+       pName = vp_language_get_name(szCode);
+       if (pName) {
+               pItem->szName = pName;
+       } else {
+               pName = g_strdup_printf("%s", VP_PLAY_STRING_COM_UNKNOWN);
+               pItem->szName = pName;
+       }
+
+       pSubtitleTrack->pItemList =
+               g_list_append(pSubtitleTrack->pItemList, pItem);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleTrackHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_subtitle_track_set_user_data(subtitle_track_handle
+                                                                        pSubtitleTrackHandle, void *pUserData)
+{
+       if (pSubtitleTrackHandle == NULL) {
+               VideoLogError("pSubtitleTrackHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleTrackPopup *pSubtitleTrack =
+               (SubtitleTrackPopup *) pSubtitleTrackHandle;
+
+       pSubtitleTrack->pUserData = pUserData;
+
+       return TRUE;
+}
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+/**
+ *
+ * @param pSubtitleTrackHandle
+ * @param pCallback
+ * @return
+ */
+bool vp_subtitle_track_set_add_language_cb(subtitle_track_handle
+                                                                                  pSubtitleTrackHandle,
+                                                                                  SubtitleLanguageChangeCbFunc
+                                                                                  pCallback)
+{
+       if (pSubtitleTrackHandle == NULL) {
+               VideoLogError("pSubtitleTrackHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleTrackPopup *pSubtitleTrack =
+               (SubtitleTrackPopup *) pSubtitleTrackHandle;
+
+       pSubtitleTrack->pAddLanguageCb = pCallback;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleTrackHandle
+ * @param pCallback
+ * @return
+ */
+bool vp_subtitle_track_set_remove_language_cb(subtitle_track_handle
+                                                                                         pSubtitleTrackHandle,
+                                                                                         SubtitleLanguageChangeCbFunc
+                                                                                         pCallback)
+{
+       if (pSubtitleTrackHandle == NULL) {
+               VideoLogError("pSubtitleTrackHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitleTrackPopup *pSubtitleTrack =
+               (SubtitleTrackPopup *) pSubtitleTrackHandle;
+
+       pSubtitleTrack->pRemoveLanguageCb = pCallback;
+
+       return TRUE;
+}
+#endif
+/**
+ *
+ * @param szCode
+ * @param szName
+ * @return
+ */
+bool vp_subtitle_track_get_name(char *szCode, char **szName)
+{
+       if (szCode == NULL) {
+               VideoLogError("szCode is NULL");
+               return FALSE;
+       }
+       char *pName = NULL;
+       pName = vp_language_get_name(szCode);
+       if (pName) {
+               *szName = pName;
+       } else {
+               char *pUnknown = NULL;
+               pUnknown = g_strdup_printf("%s", VP_PLAY_STRING_COM_UNKNOWN);
+               *szName = pUnknown;
+       }
+
+       return TRUE;
+}
diff --git a/playview/src/feature/vp-subtitle.c b/playview/src/feature/vp-subtitle.c
new file mode 100755 (executable)
index 0000000..abe8af2
--- /dev/null
@@ -0,0 +1,1738 @@
+/*
+ * Copyright (c) 2020 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 <glib.h>
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+#include "vp-play-type-define.h"
+
+#include "vp-subtitle.h"
+#include "vp-play-preference.h"
+#include "vp-util.h"
+#include "vp-play-util.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+/** @li font_weight - Overrides the weight defined in "font". E.g: "font_weight=Bold" is the same as "font=:style=Bold". Supported weights: "normal", "thin", "ultralight",
+       "light", "book", "medium", "semibold", "bold", "ultrabold", "black", and "extrablack".
+* @li font_style - Overrides the style defined in "font". E.g: "font_style=Italic" is the same as "font=:style=Italic". Supported styles: "normal", "oblique", and "italic".
+* @li font_width - Overrides the width defined in "font". E.g: "font_width=Condensed" is the same as "font=:style=Condensed". Supported widths: "normal",
+       "ultracondensed", "extracondensed", "condensed", "semicondensed", "semiexpanded", "expanded", "extraexpanded", and "ultraexpanded".
+*/
+
+#define VP_SUBTITLE_GENLIST_DATA_KEY           "vp.subtitle.genlist"
+#define VP_SUBTITLE_TXT_FORMAT "<font_size= %d><align=center><style=%s><font='%s' font_weight=%s color=%s backing_color=%s backing=%s align=%s>%s</font></style></font_size>"
+#define        VP_SUBTITLE_COLOR_LEN   7
+#define VP_SUBTITLE_SET_CAPTION_WINDOW_PREVIEW_COLOR_ID                1
+
+typedef struct _SubtitlePopup {
+       Evas_Object *pParent;
+       Evas_Object *pPopup;
+       Evas_Object *pPopupTitle;
+       Evas_Object *pCaptionLayout;
+       Evas_Object *pBox;
+       Evas_Object *pContentBox;
+       Evas_Object *pGenList;
+
+       Evas_Object *pActivationCheck;
+       Elm_Object_Item *pSelectItem;
+
+       Elm_Genlist_Item_Class *st_Subtitle_Itc_1;
+       Elm_Genlist_Item_Class *st_Subtitle_Itc_2;
+       Elm_Genlist_Item_Class *st_Subtitle_Itc_1icon;
+       Elm_Genlist_Item_Class *st_Subtitle_Itc_groupindex;
+#ifdef SUBTITLE_K_FEATURE
+       Elm_Genlist_Item_Class *st_Subtitle_Itc_3;
+#endif
+       SubtitleInfo *pSubtitleInfo;
+
+       void *pUserData;
+       PopupCloseCbFunc pCloseCb;
+
+} SubtitlePopup;
+
+static void _vp_subtitle_destroy_handle(SubtitlePopup * pSubtitle);
+char *_vp_subtitle_get_opacity(char *colorHex);
+Elm_Object_Item *_vp_subtitle_list_item_next_get(Elm_Object_Item *
+                                                                                                gl_item);
+static void _vp_subtitle_set_activation(SubtitlePopup * pSubtitle,
+                                                                               bool bOn);
+static void _vp_subtitle_destroy_subtitle_info(SubtitlePopup * pSubtitle);
+static Evas_Object *_vp_subtitle_create_caption_layout(SubtitlePopup *
+                                                                                                          pSubtitle,
+                                                                                                          Evas_Object *
+                                                                                                          pParent);
+static void _vp_subtitle_cancel_button_cb(void *data, Evas_Object * obj,
+                                                                                 void *Event_info);
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_genlist_realized(void *data, Evas_Object * obj,
+                                                                                  void *event_info)
+{
+       if (event_info == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       if (obj == NULL) {
+               VideoLogError("obj is NULL");
+               return;
+       }
+
+       Elm_Object_Item *pItem = (Elm_Object_Item *) event_info;
+
+       int nIndexGenlist = elm_genlist_item_index_get(pItem);
+       VideoLogInfo("nIndexGenlist=%d", nIndexGenlist);
+
+       if (nIndexGenlist == 2) {
+               elm_object_item_signal_emit(pItem, "elm,state,bottomline,hide",
+                                                                       "");
+       }
+
+       VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info);
+}
+
+/**
+ *
+ * @param pSubtitle
+ */
+static void __vp_subtitle_popup_size_set(SubtitlePopup * pSubtitle)
+{
+       if (!pSubtitle) {
+               VideoLogError("pSubtitle is null");
+               return;
+       }
+
+       if (!pSubtitle->pParent) {
+               VideoLogError("pParent is null");
+               return;
+       }
+
+       if (!pSubtitle->pBox) {
+               VideoLogError("pBox is null");
+               return;
+       }
+
+       if (!pSubtitle->pContentBox) {
+               VideoLogError("pContentBox is null");
+               return;
+       }
+
+       int nWidth = 0, nHeight = 0;
+       if (vp_popup_check_landspace_by_win(pSubtitle->pParent)) {
+               nWidth = 480;
+               nHeight = VP_POPUP_MAX_HEIGHT_L;
+       } else {
+               nWidth = 480;
+               nHeight = VP_POPUP_MAX_HEIGHT;
+       }
+       VideoLogInfo("nWidth=%d, nHeight=%d", nWidth, nHeight);
+       evas_object_size_hint_min_set(pSubtitle->pBox, nWidth,
+                                                                 (nHeight) * VP_SCALE);
+       evas_object_size_hint_min_set(pSubtitle->pContentBox, nWidth,
+                                                                 (nHeight -
+                                                                  VP_POPUP_TITLE_HEIGHT) * VP_SCALE);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_subtitle_popup_rotate_cb(void *data, Evas_Object * obj,
+                                                                                 void *event_info)
+{
+       SubtitlePopup *pSubtitle = (SubtitlePopup *) data;
+       if (!pSubtitle) {
+               VideoLogError("pSubtitle IS null");
+               return;
+       }
+       __vp_subtitle_popup_size_set(pSubtitle);
+
+       evas_object_show(pSubtitle->pBox);
+       evas_object_show(pSubtitle->pPopup);
+}
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_check_change_cb(void *pUserData,
+                                                                                 Evas_Object * pObj,
+                                                                                 void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitlePopup *pSubtitle = (SubtitlePopup *) pUserData;
+
+       if (pObj == pSubtitle->pActivationCheck) {
+               bool bOn = FALSE;
+               vp_play_preference_get_subtitle_show_key(&bOn);
+               vp_play_preference_set_subtitle_show_key(!bOn);
+
+               vp_subtitle_mode_t nType = VP_SUBTITLE_MODE_NONE;
+               nType = VP_SUBTITLE_MODE_ACTIVATION;
+               _vp_subtitle_set_activation(pSubtitle, !bOn);
+
+               if (pSubtitle->pCloseCb) {
+                       pSubtitle->pCloseCb((int) nType, FALSE,
+                                                               (void *) pSubtitle->pUserData);
+               }
+       }
+}
+
+/**
+ *
+ * @param pSubtitleInfo
+ * @param bActivation
+ * @return
+ */
+static char *_vp_play_subtitle_text_get(SubtitleInfo * pSubtitleInfo,
+                                                                               bool bActivation)
+{
+       if (!pSubtitleInfo) {
+               VideoLogError("pSubtitle is NULL");
+               return NULL;
+       }
+       if (!pSubtitleInfo->szText || (strlen(pSubtitleInfo->szText) < 1)) {
+               VideoLogError("pSubtitleInfo->szText is NULL");
+               return NULL;
+       }
+
+       char *szMarkup = elm_entry_markup_to_utf8(pSubtitleInfo->szText);
+       char *szOutput = elm_entry_utf8_to_markup(szMarkup);
+       char *szTxtFormat = NULL;
+       char *szColor = NULL;
+       char *szBGColor = NULL;
+       char *szBGColorOn = NULL;
+       char *szFontEdge = NULL;
+       char *szAlignment = NULL;
+       char *szFontWeight = NULL;
+
+       int nSize = 0;
+
+       if (pSubtitleInfo->nFontSize == VIDEO_SUBTITLE_SIZE_SMALL) {
+               nSize = VP_SUBTITLE_SIZE_SMALL_VALUE * pSubtitleInfo->fZoom;
+       } else if (pSubtitleInfo->nFontSize == VIDEO_SUBTITLE_SIZE_LARGE) {
+               nSize = VP_SUBTITLE_SIZE_LARGE_VALUE * pSubtitleInfo->fZoom;
+       } else {
+               nSize = VP_SUBTITLE_SIZE_MEDIUM_VALUE * pSubtitleInfo->fZoom;
+       }
+
+       if (nSize < VP_SUBTITLE_SIZE_SMALL_VALUE) {
+               nSize = VP_SUBTITLE_SIZE_SMALL_VALUE;
+       }
+
+       if (nSize > VP_SUBTITLE_SIZE_LARGE_VALUE) {
+               nSize = VP_SUBTITLE_SIZE_LARGE_VALUE;
+       }
+#ifndef SUBTITLE_K_FEATURE
+       if (pSubtitleInfo->nTextColor == VIDEO_SUBTITLE_COLOR_BLACK) {
+               szColor = g_strdup_printf("#000000");
+       } else if (pSubtitleInfo->nTextColor == VIDEO_SUBTITLE_COLOR_BLUE) {
+               szColor = g_strdup_printf("#0000FF");
+       } else if (pSubtitleInfo->nTextColor == VIDEO_SUBTITLE_COLOR_GREEN) {
+               szColor = g_strdup_printf("#00FF00");
+       } else if (pSubtitleInfo->nTextColor == VIDEO_SUBTITLE_COLOR_WHITE) {
+               szColor = g_strdup_printf("#FFFFFF");
+       }
+
+       if (pSubtitleInfo->nBGColor == VIDEO_SUBTITLE_COLOR_NONE) {
+               szBGColorOn = g_strdup_printf("off");
+               szBGColor = g_strdup_printf("#000000");
+       } else if (pSubtitleInfo->nBGColor == VIDEO_SUBTITLE_COLOR_BLACK) {
+               szBGColorOn = g_strdup_printf("on");
+               szBGColor = g_strdup_printf("#000000");
+       } else if (pSubtitleInfo->nBGColor == VIDEO_SUBTITLE_COLOR_WHITE) {
+               szBGColorOn = g_strdup_printf("on");
+               szBGColor = g_strdup_printf("#FFFFFF");
+       }
+#else
+
+       if (pSubtitleInfo->pTextColorHex && bActivation) {
+               szColor = strdup(pSubtitleInfo->pTextColorHex);
+       } else {
+               szColor = g_strdup_printf("#00000000");
+       }
+
+       if (pSubtitleInfo->pBGColorHex && bActivation) {
+               szBGColorOn = g_strdup_printf("on");
+               szBGColor = strdup(pSubtitleInfo->pBGColorHex);
+       } else {
+               szBGColorOn = g_strdup_printf("off");
+               szBGColor = g_strdup_printf("#00000000");
+       }
+
+       if (pSubtitleInfo->eAlignment == VIDEO_SUBTITLE_ALIGNMENT_LEFT) {
+               szAlignment = g_strdup_printf("left");
+       } else if (pSubtitleInfo->eAlignment ==
+                          VIDEO_SUBTITLE_ALIGNMENT_CENTER) {
+               szAlignment = g_strdup_printf("center");
+       } else if (pSubtitleInfo->eAlignment == VIDEO_SUBTITLE_ALIGNMENT_RIGHT) {
+               szAlignment = g_strdup_printf("right");
+       }
+#endif
+       szTxtFormat =
+               g_strdup_printf(VP_SUBTITLE_TXT_FORMAT, nSize, szFontEdge,
+                                               pSubtitleInfo->szFontName, szFontWeight, szColor,
+                                               szBGColor, szBGColorOn, szAlignment, szOutput);
+
+       VP_FREE(szBGColor);
+       VP_FREE(szBGColorOn);
+       VP_FREE(szColor);
+       VP_FREE(szOutput);
+       VP_FREE(szMarkup);
+       VP_FREE(szFontEdge);
+       VP_FREE(szFontWeight);
+       VP_FREE(szAlignment);
+
+       return szTxtFormat;
+}
+
+/**
+ *
+ * @param szColorHex
+ * @return
+ */
+static char *__vp_subtitle_get_color_and_opacity(char *szColorHex)
+{
+       if (szColorHex == NULL) {
+               VideoLogError("szColorHex is NULL");
+               return NULL;
+       }
+
+       char *szColorAndOpacity = NULL;
+       char *szOpacity = _vp_subtitle_get_opacity(szColorHex);
+       VideoSecureLogInfo
+               ("========pSubtitleInfo->nCaptionWinColorHex=%s, szOpacity=%s",
+                szColorHex, szOpacity);
+
+       if (!strncasecmp(szColorHex, "#000000", VP_SUBTITLE_COLOR_LEN)) {
+               szColorAndOpacity =
+                       g_strdup_printf("%s,%s", VP_PLAY_STRING_SUBTITLE_COLOR_BLACK,
+                                                       szOpacity);
+       } else if (!strncasecmp(szColorHex, "#0000ff", VP_SUBTITLE_COLOR_LEN)) {
+               szColorAndOpacity =
+                       g_strdup_printf("%s,%s", VP_PLAY_STRING_SUBTITLE_COLOR_BLUE,
+                                                       szOpacity);
+       } else if (!strncasecmp(szColorHex, "#00ff00", VP_SUBTITLE_COLOR_LEN)) {
+               szColorAndOpacity =
+                       g_strdup_printf("%s,%s", VP_PLAY_STRING_SUBTITLE_COLOR_GREEN,
+                                                       szOpacity);
+       } else if (!strncasecmp(szColorHex, "#ffffff", VP_SUBTITLE_COLOR_LEN)) {
+               szColorAndOpacity =
+                       g_strdup_printf("%s,%s", VP_PLAY_STRING_SUBTITLE_COLOR_WHITE,
+                                                       szOpacity);
+       } else if (!strncasecmp(szColorHex, "#ff0000", VP_SUBTITLE_COLOR_LEN)) {
+               szColorAndOpacity =
+                       g_strdup_printf("%s,%s", VP_PLAY_STRING_SUBTITLE_COLOR_RED,
+                                                       szOpacity);
+       } else if (!strncasecmp(szColorHex, "#ffff00", VP_SUBTITLE_COLOR_LEN)) {
+               szColorAndOpacity =
+                       g_strdup_printf("%s,%s", VP_PLAY_STRING_SUBTITLE_COLOR_YELLOW,
+                                                       szOpacity);
+       } else if (!strncasecmp(szColorHex, "#ff00ff", VP_SUBTITLE_COLOR_LEN)) {
+               szColorAndOpacity =
+                       g_strdup_printf("%s,%s", VP_PLAY_STRING_SUBTITLE_COLOR_MAGENTA,
+                                                       szOpacity);
+       } else if (!strncasecmp(szColorHex, "#00ffff", VP_SUBTITLE_COLOR_LEN)) {
+               szColorAndOpacity =
+                       g_strdup_printf("%s,%s", VP_PLAY_STRING_SUBTITLE_COLOR_CYAN,
+                                                       szOpacity);
+       } else {
+               szColorAndOpacity =
+                       g_strdup_printf("%s,%s", VP_PLAY_STRING_SUBTITLE_COLOR_CUSTOM,
+                                                       szOpacity);
+       }
+
+       VP_FREE(szOpacity);
+       return szColorAndOpacity;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__vp_subtitle_genlist_text_get_cb(const void *pUserData,
+                                                                                          Evas_Object * pObj,
+                                                                                          const char *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       if (!strcmp(pPart, "elm.text.main.left")) {
+               if (!g_strcmp0(VP_PLAY_STRING_ACTIVATION, szTxt)) {
+                       return strdup(szTxt);
+               }
+       }
+
+       if (!g_strcmp0(VP_PLAY_STRING_SETTINGS, szTxt)) {
+               if (!strcmp(pPart, "elm.text")) {
+                       return strdup(szTxt);
+               }
+       }
+
+       if (!g_strcmp0(VP_PLAY_STRING_SUBTITLE_SELECT_SUBTITLES, szTxt)
+               || !g_strcmp0(VP_PLAY_STRING_SUBTITLE_ALIGNMENT, szTxt)
+               || !g_strcmp0(VP_PLAY_STRING_SUBTITLE_SIZE, szTxt)) {
+               if (!strcmp(pPart, "elm.text")) {
+                       return strdup(szTxt);
+               } else if (!strcmp(pPart, "elm.text.sub")) {
+                       SubtitlePopup *pSubtitle =
+                               (SubtitlePopup *) evas_object_data_get(pObj,
+                                                                                                          VP_SUBTITLE_GENLIST_DATA_KEY);
+                       if (pSubtitle == NULL) {
+                               VideoLogWarning("evas_object_data_get is fail");
+                               return NULL;
+                       }
+
+                       SubtitleInfo *pSubtitleInfo = pSubtitle->pSubtitleInfo;
+                       if (pSubtitleInfo == NULL) {
+                               VideoLogWarning("pSubtitleInfo is NULL");
+                               return NULL;
+                       }
+
+                       if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SELECT_SUBTITLES)) {
+                               if (pSubtitleInfo->szURL) {
+                                       return vp_util_convert_file_location(pSubtitleInfo->
+                                                                                                                szURL);
+                               }
+                       } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_ALIGNMENT)) {
+                               switch (pSubtitleInfo->eAlignment) {
+                               case VIDEO_SUBTITLE_ALIGNMENT_LEFT:{
+                                               return strdup(VP_PLAY_STRING_ALIGNMENT_LEFT);
+                                       }
+                               case VIDEO_SUBTITLE_ALIGNMENT_CENTER:{
+                                               return strdup(VP_PLAY_STRING_ALIGNMENT_CENTER);
+                                       }
+                               case VIDEO_SUBTITLE_ALIGNMENT_RIGHT:{
+                                               return strdup(VP_PLAY_STRING_ALIGNMENT_RIGHT);
+                                       }
+                               default:
+                                       break;
+                               }
+                       } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE)) {
+                               if (pSubtitleInfo->nFontSize == VIDEO_SUBTITLE_SIZE_LARGE) {
+                                       return strdup(VP_PLAY_STRING_SUBTITLE_SIZE_LARGE);
+                               } else if (pSubtitleInfo->nFontSize ==
+                                                  VIDEO_SUBTITLE_SIZE_MEDIUM) {
+                                       return strdup(VP_PLAY_STRING_SUBTITLE_SIZE_MEDIUM);
+                               } else if (pSubtitleInfo->nFontSize ==
+                                                  VIDEO_SUBTITLE_SIZE_SMALL) {
+                                       return strdup(VP_PLAY_STRING_SUBTITLE_SIZE_SMALL);
+                               }
+                       }
+               }
+       }
+#if 1
+       if (!strcmp(pPart, "elm.text")) {
+               return strdup(szTxt);
+       } else if (!strcmp(pPart, "elm.text.1")) {
+               return strdup(szTxt);
+       } else if (!strcmp(pPart, "elm.text.2")) {
+
+               SubtitlePopup *pSubtitle =
+                       (SubtitlePopup *) evas_object_data_get(pObj,
+                                                                                                  VP_SUBTITLE_GENLIST_DATA_KEY);
+               if (pSubtitle == NULL) {
+                       VideoLogWarning("evas_object_data_get is fail");
+                       return NULL;
+               }
+
+               SubtitleInfo *pSubtitleInfo = pSubtitle->pSubtitleInfo;
+               if (pSubtitleInfo == NULL) {
+                       VideoLogWarning("pSubtitleInfo is NULL");
+                       return NULL;
+               }
+
+               if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SYNC)) {
+                       char szTemp[10] = { 0, };
+                       snprintf(szTemp, sizeof(szTemp), "%0.1f",
+                                        pSubtitleInfo->fSync);
+
+                       return g_strdup_printf(VP_PLAY_STRING_SUBTITLE_SECS, szTemp);
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_LANGUAGE)) {
+                       if (pSubtitleInfo->szLanguage) {
+                               return strdup(pSubtitleInfo->szLanguage);
+                       }
+               }
+#ifdef SUBTITLE_K_FEATURE
+               else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_ALIGNMENT)) {
+                       switch (pSubtitleInfo->eAlignment) {
+                       case VIDEO_SUBTITLE_ALIGNMENT_LEFT:{
+                                       return strdup(VP_PLAY_STRING_ALIGNMENT_LEFT);
+                               }
+                       case VIDEO_SUBTITLE_ALIGNMENT_CENTER:{
+                                       return strdup(VP_PLAY_STRING_ALIGNMENT_CENTER);
+                               }
+                       case VIDEO_SUBTITLE_ALIGNMENT_RIGHT:{
+                                       return strdup(VP_PLAY_STRING_ALIGNMENT_RIGHT);
+                               }
+                       default:
+                               break;
+                       }
+               }
+#endif
+               else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SELECT_SUBTITLES)) {
+                       if (pSubtitleInfo->szURL) {
+                               return vp_util_convert_file_location(pSubtitleInfo->szURL);
+                       }
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_FONT)) {
+                       if (pSubtitleInfo->szFontName) {
+                               return strdup(pSubtitleInfo->szFontName);
+                       }
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE)) {
+                       if (pSubtitleInfo->nFontSize == VIDEO_SUBTITLE_SIZE_LARGE) {
+                               return strdup(VP_PLAY_STRING_SUBTITLE_SIZE_LARGE);
+                       } else if (pSubtitleInfo->nFontSize ==
+                                          VIDEO_SUBTITLE_SIZE_MEDIUM) {
+                               return strdup(VP_PLAY_STRING_SUBTITLE_SIZE_MEDIUM);
+                       } else if (pSubtitleInfo->nFontSize ==
+                                          VIDEO_SUBTITLE_SIZE_SMALL) {
+                               return strdup(VP_PLAY_STRING_SUBTITLE_SIZE_SMALL);
+                       }
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_EDGE)) {
+                       switch (pSubtitleInfo->nEdge) {
+                       case VP_SUBTITLE_EDGE_NO_EDGE:
+                               return strdup(VP_PLAY_STRING_EDGE_NO_EDGE);
+                       case VP_SUBTITLE_EDGE_RAISED:
+                               return strdup(VP_PLAY_STRING_EDGE_RAISED);
+                       case VP_SUBTITLE_EDGE_DEPRESSED:
+                               return strdup(VP_PLAY_STRING_EDGE_DEPRESSED);
+                       case VP_SUBTITLE_EDGE_UNIFORM:
+                               return strdup(VP_PLAY_STRING_EDGE_UNIFORM);
+                       case VP_SUBTITLE_EDGE_DROP_SHADOW:
+                               return strdup(VP_PLAY_STRING_EDGE_DROP_SHADOW);
+                       default:
+                               return strdup(VP_PLAY_STRING_EDGE_NO_EDGE);
+                       }
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_TEXT)) {
+#ifndef SUBTITLE_K_FEATURE
+                       if (pSubtitleInfo->nTextColor == VIDEO_SUBTITLE_COLOR_BLACK) {
+                               return strdup(VP_PLAY_STRING_SUBTITLE_COLOR_BLACK);
+                       } else if (pSubtitleInfo->nTextColor ==
+                                          VIDEO_SUBTITLE_COLOR_BLUE) {
+                               return strdup(VP_PLAY_STRING_SUBTITLE_COLOR_BLUE);
+                       } else if (pSubtitleInfo->nTextColor ==
+                                          VIDEO_SUBTITLE_COLOR_GREEN) {
+                               return strdup(VP_PLAY_STRING_SUBTITLE_COLOR_GREEN);
+                       } else if (pSubtitleInfo->nTextColor ==
+                                          VIDEO_SUBTITLE_COLOR_WHITE) {
+                               return strdup(VP_PLAY_STRING_SUBTITLE_COLOR_WHITE);
+                       }
+#else
+                       return __vp_subtitle_get_color_and_opacity(pSubtitleInfo->
+                                                                                                          pTextColorHex);
+#endif
+               } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_BG_COLOR)) {
+#ifndef SUBTITLE_K_FEATURE
+                       if (pSubtitleInfo->nBGColor == VIDEO_SUBTITLE_COLOR_BLACK) {
+                               return strdup(VP_PLAY_STRING_SUBTITLE_COLOR_BLACK);
+                       } else if (pSubtitleInfo->nBGColor ==
+                                          VIDEO_SUBTITLE_COLOR_WHITE) {
+                               return strdup(VP_PLAY_STRING_SUBTITLE_COLOR_WHITE);
+                       } else if (pSubtitleInfo->nBGColor ==
+                                          VIDEO_SUBTITLE_COLOR_NONE) {
+                               return strdup(VP_PLAY_STRING_SUBTITLE_COLOR_NONE);
+                       }
+#else
+                       return __vp_subtitle_get_color_and_opacity(pSubtitleInfo->
+                                                                                                          pBGColorHex);
+#endif
+               }
+#ifdef SUBTITLE_K_FEATURE
+               else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_CAPTION_WINDOW)) {
+                       return __vp_subtitle_get_color_and_opacity(pSubtitleInfo->
+                                                                                                          pCaptionWinColorHex);
+               }
+#endif
+       }
+#endif
+       return NULL;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param part
+ * @return
+ */
+static Evas_Object *__vp_subtitle_genlist_content_get_cb(void *data,
+                                                                                                                Evas_Object * obj,
+                                                                                                                const char *part)
+{
+       SubtitlePopup *pSubtitle =
+               (SubtitlePopup *) evas_object_data_get(obj,
+                                                                                          VP_SUBTITLE_GENLIST_DATA_KEY);
+       if (pSubtitle == NULL) {
+               VideoLogWarning("evas_object_data_get is fail");
+               return NULL;
+       }
+       VideoLogWarning("part = %s", part);
+
+       if (!strcmp(part, "elm.swallow.icon")) {
+               if (!g_strcmp0(VP_PLAY_STRING_PREVIEW_SUBTITLE_CC, (char *) data)) {
+                       Evas_Object *pCaption =
+                               _vp_subtitle_create_caption_layout(pSubtitle, obj);
+                       evas_object_size_hint_align_set(pCaption, EVAS_HINT_FILL,
+                                                                                       EVAS_HINT_FILL);
+                       evas_object_size_hint_weight_set(pCaption, EVAS_HINT_EXPAND,
+                                                                                        EVAS_HINT_EXPAND);
+                       return pCaption;
+               }
+       }
+
+       if (!strcmp(part, "elm.swallow.end")) {
+               if (!g_strcmp0(VP_PLAY_STRING_ACTIVATION, (char *) data)) {
+                       Evas_Object *pCheck = NULL;
+                       pCheck = elm_check_add(obj);
+                       bool bShow = FALSE;
+                       vp_play_preference_get_subtitle_show_key(&bShow);
+                       evas_object_size_hint_align_set(pCheck, EVAS_HINT_FILL,
+                                                                                       EVAS_HINT_FILL);
+                       evas_object_size_hint_weight_set(pCheck, EVAS_HINT_EXPAND,
+                                                                                        EVAS_HINT_EXPAND);
+                       elm_check_state_set(pCheck, bShow);
+                       elm_object_style_set(pCheck, "on&off");
+                       evas_object_propagate_events_set(pCheck, EINA_FALSE);
+                       evas_object_smart_callback_add(pCheck, "changed",
+                                                                                  __vp_subtitle_check_change_cb,
+                                                                                  (void *) pSubtitle);
+                       pSubtitle->pActivationCheck = pCheck;
+                       evas_object_show(pCheck);
+                       return pCheck;
+               } else
+                       if (!g_strcmp0(VP_PLAY_STRING_SUBTITLE_COLOR, (char *) data)) {
+                       Evas_Object *fontColor =
+                               evas_object_rectangle_add(evas_object_evas_get(obj));
+                       char *szColorHex = NULL;
+                       int r = 255, g = 255, b = 255, a = 255;
+                       if (vp_play_preference_get_subtitle_font_color_hex_key
+                               (&szColorHex) == TRUE) {
+                               vp_play_util_convert_hex_to_rgba(szColorHex, &r, &g, &b,
+                                                                                                &a);
+                               evas_object_size_hint_min_set(fontColor, 100, 100);
+                               evas_object_color_set(fontColor, r, g, b, 255);
+                               VP_FREE(szColorHex);
+                       }
+
+
+                       return fontColor;
+               }
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __vp_subtitle_genlist_item_selected_cb(void *pUserData,
+                                                                                                  Evas_Object * pObject,
+                                                                                                  void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       char *szTxt = (char *) elm_object_item_data_get(pItem);
+       elm_genlist_item_selected_set(pItem, EINA_FALSE);
+       SubtitlePopup *pSubtitle = (SubtitlePopup *) pUserData;
+       pSubtitle->pSelectItem = pItem;
+       if (szTxt == NULL) {
+               VideoLogError("szTxt is NULL");
+               return;
+       }
+       vp_subtitle_mode_t nType = VP_SUBTITLE_MODE_NONE;
+
+       if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SYNC)) {
+               VideoLogWarning
+                       ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_SYNC)");
+               nType = VP_SUBTITLE_MODE_SYNC;
+               if (pSubtitle->pCloseCb) {
+                       pSubtitle->pCloseCb((int) nType, TRUE,
+                                                               (void *) pSubtitle->pUserData);
+               }
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SELECT_SUBTITLES)) {
+               VideoLogWarning
+                       ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_SELECT_SUBTITLES)");
+               nType = VP_SUBTITLE_MODE_SELECT;
+               if (pSubtitle->pCloseCb) {
+                       pSubtitle->pCloseCb((int) nType, TRUE,
+                                                               (void *) pSubtitle->pUserData);
+               }
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_LANGUAGE)) {
+               VideoLogWarning
+                       ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_LANGUAGE)");
+               nType = VP_SUBTITLE_MODE_LANGUAGE;
+               if (pSubtitle->pCloseCb) {
+                       pSubtitle->pCloseCb((int) nType, TRUE,
+                                                               (void *) pSubtitle->pUserData);
+               }
+       }
+#ifdef SUBTITLE_K_FEATURE
+       else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_ALIGNMENT)) {
+               VideoLogWarning
+                       ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_ALIGNMENT)");
+               nType = VP_SUBTITLE_MODE_ALIGNMENT;
+               if (pSubtitle->pCloseCb) {
+                       pSubtitle->pCloseCb((int) nType, TRUE,
+                                                               (void *) pSubtitle->pUserData);
+               }
+       }
+#endif
+       else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_FONT)) {
+               VideoLogWarning
+                       ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_FONT)");
+               nType = VP_SUBTITLE_MODE_FONT;
+               if (pSubtitle->pCloseCb) {
+                       pSubtitle->pCloseCb((int) nType, TRUE,
+                                                               (void *) pSubtitle->pUserData);
+               }
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_SIZE)) {
+               VideoLogWarning
+                       ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_SIZE)");
+               nType = VP_SUBTITLE_MODE_SIZE;
+               if (pSubtitle->pCloseCb) {
+                       pSubtitle->pCloseCb((int) nType, TRUE,
+                                                               (void *) pSubtitle->pUserData);
+               }
+       }
+//#ifdef SUBTITLE_K_FEATURE
+       else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_EDGE)) {
+               VideoLogWarning
+                       ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_EDGE)");
+               nType = VP_SUBTITLE_MODE_EDGE;
+               if (pSubtitle->pCloseCb) {
+                       pSubtitle->pCloseCb((int) nType, TRUE,
+                                                               (void *) pSubtitle->pUserData);
+               }
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_TEXT)) {
+               VideoLogWarning
+                       ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_TEXT)");
+               nType = VP_SUBTITLE_MODE_TEXT;
+               if (pSubtitle->pCloseCb) {
+                       pSubtitle->pCloseCb((int) nType, TRUE,
+                                                               (void *) pSubtitle->pUserData);
+               }
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_BG_COLOR)) {
+               VideoLogWarning
+                       ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_BG_COLOR)");
+               nType = VP_SUBTITLE_MODE_BG_COLOR;
+               if (pSubtitle->pCloseCb) {
+                       pSubtitle->pCloseCb((int) nType, TRUE,
+                                                               (void *) pSubtitle->pUserData);
+               }
+       } else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_COLOR)) {
+               VideoLogWarning
+                       ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_BG_COLOR)");
+               nType = VP_SUBTITLE_MODE_FONT_COLOR;
+               if (pSubtitle->pCloseCb) {
+                       pSubtitle->pCloseCb((int) nType, TRUE,
+                                                               (void *) pSubtitle->pUserData);
+               }
+       }
+#ifdef SUBTITLE_K_FEATURE
+       else if (!strcmp(szTxt, VP_PLAY_STRING_SUBTITLE_CAPTION_WINDOW)) {
+               VideoLogWarning
+                       ("SELECT SUBTITLE ITEM (VP_PLAY_STRING_SUBTITLE_CAPTION_WINDOW)");
+               nType = VP_SUBTITLE_MODE_CAPTION_WINDOW;
+               if (pSubtitle->pCloseCb) {
+                       pSubtitle->pCloseCb((int) nType, TRUE,
+                                                               (void *) pSubtitle->pUserData);
+               }
+       }
+#endif
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_popup_key_event_cb(void *pUserData,
+                                                                                        Evas_Object * pObj,
+                                                                                        void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       SubtitlePopup *pSubtitle = (SubtitlePopup *) pUserData;
+       _vp_subtitle_cancel_button_cb(pSubtitle, NULL, NULL);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_subtitle_popup_mouse_event_cb(void *pUserData,
+                                                                                          Evas * pEvas,
+                                                                                          Evas_Object * pObj,
+                                                                                          void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pEventInfo == NULL) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Evas_Event_Mouse_Up *ev = pEventInfo;
+
+       if (ev->button == 3) {
+               SubtitlePopup *pSubtitle = (SubtitlePopup *) pUserData;
+               _vp_subtitle_cancel_button_cb(pSubtitle, NULL, NULL);
+       }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pSubtitle
+ */
+static void _vp_subtitle_destroy_subtitle_info(SubtitlePopup * pSubtitle)
+{
+       if (pSubtitle == NULL) {
+               VideoLogError("pSubtitle is NULL");
+               return;
+       }
+
+       if (pSubtitle->pSubtitleInfo) {
+               VP_FREE(pSubtitle->pSubtitleInfo->szFontName);
+               VP_FREE(pSubtitle->pSubtitleInfo->szLanguage);
+               VP_FREE(pSubtitle->pSubtitleInfo->szText);
+#ifdef SUBTITLE_K_FEATURE
+               VP_FREE(pSubtitle->pSubtitleInfo->pTextColorHex);
+               VP_FREE(pSubtitle->pSubtitleInfo->pBGColorHex);
+               VP_FREE(pSubtitle->pSubtitleInfo->pCaptionWinColorHex);
+#endif
+       }
+}
+
+/**
+ *
+ * @param pSubtitle
+ */
+static void _vp_subtitle_destroy_handle(SubtitlePopup * pSubtitle)
+{
+       if (pSubtitle == NULL) {
+               VideoLogError("pSubtitle is NULL");
+               return;
+       }
+       evas_object_smart_callback_del(pSubtitle->pParent, "rotation,changed",
+                                                                  __vp_subtitle_popup_rotate_cb);
+       evas_object_smart_callback_del(pSubtitle->pGenList, "realized",
+                                                                  __vp_subtitle_genlist_realized);
+
+       if (pSubtitle->st_Subtitle_Itc_1) {
+               elm_genlist_item_class_free(pSubtitle->st_Subtitle_Itc_1);
+               pSubtitle->st_Subtitle_Itc_1 = NULL;
+       }
+
+       if (pSubtitle->st_Subtitle_Itc_2) {
+               elm_genlist_item_class_free(pSubtitle->st_Subtitle_Itc_2);
+               pSubtitle->st_Subtitle_Itc_2 = NULL;
+       }
+
+       if (pSubtitle->st_Subtitle_Itc_1icon) {
+               elm_genlist_item_class_free(pSubtitle->st_Subtitle_Itc_1icon);
+               pSubtitle->st_Subtitle_Itc_1icon = NULL;
+       }
+#ifdef SUBTITLE_K_FEATURE
+       if (pSubtitle->st_Subtitle_Itc_3) {
+               elm_genlist_item_class_free(pSubtitle->st_Subtitle_Itc_3);
+               pSubtitle->st_Subtitle_Itc_3 = NULL;
+       }
+#endif
+
+       if (pSubtitle->st_Subtitle_Itc_groupindex) {
+               elm_genlist_item_class_free(pSubtitle->st_Subtitle_Itc_groupindex);
+               pSubtitle->st_Subtitle_Itc_groupindex = NULL;
+       }
+
+       pSubtitle->pActivationCheck = NULL;
+       VP_EVAS_DEL(pSubtitle->pCaptionLayout);
+       VP_EVAS_DEL(pSubtitle->pGenList);
+       VP_EVAS_DEL(pSubtitle->pContentBox);
+       VP_EVAS_DEL(pSubtitle->pBox);
+
+       VP_EVAS_DEL(pSubtitle->pPopup);
+       _vp_subtitle_destroy_subtitle_info(pSubtitle);
+       VP_FREE(pSubtitle->pSubtitleInfo);
+
+       VP_FREE(pSubtitle);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_create_genlist(Evas_Object * pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_genlist_add(pParent);
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(pObj);
+       return pObj;
+}
+
+/**
+ *
+ * @param pGenList
+ * @param bOn
+ */
+static void _vp_subtitle_genlist_disabled_set(Evas_Object * pGenList,
+                                                                                         bool bOn)
+{
+       if (pGenList == NULL) {
+               VideoLogError("pGenList is NULL");
+               return;
+       }
+
+       Elm_Object_Item *gl_item = elm_genlist_first_item_get(pGenList);
+       if (gl_item) {
+               gl_item = _vp_subtitle_list_item_next_get(gl_item);
+               for (; gl_item; gl_item = _vp_subtitle_list_item_next_get(gl_item)) {
+                       elm_object_item_disabled_set(gl_item, !bOn);
+               }
+       }
+}
+
+/**
+ *
+ * @param pObj
+ * @param pUserData
+ * @return
+ */
+static bool _vp_subtitle_add_genlist_item(Evas_Object * pObj,
+                                                                                 void *pUserData)
+{
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return FALSE;
+       }
+
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return FALSE;
+       }
+
+       SubtitlePopup *pSubtitle = (SubtitlePopup *) pUserData;
+
+       if (pSubtitle->pSubtitleInfo == NULL) {
+               VideoLogError("pSubtitleInfo is NULL");
+               return FALSE;
+       }
+
+       if (pSubtitle->st_Subtitle_Itc_1) {
+               elm_genlist_item_class_free(pSubtitle->st_Subtitle_Itc_1);
+               pSubtitle->st_Subtitle_Itc_1 = NULL;
+       }
+
+       if (pSubtitle->st_Subtitle_Itc_2) {
+               elm_genlist_item_class_free(pSubtitle->st_Subtitle_Itc_2);
+               pSubtitle->st_Subtitle_Itc_2 = NULL;
+       }
+
+       if (pSubtitle->st_Subtitle_Itc_1icon) {
+               elm_genlist_item_class_free(pSubtitle->st_Subtitle_Itc_1icon);
+               pSubtitle->st_Subtitle_Itc_1icon = NULL;
+       }
+#ifdef SUBTITLE_K_FEATURE
+       if (pSubtitle->st_Subtitle_Itc_3) {
+               elm_genlist_item_class_free(pSubtitle->st_Subtitle_Itc_3);
+               pSubtitle->st_Subtitle_Itc_3 = NULL;
+       }
+#endif
+
+       if (pSubtitle->st_Subtitle_Itc_groupindex) {
+               elm_genlist_item_class_free(pSubtitle->st_Subtitle_Itc_groupindex);
+               pSubtitle->st_Subtitle_Itc_groupindex = NULL;
+       }
+
+       pSubtitle->st_Subtitle_Itc_1 = elm_genlist_item_class_new();
+
+       if (pSubtitle->st_Subtitle_Itc_1 != NULL) {
+               pSubtitle->st_Subtitle_Itc_1->version =
+                       ELM_GENLIST_ITEM_CLASS_VERSION;
+               pSubtitle->st_Subtitle_Itc_1->item_style = "type1";
+               pSubtitle->st_Subtitle_Itc_1->func.text_get =
+                       (void *) __vp_subtitle_genlist_text_get_cb;
+               pSubtitle->st_Subtitle_Itc_1->func.content_get =
+                       (void *) __vp_subtitle_genlist_content_get_cb;
+               pSubtitle->st_Subtitle_Itc_1->func.state_get = NULL;
+               pSubtitle->st_Subtitle_Itc_1->func.del = NULL;
+       }
+
+       pSubtitle->st_Subtitle_Itc_2 = elm_genlist_item_class_new();
+
+       if (pSubtitle->st_Subtitle_Itc_2 != NULL) {
+               pSubtitle->st_Subtitle_Itc_2->version =
+                       ELM_GENLIST_ITEM_CLASS_VERSION;
+               pSubtitle->st_Subtitle_Itc_2->item_style = "type1";
+               pSubtitle->st_Subtitle_Itc_2->func.text_get =
+                       (void *) __vp_subtitle_genlist_text_get_cb;
+               pSubtitle->st_Subtitle_Itc_2->func.content_get = NULL;
+               pSubtitle->st_Subtitle_Itc_2->func.state_get = NULL;
+               pSubtitle->st_Subtitle_Itc_2->func.del = NULL;
+       }
+
+       pSubtitle->st_Subtitle_Itc_1icon = elm_genlist_item_class_new();
+
+       if (pSubtitle->st_Subtitle_Itc_1icon != NULL) {
+               pSubtitle->st_Subtitle_Itc_1icon->version =
+                       ELM_GENLIST_ITEM_CLASS_VERSION;
+               pSubtitle->st_Subtitle_Itc_1icon->item_style = "1icon";
+               pSubtitle->st_Subtitle_Itc_1icon->func.text_get = NULL;
+               pSubtitle->st_Subtitle_Itc_1icon->func.content_get =
+                       (void *) __vp_subtitle_genlist_content_get_cb;
+               pSubtitle->st_Subtitle_Itc_1icon->func.state_get = NULL;
+               pSubtitle->st_Subtitle_Itc_1icon->func.del = NULL;
+       }
+
+       if (pSubtitle->st_Subtitle_Itc_groupindex != NULL) {
+               pSubtitle->st_Subtitle_Itc_groupindex =
+                       elm_genlist_item_class_new();
+               pSubtitle->st_Subtitle_Itc_groupindex->version =
+                       ELM_GENLIST_ITEM_CLASS_VERSION;
+               pSubtitle->st_Subtitle_Itc_groupindex->item_style = "group_index";
+               pSubtitle->st_Subtitle_Itc_groupindex->func.text_get =
+                       (void *) __vp_subtitle_genlist_text_get_cb;
+               pSubtitle->st_Subtitle_Itc_groupindex->func.content_get = NULL;
+               pSubtitle->st_Subtitle_Itc_groupindex->func.state_get = NULL;
+               pSubtitle->st_Subtitle_Itc_groupindex->func.del = NULL;
+       }
+
+       Elm_Object_Item *pItem = NULL;
+       VideoLogInfo("subtitle text pre is %s",
+                                pSubtitle->pSubtitleInfo->szText);
+       pItem =
+               elm_genlist_item_append(pObj, pSubtitle->st_Subtitle_Itc_1,
+                                                               (void *) VP_PLAY_STRING_ACTIVATION, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               __vp_subtitle_genlist_item_selected_cb,
+                                                               pUserData);
+       elm_genlist_item_select_mode_set(pItem,
+                                                                        ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+       //elm_genlist_item_append(pObj, pSubtitle->st_Subtitle_Itc_2, (void *)VP_PLAY_STRING_SUBTITLE_SELECT_SUBTITLES, NULL, ELM_GENLIST_ITEM_NONE, __vp_subtitle_genlist_item_selected_cb, pUserData);
+
+       pItem =
+               elm_genlist_item_append(pObj,
+                                                               pSubtitle->st_Subtitle_Itc_groupindex,
+                                                               (void *) VP_PLAY_STRING_SETTINGS, NULL,
+                                                               ELM_GENLIST_ITEM_NONE, NULL, pUserData);
+       elm_genlist_item_select_mode_set(pItem,
+                                                                        ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+       pItem =
+               elm_genlist_item_append(pObj, pSubtitle->st_Subtitle_Itc_1icon,
+                                                               (void *)
+                                                               VP_PLAY_STRING_PREVIEW_SUBTITLE_CC, NULL,
+                                                               ELM_GENLIST_ITEM_NONE, NULL, pUserData);
+       elm_genlist_item_select_mode_set(pItem,
+                                                                        ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+       elm_genlist_item_append(pObj, pSubtitle->st_Subtitle_Itc_2,
+                                                       (void *) VP_PLAY_STRING_SUBTITLE_ALIGNMENT,
+                                                       NULL, ELM_GENLIST_ITEM_NONE,
+                                                       __vp_subtitle_genlist_item_selected_cb,
+                                                       pUserData);
+       elm_genlist_item_append(pObj, pSubtitle->st_Subtitle_Itc_2,
+                                                       (void *) VP_PLAY_STRING_SUBTITLE_SIZE, NULL,
+                                                       ELM_GENLIST_ITEM_NONE,
+                                                       __vp_subtitle_genlist_item_selected_cb,
+                                                       pUserData);
+       elm_genlist_item_append(pObj, pSubtitle->st_Subtitle_Itc_1,
+                                                       (void *) VP_PLAY_STRING_SUBTITLE_COLOR, NULL,
+                                                       ELM_GENLIST_ITEM_NONE,
+                                                       __vp_subtitle_genlist_item_selected_cb,
+                                                       pUserData);
+
+       bool bOn = FALSE;
+       vp_play_preference_get_subtitle_show_key(&bOn);
+       _vp_subtitle_genlist_disabled_set(pSubtitle->pGenList, bOn);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param Event_info
+ */
+static void _vp_subtitle_done_button_cb(void *data, Evas_Object * obj,
+                                                                               void *Event_info)
+{
+       SubtitlePopup *pSubtitle = (SubtitlePopup *) data;
+
+       if (pSubtitle->pCloseCb) {
+               pSubtitle->pCloseCb(VP_SUBTITLE_MODE_CLOSE, FALSE,
+                                                       (void *) pSubtitle->pUserData);
+       }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param Event_info
+ */
+static void _vp_subtitle_cancel_button_cb(void *data, Evas_Object * obj,
+                                                                                 void *Event_info)
+{
+       SubtitlePopup *pSubtitle = (SubtitlePopup *) data;
+       pSubtitle->pSubtitleInfo->eAlignment =
+               pSubtitle->pSubtitleInfo->original_eAlignment;
+       pSubtitle->pSubtitleInfo->nFontSize =
+               pSubtitle->pSubtitleInfo->original_nFontSize;
+       vp_play_preference_set_subtitle_alignment_key(pSubtitle->
+                                                                                                 pSubtitleInfo->
+                                                                                                 original_eAlignment);
+       vp_play_preference_set_subtitle_size_key(pSubtitle->pSubtitleInfo->
+                                                                                        original_nFontSize);
+       if (pSubtitle->pSubtitleInfo->pOriginalTextColorHex) {
+               VP_FREE(pSubtitle->pSubtitleInfo->pTextColorHex);
+               VP_STRDUP(pSubtitle->pSubtitleInfo->pTextColorHex,
+                                 pSubtitle->pSubtitleInfo->pOriginalTextColorHex);
+               vp_play_preference_set_subtitle_font_color_hex_key(pSubtitle->
+                                                                                                                  pSubtitleInfo->
+                                                                                                                  pTextColorHex);
+       }
+       bool bOn = FALSE;
+       vp_play_preference_get_subtitle_show_key(&bOn);
+       if (bOn != pSubtitle->pSubtitleInfo->original_activation) {
+               bOn = pSubtitle->pSubtitleInfo->original_activation;
+               vp_play_preference_set_subtitle_show_key(bOn);
+               _vp_subtitle_set_activation(pSubtitle, bOn);
+       }
+       if (pSubtitle->pCloseCb) {
+               pSubtitle->pCloseCb(VP_SUBTITLE_MODE_CLOSE, FALSE,
+                                                       (void *) pSubtitle->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pSubtitle
+ */
+static void _vp_subtitle_create_title(SubtitlePopup * pSubtitle)
+{
+       if (pSubtitle == NULL) {
+               VideoLogError("pSubtitle is NULL");
+               return;
+       }
+
+       if (pSubtitle->pBox == NULL) {
+               VideoLogError("pBox is NULL");
+               return;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_POPUP_EDJ_PATH);
+       free(path);
+       pSubtitle->pPopupTitle = elm_layout_add(pSubtitle->pBox);
+       evas_object_size_hint_align_set(pSubtitle->pPopupTitle, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       elm_layout_file_set(pSubtitle->pPopupTitle, edj_path,
+                                               VP_PLAY_EDJ_GROUP_TITLE_POPUP);
+
+       /*set title */
+       elm_object_part_text_set(pSubtitle->pPopupTitle, "elm.text.title",
+                                                        VP_PLAY_STRING_POPUP_SUBTITLE);
+
+       /* Title Cancel Button */
+       Evas_Object *btn = NULL;
+       btn = elm_button_add(pSubtitle->pPopupTitle);
+       elm_object_style_set(btn, "naviframe/title_left");
+       evas_object_smart_callback_add(btn, "clicked",
+                                                                  (Evas_Smart_Cb)
+                                                                  _vp_subtitle_cancel_button_cb,
+                                                                  pSubtitle);
+       elm_object_part_content_set(pSubtitle->pPopupTitle,
+                                                               "elm.swallow.title.left.icon", btn);
+       elm_object_text_set(btn, VP_PLAY_STRING_SUBTITLE_CANCEL);
+
+       /* Title Done Button */
+       btn = elm_button_add(pSubtitle->pPopupTitle);
+       elm_object_style_set(btn, "naviframe/title_right");
+       evas_object_smart_callback_add(btn, "clicked",
+                                                                  (Evas_Smart_Cb)
+                                                                  _vp_subtitle_done_button_cb, pSubtitle);
+       elm_object_part_content_set(pSubtitle->pPopupTitle,
+                                                               "elm.swallow.title.right.icon", btn);
+       elm_object_text_set(btn, VP_PLAY_STRING_SUBTITLE_DONE);
+
+       elm_box_pack_end(pSubtitle->pBox, pSubtitle->pPopupTitle);
+       evas_object_show(pSubtitle->pPopupTitle);
+}
+
+/**
+ *
+ * @param parent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_create_label(Evas_Object * parent)
+{
+       Evas_Object *pLabel = elm_label_add(parent);
+       evas_object_size_hint_weight_set(pLabel, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pLabel, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       elm_label_ellipsis_set(pLabel, EINA_TRUE);
+       elm_object_style_set(pLabel, "popup/default");
+       evas_object_size_hint_min_set(pLabel, EVAS_HINT_EXPAND,
+                                                                 VP_POPUP_LIST_CLOSED_CAPTION_HEIGHT *
+                                                                 VP_SCALE);
+
+       evas_object_show(pLabel);
+
+       return pLabel;
+}
+
+/**
+ *
+ * @param pSubtitle
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_subtitle_create_caption_layout(SubtitlePopup *
+                                                                                                          pSubtitle,
+                                                                                                          Evas_Object *
+                                                                                                          pParent)
+{
+       if (pSubtitle == NULL) {
+               VideoLogError("pSubtitle is NULL");
+               return NULL;
+       }
+
+       if (pSubtitle->pBox == NULL) {
+               VideoLogError("pBox is NULL");
+               return NULL;
+       }
+
+       if (pSubtitle->pSubtitleInfo == NULL) {
+               VideoLogError("pSubtitleInfo is NULL");
+               return NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_POPUP_EDJ_PATH);
+       free(path);
+       pSubtitle->pCaptionLayout = elm_layout_add(pParent);
+       evas_object_size_hint_weight_set(pSubtitle->pCaptionLayout,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pSubtitle->pCaptionLayout,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_layout_file_set(pSubtitle->pCaptionLayout, edj_path,
+                                               VP_PLAY_EDJ_GROUP_CAPTION_POPUP);
+
+       char *szText = NULL;
+       Evas_Object *pLab = NULL;
+       pLab = _vp_subtitle_create_label(pSubtitle->pCaptionLayout);
+
+       bool bOn = FALSE;
+       vp_play_preference_get_subtitle_show_key(&bOn);
+       szText = _vp_play_subtitle_text_get(pSubtitle->pSubtitleInfo, bOn);
+       VideoSecureLogInfo("preview title =%S", szText);
+       elm_object_text_set(pLab, szText);
+       VP_FREE(szText);
+
+       elm_object_part_content_set(pSubtitle->pCaptionLayout,
+                                                               "elm.swallow.content", pLab);
+       evas_object_show(pLab);
+       evas_object_show(pSubtitle->pCaptionLayout);
+
+
+
+       return pSubtitle->pCaptionLayout;
+}
+
+/**
+ *
+ * @param pSubtitle
+ * @param bActivation
+ * @return
+ */
+static bool _vp_subtitle_update_caption_layout(SubtitlePopup * pSubtitle,
+                                                                                          bool bActivation)
+{
+       if (pSubtitle == NULL) {
+               VideoLogError("pSubtitle is NULL");
+               return FALSE;
+       }
+
+       if (pSubtitle->pBox == NULL) {
+               VideoLogError("pBox is NULL");
+               return FALSE;
+       }
+
+       if (pSubtitle->pSubtitleInfo == NULL) {
+               VideoLogError("pSubtitleInfo is NULL");
+               return FALSE;
+       }
+
+       if (pSubtitle->pCaptionLayout == NULL) {
+               VideoLogError("pCaptionLayout is NULL");
+               return FALSE;
+       }
+
+       char *szText = NULL;
+       Evas_Object *pLab = NULL;
+       pLab =
+               elm_object_part_content_get(pSubtitle->pCaptionLayout,
+                                                                       "elm.swallow.content");
+       szText =
+               _vp_play_subtitle_text_get(pSubtitle->pSubtitleInfo, bActivation);
+       VideoSecureLogInfo("preview title =%s", szText);
+       elm_object_text_set(pLab, szText);
+       VP_FREE(szText);
+       return TRUE;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pCancelKeyCb
+ * @param pCancelMouseCb
+ * @param pUserData
+ * @return
+ */
+static Evas_Object *_vp_subtitle_popup_create(Evas_Object * pParent,
+                                                                                         Eext_Event_Cb pCancelKeyCb,
+                                                                                         Evas_Object_Event_Cb
+                                                                                         pCancelMouseCb,
+                                                                                         void *pUserData)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+
+       pObj = vp_popup_create(pParent, 0,
+                                                  NULL,
+                                                  NULL, 0.0, NULL,
+                                                  pCancelKeyCb,
+                                                  pCancelMouseCb, (void *) pUserData);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pSubtitle
+ * @param pSubtitleInfo
+ */
+static void _vp_subtitle_get_subtitle_info(SubtitlePopup * pSubtitle,
+                                                                                  SubtitleInfo * pSubtitleInfo)
+{
+       if (pSubtitle == NULL) {
+               VideoLogError("pSubtitle is NULL");
+               return;
+       }
+
+       if (pSubtitleInfo == NULL) {
+               VideoLogError("pSubtitleInfo is NULL");
+               return;
+       }
+
+       if (pSubtitle->pSubtitleInfo == NULL) {
+               VideoLogError("pSubtitleInfo is NULL");
+               return;
+       }
+
+       _vp_subtitle_destroy_subtitle_info(pSubtitle);
+
+       pSubtitle->pSubtitleInfo->bClosedCaption =
+               pSubtitleInfo->bClosedCaption;
+       pSubtitle->pSubtitleInfo->fSync = pSubtitleInfo->fSync;
+       VP_STRDUP(pSubtitle->pSubtitleInfo->szLanguage,
+                         pSubtitleInfo->szLanguage);
+       VP_STRDUP(pSubtitle->pSubtitleInfo->szFontName,
+                         pSubtitleInfo->szFontName);
+       VP_STRDUP(pSubtitle->pSubtitleInfo->szURL, pSubtitleInfo->szURL);
+       VP_STRDUP(pSubtitle->pSubtitleInfo->szText,
+                         VP_PLAY_STRING_PREVIEW_SUBTITLE_CC);
+
+       pSubtitle->pSubtitleInfo->nFontSize = pSubtitleInfo->nFontSize;
+       pSubtitle->pSubtitleInfo->nEdge = pSubtitleInfo->nEdge;
+
+#ifndef SUBTITLE_K_FEATURE
+       pSubtitle->pSubtitleInfo->nTextColor = pSubtitleInfo->nTextColor;
+       pSubtitle->pSubtitleInfo->nBGColor = pSubtitleInfo->nBGColor;
+#else
+       VP_STRDUP(pSubtitle->pSubtitleInfo->pTextColorHex,
+                         pSubtitleInfo->pTextColorHex);
+       VP_STRDUP(pSubtitle->pSubtitleInfo->pBGColorHex,
+                         pSubtitleInfo->pBGColorHex);
+       VP_STRDUP(pSubtitle->pSubtitleInfo->pCaptionWinColorHex,
+                         pSubtitleInfo->pCaptionWinColorHex);
+       pSubtitle->pSubtitleInfo->eAlignment = pSubtitleInfo->eAlignment;
+#endif
+       pSubtitle->pSubtitleInfo->fZoom = pSubtitleInfo->fZoom;
+       pSubtitle->pSubtitleInfo->bSupportSelect =
+               pSubtitleInfo->bSupportSelect;
+}
+
+/**
+ *
+ * @param gl_item
+ * @return
+ */
+Elm_Object_Item *_vp_subtitle_list_item_next_get(Elm_Object_Item * gl_item)
+{
+       if (!gl_item) {
+               VideoLogError("gl_item is null!");
+               return NULL;
+       }
+
+       Elm_Object_Item *next = gl_item;
+       do {
+               next = elm_genlist_item_next_get(next);
+       } while (next && elm_genlist_item_expanded_depth_get(next) > 0);
+
+       return next;
+}
+
+/**
+ *
+ * @param pSubtitle
+ * @param bOn
+ */
+static void _vp_subtitle_set_activation(SubtitlePopup * pSubtitle,
+                                                                               bool bOn)
+{
+       if (pSubtitle == NULL) {
+               VideoLogError("pSubtitle is NULL");
+               return;
+       }
+       VideoLogInfo("");
+
+       _vp_subtitle_update_caption_layout(pSubtitle, bOn);
+       _vp_subtitle_genlist_disabled_set(pSubtitle->pGenList, bOn);
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pSubtitleInfo
+ * @param pCloseCb
+ * @return
+ */
+subtitle_popup_handle vp_subtitle_create(Evas_Object * pParent,
+                                                                                SubtitleInfo * pSubtitleInfo,
+                                                                                PopupCloseCbFunc pCloseCb)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       if (pSubtitleInfo == NULL) {
+               VideoLogError("pSubtitleInfo is NULL");
+               return NULL;
+       }
+
+       SubtitlePopup *pSubtitle = NULL;
+
+       pSubtitle = calloc(1, sizeof(SubtitlePopup));
+
+       if (pSubtitle == NULL) {
+               VideoLogError("pSubtitle alloc fail");
+               return NULL;
+       }
+
+       pSubtitle->pParent = pParent;
+       pSubtitle->pCloseCb = pCloseCb;
+
+       pSubtitle->pSubtitleInfo = calloc(1, sizeof(SubtitleInfo));
+       if (pSubtitle->pSubtitleInfo == NULL) {
+               VideoLogError("pSubtitleInfo alloc fail");
+               _vp_subtitle_destroy_handle(pSubtitle);
+               return NULL;
+       }
+       _vp_subtitle_get_subtitle_info(pSubtitle, pSubtitleInfo);
+       pSubtitle->pSubtitleInfo->original_eAlignment =
+               pSubtitleInfo->eAlignment;
+       pSubtitle->pSubtitleInfo->original_nFontSize =
+               pSubtitleInfo->nFontSize;
+       if (pSubtitleInfo->pTextColorHex) {
+               VP_FREE(pSubtitle->pSubtitleInfo->pOriginalTextColorHex);
+               VP_STRDUP(pSubtitle->pSubtitleInfo->pOriginalTextColorHex,
+                                 pSubtitleInfo->pTextColorHex);
+       }
+
+       bool bOn = FALSE;
+       vp_play_preference_get_subtitle_show_key(&bOn);
+       pSubtitle->pSubtitleInfo->original_activation = bOn;
+
+       pSubtitle->pPopup =
+               _vp_subtitle_popup_create(pParent,
+                                                                 __vp_subtitle_popup_key_event_cb,
+                                                                 __vp_subtitle_popup_mouse_event_cb,
+                                                                 (void *) pSubtitle);
+       if (pSubtitle->pPopup == NULL) {
+               VideoLogError("_vp_subtitle_create_popup fail");
+               _vp_subtitle_destroy_handle(pSubtitle);
+               return NULL;
+       }
+
+       pSubtitle->pGenList = _vp_subtitle_create_genlist(pSubtitle->pPopup);
+       if (pSubtitle->pGenList == NULL) {
+               VideoLogError("_vp_subtitle_create_genlist fail");
+               _vp_subtitle_destroy_handle(pSubtitle);
+               return NULL;
+       }
+
+       evas_object_smart_callback_add(pSubtitle->pParent, "rotation,changed",
+                                                                  __vp_subtitle_popup_rotate_cb,
+                                                                  pSubtitle);
+       evas_object_smart_callback_add(pSubtitle->pGenList, "realized",
+                                                                  __vp_subtitle_genlist_realized, NULL);
+       evas_object_data_set(pSubtitle->pGenList, VP_SUBTITLE_GENLIST_DATA_KEY,
+                                                (void *) pSubtitle);
+       elm_genlist_mode_set(pSubtitle->pGenList, ELM_LIST_COMPRESS);
+
+       if (!_vp_subtitle_add_genlist_item
+               (pSubtitle->pGenList, (void *) pSubtitle)) {
+               VideoLogError("_vp_subtitle_add_genlist_item fail");
+               _vp_subtitle_destroy_handle(pSubtitle);
+               return NULL;
+       }
+
+       pSubtitle->pBox = elm_box_add(pSubtitle->pPopup);
+       evas_object_size_hint_weight_set(pSubtitle->pBox, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pSubtitle->pBox, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       elm_box_homogeneous_set(pSubtitle->pBox, FALSE);
+
+       pSubtitle->pContentBox = elm_box_add(pSubtitle->pBox);
+       evas_object_size_hint_weight_set(pSubtitle->pContentBox,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pSubtitle->pContentBox, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+
+       __vp_subtitle_popup_size_set(pSubtitle);
+       elm_box_pack_end(pSubtitle->pContentBox, pSubtitle->pGenList);
+
+       _vp_subtitle_create_title(pSubtitle);
+
+       evas_object_show(pSubtitle->pContentBox);
+
+       elm_box_pack_end(pSubtitle->pBox, pSubtitle->pContentBox);
+
+       evas_object_show(pSubtitle->pGenList);
+       elm_object_content_set(pSubtitle->pPopup, pSubtitle->pBox);
+
+       return pSubtitle;
+}
+
+/**
+ *
+ * @param pSubtitleHandle
+ */
+void vp_subtitle_destroy(subtitle_popup_handle pSubtitleHandle)
+{
+       if (pSubtitleHandle == NULL) {
+               VideoLogError("pSubtitleHandle is NULL");
+               return;
+       }
+
+       SubtitlePopup *pSubtitle = (SubtitlePopup *) pSubtitleHandle;
+
+       _vp_subtitle_destroy_handle(pSubtitle);
+
+}
+
+/**
+ *
+ * @param pSubtitleHandle
+ * @return
+ */
+bool vp_subtitle_realize(subtitle_popup_handle pSubtitleHandle)
+{
+       if (pSubtitleHandle == NULL) {
+               VideoLogError("pSubtitleHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitlePopup *pSubtitle = (SubtitlePopup *) pSubtitleHandle;
+
+       evas_object_show(pSubtitle->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleHandle
+ * @return
+ */
+bool vp_subtitle_unrealize(subtitle_popup_handle pSubtitleHandle)
+{
+       if (pSubtitleHandle == NULL) {
+               VideoLogError("pSubtitleHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitlePopup *pSubtitle = (SubtitlePopup *) pSubtitleHandle;
+
+       evas_object_hide(pSubtitle->pPopup);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleHandle
+ * @param pSubtitleInfo
+ * @return
+ */
+bool vp_subtitle_update(subtitle_popup_handle pSubtitleHandle,
+                                               SubtitleInfo * pSubtitleInfo)
+{
+       if (pSubtitleHandle == NULL) {
+               VideoLogError("pSubtitleHandle is NULL");
+               return FALSE;
+       }
+
+       if (pSubtitleInfo == NULL) {
+               VideoLogError("pSubtitleInfo is NULL");
+               return FALSE;
+       }
+
+       SubtitlePopup *pSubtitle = (SubtitlePopup *) pSubtitleHandle;
+       _vp_subtitle_get_subtitle_info(pSubtitle, pSubtitleInfo);
+
+       if (!_vp_subtitle_update_caption_layout(pSubtitle, TRUE)) {
+               VideoLogError("_vp_subtitle_update_caption_layout failed");
+               return FALSE;
+       }
+
+       if (pSubtitle->pSelectItem) {
+               VideoLogInfo("pSubtitle->pSelectItem=%p", pSubtitle->pSelectItem);
+               elm_genlist_item_update(pSubtitle->pSelectItem);
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitleHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_subtitle_set_user_data(subtitle_popup_handle pSubtitleHandle,
+                                                          void *pUserData)
+{
+       if (pSubtitleHandle == NULL) {
+               VideoLogError("pSubtitleHandle is NULL");
+               return FALSE;
+       }
+
+       SubtitlePopup *pSubtitle = (SubtitlePopup *) pSubtitleHandle;
+
+       pSubtitle->pUserData = pUserData;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param colorHex
+ * @return
+ */
+char *_vp_subtitle_get_opacity(char *colorHex)
+{
+       if (colorHex == NULL) {
+               VideoLogError("colorHex is NULL");
+               return NULL;
+       }
+
+       char *szOpacity = g_strndup(colorHex + 7, 2);
+
+       float fOpacity = strtol(szOpacity, NULL, 16);
+
+       VideoLogInfo("szOpacity=%s, fOpacity=%f", szOpacity, fOpacity);
+
+       VP_FREE(szOpacity);
+
+       return g_strdup_printf("%d%%", (int) ((fOpacity * 100) / 255.0 + 0.5));
+}
diff --git a/playview/src/feature/vp-zoom-guide.c b/playview/src/feature/vp-zoom-guide.c
new file mode 100755 (executable)
index 0000000..3ab7d4a
--- /dev/null
@@ -0,0 +1,590 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-string-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-zoom-guide.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+typedef struct _ZoomGuideWidget {
+       Evas_Object *pParent;
+       Evas_Object *pLayout;
+       Evas_Object *pItemLayout;
+
+       Ecore_Timer *pHideTimer;
+
+       bool bRealized;
+
+       double fPosX;
+       double fPosY;
+       double fResultPosX;
+       double fResultPosY;
+
+       double fZoomValue;
+
+       Evas_Coord_Rectangle rtOldRect;
+} ZoomGuideWidget;
+
+
+
+static void _vp_zoom_guide_destory_handle(ZoomGuideWidget *
+                                                                                 pZoomGuideWidget);
+static void _vp_zoom_guide_update_item(ZoomGuideWidget * pZoomGuideWidget,
+                                                                          bool bUpdate);
+
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_zoom_guide_hide_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+
+       ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pUserData;
+
+       elm_object_signal_emit(pZoomGuideWidget->pLayout,
+                                                  VP_NORMAL_SIGNAL_ZOOM_GUIDE_HIDE, "*");
+
+       evas_object_hide(pZoomGuideWidget->pLayout);
+       evas_object_hide(pZoomGuideWidget->pItemLayout);
+
+       pZoomGuideWidget->pHideTimer = NULL;
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_zoom_guide_resize_cb(void *pUserData, Evas * pEvas,
+                                                                         Evas_Object * pObj, void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("[ERR] No Exist pUserData.");
+               return;
+       }
+
+       ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pUserData;
+       Evas_Coord_Rectangle rtCurRect = { 0, };
+
+       evas_object_geometry_get(pObj, &(rtCurRect.x), &(rtCurRect.y),
+                                                        &(rtCurRect.w), &(rtCurRect.h));
+
+       if (pZoomGuideWidget->rtOldRect.x != rtCurRect.x ||
+               pZoomGuideWidget->rtOldRect.y != rtCurRect.y ||
+               pZoomGuideWidget->rtOldRect.w != rtCurRect.w ||
+               pZoomGuideWidget->rtOldRect.h != rtCurRect.h) {
+
+               pZoomGuideWidget->rtOldRect.x = rtCurRect.x;
+               pZoomGuideWidget->rtOldRect.y = rtCurRect.y;
+               pZoomGuideWidget->rtOldRect.w = rtCurRect.w;
+               pZoomGuideWidget->rtOldRect.h = rtCurRect.h;
+
+               _vp_zoom_guide_update_item(pZoomGuideWidget, FALSE);
+       }
+
+}
+
+/* internal functions */
+/**
+ *
+ * @param pZoomGuideWidget
+ * @param bUpdate
+ */
+static void _vp_zoom_guide_update_item(ZoomGuideWidget * pZoomGuideWidget,
+                                                                          bool bUpdate)
+{
+       if (pZoomGuideWidget == NULL) {
+               VideoLogError("pZoomGuideWidget is NULL");
+               return;
+       }
+       Evas_Object *pParent = pZoomGuideWidget->pLayout;
+       Evas_Object *pItem = pZoomGuideWidget->pItemLayout;
+
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return;
+       }
+
+       if (pItem == NULL) {
+               VideoLogError("pItem is NULL");
+               return;
+       }
+
+       Evas_Coord_Rectangle nRect = { 0, };
+       Evas_Coord_Rectangle nDstRect = { 0, };
+
+       evas_object_geometry_get(pParent, &(nRect.x), &(nRect.y), &(nRect.w),
+                                                        &(nRect.h));
+
+       nDstRect.w = nRect.w * pZoomGuideWidget->fZoomValue;
+       nDstRect.h = nRect.h * pZoomGuideWidget->fZoomValue;
+
+       nDstRect.x =
+               nRect.x + (nRect.w * pZoomGuideWidget->fPosX) - (nDstRect.w / 2);
+       nDstRect.y =
+               nRect.y + (nRect.h * pZoomGuideWidget->fPosY) - (nDstRect.h / 2);
+
+       if (nDstRect.x < nRect.x) {
+               nDstRect.x = nRect.x;
+       }
+
+       if (nDstRect.y < nRect.y) {
+               nDstRect.y = nRect.y;
+       }
+
+       if (nDstRect.w + nDstRect.x > nRect.w + nRect.x) {
+               nDstRect.x = (nRect.w + nRect.x) - nDstRect.w;
+       }
+
+       if (nDstRect.h + nDstRect.y > nRect.h + nRect.y) {
+               nDstRect.y = (nRect.h + nRect.y) - nDstRect.h;
+       }
+
+       pZoomGuideWidget->fResultPosX =
+               (double) ((double) (nDstRect.x - nRect.x) / (double) (nRect.w));
+       pZoomGuideWidget->fResultPosY =
+               (double) ((double) (nDstRect.y - nRect.y) / (double) (nRect.h));
+
+       evas_object_move(pItem, nDstRect.x, nDstRect.y);
+       evas_object_resize(pItem, nDstRect.w, nDstRect.h);
+
+       if (bUpdate) {
+               elm_object_signal_emit(pZoomGuideWidget->pLayout,
+                                                          VP_NORMAL_SIGNAL_ZOOM_GUIDE_SHOW, "*");
+               evas_object_show(pZoomGuideWidget->pLayout);
+               evas_object_show(pZoomGuideWidget->pItemLayout);
+
+               VP_EVAS_TIMER_DEL(pZoomGuideWidget->pHideTimer);
+               pZoomGuideWidget->pHideTimer =
+                       ecore_timer_add(1.5, __vp_zoom_guide_hide_timer_cb,
+                                                       (void *) pZoomGuideWidget);
+       }
+
+}
+
+/**
+ *
+ * @param pZoomGuideWidget
+ */
+static void _vp_zoom_guide_destory_handle(ZoomGuideWidget *
+                                                                                 pZoomGuideWidget)
+{
+       if (pZoomGuideWidget == NULL) {
+               VideoLogError("pZoomGuideWidget is NULL");
+               return;
+       }
+
+       VP_EVAS_TIMER_DEL(pZoomGuideWidget->pHideTimer);
+
+       VP_EVAS_DEL(pZoomGuideWidget->pLayout);
+       VP_EVAS_DEL(pZoomGuideWidget->pItemLayout);
+
+       VP_FREE(pZoomGuideWidget);
+}
+
+/**
+ *
+ * @param pParent
+ * @param pUserData
+ * @return
+ */
+static Evas_Object *_vp_zoom_guide_create_layout(Evas_Object * pParent,
+                                                                                                void *pUserData)
+{
+       if (!pParent) {
+               VideoLogError("Parent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       Eina_Bool bRet = EINA_FALSE;
+
+       pObj = elm_layout_add(pParent);
+       if (pObj == NULL) {
+               VideoLogError("elm_layout_add object is NULL");
+               return NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_ZOOM_GUIDE_EDJ_PATH);
+       free(path);
+       bRet =
+               elm_layout_file_set(pObj, edj_path, VP_PLAY_EDJ_GROUP_ZOOM_GUIDE);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail");
+               return NULL;
+       }
+       evas_object_event_callback_add(pObj, EVAS_CALLBACK_RESIZE,
+                                                                  __vp_zoom_guide_resize_cb, pUserData);
+
+       evas_object_event_callback_add(pObj, EVAS_CALLBACK_MOVE,
+                                                                  __vp_zoom_guide_resize_cb, pUserData);
+
+
+       evas_object_show(pObj);
+
+       return pObj;
+
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_zoom_guide_create_item_layout(Evas_Object *
+                                                                                                         pParent)
+{
+       if (!pParent) {
+               VideoLogError("Parent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       Eina_Bool bRet = EINA_FALSE;
+
+       pObj = elm_layout_add(pParent);
+       if (pObj == NULL) {
+               VideoLogError("elm_layout_add object is NULL");
+               return NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_ZOOM_GUIDE_EDJ_PATH);
+       free(path);
+       bRet =
+               elm_layout_file_set(pObj, edj_path,
+                                                       VP_PLAY_EDJ_GROUP_ZOOM_GUIDE_ITEM);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail");
+               return NULL;
+       }
+
+       evas_object_show(pObj);
+
+       return pObj;
+
+}
+
+/**
+ *
+ * @param pZoomGuideWidget
+ * @return
+ */
+static bool _vp_zoom_guide_init_layout(ZoomGuideWidget * pZoomGuideWidget)
+{
+       if (pZoomGuideWidget == NULL) {
+               VideoLogError("pZoomGuideWidget is NULL");
+               return FALSE;
+       }
+
+       Evas_Object *pParent = pZoomGuideWidget->pParent;
+
+       pZoomGuideWidget->pLayout =
+               _vp_zoom_guide_create_layout(pParent, (void *) pZoomGuideWidget);
+       if (pZoomGuideWidget->pLayout == NULL) {
+               VideoLogError("_vp_zoom_guide_create_layout is fail");
+               return FALSE;
+       }
+
+       pZoomGuideWidget->pItemLayout =
+               _vp_zoom_guide_create_item_layout(pZoomGuideWidget->pLayout);
+       if (pZoomGuideWidget->pItemLayout == NULL) {
+               VideoLogError("_vp_zoom_guide_create_item_layout is fail");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @return
+ */
+zoom_guide_handle vp_zoom_guide_create(Evas_Object * pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       ZoomGuideWidget *pZoomGuideWidget = NULL;
+
+       pZoomGuideWidget = calloc(1, sizeof(ZoomGuideWidget));
+
+       if (pZoomGuideWidget == NULL) {
+               VideoLogError("pZoomGuideWidget alloc fail");
+               return NULL;
+       }
+
+       pZoomGuideWidget->pParent = pParent;
+       pZoomGuideWidget->bRealized = FALSE;
+       pZoomGuideWidget->fZoomValue = 1.0;
+       pZoomGuideWidget->fPosX = 0.0;
+       pZoomGuideWidget->fPosY = 0.0;
+
+       if (!_vp_zoom_guide_init_layout(pZoomGuideWidget)) {
+               VideoLogError("_vp_zoom_guide_init_layout is fail");
+               _vp_zoom_guide_destory_handle(pZoomGuideWidget);
+               return NULL;
+       }
+
+       return (zoom_guide_handle) pZoomGuideWidget;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ */
+void vp_zoom_guide_destroy(zoom_guide_handle pWidgetHandle)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return;
+       }
+
+       ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pWidgetHandle;
+
+       vp_zoom_guide_unrealize((zoom_guide_handle) pZoomGuideWidget);
+
+       _vp_zoom_guide_destory_handle(pZoomGuideWidget);
+
+       return;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+bool vp_zoom_guide_realize(zoom_guide_handle pWidgetHandle)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pWidgetHandle;
+       pZoomGuideWidget->bRealized = TRUE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+bool vp_zoom_guide_unrealize(zoom_guide_handle pWidgetHandle)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pWidgetHandle;
+
+       pZoomGuideWidget->bRealized = FALSE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+Evas_Object *vp_zoom_guide_get_object(zoom_guide_handle pWidgetHandle)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return NULL;
+       }
+
+       ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pWidgetHandle;
+
+       return pZoomGuideWidget->pLayout;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param fZoomVal
+ * @return
+ */
+bool vp_zoom_guide_set_zoom_value(zoom_guide_handle pWidgetHandle,
+                                                                 double fZoomVal)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pWidgetHandle;
+
+       pZoomGuideWidget->fZoomValue = 1.0 / fZoomVal;
+
+       _vp_zoom_guide_update_item(pZoomGuideWidget, TRUE);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param fZoomVal
+ * @return
+ */
+bool vp_zoom_guide_get_zoom_value(zoom_guide_handle pWidgetHandle,
+                                                                 double *fZoomVal)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pWidgetHandle;
+
+       *fZoomVal = pZoomGuideWidget->fZoomValue;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param fPosX
+ * @param fPosY
+ * @return
+ */
+bool vp_zoom_guide_set_move_position(zoom_guide_handle pWidgetHandle,
+                                                                        double fPosX, double fPosY)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pWidgetHandle;
+
+       pZoomGuideWidget->fPosX = fPosX;
+       pZoomGuideWidget->fPosY = fPosY;
+
+       if (pZoomGuideWidget->fPosX > 1.0) {
+               pZoomGuideWidget->fPosX = 1.0;
+       }
+
+       if (pZoomGuideWidget->fPosY > 1.0) {
+               pZoomGuideWidget->fPosY = 1.0;
+       }
+
+       if (pZoomGuideWidget->fPosX < 0.0) {
+               pZoomGuideWidget->fPosX = 0.0;
+       }
+
+       if (pZoomGuideWidget->fPosY < 0.0) {
+               pZoomGuideWidget->fPosY = 0.0;
+       }
+
+       _vp_zoom_guide_update_item(pZoomGuideWidget, TRUE);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param fPosX
+ * @param fPosY
+ * @return
+ */
+bool vp_zoom_guide_get_move_position(zoom_guide_handle pWidgetHandle,
+                                                                        double *fPosX, double *fPosY)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pWidgetHandle;
+
+       *fPosX = pZoomGuideWidget->fPosX;
+       *fPosY = pZoomGuideWidget->fPosY;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param fPosX
+ * @param fPosY
+ * @return
+ */
+bool vp_zoom_guide_get_real_position(zoom_guide_handle pWidgetHandle,
+                                                                        double *fPosX, double *fPosY)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pWidgetHandle;
+
+       *fPosX = pZoomGuideWidget->fResultPosX;
+       *fPosY = pZoomGuideWidget->fResultPosY;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+bool vp_zoom_guide_update(zoom_guide_handle pWidgetHandle)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       ZoomGuideWidget *pZoomGuideWidget = (ZoomGuideWidget *) pWidgetHandle;
+
+       _vp_zoom_guide_update_item(pZoomGuideWidget, TRUE);
+
+       return TRUE;
+}
diff --git a/playview/src/include/vp-play-macro-define.h b/playview/src/include/vp-play-macro-define.h
new file mode 100755 (executable)
index 0000000..236caca
--- /dev/null
@@ -0,0 +1,181 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif                                                 /*  __cplusplus */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <limits.h>
+#include <errno.h>
+#include <assert.h>
+#include <efl_extension.h>
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#define _EDJ(o)                                elm_layout_edje_get(o)
+#define VP_SCALE                       elm_config_scale_get()
+
+#define VP_MAX_HEAP_SIZE               5*1024*1024     /*Malloc more than this will not be allowd */
+
+#define VP_ASSERT(scalar_exp)   \
+       assert(scalar_exp);     \
+
+
+#define VP_GENLIST_HIDE_BOTTOMLINE(data, obj, event_info) \
+do { \
+       if (!event_info || !obj) { \
+               return; \
+       } \
+       elm_object_item_signal_emit(elm_genlist_last_item_get(obj), "elm,state,bottomline,hide", ""); \
+} while (0);
+
+
+#define VP_CALLOC(ptr, no_elements, type)       \
+       do { \
+               if ((int)(no_elements) <= 0) { \
+                       ptr = NULL; \
+               } \
+               else if (VP_MAX_HEAP_SIZE < no_elements * sizeof(type)) { \
+                       assert(0); \
+               } \
+               else { \
+                       ptr = (type *) calloc(no_elements , sizeof(type)); \
+                       VP_ASSERT(ptr);          \
+               } \
+       } while (0);
+
+#define VP_SNPRINTF(dest, size, format, arg...)        \
+               do { \
+                       if (dest != NULL && format != NULL)     { \
+                               snprintf(dest, size, format, ##arg); \
+                       }       \
+               } while (0);
+
+       /* If the same pointer is passed to free twice, known as a double free.
+          To avoid this, set pointers to NULL after passing    them to free:
+          free(NULL) is safe (it does nothing). */
+
+#define VP_FREE(ptr)   \
+               do { \
+                       if (ptr != NULL) { \
+                               free(ptr);      \
+                               ptr = NULL;     \
+                       }       \
+               } while (0);
+
+#define VP_STRNCPY(dest, src, size)    \
+               do { \
+                       if (src != NULL && dest != NULL && size > 0) { \
+                               strncpy(dest, src, size); \
+                       }       \
+               } while (0);
+       /*
+        * string wrappers
+        */
+#define VP_STRDUP(destptr, sourceptr)\
+               do { \
+                       if (sourceptr == NULL)\
+                               destptr = NULL; \
+                       else \
+                               destptr = strdup(sourceptr); \
+               } while (0);
+
+
+
+#define VP_EVAS_DEL(evas_obj)  \
+               do { \
+                       if (evas_obj != NULL) { \
+                               evas_object_del(evas_obj); \
+                               evas_obj = NULL; \
+                       } \
+               } while (0);
+
+
+#define VP_EVAS_ITEM_DEL(evas_obj)     \
+               do { \
+                       if (evas_obj != NULL) { \
+                               elm_object_item_del(evas_obj); \
+                               evas_obj = NULL; \
+                       } \
+               } while (0);
+
+
+#define VP_EVAS_TIMER_DEL(evas_obj)    \
+               do { \
+                       if (evas_obj != NULL) { \
+                               ecore_timer_del(evas_obj); \
+                               evas_obj = NULL; \
+                       } \
+               } while (0);
+
+#define VP_EVAS_PIPE_DEL(evas_obj)     \
+               do { \
+                       if (evas_obj != NULL) { \
+                               ecore_pipe_del(evas_obj); \
+                               evas_obj = NULL; \
+                       } \
+               } while (0);
+
+
+#define VP_EVAS_IDLER_DEL(evas_obj)    \
+               do { \
+                       if (evas_obj != NULL) { \
+                               ecore_idler_del(evas_obj); \
+                               evas_obj = NULL; \
+                       } \
+               } while (0);
+
+
+#define VP_EVAS_JOB_DEL(evas_obj)      \
+               do { \
+                       if (evas_obj != NULL) { \
+                               ecore_job_del(evas_obj); \
+                               evas_obj = NULL; \
+                       } \
+               } while (0);
+
+
+#define VP_EVAS_EVENT_HANDLER_DEL(evas_obj)    \
+               do { \
+                       if (evas_obj != NULL) { \
+                               ecore_event_handler_del(evas_obj); \
+                               evas_obj = NULL; \
+                       } \
+               } while (0);
+
+#define VP_EVAS_DISABLE_SET(evas_obj, value)   \
+               do { \
+                       if (evas_obj != NULL) {\
+                               elm_object_disabled_set(evas_obj, value); \
+                       } \
+               } while (0);
+
+
+#ifdef __cplusplus
+}
+#endif                                                 /*  __cplusplus */
diff --git a/playview/src/include/vp-play-string-define.h b/playview/src/include/vp-play-string-define.h
new file mode 100755 (executable)
index 0000000..c43a864
--- /dev/null
@@ -0,0 +1,828 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+
+#pragma once
+
+#include <app.h>
+
+#define VP_PLAY_FILE_PREFIX            "file://"
+
+
+/* window name */
+#define VP_PLAY_MAIN_WINDOW_NAME               "video-player"
+#define VP_PLAY_MAIN_MULTI_WINDOW_NAME         "multi_view"
+
+#define VP_LOCAL_STR_PREFIX                    "video-player"
+#define VP_SYS_STR_PREFIX                      "video-player"
+
+#define VP_PLAY_IMAGE_BUFFER_PATH              "/opt/usr/media/.video_thumb/.image_buff.jpg"
+
+#define VP_PLAY_SCREEN_SHOT_DIR                        "/opt/usr/media/Screenshots"
+
+#define VP_PLAY_MEDIA_DIR                                      "/opt/usr/media/Videos"
+#define VP_PLAY_PERSONAL_HEAD_STR                      "/opt/storage/PersonalStorage"
+#define VP_ROOT_PATH_MMC                       "/opt/storage/sdcard"
+
+
+/* EDJ FILE PATH */
+#define VP_PLAY_CUSTOM_THEME                   "pv-custom-winset.edj"
+#define VP_PLAY_RESROUCE_EDJ_PATH              "pv-resource.edj"
+#define VP_PLAY_POPUP_EDJ_PATH                 "pv-popup.edj"
+
+#define VP_PLAY_NORMAL_MAIN_EDJ                        "pv-normal-main.edj"
+#define VP_PLAY_NORMAL_TOP_CONTROL_EDJ         "pv-normal-top-control.edj"
+#define VP_PLAY_NORMAL_CONTROL_EDJ             "pv-normal-control.edj"
+#define VP_PLAY_NORMAL_FUNCTION_EDJ_PATH       "pv-normal-function.edj"
+
+#define VP_PLAY_BOOKMARK_EDJ_PATH              "pv-bookmark.edj"
+#define VP_PLAY_BOOKMARK_ITEM_EDJ_PATH         "pv-bookmark-item.edj"
+#define VP_PLAY_PROGRESSBAR_EDJ_PATH           "pv-progressbar.edj"
+#define VP_PLAY_VOLUME_EDJ_PATH                        "pv-volume.edj"
+#define VP_PLAY_VOLUME_POPUP_EDJ_PATH          "pv-volume-popup.edj"
+#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"
+
+#define VP_PLAY_MULTI_MAIN_EDJ                 "pv-multi-main.edj"
+
+#define VP_PLAY_SPEED_POPUP_EDJ                        "pv-speed-popup.edj"
+#define VP_PLAY_GESTURE_EDJ                            "pv-gesture.edj"
+#define VP_PLAY_SUBTITLE_COLOR_POPUP_EDJ               "pv-subtitle-color-popup.edj"
+
+/* EDJ GROUP & SWALLOW*/
+#define VP_PLAY_CUSTOM_LAYOUT_KLASS            "layout"
+#define VP_PLAY_CUSTOM_LAYOUT_GROUP            "application"
+#define VP_PLAY_CUSTOM_LAYOUT_STYLE            "play_view"
+#define VP_PLAY_CUSTOM_MULTI_LAYOUT_STYLE      "multi_view"
+#define VP_PLAY_DETAIL_LAYOUT_STYLE            "detail_view"
+
+#define VP_PLAY_EDJ_GROUP_GESTURE              "pv.gesture"
+
+#define VP_PLAY_EDJ_GROUP_NORMAL_MAIN          "pv.normal.main"
+#define VP_PLAY_EDJ_GROUP_NORMAL_TOP_CONTROL   "pv.normal.top"
+#define VP_PLAY_EDJ_GROUP_NORMAL_CONTROL       "pv.normal.control"
+#define VP_PLAY_EDJ_GROUP_NORMAL_FUNCTION      "pv.normal.function"
+
+
+#define VP_PLAY_EDJ_GROUP_MULTI                        "pv.multi.main"
+#define VP_PLAY_EDJ_GROUP_PROGRESSBAR          "pv.progress"
+#define VP_PLAY_EDJ_GROUP_BOOKMARK             "pv.bookmark"
+#define VP_PLAY_EDJ_GROUP_BOOKMARK_ITEM                "pv.bookmark.item"
+#define VP_PLAY_EDJ_GROUP_BOOKMARK_ITEM_END    "pv.bookmark.item.end"
+#define VP_PLAY_EDJ_GROUP_ZOOM_GUIDE           "pv.zoom.guide"
+#define VP_PLAY_EDJ_GROUP_ZOOM_GUIDE_ITEM      "pv.zoom.guide.item"
+
+#define VP_PLAY_EDJ_GROUP_TRIM_MAIN            "pv.trim.main"
+#define VP_PLAY_EDJ_GROUP_TRIM_TOP_CONTROL     "pv.trim.top"
+#define VP_PLAY_EDJ_GROUP_TRIM_CONTROL         "pv.trim.control"
+#define VP_PLAY_EDJ_GROUP_VOLUME               "pv.volume"
+#define VP_PLAY_EDJ_GROUP_VOLUME_POPUP         "pv.volume.popup"
+#define VP_PLAY_EDJ_GROUP_BRIGHTNESS_POPUP     "pv.brightness.popup"
+
+#define VP_PLAY_EDJ_GROUP_PLAY_SPEED_POPUP     "pv.play.speed.popup"
+
+#define VP_PLAY_EDJ_GROUP_PLAY_SUBTITLE_COLOR_POPUP    "pv.subtitle-color-popup"
+
+#define VP_PLAY_EDJ_GROUP_CONNECT_POPUP                "pv.connect.popup"
+
+
+#define VP_PLAY_EDJ_GROUP_SUBTITLE             "pv.subtitle"
+#define VP_PLAY_EDJ_GROUP_SUBTITLE_MULTI               "pv.multi-subtitle"
+#define VP_PLAY_EDJ_GROUP_LOADING_ANI          "pv.loading.ani"
+
+#define VP_PLAY_EDJ_GROUP_TRIM_ITEM            "pv.trim.item"
+
+#define VP_PLAY_EDJ_GROUP_CHAPTER_MAIN         "pv.chapter.main"
+
+#define VP_PLAY_EDJ_GROUP_TAG_BUDDY            "pv.tag.buddy"
+#define VP_PLAY_EDJ_GROUP_TAG_PREVIEW          "pv.tag.preview"
+#define VP_PLAY_EDJ_GROUP_TAG_NARMAL           "pv.tag.buddy.normal"
+
+
+
+#define VP_PLAY_EDJ_GROUP_SESNOR_MAIN          "pv.sensor.popup"
+#define VP_PLAY_EDJ_GROUP_SESNOR_IMAGE         "pv.sensor.popup.image"
+
+#define VP_PLAY_EDJ_GROUP_TITLE_LIST_POPUP     "pv.title.list"
+#define VP_PLAY_EDJ_GROUP_PROGRESS_POPUP       "pv.popup.progress"
+#define VP_PLAY_EDJ_GROUP_ENTRY_POPUP          "pv.popup.entry"
+#define VP_PLAY_EDJ_GROUP_CAPTION_POPUP                "pv.popup.caption"
+#define VP_PLAY_EDJ_GROUP_TITLE_POPUP          "pv.popup.title"
+
+#define VP_PLAY_EDJ_GROUP_MICROSEEK_TEXT               "pv.normal.main.microseek.text"
+#define VP_PLAY_EDJ_GROUP_MICROSEEK_IMAGE              "pv.normal.main.microseek.image"
+#define VP_PLAY_EDJ_GROUP_FLICKJUMP_SEEK               "pv.normal.main.flickjump.seek"
+
+#define VP_PLAY_SWALLOW_BUTTON_ICON            "elm.swallow.content"
+#define VP_PLAY_SWALLOW_BUTTON_PRESS_ICON      "elm.swallow.content.press"
+#define VP_PLAY_SWALLOW_BUTTON_DIM_ICON                "elm.swallow.content.dim"
+
+
+/* normal view swallow */
+#define VP_PLAY_SWALLOW_NORMAL_LOCKSCREEN      "pv.normal.main.lockscreen"
+
+#define VP_PLAY_SWALLOW_NORMAL_IMAGE_BUFFER    "pv.normal.main.image.buffer"
+#define VP_PLAY_SWALLOW_NORMAL_ERROR_IMAGE     "pv.normal.main.error.image"
+
+#define VP_PLAY_SWALLOW_NORMAL_TOP_CONTROL     "pv.normal.top.control"
+#define VP_PLAY_SWALLOW_NORMAL_CONTROL         "pv.normal.main.control"
+#define VP_PLAY_SWALLOW_NORMAL_ROTATE  "pv.normal.main.rotate.icon"
+
+#define VP_PLAY_SWALLOW_NORMAL_VOLUME          "pv.normal.main.volume.icon"
+#define VP_PLAY_SWALLOW_NORMAL_SCREENSIZE      "pv.normal.control.toolbar.screensize"
+#define VP_PLAY_SWALLOW_NORMAL_POPUP_PLAYER     "pv.normal.control.toolbar.popupPlayer"
+
+#define VP_PLAY_SWALLOW_NORMAL_PLAY            "pv.normal.control.play"
+#define VP_PLAY_SWALLOW_NORMAL_REW             "pv.normal.control.rew"
+#define VP_PLAY_SWALLOW_NORMAL_FF              "pv.normal.control.ff"
+#define VP_PLAY_SWALLOW_NORMAL_PLAY_FOCUS              "pv.normal.control.play.focus"
+
+
+#define VP_PLAY_SWALLOW_NORMAL_SCREENSHOT_PORTRAIT     "pv.normal.main.screenshot.portrait"
+#define VP_PLAY_SWALLOW_NORMAL_SCREENSHOT_LANDSCAPE    "pv.normal.main.screenshot.landscape"
+
+#define VP_PLAY_SWALLOW_NORMAL_BOOKMARK                "pv.normal.control.bookmark"
+#define VP_PLAY_SWALLOW_NORMAL_PROGRESS                "pv.normal.control.progress"
+#define VP_PLAY_SWALLOW_NORMAL_FUNCTION                "pv.normal.control.function"
+
+#define VP_PLAY_SWALLOW_NORMAL_TOP_CAPTURE     "pv.normal.top.capture"
+#define VP_PLAY_SWALLOW_NORMAL_TOP_CAPTURE_REW "pv.normal.top.capture.rew"
+#define VP_PLAY_SWALLOW_NORMAL_TOP_CAPTURE_FF  "pv.normal.top.capture.ff"
+#define VP_PLAY_SWALLOW_NORMAL_TOP_ROTATE      "pv.normal.top.rotate"
+
+#define VP_PLAY_SWALLOW_NORMAL_ZOOM_GUIDE      "pv.normal.main.zoom.guide.rect"
+
+#define VP_PLAY_SWALLOW_PROGRESS_BG            "pv.progress.bg"
+#define VP_PLAY_SWALLOW_PROGRESS_PLAYING_LABEL "pv.progress.playing.txt"
+#define VP_PLAY_SWALLOW_PROGRESS_DURATION_LABEL        "pv.progress.duration.txt"
+#define VP_PLAY_SWALLOW_PROGRESS_DRAG_RECT     "pv.progress.playing"
+#define VP_PLAY_SWALLOW_PROGRESS_BAR           "pv.progress.bar.bg"
+#define VP_PLAY_SWALLOW_PROGRESS_POINT         "pv.progress.point"
+
+#define VP_PLAY_SWALLOW_BOOKMARK_ADD_BUTTON    "pv.bookmark.add.button"
+#define VP_PLAY_SWALLOW_BOOKMARK_LIST          "pv.bookmark.item.list"
+
+#define VP_PLAY_SWALLOW_BOOKMARK_ITEM_ICON     "pv.bookmark.item.icon"
+#define VP_PLAY_SWALLOW_BOOKMARK_ITEM_TXT      "pv.bookmark.item.txt"
+#define VP_PLAY_SWALLOW_BOOKMARK_ITEM_DEL      "pv.bookmark.item.del"
+
+#define VP_PLAY_SWALLOW_VOLUME_DRAG_RECT       "pv.volume.playing"
+#define VP_PLAY_SWALLOW_VOLUME_VALUE_LABEL     "pv.volume.txt"
+
+#define VP_PLAY_SWALLOW_VOLUME_POPUP_DRAG_RECT         "pv.volume.popup.playing"
+#define VP_PLAY_SWALLOW_VOLUME_POPUP_VALUE_LABEL       "pv.volume.popup.txt"
+
+#define VP_PLAY_SWALLOW_BRIGHTNESS_POPUP_DRAG_RECT     "pv.brightness.popup.playing"
+#define VP_PLAY_SWALLOW_BRIGHTNESS_POPUP_VALUE_LABEL   "pv.brightness.popup.txt"
+#define VP_PLAY_SWALLOW_BRIGHTNESS_POPUP_ICON          "pv.brightness.popup.icon"
+
+#define VP_PLAY_SWALLOW_NORMAL_FUNCTION_1      "pv.normal.function.button.1"
+#define VP_PLAY_SWALLOW_NORMAL_FUNCTION_2      "pv.normal.function.button.2"
+#define VP_PLAY_SWALLOW_NORMAL_FUNCTION_3      "pv.normal.function.button.3"
+
+#define VP_PLAY_SWALLOW_NORMAL_SUBTITLE                "pv.normal.main.subtitle"
+#define VP_PLAY_SWALLOW_NORMAL_LOADING_ANI     "pv.normal.main.loading"
+
+
+#define VP_PLAY_SWALLOW_NORMAL_SINK            "pv.normal.videosink"
+
+/* zoom guide swallow */
+
+/* multi view swallow */
+#define VP_PLAY_SWALLOW_MULTI_IMAGE_BUFFER     "pv.multi.image.buffer"
+
+#define VP_PLAY_SWALLOW_MULTI_SINK             "pv.multi.videosink"
+
+#define VP_PLAY_SWALLOW_MULTI_CLOSE            "pv.multi.close"
+#define VP_PLAY_SWALLOW_MULTI_FULL_SIZE                "pv.multi.full.size"
+#define VP_PLAY_SWALLOW_MULTI_MINIMIZE         "pv.multi.minimize"
+#define VP_PLAY_SWALLOW_MULTI_RESIZE           "pv.multi.resize"
+#define VP_PLAY_SWALLOW_MULTI_PLAY_PAUSE       "pv.multi.control.play"
+#define VP_PLAY_SWALLOW_MULTI_PLAY_FOCUS       "pv.multi.control.play.focus"
+#define VP_PLAY_SWALLOW_MULTI_REW              "pv.multi.control.rew"
+#define VP_PLAY_SWALLOW_MULTI_FF               "pv.multi.control.ff"
+#define VP_PLAY_SWALLOW_MULTI_LOADING_ANI      "pv.multi.main.loading"
+#define VP_PLAY_SWALLOW_MULTI_SUBTITLE         "pv.multi.main.subtitle"
+
+
+/* trim view swallow */
+#define VP_PLAY_SWALLOW_TRIM_TOP_CONTROL       "pv.trim.top.control"
+#define VP_PLAY_SWALLOW_TRIM_CONTROL           "pv.trim.main.control"
+
+#define VP_PLAY_SWALLOW_TRIM_ROTATE            "pv.trim.top.rotate"
+
+#define VP_PLAY_SWALLOW_TRIM_SAVE              "pv.trim.control.toolbar.save"
+#define VP_PLAY_SWALLOW_TRIM_BACK              "pv.trim.control.toolbar.back"
+
+#define VP_PLAY_SWALLOW_TRIM_PLAY              "pv.trim.control.play"
+#define VP_PLAY_SWALLOW_TRIM_REW               "pv.trim.control.rew"
+#define VP_PLAY_SWALLOW_TRIM_FF                        "pv.trim.control.ff"
+
+#define VP_PLAY_SWALLOW_TRIM_GENGRID           "pv.trim.control.gengrid.rect"
+#define VP_PLAY_SWALLOW_TRIM_ITEM              "pv.trim.item.icon"
+
+#define VP_PLAY_SWALLOW_TRIM_DRAG_RECT         "pv.trim.control.playing"
+#define VP_PLAY_SWALLOW_TRIM_START_LABEL       "pv.trim.start.txt"
+#define VP_PLAY_SWALLOW_TRIM_TOTAL_LABEL       "pv.trim.total.txt"
+
+#define VP_PLAY_SWALLOW_TRIM_LOADING_ANI       "pv.trim.main.loading"
+#define VP_PLAY_SWALLOW_TRIM_BUTTON            "pv.trim.main.button"
+
+/* tag view swallow */
+#define VP_PLAY_SWALLOW_TAG_PREVIEW            "pv.tag.buddy.preview"
+#define VP_PLAY_SWALLOW_TAG_LIST               "pv.tag.buddy.list"
+
+#define VP_PLAY_SWALLOW_TAG_PREVIEW_IMAGE      "pv.tag.preview.image"
+#define VP_PLAY_SWALLOW_TAG_PREVIEW_ACCUWEATHER        "pv.tag.preview.accuweather"
+#define VP_PLAY_SWALLOW_TAG_PREVIEW_TABLE      "pv.tag.preview.table"
+#define VP_PLAY_SWALLOW_TAG_PREVIEW_TIME       "pv.tag.preview.time"
+
+#define VP_PLAY_SWALLOW_TAG_PREVIEW_TIME_SHADOW                "pv.tag.preview.time.shadow"
+#define VP_PLAY_SWALLOW_TAG_PREVIEW_TABLE_SHADOW       "pv.tag.preview.table.shadow"
+
+#define VP_PLAY_SWALLOW_TAG_BG                         "pv.tag.bg"
+
+
+/* normal part */
+#define VP_PLAY_PART_NORMAL_PLAYING_SPEED_TXT          "pv.normal.main.playingspeed.txt"
+#define VP_PLAY_PART_NORMAL_SPEED_TXT          "pv.normal.main.speed.txt"
+
+/* multi part */
+#define VP_PLAY_PART_MULTI_TITLE               "pv.multi.title.txt"
+#define VP_PLAY_PART_MULTI_NOCONTENTS_TXT      "pv.multi.nocontents.txt"
+
+#define VP_PLAY_PART_MULTI_SPEED_TXT           "pv.multi.main.speed.txt"
+
+
+/* trim drag part */
+#define VP_PLAY_PART_TRIM_DRAG_PLAYING         "pv.trim.control.playing"
+#define VP_PLAY_PART_TRIM_DRAG_START           "pv.trim.control.confine.start"
+#define VP_PLAY_PART_TRIM_DRAG_END             "pv.trim.control.confine.end"
+
+
+
+/* subtitle part */
+#define VP_PLAY_PART_SUBTITLE_TEXT                     "pv.multi.subtitle.label.txt"
+#define VP_PLAY_SWALLOW_SUBTITLE_TEXT          "pv.subtitle.swallow.txt"
+
+
+/* flick jump seek part */
+#define VP_PLAY_PART_FLICKJUMP_SEEK_REW_TEXT           "pv.normal.main.flickjump.seek.rewtext"
+#define VP_PLAY_PART_FLICKJUMP_SEEK_FF_TEXT            "pv.normal.main.flickjump.seek.fftext"
+
+
+/* signal emit strings */
+#define VP_PLAY_COMMON_SIGNAL_DRAG                     "drag"
+#define VP_PLAY_COMMON_SIGNAL_DRAG_START               "drag,start"
+#define VP_PLAY_COMMON_SIGNAL_DRAG_STOP                        "drag,stop"
+
+#define VP_MULTI_VIEW_SIGNAL_SHOW_CONTROL              "signal.pv.multi.show.control"
+#define VP_MULTI_VIEW_SIGNAL_HIDE_CONTROL              "signal.pv.multi.hide.control"
+
+#define VP_MULTI_SIGNAL_MAIN_SPEED_SHOW                "signal.pv.multi.main.speed.show"
+#define VP_MULTI_SIGNAL_MAIN_SPEED_HIDE                "signal.pv.multi.main.speed.hide"
+
+#define VP_MULTI_VIEW_SIGNAL_SHOW_NOCONTENTS           "signal.pv.multi.show.nocontents"
+#define VP_MULTI_VIEW_SIGNAL_HIDE_NOCONTENTS           "signal.pv.multi.hide.nocontents"
+
+#define VP_MULTI_VIEW_TITLE_FOCUS_IN_CONTROL           "signal.pv.multi.focus.in.control"
+#define VP_MULTI_VIEW_TITLE_FOCUS_OUT_CONTROL          "signal.pv.multi.focus.out.control"
+
+#define VP_MULTI_VIEW_TITLE_CLOSE_BTN_PRESSED          "signal.pv.multi.close.pressed"
+#define VP_MULTI_VIEW_TITLE_CLOSE_BTN_RELEASED         "signal.pv.multi.close.released"
+
+#define VP_MULTI_VIEW_TITLE_FULLSIZE_BTN_PRESSED       "signal.pv.multi.fullsize.pressed"
+#define VP_MULTI_VIEW_TITLE_FULLSIZE_BTN_RELEASED      "signal.pv.multi.fullsize.released"
+
+#define VP_MULTI_VIEW_TITLE_MINIMIZE_BTN_PRESSED       "signal.pv.multi.minimize.pressed"
+#define VP_MULTI_VIEW_TITLE_MINIMIZE_BTN_RELEASED      "signal.pv.multi.minimize.released"
+
+#define VP_NORMAL_SIGNAL_VIDEO_OFF                     "signal.pv.normal.main.video.off"
+#define VP_NORMAL_SIGNAL_VIDEO_ON                      "signal.pv.normal.main.video.on"
+
+#define VP_NORMAL_SIGNAL_ZOOM_GUIDE_SHOW               "signal.pv.zoom.guide.show"
+#define VP_NORMAL_SIGNAL_ZOOM_GUIDE_HIDE               "signal.pv.zoom.guide.hide"
+
+#define VP_NORMAL_SIGNAL_LOCKSCREEN_SHOW               "signal.pv.normal.lockscreen.show"
+#define VP_NORMAL_SIGNAL_LOCKSCREEN_HIDE               "signal.pv.normal.lockscreen.hide"
+
+#define VP_NORMAL_SIGNAL_NO_CONTNES_SHOW               "signal.pv.normal.no.contents.show"
+#define VP_NORMAL_SIGNAL_NO_CONTNES_HIDE               "signal.pv.normal.no.contents.hide"
+
+#define VP_NORMAL_SIGNAL_NAVIFRAME_TITLE_SHOW          "elm,state,title,show"
+#define VP_NORMAL_SIGNAL_NAVIFRAME_TITLE_HIDE          "elm,state,title,hide"
+#define VP_NORMAL_SIGNAL_NAVIFRAME_TITLE_NO_EFFECT_HIDE        "elm,state,title,no,effect,hide"
+
+#define VP_NORMAL_SIGNAL_MAIN_SHOW_FINISH              "signal.pv.normal.main.control.show.finish"
+#define VP_NORMAL_SIGNAL_MAIN_HIDE_FINISH              "signal.pv.normal.main.control.hide.finish"
+
+#define VP_NORMAL_SIGNAL_MAIN_PLAYING_SPEED_SHOW               "signal.pv.normal.main.playingspeed.show"
+#define VP_NORMAL_SIGNAL_MAIN_PLAYING_SPEED_HIDE               "signal.pv.normal.main.playingspeed.hide"
+
+#define VP_NORMAL_SIGNAL_MAIN_SPEED_SHOW               "signal.pv.normal.main.speed.show"
+#define VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE               "signal.pv.normal.main.speed.hide"
+
+#define VP_NORMAL_SIGNAL_MAIN_SCREEN_PORTRAIT_SHOW     "signal.pv.normal.main.screenshot.portrait.show"
+#define VP_NORMAL_SIGNAL_MAIN_SCREEN_LANDSCAPE_SHOW    "signal.pv.normal.main.screenshot.landscape.show"
+#define VP_NORMAL_SIGNAL_MAIN_SCREEN_HIDE              "signal.pv.normal.main.screenshot.hide"
+
+#define VP_NORMAL_SIGNAL_MAIN_BOOKMARK_ON              "signal.pv.normal.main.bookmark.on"
+#define VP_NORMAL_SIGNAL_MAIN_BOOKMARK_OFF             "signal.pv.normal.main.bookmark.off"
+
+#define VP_NORMAL_SIGNAL_MAIN_PORTRAIT_SHOW            "signal.pv.normal.main.portrait.show"
+#define VP_NORMAL_SIGNAL_MAIN_LANDSCAPE_SHOW           "signal.pv.normal.main.landscape.show"
+
+#define VP_NORMAL_SIGNAL_MAIN_NO_EFFECT_PORTRAIT_SHOW  "signal.pv.normal.main.no.effect.portrait.show"
+#define VP_NORMAL_SIGNAL_MAIN_NO_EFFECT_LANDSCAPE_SHOW "signal.pv.normal.main.no.effect.landscape.show"
+
+#define VP_NORMAL_SIGNAL_MAIN_NO_EFFECT_HIDE           "signal.pv.normal.main.no.effect.hide"
+#define VP_NORMAL_SIGNAL_MAIN_HIDE                     "signal.pv.normal.main.control.hide"
+#define VP_NORMAL_SIGNAL_MAIN_ROTATE_SHOW                      "signal.pv.normal.main.rotate.icon.show"
+#define VP_NORMAL_SIGNAL_MAIN_ROTATE_HIDE                      "signal.pv.normal.main.rotate.icon.hide"
+#define VP_NORMAL_SIGNAL_MAIN_VOLUME_PORTRAIT_SHOW                     "signal.pv.normal.main.volume.icon.portrait.show"
+#define VP_NORMAL_SIGNAL_MAIN_VOLUME_LANDSCAPE_SHOW                    "signal.pv.normal.main.volume.icon.landscape.show"
+#define VP_NORMAL_SIGNAL_MAIN_VOLUME_HIDE                      "signal.pv.normal.main.volume.icon.hide"
+
+#define VP_NORMAL_SIGNAL_MAIN_SUBTITLE_PORTRAIT                "signal.pv.normal.main.portrait.subtitle"
+#define VP_NORMAL_SIGNAL_MAIN_SUBTITLE_HIDE            "signal.pv.normal.main.subtitle.hide"
+
+#define VP_NORMAL_SIGNAL_CONTROL_PORTRAIT_MODE         "signal.pv.normal.control.portrait.mode"
+#define VP_NORMAL_SIGNAL_CONTROL_LANDSCAPE_MODE                "signal.pv.normal.control.landscape.mode"
+
+#define VP_NORMAL_SIGNAL_FUNCTION_PORTRAIT_MODE                "signal.pv.normal.function.portrait.mode"
+#define VP_NORMAL_SIGNAL_FUNCTION_LANDSCAPE_MODE       "signal.pv.normal.function.landscape.mode"
+
+#define VP_NORMAL_SIGNAL_PROGRESS_PORTRAIT_MODE                "signal.pv.normal.progress.portrait.mode"
+#define VP_NORMAL_SIGNAL_PROGRESS_LANDSCAPE_MODE       "signal.pv.normal.progress.landscape.mode"
+#define VP_NORMAL_SIGNAL_PROGRESS_OPACITY_DEFAULT      "signal.pv.normal.progress.opacity_default"
+#define VP_NORMAL_SIGNAL_PROGRESS_OPACITY_60           "signal.pv.normal.progress.opacity_60"
+
+#define VP_NORMAL_SIGNAL_PROGRESS_PRESS                        "signal.pv.normal.progress.click"
+#define VP_NORMAL_SIGNAL_PROGRESS_UNPRESS              "signal.pv.normal.progress.unclick"
+
+#define VP_NORMAL_SIGNAL_VOLUME_PORTRAIT_MODE          "signal.pv.volume.portrait.mode"
+#define VP_NORMAL_SIGNAL_VOLUME_LANDSCAPE_MODE         "signal.pv.volume.landscape.mode"
+
+#define VP_NORMAL_SIGNAL_MICROSEEK_TEXT_SHOW                           "signal.pv.normal.main.microseek.text.show"
+#define VP_NORMAL_SIGNAL_MICROSEEK_TEXT_HIDE                           "signal.pv.normal.main.microseek.text.hide"
+#define VP_NORMAL_SIGNAL_MICROSEEK_SPEED_TEXT          "pv.normal.main.microseek.speed.text"
+
+#define VP_NORMAL_SIGNAL_MICROSEEK_IMAGE_SHOW                          "signal.pv.normal.main.microseek.image.show"
+#define VP_NORMAL_SIGNAL_MICROSEEK_IMAGE_HIDE                          "signal.pv.normal.main.microseek.image.hide"
+
+#define VP_NORMAL_SIGNAL_FLICKJUMP_FF                  "signal.pv.normal.main.flickjump.ff"
+#define VP_NORMAL_SIGNAL_FLICKJUMP_REW                 "signal.pv.normal.main.flickjump.rew"
+
+
+#define VP_SUBTITLE_SIGNAL_MAIN_PORTRAIT_SHOW  "signal.pv.subtitle.main.portrait.show"
+#define VP_SUBTITLE_SIGNAL_MAIN_LANDSCAPE_SHOW "signal.pv.subtitle.main.landscape.show"
+#define VP_SUBTITLE_SIGNAL_GREP_BOX_SHOW               "signal.pv.subtitle.grep.box.show"
+#define VP_SUBTITLE_SIGNAL_GREP_BOX_HIDE               "signal.pv.subtitle.grep.box.hide"
+#define VP_SUBTITLE_SIGNAL_CAPTION_WINDOW_HIDE         "signal.pv.subtitle.caption.window.hide"
+
+#define VP_CHAPTER_SIGNAL_FUNCTION_PORTRAIT_MODE       "signal.pv.chapter.portrait.mode"
+#define VP_CHAPTER_SIGNAL_FUNCTION_LANDSCAPE_MODE      "signal.pv.chapter.landscape.mode"
+
+#define VP_POPUP_SIGNAL_CAPTION_PORTRAIT_MODE          "signal.pv.popup.caption.portrait.mode"
+#define VP_POPUP_SIGNAL_CAPTION_LANDSCAPE_MODE         "signal.pv.popup.caption.landscape.mode"
+
+#define VP_TAG_BUDDY_SIGNAL_HIDE               "signal.pv.tag.bg.hide"
+#define VP_TAG_BUDDY_SIGNAL_SHOW               "signal.pv.tag.bg.show"
+
+#define VP_TAG_BUDDY_SIGNAL_WEATHER_JP         "signal.pv.tag.weathernews"
+#define VP_TAG_BUDDY_SIGNAL_ACCUWEATHER                "signal.pv.tag.accuweather"
+
+//multi-window
+#define VP_NORMAL_SIGNAL_CONTROL_P_SHOW                        "signal.pv.normal.control.show.p"
+#define VP_NORMAL_SIGNAL_CONTROL_RFP_SHOW              "signal.pv.normal.control.show.r.f.p"
+#define VP_NORMAL_SIGNAL_CONTROL_VSFRP_SHOW            "signal.pv.normal.control.show.v.s.f.r.p"
+#define VP_NORMAL_SIGNAL_FUNCTION_1_3_SHOW             "signal.pv.normal.function.show.1.3"
+#define VP_NORMAL_SIGNAL_CONTROL_VS_HIDE               "signal.pv.normal.control.hide.v.s"
+#define VP_NORMAL_SIGNAL_CONTROL_VSFR_HIDE             "signal.pv.normal.control.hide.v.s.f.r"
+#define VP_NORMAL_SIGNAL_CONTROL_VSFRP_HIDE            "signal.pv.normal.control.hide.v.s.f.r.p"
+#define VP_NORMAL_SIGNAL_FUNCTION_1_3_HIDE             "signal.pv.normal.function.hide.1.3"
+
+//trim view
+#define VP_TRIM_SIGNAL_CONTROL_PLAYING_SHOW            "signal.pv.trim.control.show.playing"
+#define VP_TRIM_SIGNAL_CONTROL_PLAYING_HIDE            "signal.pv.trim.control.hide.playing"
+
+/* resource groups(image) */
+#define VP_PLAY_MULTI_VIEW_CLOSE               "multi/my_title_icon_delete.png"
+#define VP_PLAY_MULTI_VIEW_FULLSIZE            "multi/my_title_icon_maximize.png"
+#define VP_PLAY_MULTI_VIEW_RESIZE              "multi/mw_frame_handler.png"
+#define VP_PLAY_MULTI_VIEW_RESIZE_PRESS                "multi/mw_frame_handler_press.png"
+#define VP_PLAY_MULTI_VIEW_MINSIZE             "multi/my_title_icon_mimimize.png"
+
+
+#define VP_PLAY_MULTI_VIEW_FF                  "multi/T01_2_mw_control_icon_ff.png"
+#define VP_PLAY_MULTI_VIEW_FF_PRESS            "multi/T01_2_mw_control_icon_ff_press.png"
+#define VP_PLAY_MULTI_VIEW_REW                 "multi/T01_2_mw_control_icon_rew.png"
+#define VP_PLAY_MULTI_VIEW_REW_PRESS           "multi/T01_2_mw_control_icon_rew_press.png"
+#define VP_PLAY_MULTI_VIEW_PLAY                        "multi/T01_2_mw_control_icon_play.png"
+#define VP_PLAY_MULTI_VIEW_PLAY_PRESS          "multi/T01_2_mw_control_icon_play_press.png"
+#define VP_PLAY_MULTI_VIEW_PAUSE               "multi/T01_2_mw_control_icon_pause.png"
+#define VP_PLAY_MULTI_VIEW_PAUSE_PRESS         "multi/T01_2_mw_control_icon_pause_press.png"
+
+#define VP_PLAY_NAVIFRAME_RES_SAVE             "button/T01_2_icon_check.png"
+#define VP_PLAY_NAVIFRAME_RES_SAVE_PRESS       "button/T01_2_icon_check_press.png"
+#define VP_PLAY_NAVIFRAME_RES_SAVE_DIM         "button/T01_2_icon_check_dim.png"
+
+#define VP_PLAY_NAVIFRAME_RES_BACK             "button/T01_2_icon_close.png"
+#define VP_PLAY_NAVIFRAME_RES_BACK_PRESS       "button/T01_2_icon_close_press.png"
+#define VP_PLAY_NAVIFRAME_RES_BACK_DIM         "button/T01_2_icon_close_dim.png"
+
+
+#define VP_PLAY_NORMAL_RES_RESUME              "control/T01-2_control_circle_icon_play.png"
+#define VP_PLAY_NORMAL_RES_PAUSE               "control/T01-2_control_circle_icon_pause.png"
+#define VP_PLAY_NORMAL_RES_PREV                        "control/T01-2_control_circle_icon_rewind.png"
+#define VP_PLAY_NORMAL_RES_NEXT                        "control/T01-2_control_circle_icon_next.png"
+
+#define VP_PLAY_NORMAL_RES_CAPTURE             "capture/T01_2_icon_capture.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_PRESS       "capture/T01_2_icon_capture_press.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_DIM         "capture/T01_2_icon_capture_dim.png"
+
+#define VP_PLAY_NORMAL_RES_CAPTURE_REW         "capture/T01-2_icon_left.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_REW_PRESS   "capture/T01-2_icon_left_press.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_REW_DIM     "capture/T01-2_icon_left_dim.png"
+
+#define VP_PLAY_NORMAL_RES_CAPTURE_FF          "capture/T01-2_icon_right.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_FF_PRESS    "capture/T01-2_icon_right_press.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_FF_DIM      "capture/T01-2_icon_right_dim.png"
+
+
+#define VP_PLAY_TRIM_RES_REW                   "control/T01_2_control_circle_icon_reverse.png"
+#define VP_PLAY_TRIM_RES_FF                    "control/T01_2_control_circle_icon_forward.png"
+
+#define VP_PLAY_NORMAL_RES_VOLUME              "function/T01_2_control_icon_volume.png"
+#define VP_PLAY_NORMAL_RES_VOLUME_PRESS                "function/T01_2_control_icon_volume_press.png"
+#define VP_PLAY_NORMAL_RES_VOLUME_DIM          "function/T01_2_control_icon_volume_dim.png"
+
+#define VP_PLAY_NORMAL_RES_MUTE                        "function/T01-2_control_icon_mute.png"
+#define VP_PLAY_NORMAL_RES_MUTE_PRESS          "function/T01-2_control_icon_mute_press.png"
+#define VP_PLAY_NORMAL_RES_MUTE_DIM            "function/T01-2_control_icon_mute_dim.png"
+
+#define VP_PLAY_NORMAL_RES_BOOKMARK            "function/T01_2_control_icon_bookmark.png"
+#define VP_PLAY_NORMAL_RES_BOOKMARK_PRESS      "function/T01_2_control_icon_bookmark_press.png"
+#define VP_PLAY_NORMAL_RES_BOOKMARK_DIM                "function/T01_2_control_icon_bookmark_dim.png"
+
+#define VP_PLAY_NORMAL_RES_POPUP_PLAYER        "function/player_popup_view_icon_nomal.png"
+
+#define VP_PLAY_NORMAL_RES_SCREEN_1_MODE       "function/T01_2_control_icon_screenmode03.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_1_MODE_PRESS "function/T01_2_control_icon_screenmode03_press.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_1_MODE_DIM   "function/T01_2_control_icon_screenmode03_dim.png"
+
+#define VP_PLAY_NORMAL_RES_SCREEN_2_MODE       "function/T01_2_control_icon_screenmode02.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_2_MODE_PRESS "function/T01_2_control_icon_screenmode02_press.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_2_MODE_DIM   "function/T01_2_control_icon_screenmode02_dim.png"
+
+#define VP_PLAY_NORMAL_RES_SCREEN_3_MODE       "function/T01_2_control_icon_screenmode.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_3_MODE_PRESS "function/T01_2_control_icon_screenmode_press.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_3_MODE_DIM   "function/T01_2_control_icon_screenmode_dim.png"
+
+#define VP_PLAY_NORMAL_RES_SCREEN_4_MODE                       "function/T01_2_control_icon_screenmode04.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_4_MODE_PRESS "function/T01_2_control_icon_screenmode04_press.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_4_MODE_DIM           "function/T01_2_control_icon_screenmode04_dim.png"
+
+#define VP_PLAY_NORMAL_RES_MULTI_MODE          "function/T01_2_control_icon_multi_window.png"
+#define VP_PLAY_NORMAL_RES_MULTI_MODE_PRESS    "function/T01_2_control_icon_multi_window_press.png"
+#define VP_PLAY_NORMAL_RES_MULTI_MODE_DIM      "function/T01_2_control_icon_multi_window_dim.png"
+
+#define VP_PLAY_NORMAL_RES_SHARE               "function/T01_2_control_icon_share.png"
+#define VP_PLAY_NORMAL_RES_SHARE_PRESS         "function/T01_2_control_icon_share_press.png"
+#define VP_PLAY_NORMAL_RES_SHARE_DIM           "function/T01_2_control_icon_share_dim.png"
+
+#define VP_PLAY_NORMAL_RES_SOUND_ALIVE         "function/T01_2_control_icon_soundalive.png"
+#define VP_PLAY_NORMAL_RES_SOUND_ALIVE_PRESS   "function/T01_2_control_icon_soundalive_press.png"
+#define VP_PLAY_NORMAL_RES_SOUND_ALIVE_DIM     "function/T01_2_control_icon_soundalive_dim.png"
+
+#define VP_PLAY_NORMAL_RES_REPEAT_OFF          "function/T01_2_control_icon_repeat_mode.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_OFF_PRESS    "function/T01_2_control_icon_repeat_mode_press.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_OFF_DIM      "function/T01_2_control_icon_repeat_mode_dim.png"
+
+#define VP_PLAY_NORMAL_RES_REPEAT_ONE          "function/T01_2_control_icon_repeat_once.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_ONE_PRESS    "function/T01_2_control_icon_repeat_once_press.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_ONE_DIM      "function/T01_2_control_icon_repeat_once_dim.png"
+
+#define VP_PLAY_NORMAL_RES_REPEAT_ALL          "function/T01_2_control_icon_repeat_all.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_ALL_PRESS    "function/T01_2_control_icon_repeat_all_press.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_ALL_DIM      "function/T01_2_control_icon_repeat_all_dim.png"
+
+#define VP_PLAY_NORMAL_RES_TRIM                        "function/T01_2_control_icon_trim.png"
+#define VP_PLAY_NORMAL_RES_TRIM_PRESS          "function/T01_2_control_icon_trim_press.png"
+#define VP_PLAY_NORMAL_RES_TRIM_DIM            "function/T01_2_control_icon_trim_dim.png"
+
+#define VP_PLAY_NORMAL_RES_ROTATE              "button/T01_2_icon_rotate.png"
+#define VP_PLAY_NORMAL_RES_ROTATE_PRESS                "button/T01_2_icon_rotate_press.png"
+#define VP_PLAY_NORMAL_RES_ROTATE_DIM          "button/T01_2_icon_rotate_dim.png"
+
+#define VP_PLAY_BOOKMARK_RES_ADD                       "bookmark/T01_2_icon_bookmark_add.png"
+#define VP_PLAY_BOOKMARK_RES_ADD_PRESS                 "bookmark/T01_2_icon_bookmark_add_press.png"
+#define VP_PLAY_BOOKMARK_RES_DEL                       "bookmark/T01_2_button_remove.png"
+#define VP_PLAY_BOOKMARK_RES_DEL_PRESS                 "bookmark/T01_2_button_remove_press.png"
+
+#define VP_PLAY_SENSOR_RES_TRUN_OVER_01                        "sensor/B15_turn_over_01.png"
+#define VP_PLAY_SENSOR_RES_TRUN_OVER_02                        "sensor/B15_turn_over_02.png"
+#define VP_PLAY_SENSOR_RES_TRUN_OVER_03                        "sensor/B15_turn_over_03.png"
+
+#define VP_PLAY_CTX_ADD_TO_HOME                                "more/icon_add_to_home.png"
+#define VP_PLAY_CTX_CHAPTER_PREVIEW                    "more/icon_chapter_preview.png"
+#define VP_PLAY_CTX_DETAIL                             "more/icon_detail.png"
+#define VP_PLAY_CTX_DOWNLOAD                           "more/icon_download.png"
+#define VP_PLAY_CTX_SETTING                            "more/icon_setting.png"
+#define VP_PLAY_CTX_SHARE_VIA                          "more/icon_share_via.png"
+#define VP_PLAY_CTX_TRIM                               "more/icon_trim.png"
+#define VP_PLAY_CTX_CONNECTION_INFO                    "more/icon_nearbydevices.png"
+
+#define VP_PLAY_RES_BUTTON_ADD                         "button/T01-2_play_popup_icon_plus.png"
+#define VP_PLAY_RES_BUTTON_ADD_PRESS                   "button/T01-2_play_popup_icon_plus_press.png"
+
+#define VP_PLAY_RES_BUTTON_DEL                         "button/T01-2_play_popup_icon_minus.png"
+#define VP_PLAY_RES_BUTTON_DEL_PRESS                   "button/T01-2_play_popup_icon_minus_press.png"
+
+#define VP_PLAY_TAG_BUDDY_DEAFULT                      "tag/T01-1_Tag_buddy_settings_bg.png"
+
+#define VP_PLAY_NORMAL_RES_LOCK                                "button/T01_2_icon_lock.png"
+#define VP_PLAY_NORMAL_RES_LOCK_PRESS                  "button/T01_2_icon_lock_press.png"
+#define VP_PLAY_TAG_BUDDY_DEAFULT              "tag/T01-1_Tag_buddy_settings_bg.png"
+#define VP_PLAY_TAG_BUDDY_LOGO                 "tag/T01_2_icon_tag_buddy_cplogo.PNG"
+#define VP_PLAY_TAG_BUDDY_LOGO_JP              "tag/U07_weather_logo.png"
+
+#define VP_PLAY_NORMAL_RES_BLUETOOTH_HEADSET   "button/T01_2_icon_bluetooth_headset.png"
+#define VP_PLAY_NORMAL_RES_EARPHONE                            "button/T02_icon_soundPath.png"
+#define VP_PLAY_NORMAL_RES_SPEAKER                             "button/T02_icon_speaker.png"
+#define VP_PLAY_NORMAL_RES_ICON_HDMI                   "button/T02_icon_speaker.png"
+#define VP_PLAY_NORMAL_RES_MIRRORING                   "button/T02_icon_speaker.png"
+#define VP_PLAY_NORMAL_RES_USB_AUDIOE                  "button/T02_icon_speaker.png"
+#define VP_PLAY_NORMAL_RES_DMC_ICON                            "mini_controller/A01_15_popup_No_device.png"
+
+#define VP_PLAY_NORMAL_AUDIO_ONLY_IMG          "sound_only.png"
+#define VP_PLAY_NORMAL_AUDIO_ERROR_IMG         "player_error_screen.png"
+
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_PATH     "brightness/quick_icon_brightness_%02d.png"
+
+/* string resources */
+#define VP_PLAY_STRING_NO_TITLE                                        (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_NO_TITLE"))
+#define VP_PLAY_STRING_STREAMING_PLAYER                                ""
+
+#define VP_PLAY_STRING_UNABLE_TO_PLAY_VIDEO_DURING_CALL                (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"))
+
+#define VP_PLAY_STRING_ERROR_UNABLE_CAPTURE_DRM_CONTENT                (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_UNABLE_TO_CAPTURE"))        //this id has been reomved from po file
+
+#define VP_PLAY_STRING_ERROR_UNSUPPORTED_AUDIO                 (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"))
+#define VP_PLAY_STRING_ERROR_UNSUPPORTED_VIDEO                 (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"))
+
+#define VP_PLAY_STRING_ERROR_FILE_NOT_EXIST                    (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_POP_FILE_NOT_EXIST"))
+#define VP_PLAY_STRING_ERROR_UNABLE_PLAY                       (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"))
+#define VP_PLAY_STRING_ERROR_UNSUPPORTED_FORMAT                        (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"))
+#define VP_PLAY_STRING_ERROR_INVALID_URL                       (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_INVALID_URL"))
+#define VP_PLAY_STRING_ERROR_CONNECTION_FAILED                 (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_POP_CONNECTION_FAILED"))
+#define VP_PLAY_STRING_ERROR_BOOKMARK_LIST_FULL                        (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS")) //this id has been removed from po file
+#define VP_PLAY_STRING_ERROR_NO_SUBTITLE                       (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"))
+#define VP_PLAY_STRING_ERROR_SUBTITLE_FAIL                     (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_ERROR_OCCURRED_WITH_SUBTITLE_FILE"))
+#define VP_PLAY_STRING_SUBTITLE_OFF                    (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_OFF"))
+#define VP_PLAY_STRING_SUBTITLE_DONE           (dgettext(VP_LOCAL_STR_PREFIX, "IDS_TPLATFORM_ACBUTTON_DONE_ABB"))
+#define VP_PLAY_STRING_SUBTITLE_CANCEL                 (dgettext(VP_LOCAL_STR_PREFIX, "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"))
+
+#define VP_PLAY_STRING_POPUP_SHARE                             (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_SHARE"))
+#define VP_PLAY_STRING_POPUP_DELETE                            (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_IOPT3_DELETE"))
+#define VP_PLAY_STRING_POPUP_DELETE_CONTENT            (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"))
+#define VP_PLAY_STRING_CANCEL                                  (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SK_CANCEL_ABB"))
+
+#define VP_PLAY_STRING_POPUP_AVAILABLE_DEVICES                 (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"))
+#define VP_PLAY_STRING_POPUP_SOUND_ALIVE                       (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"))
+#define VP_PLAY_STRING_POPUP_SUBTITLE                          (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"))
+#define VP_PLAY_STRING_POPUP_REPEAT_SETTING                    (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"))
+#define VP_PLAY_STRING_POPUP_AUDIO_TRACK                       (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"))
+#define VP_PLAY_STRING_POPUP_SETTINGS                          (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_HEADER_SETTINGS"))
+#define VP_PLAY_STRING_POPUP_PLAY_SPEED                                (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_PLAY_SPEED"))      //this id has been reomved from po file
+#define VP_PLAY_STRING_POPUP_ENABLE_AUDIO_ONLY         (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"))
+#define VP_PLAY_STRING_POPUP_DISABLE_AUDIO_ONLY                (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"))
+#define VP_PLAY_STRING_UNABLE_TO_PLAY                          (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"))
+#define VP_PLAY_STRING_AUDIO_ONLY_PLAYBACK_MSG         (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"))
+#define VP_PLAY_STRING_POPUP_CAPTURE                           (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_CAPTURE"))  //this id has been reomved from po file
+#define VP_PLAY_STRING_POPUP_TAG_BUDDY                         (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_TAG_BUDDY"))        //this id has been reomved from po file
+#define VP_PLAY_STRING_POPUP_EDIT_WEATHER_TAG                  (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_HEADER_EDIT_WEATHER_TAG_ABB"))  //this id has been reomved from po file
+
+#define VP_PLAY_STRING_COM_PLAY                                        (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SK3_PLAY"))
+#define VP_PLAY_STRING_COM_PAUSE                               (dgettext(VP_LOCAL_STR_PREFIX, "IDS_MUSIC_OPT_PAUSE"))
+#define VP_PLAY_STRING_COM_PREVIOUS                            (dgettext(VP_LOCAL_STR_PREFIX, "IDS_BR_SK_PREVIOUS"))
+#define VP_PLAY_STRING_COM_NEXT                                        (dgettext(VP_LOCAL_STR_PREFIX, "IDS_BR_SK_NEXT"))
+#define VP_PLAY_STRING_COM_FULL                                        (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"))
+#define VP_PLAY_STRING_COM_KEEP_RATIO                  (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BUTTON_KEEP_RATIO_ABB"))
+#define VP_PLAY_STRING_COM_VOLUME                              (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_VOLUME_M_SOUND"))
+#define VP_PLAY_STRING_COM_ROTATE                              (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_ROTATE"))   //this id has been reomved from po file
+#define VP_PLAY_STRING_COM_ON                                  (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_ON"))
+#define VP_PLAY_STRING_COM_OFF                                 (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_OFF"))
+#define VP_PLAY_STRING_COM_ENOUGH_MEMORY                       (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"))
+
+#define VP_PLAY_STRING_COM_CLOSE                               (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SK_CLOSE"))
+#define VP_PLAY_STRING_COM_CLOSE_IDS                   ("IDS_VIDEO_SK_CLOSE")
+#define VP_PLAY_STRING_COM_STOP_IDS                    ("IDS_COM_SK_STOP")
+#define VP_PLAY_STRING_COM_REFRESH                             (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BUTTON_REFRESH"))
+#define VP_PLAY_STRING_COM_REFRESH_IDS                 ("IDS_VIDEO_BUTTON_REFRESH")
+#define VP_PLAY_STRING_COM_SCAN_IDS                    ("IDS_COM_BUTTON_SCAN")
+#define VP_PLAY_STRING_COM_ERROR                               (dgettext(VP_LOCAL_STR_PREFIX, "IDS_CHATON_HEADER_ERROR_ABB"))
+#define VP_PLAY_STRING_COM_CANCEL                              (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SK_CANCEL_ABB"))
+#define VP_PLAY_STRING_COM_CANCEL_IDS                  ("IDS_VIDEO_SK_CANCEL_ABB")
+#define VP_PLAY_STRING_COM_DONE                                        (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BUTTON_DONE"))
+#define VP_PLAY_STRING_COM_OK                                  (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_SK_OK"))
+#define VP_PLAY_STRING_COM_OK_IDS                              ("IDS_COM_SK_OK")
+#define VP_PLAY_STRING_COM_YES                                 (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_SK_YES"))
+#define VP_PLAY_STRING_COM_YES_IDS                             ("IDS_COM_SK_YES")
+#define VP_PLAY_STRING_COM_NO                                  (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_SK_NO"))
+#define VP_PLAY_STRING_COM_NO_IDS                              ("IDS_COM_SK_NO")
+#define VP_PLAY_STRING_COM_LOW_BATTERY                         (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_LOW_BATTERY"))
+#define VP_PLAY_STRING_COM_DOWNLOAD                            (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BUTTON_DOWNLOAD"))
+#define VP_PLAY_STRING_COM_DETAILS                             (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_DETAILS"))
+#define VP_PLAY_STRING_COM_DEFAULT                             (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_DEFAULT"))
+#define VP_PLAY_STRING_COM_UNKNOWN                             (dgettext(VP_SYS_STR_PREFIX, "IDS_VIDEO_BODY_UNKNOWN"))
+#define VP_PLAY_STRING_COM_WAIT_BACK                           (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"))
+
+#define VP_PLAY_STRING_DETAIL_TITLE                            (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_TITLE"))
+#define VP_PLAY_STRING_DETAIL_FORMAT                           (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_FILE_FORMAT"))
+#define VP_PLAY_STRING_DETAIL_DATE                             (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_HEADER_DATE"))
+#define VP_PLAY_STRING_DETAIL_SIZE                             (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_SIZE"))
+#define VP_PLAY_STRING_DETAIL_RESOLUTION                       (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_RESOLUTION"))
+#define VP_PLAY_STRING_DETAIL_LATITUDE                         (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_LATITUDE"))
+#define VP_PLAY_STRING_DETAIL_LONGITUDE                                (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_LONGITUDE"))
+#define VP_PLAY_STRING_DETAIL_LOCATION                         (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_LOCATION"))
+
+
+#define VP_PLAY_STRING_SHARE_MESSAGE                           (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_MESSAGE_ABB"))
+#define VP_PLAY_STRING_SHARE_EMAIL                             (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_EMAIL_ABB"))
+#define VP_PLAY_STRING_SHARE_BLUETOOTH                         (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_BLUETOOTH"))
+#define VP_PLAY_STRING_SHARE_FTM                               (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_OPT1_WI_FI_DIRECT"))
+#define VP_PLAY_STRING_SHARE_FACEBOOK                          (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_FACEBOOK_ABB"))
+#define VP_PLAY_STRING_SHARE_YOUTUBE                           (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_YOUTUBE_ABB"))
+#define VP_PLAY_STRING_SHARE_NFC                               (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_NFC"))
+#define VP_PLAY_STRING_SHARE_FILE_TRANSFER                     (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"))
+#define VP_PLAY_STRING_SHARE_DROPBOX                           (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_CLOUD"))
+
+#define VP_PLAY_STRING_SOUND_ALIVE_NORMAL                      (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"))
+#define VP_PLAY_STRING_SOUND_ALIVE_VOICE                       (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_VOICE"))
+#define VP_PLAY_STRING_SOUND_ALIVE_MOVIE                       (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_MOVIES"))
+#define VP_PLAY_STRING_SOUND_ALIVE_71CH                                (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_VIRTUAL_71_CH"))    //this id has been reomved from po file
+#define VP_PLAY_STRING_71CH_ONLY_EARPHONE                      _(dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"))
+
+#define VP_PLAY_STRING_SUBTITLE_SYNC                           (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_SYNCHRONIZE"))
+#define VP_PLAY_STRING_SUBTITLE_SELECT_SUBTITLES               (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"))
+#define VP_PLAY_STRING_SUBTITLE_LANGUAGE                       (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_LANGUAGE"))
+#define VP_PLAY_STRING_SUBTITLE_ALIGNMENT                      (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_MBODY_ALIGNMENT"))
+#define VP_PLAY_STRING_SUBTITLE_FONT                           (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_FONT"))
+#define VP_PLAY_STRING_SUBTITLE_SIZE                           (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_MBODY_FONT_SIZE"))
+
+#define VP_PLAY_STRING_SUBTITLE_EDGE                           ("Edge")
+#define VP_PLAY_STRING_SUBTITLE_COLOR_AND_OPACITY      ("Color and opacity")
+#define VP_PLAY_STRING_SUBTITLE_OVERVIEW                       ("Overview")
+#define VP_PLAY_STRING_SUBTITLE_TEXT                           ("Text")
+#define VP_PLAY_STRING_SUBTITLE_OPACITY                                ("Opacity")
+#define VP_PLAY_STRING_SUBTITLE_BG_COLOR                       (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_BACKGROUND_COLOUR"))
+#define VP_PLAY_STRING_SUBTITLE_COLOR                          (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_FONT_COLOUR"))
+#define VP_PLAY_STRING_SUBTITLE_CAPTION_WINDOW         ("Caption window")
+
+#define VP_PLAY_STRING_ALIGNMENT_LEFT                                  (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SBODY_LEFT_M_STATUS"))
+#define VP_PLAY_STRING_ALIGNMENT_CENTER                                (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SBODY_CENTRE_M_STATUS"))
+#define VP_PLAY_STRING_ALIGNMENT_RIGHT                         (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SBODY_RIGHT_M_STATUS"))
+
+#define VP_PLAY_STRING_EDGE_NO_EDGE                                    ("No edge")
+#define VP_PLAY_STRING_EDGE_RAISED                                     ("Raised")
+#define VP_PLAY_STRING_EDGE_DEPRESSED                          ("Depressed")
+#define VP_PLAY_STRING_EDGE_UNIFORM                                    ("Uniform")
+#define VP_PLAY_STRING_EDGE_DROP_SHADOW                                ("Drop shadow")
+
+
+#define VP_PLAY_STRING_SUBTITLE_SECS                           _(dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_PS_SECONDS"))     //this is has been removed from po file
+
+#define VP_PLAY_STRING_SUBTITLE_SIZE_LARGE                     (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SBODY_LARGE_M_STATUS"))
+#define VP_PLAY_STRING_SUBTITLE_SIZE_MEDIUM                    (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"))
+#define VP_PLAY_STRING_SUBTITLE_SIZE_SMALL                     (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_SBODY_SMALL_M_STATUS"))
+
+#define VP_PLAY_STRING_SUBTITLE_COLOR_BLACK                    (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_BLACK"))   //this is has been removed from po file
+#define VP_PLAY_STRING_SUBTITLE_COLOR_BLUE                     (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_BLUE"))    //this is has been removed from po file
+#define VP_PLAY_STRING_SUBTITLE_COLOR_GREEN                    (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_GREEN"))    //this is has been removed from po file
+#define VP_PLAY_STRING_SUBTITLE_COLOR_WHITE                    (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_WHITE"))   //this is has been removed from po file
+#define VP_PLAY_STRING_SUBTITLE_COLOR_RED                      (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_RED_ABB"))
+#define VP_PLAY_STRING_SUBTITLE_COLOR_YELLOW           (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_YELLOW_M_COLOUR"))
+#define VP_PLAY_STRING_SUBTITLE_COLOR_MAGENTA          (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_MAGENTA_M_COLOUR"))
+#define VP_PLAY_STRING_SUBTITLE_COLOR_CYAN                     (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_CYAN_M_COLOUR"))
+#define VP_PLAY_STRING_SUBTITLE_COLOR_CUSTOM           (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_CUSTOM"))
+#define VP_PLAY_STRING_SUBTITLE_COLOR_NONE                     (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_POP_NONE"))
+
+#define VP_PLAY_STRING_REPEAT_OFF                              (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_NO_REPEAT"))
+#define VP_PLAY_STRING_REPEAT_ALL_OFF                          (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"))
+#define VP_PLAY_STRING_REPEAT_ONE                              (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"))
+#define VP_PLAY_STRING_REPEAT_ALL                              (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_REPEAT_ALL_ABB"))
+
+#define VP_PLAY_STRING_SOUND_PATH                              (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_HEADER_AUDIO_DEVICE_ABB"))
+#define VP_PLAY_STRING_SOUND_SPEAKER                           (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BUTTON_SPEAKER_ABB"))
+#define VP_PLAY_STRING_SOUND_EARJACK                           (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_OPT_HEADPHONES_ABB"))
+
+#define VP_PLAY_STRING_SETTINGS                                        (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_HEADER_SETTINGS"))
+
+#define VP_PLAY_STRING_AUDIO_TRACK                             (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"))
+#define VP_PLAY_STRING_CONNECT_INFO                            (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_CONNECTION_INFO_ABB"))      //this is has been removed from po file
+#define VP_PLAY_STRING_CHNAGE_PLAYER                           (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_OPT_CHANGE_PLAYER"))    //this is has been removed from po file
+#define VP_PLAY_STRING_MY_DEVICE                               (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_MY_DEVICE"))       //this is has been removed from po file
+#define VP_PLAY_STRING_SELECT_DEVICE                           (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_HEADER_SELECT_DEVICE_ABB"))     //this is has been removed from po file
+#define VP_PLAY_STRING_UNABLE_TO_FF_REW                                (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"))
+
+#define VP_PLAY_STRING_DRM_UNABLE_TO_SHARE_DRM_FILE                            (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"))
+#define VP_PLAY_STRING_DRM_PS_1_MORE_TIME_START_NOW_Q                          _(dgettext(VP_SYS_STR_PREFIX, "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"))
+#define VP_PLAY_STRING_DRM_PS_2_MORE_TIME_START_NOW_Q                          _(dgettext(VP_SYS_STR_PREFIX, "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"))
+#define VP_PLAY_STRING_DRM_PS_FOR_PD_DAYS_START_NOW_Q                          _(dgettext(VP_SYS_STR_PREFIX, "IDS_COM_POP_YOU_CAN_USE_PS_FOR_PD_DAYS_START_NOW_Q"))
+#define VP_PLAY_STRING_DRM_CURRENTLY_LOCKED_UNLOCK_Q                           _(dgettext(VP_SYS_STR_PREFIX, "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"))
+#define VP_PLAY_STRING_DRM_CAN_USE_1_MORE_TIME_GET_ANOTHER_LICENCE_Q           (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"))
+#define VP_PLAY_STRING_DRM_CANNOT_USE_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q     (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"))
+#define VP_PLAY_STRING_DRM_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q         (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"))
+
+#define VP_PLAY_STRING_DIVX_DRM_AUTHORIZATION_ERROR            "This phone is not authorized to play this DivX protected video."
+#define VP_PLAY_STRING_DIVX_DRM_RENTAL_EXPIRED_ERROR           "This DivX rental has used %d of %d views. <br> This DivX rental has expired."
+#define VP_PLAY_STRING_DIVX_DRM_RENTAL_CONFIRMATION_CHOICE     "This DivX rental has used %d of %d views. <br> Continue ?"
+
+#define VP_PLAY_STRING_NO_VIDEOS                               (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_BODY_NO_VIDEOS"))
+
+#define VP_PLAY_STRING_ACTIVATION                              (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_ACTIVATION"))
+
+#define VP_PLAY_STRING_SENSOR_TURN_PHONE_OVER_TO_MUTE          (dgettext(VP_LOCAL_STR_PREFIX, "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"))      //maybe, it is not implemented yet.
+#define VP_PLAY_STRING_SENSOR_TURN_PHONE_OVER_TO_MUTE_IDS      ("IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS")
+#define VP_PLAY_STRING_SENSOR_DONT_ASK_AGAIN                   (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BUTTON_DONT_ASK_AGAIN"))
+#define VP_PLAY_STRING_SENSOR_ENABLE_MOTION                    (dgettext(VP_LOCAL_STR_PREFIX, "IDS_MUSIC_BUTTON_ENABLE_MOTION"))       // maybe, it is not implemented yet.
+#define VP_PLAY_STRING_SENSOR_ENABLE_MOTION_IDS                ("IDS_MUSIC_BUTTON_ENABLE_MOTION")
+
+#define VP_VIDEO_STRING_EXIT_POPUP                             (dgettext(VP_LOCAL_STR_PREFIX, "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"))    //this id has been removed from po file
+
+#define VP_VIDEO_PLAYER_TEXT                                   (dgettext(VP_SYS_STR_PREFIX, "IDS_COM_BODY_VIDEO_PLAYER"))
+
+
+#define VP_COM_BODY_KB                                                         ("KB")
+#define VP_COM_BODY_B                                                          ("B")
+#define VP_COM_BODY_MB                                                         ("MB")
+#define VP_COM_BODY_GB                                                         ("KB")
+
+//this id has been reomved from po file
+#define VP_PLAY_STRING_PRIVACY_POPUP                           (dgettext(VP_LOCAL_STR_PREFIX, "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION"))
+
+//need to support multi language
+#define VP_PLAY_STRING_SOUND_HDMI                              (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_OPT_HDMI"))
+#define VP_PLAY_STRING_SOUND_MIRRORING                 ("Mirroring")
+#define VP_PLAY_STRING_SOUND_USB_AUDIO                 ("USB Audio")
+
+#define VP_PLAY_STRING_PREVIEW_SUBTITLE_CC                     (dgettext(VP_LOCAL_STR_PREFIX, "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"))
+
+#define VP_PLAY_STRING_FONT_DEFAULT                            (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_DEFAULT_FONT"))
+#define VP_PLAY_STRING_FONT_UDRCOTHICM                         (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_UDRGOTHICM_M_FONT"))
+#define VP_PLAY_STRING_FONT_UDMINCHO                           (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_UDMINCHO_M_FONT"))
+#define VP_PLAY_STRING_FONT_POP                                        (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_POP_M_FONT"))
+#define VP_PLAY_STRING_FONT_CHOCO_COOKY                                (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"))
+#define VP_PLAY_STRING_FONT_COOL_JAZZ                          (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_COOL_JAZZ_M_FONT"))
+#define VP_PLAY_STRING_FONT_ROSEMARY                           (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_ROSEMARY_M_FONT"))
+
+#ifdef K_FEATURE_MICROSEEK
+#define VP_PLAY_STRING_SCRUBBING_AT_PSX_SPEED          (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"))
+#endif
+
+#define VP_PLAY_STRING_PD_SECS         (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_BODY_PD_SECS")) //not show in po
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+#define VP_PLAY_STRING_SELECTED_LANGUAGE       ("Select at least one") //to support multi-language
+#endif
+
+#define VP_PLAY_STRING_TRIM_VIEW_MIN_TIME      ("Duration must be longer that one second")     //trim view
+
+#define VP_PLAY_STRING_UNABLE_TO_SCAN  ("Unable to scan")
+#define VP_PLAY_STRING_UNABLE_TO_SCAN_FOR_THE_DEVICE   ("Unable to scan for the device currently connected via Screen Mirroring while Wi-Fi tethering is enabled")
+#define VP_PLAY_STRING_DO_NOT_SHOW_AGAIN       ("Do not show again")
+
+#define VP_PLAY_STRING_VIA_SCREEN_MIRRORING            (dgettext(VP_LOCAL_STR_PREFIX, "IDS_DLNA_OPT_VIA_SCREEN_MIRRORING_ABB"))        //now show in po
+#define VP_PLAY_STRING_VIA_HOME_NETWORK                (dgettext(VP_LOCAL_STR_PREFIX, "IDS_DLNA_OPT_VIA_HOME_NETWORK_ABB"))    //now show in po
+
+#define VP_PLAY_STRING_UNSUPPORTED_CODEC                                       (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_POP_THE_VIDEO_CODEC_IS_NOT_SUPPORTED"))
+#define VP_PLAY_STRING_VIDEO_CANNOT_PLAY                                               (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"))
+#define VP_PLAY_STRING_VIDEO_CANNOT_PLAY_SUBTITLE_ERROR        (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"))
+#define VP_PLAY_STRING_VIDEO_CORRUPTED                                         (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_POP_THIS_FILE_IS_CORRUPTED"))
+#define VP_PLAY_STRING_VIDEO_CORRUPTED_OR_SDCARD_REMOVED       (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"))
+
+
+#define VP_PLAY_STRING_ERROR_ONLY_AUDIO_DATA_SUPPORTED                 (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"))
+#define VP_PLAY_STRING_ERROR_ONLY_VIDEO_DATA_SUPPORTED                 (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"))
+
+#define VP_PLAY_STRING_DETAIL_VALUE_UNKNOWN                                    ("Unknown")
+#define VP_PLAY_STRING_DETAIL_LAST_MODIFIED                                    (dgettext(VP_LOCAL_STR_PREFIX, "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"))
diff --git a/playview/src/include/vp-play-value-define.h b/playview/src/include/vp-play-value-define.h
new file mode 100755 (executable)
index 0000000..ef13897
--- /dev/null
@@ -0,0 +1,126 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+/* SYSTEM KEY VALUE */
+#define VP_PAUSE_KEY                                   "XF86AudioPause"
+#define VP_PLAY_KEY                                    "XF86AudioPlay"
+#define VP_STOP_KEY                                    "XF86AudioStop"
+#define VP_NEXT_KEY                                    "XF86AudioNext"
+#define VP_PREV_KEY                                    "XF86AudioPrev"
+#define VP_FORWARD_KEY                                 "XF86AudioForward"
+#define VP_REWIND_KEY                                  "XF86AudioRewind"
+#define VP_END_KEY                                     "XF86Stop"
+#define VP_HOME_KEY                                    "XF86Home"
+#define VP_KEY_CANCLE                                  "Cancel"
+#define VP_POWER_KEY                                   "XF86PowerOff"
+#define VP_MENU_KEY                                    "XF86Menu"
+#define VP_BACK_KEY                                    "XF86Back"
+#define VP_MEDIA_KEY                                   "XF86AudioMedia"
+#define VP_SCREENSAVER_KEY                             "XF86ScreenSaver"
+
+#define VP_PLAYPAUSE_KEY                               "XF86AudioPlayPause"
+#define VP_PLAY_NEXT_SONG_KEY                          "XF86AudioNext"
+#define VP_PLAY_PREV_SONG_KEY                          "XF86AudioPrev"
+
+#define VP_VOLUME_DOWN_KEY                             "XF86AudioLowerVolume"
+#define VP_VOLUME_UP_KEY                               "XF86AudioRaiseVolume"
+#define VP_VOLUME_MUTE                                 "XF86AudioMute"
+
+#define VP_KEY_GRAB_SHARED                             SHARED_GRAB
+#define VP_KEY_GRAB_EXCLUSIVE                          EXCLUSIVE_GRAB
+#define VP_KEY_GRAB_TOP_POSITION                       TOP_POSITION_GRAB
+#define VP_KEY_GRAB_OR_EXCLUSIVE                       OR_EXCLUSIVE_GRAB
+
+#define VP_URL_LEN_MAX                                 4096
+#define VP_STRING_LEN_MAX                              4096
+
+#define VP_BOOKMARK_ITEM_MAX_COUNT                     15
+
+#define VP_THUMB_DEFAULT_WIDTH                         176
+#define VP_THUMB_DEFAULT_HEIGHT                                144
+
+#define VP_POPUP_MIN_ITEMS                                     4
+#define VP_POPUP_LIST_LOADING_HEIGHT           76
+#define VP_POPUP_LIST_CLOSED_CAPTION_HEIGHT    72
+#define VP_POPUP_TITLE_HEIGHT                  72
+#define VP_POPUP_BUTTON_HEIGHT                 72
+
+#define VP_POPUP_MAX_HEIGHT                            290
+#define VP_POPUP_NO_TITLE_MAX_HEIGHT                   (VP_POPUP_MAX_HEIGHT-VP_POPUP_TITLE_HEIGHT)
+#define VP_POPUP_HEIGHT(height)                        (((height) > VP_POPUP_NO_TITLE_MAX_HEIGHT) ? (VP_POPUP_NO_TITLE_MAX_HEIGHT) : (height))
+#define VP_POPUP_LIST_HEIGHT(count)                    45*count
+#define VP_POPUP_LIST_2_TEXT_HEIGHT(count)             (((140*count) > VP_POPUP_NO_TITLE_MAX_HEIGHT) ? (VP_POPUP_NO_TITLE_MAX_HEIGHT) : (140*count))
+#define VP_POPUP_LIST_2_TEXT_1_ICON_HEIGHT(count)      (((135*count-1) > VP_POPUP_NO_TITLE_MAX_HEIGHT) ? (VP_POPUP_NO_TITLE_MAX_HEIGHT) : (135*count-1))
+#define VP_POPUP_LOADING_LIST_HEIGHT(count)            (((140*count+VP_POPUP_LIST_LOADING_HEIGHT) > 840) ? 840/*common box height video,gallery,image viewer (1080+VP_POPUP_LIST_LOADING_HEIGHT)*/ : (140*count+VP_POPUP_LIST_LOADING_HEIGHT))
+#define VP_POPUP_SUBTITLE_2_TEXT_HEIGHT(count)         (((135*count-1) > VP_POPUP_NO_TITLE_MAX_HEIGHT) ? (VP_POPUP_NO_TITLE_MAX_HEIGHT) : (135*count-1))
+#define VP_POPUP_LIST_2_TEXT_HEIGHT_DETAIL(count)              (((134*count-1) > VP_POPUP_NO_TITLE_MAX_HEIGHT) ? (VP_POPUP_NO_TITLE_MAX_HEIGHT) : (135*count-1))
+
+#define VP_POPUP_MAX_HEIGHT_L                          255
+#define VP_POPUP_NO_TITLE_MAX_HEIGHT_L                 (VP_POPUP_MAX_HEIGHT_L-VP_POPUP_TITLE_HEIGHT)
+#define VP_POPUP_HEIGHT_L(height)                      (((height) > VP_POPUP_NO_TITLE_MAX_HEIGHT_L) ? (VP_POPUP_NO_TITLE_MAX_HEIGHT_L) : (height))
+#define VP_POPUP_LIST_HEIGHT_L(count)                  45*count
+#define VP_POPUP_LIST_2_TEXT_HEIGHT_L(count)           (((140*count) > VP_POPUP_NO_TITLE_MAX_HEIGHT_L) ? (VP_POPUP_NO_TITLE_MAX_HEIGHT_L) : (140*count))
+#define VP_POPUP_LIST_2_TEXT_1_ICON_HEIGHT_L(count)    (((135*count-1) > VP_POPUP_NO_TITLE_MAX_HEIGHT_L) ? (VP_POPUP_NO_TITLE_MAX_HEIGHT_L) : (135*count-1))
+#define VP_POPUP_LOADING_LIST_HEIGHT_L(count)          (((140*count+VP_POPUP_LIST_LOADING_HEIGHT) > 468) ? 468/*common box height video,gallery,image viewer (520+VP_POPUP_LIST_LOADING_HEIGHT)*/ : (140*count+VP_POPUP_LIST_LOADING_HEIGHT))
+#define VP_POPUP_SUBTITLE_2_TEXT_HEIGHT_L(count)               (((135*count-1) > VP_POPUP_NO_TITLE_MAX_HEIGHT_L) ? (VP_POPUP_NO_TITLE_MAX_HEIGHT_L) : (135*count-1))
+#define VP_POPUP_LIST_2_TEXT_HEIGHT_DETAIL_L(count)            (((134*count-1) > VP_POPUP_NO_TITLE_MAX_HEIGHT_L) ? (VP_POPUP_NO_TITLE_MAX_HEIGHT_L) : (134*count-1))
+
+
+#define VP_POPUP_LIST_WIDTH                            200
+
+
+#define PROGRESSBAR_TIME_LENGTH        9
+#define PROGRESSBAR_TIME_FORMAT        "02u:%02u:%02u"
+
+#define PROGRESSBAR_TIME_ARGS(t) \
+               (t) / (60 * 60), \
+               ((t) / 60) % 60, \
+               (t) % 60
+
+
+#define VP_ACCUMULATED_DATE            86400
+#define VP_RO_MESSAGE_LEN              1024
+#define VP_MOUNTH_COUNT                        12
+#define VP_DAY_COUNT                   30
+#define VP_HOUR_COUNT                  24
+
+#define VP_SUBTITLE_SIZE_SMALL_VALUE   24
+#define VP_SUBTITLE_SIZE_MEDIUM_VALUE  32
+#define VP_SUBTITLE_SIZE_LARGE_VALUE   40
+
+#define BYTE_SIZE                      1024
+#define VP_MB(x)                       ((x) << 20)
+
+#define VP_FILE_ENTRY_LEN_MAX          255
+#define VP_FILE_ENTRY_CHAR_LEN_MAX     50
+#define VP_FILE_TRIM_DURATION_MIN      1000
+
+#define VP_PORTRAIT_H                  1280
+#define VP_MULTI_WIDGET_W              116
+#define VP_MULTI_WIDGET_H              572
+#define VP_MULTI_WIDGET_PADDING_W      10
+#define VP_MULTI_WIDGET_START_H                (-275)
+#define VP_MULTI_WIDGET_END_H          440
+#define VP_MULTI_WIDGET_SCALE          0.5
+#define VP_MULTI_VOLUM_W               116
+#define VP_MULTI_VOLUM_H               635
+
+#define VP_DETAIL_VALUE_GPS_DEFAULT    -200.0
+
+/* Kiran Share operation */
+#define VP_SHARE_OPERATION_SINGLE "http://tizen.org/appcontrol/operation/share"
+#define VP_SHARE_OPERATION_MULTIPLE "http://tizen.org/appcontrol/operation/multi_share"
+#define VP_SHARE_SVC_FILE_PATH "http://tizen.org/appcontrol/data/path"
diff --git a/playview/src/view/include/vp-play-normal-view.h b/playview/src/view/include/vp-play-normal-view.h
new file mode 100755 (executable)
index 0000000..598342f
--- /dev/null
@@ -0,0 +1,150 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#pragma once
+
+#include <stdbool.h>
+
+
+#include "vp-play-view-priv.h"
+#include "vp-mm-player.h"
+
+extern bool stay_pause;
+
+typedef enum {
+       VP_PLAY_NORMAL_VIEW_POPUP_NONE = 0,
+       VP_PLAY_NORMAL_VIEW_CTX_POPUP,
+       VP_PLAY_NORMAL_VIEW_OTHER_POPUP,
+} vp_normalview_popup_style_e;
+
+typedef void *normal_view_handle;
+
+typedef void (*vp_normal_view_state_cb) (void *pUserData, int nState);
+
+normal_view_handle vp_play_normal_view_create(PlayView * pPlayView,
+                                                                                         video_play_launching_type_t
+                                                                                         nLaunchingType);
+void vp_play_normal_view_destroy(normal_view_handle pViewHandle);
+bool vp_play_normal_view_realize(normal_view_handle pViewHandle);
+bool vp_play_normal_view_unrealize(normal_view_handle pViewHandle);
+bool vp_play_normal_view_is_realize(normal_view_handle pViewHandle,
+                                                                       bool * bIsRealize);
+bool vp_play_normal_view_pause(normal_view_handle pViewHandle);
+bool vp_play_normal_view_resume_or_pause(normal_view_handle pViewHandle);
+bool vp_play_normal_view_next_play(normal_view_handle pViewHandle);
+bool vp_play_normal_view_prev_play(normal_view_handle pViewHandle);
+bool vp_play_normal_view_set_url(normal_view_handle pViewHandle,
+                                                                const char *szMediaURL);
+bool vp_play_normal_view_set_video_only(normal_view_handle pViewHandle,
+                                                                               bool bVideoOnly);
+bool vp_play_normal_view_set_rotate(normal_view_handle pViewHandle,
+                                                                       video_play_rotate_t nRotate,
+                                                                       bool bLayoutHide);
+bool vp_play_normal_view_set_launching_mode(normal_view_handle pViewHandle,
+                                                                                       video_play_launching_type_t
+                                                                                       nLaunchingType);
+bool vp_play_normal_view_set_start_position(normal_view_handle pViewHandle,
+                                                                                       int nStartPosition);
+bool vp_play_normal_view_get_last_position(normal_view_handle pViewHandle,
+                                                                                  int *nCurPos);
+bool vp_play_normal_view_set_subtitle(normal_view_handle pViewHandle,
+                                                                         char *szSubtitle);
+bool vp_play_normal_view_get_subtitle(normal_view_handle pViewHandle,
+                                                                         char **szSubtitle);
+bool vp_play_normal_view_get_audio_track(normal_view_handle pViewHandle,
+                                                                                int *nAudioTrack);
+bool vp_play_normal_view_get_video_duration(normal_view_handle pViewHandle,
+                                                                                       int *nDuration);
+bool vp_play_normal_view_set_audio_track(normal_view_handle pViewHandle,
+                                                                                int nAudioTrack);
+bool vp_play_normal_view_set_manual_pause(normal_view_handle pViewHandle,
+                                                                                 bool bStartPause);
+bool vp_play_normal_view_get_manual_pause(normal_view_handle pViewHandle,
+                                                                                 bool * bManualPause);
+bool vp_play_normal_view_get_pause_status(normal_view_handle pViewHandle,
+                                                                                 bool * bPause);
+void vp_play_normal_check_detail_view(normal_view_handle pViewHandle);
+bool vp_play_normal_view_get_sound_filter(normal_view_handle pViewHandle,
+                                                                                 video_sound_alive_t *
+                                                                                 nSoundAlive);
+bool vp_play_normal_view_set_sound_filter(normal_view_handle pViewHandle,
+                                                                                 video_sound_alive_t nSoundAlive);
+bool vp_play_normal_view_update(normal_view_handle pViewHandle);
+bool vp_play_normal_view_set_share_panel_state(normal_view_handle
+                                                                                          pViewHandle);
+bool vp_play_normal_view_on_more_menu(normal_view_handle pViewHandle);
+bool vp_play_normal_view_volume_increase(normal_view_handle pViewHandle);
+bool vp_play_normal_view_volume_decrease(normal_view_handle pViewHandle);
+bool vp_play_normal_view_volume_mute(normal_view_handle pViewHandle);
+bool vp_play_normal_view_volume_update(normal_view_handle pViewHandle);
+bool vp_play_normal_view_set_lock_screen(normal_view_handle pViewHandle,
+                                                                                bool bLock);
+bool vp_play_normal_view_get_lock_screen(normal_view_handle pViewHandle,
+                                                                                bool * bLock);
+void vp_play_normal_view_hide_sound_popup(normal_view_handle pViewHandle);
+void vp_play_normal_view_web_type_disconnect(normal_view_handle
+                                                                                        pViewHandle);
+void vp_play_normal_view_web_type_reconnect(normal_view_handle
+                                                                                       pViewHandle);
+void
+vp_play_normal_view_ff_rew_keyboard_longpress_event_cb(normal_view_handle
+                                                                                                          pViewHandle,
+                                                                                                          bool bRelease,
+                                                                                                          bool bFFseek);
+bool vp_play_normal_view_get_main_layout_show_state(normal_view_handle *
+                                                                                                       pViewHandle);
+vp_normalview_popup_style_e
+vp_play_normal_view_get_popup_show_state(normal_view_handle * pViewHandle);
+bool vp_play_normal_view_set_tagbuddy_on(normal_view_handle pViewHandle,
+                                                                                bool bTagBuddyOn);
+void vp_play_normal_view_show_volume_popup(void *pPlayview);
+void vp_play_normal_view_pause_player(void *pPlayview);
+void vp_play_normal_view_play_player(void *pPlayview);
+void vp_play_normal_view_key_create(PlayView * pPlayView,
+                                                                       normal_view_handle pViewHandle);
+bool vp_play_normal_view_stop_player(normal_view_handle pViewHandle);
+bool vp_play_normal_view_play_start(normal_view_handle pViewHandle);
+//Focus UI
+void vp_play_normal_view_set_main_layout_focus_out(normal_view_handle *
+                                                                                                  pViewHandle);
+void vp_play_normal_view_set_main_layout_focus_in(normal_view_handle *
+                                                                                                 pViewHandle);
+bool vp_play_normal_view_get_main_layout_focus_state(normal_view_handle *
+                                                                                                        pViewHandle);
+void vp_play_normal_view_show_main_layout(normal_view_handle *
+                                                                                 pViewHandle);
+void vp_play_normal_view_set_resume_or_pause(normal_view_handle *
+                                                                                        pViewHandle);
+void vp_play_normal_view_create_main_layout_hide_timer(normal_view_handle *
+                                                                                                          pViewHandle);
+
+
+//for minicontroller
+int vp_controller_normal_view_get_played_state(normal_view_handle
+                                                                                          pViewHandle);
+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);
+bool vp_play_normal_view_reset_audio_only(normal_view_handle *
+                                                                                 pNormalView);
+bool vp_play_normal_view_handle_language_change(normal_view_handle
+                                                                                       *pViewHandle);
diff --git a/playview/src/view/include/vp-play-view-priv.h b/playview/src/view/include/vp-play-view-priv.h
new file mode 100755 (executable)
index 0000000..ab53ca0
--- /dev/null
@@ -0,0 +1,179 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#pragma once
+
+#include <glib.h>
+#include <stdbool.h>
+#include <Elementary.h>
+#include <net_connection.h>
+#include <sound_manager.h>
+#include <app_control.h>
+
+#include "vp-play-view.h"
+#include "vp-play-type-define.h"
+
+typedef struct _PlayViewFunc {
+       void (*vp_play_func_change_mode) (void *pViewHandle,
+                                                                         video_play_mode_t nMode,
+                                                                         const char *szMediaURL,
+                                                                         int nStartPos, bool bManualPause);
+       void (*vp_play_func_exit) (void *pViewHandle);
+} PlayViewFunc;
+
+typedef struct _PlayViewCbFunc {
+       vp_play_view_realize_cb pRealizeCb;
+       vp_play_view_destroy_cb pDestroyCb;
+       vp_play_view_event_key_down_cb pEventKeyDown;
+       vp_play_view_event_key_up_cb pEventKeyUp;
+} PlayViewCbFunc;
+
+typedef struct _PlayView {
+       Evas_Object *pParent;
+       Evas_Object *pWin;
+       Ecore_X_Window nXwinID;
+       Ecore_X_Window nCallerXwinID;
+
+       bool bAVRCP;
+       bool bWifi;
+       bool bIsPlayBeforeShare;
+       bool bIsSharePopup;
+       bool telinit;
+
+       bool bStoreDownload;
+       bool bStopAfterRepeat;
+       double dStoreDL_FileSize;
+       char *pStoreOrderId;
+       char *pStoreServerId;
+       char *pStoreAppId;
+       char *pStoreMvId;
+
+       char *szCookie;
+       char *szProxy;
+
+       Evas_Object *pBackground;
+       Evas_Object *pRenderRect;
+       Evas_Object *pConformant;
+       Evas_Object *pMainLayout;
+       Evas_Object *pNaviframe;
+
+       Ecore_Event_Handler *pKeyEventDown;
+       Ecore_Event_Handler *pKeyEventUp;
+       Ecore_Event_Handler *pFocusIn;
+       Ecore_Event_Handler *pFocusOut;
+       Ecore_Event_Handler *pVisiblility;
+       Ecore_Event_Handler *pClientMessage;
+       Ecore_Event_Handler *pDeleteRequest;
+       Ecore_Event_Handler *pPropertyHandler;
+       Ecore_Event_Handler *pMouseInHandler;
+       Ecore_Event_Handler *pMouseOutHandler;
+       Ecore_Event_Handler *pCallerWinEventHandler;
+       Ecore_Event_Handler *pPalmHoldEventHandler;
+
+       Ecore_Pipe *pNotiPipe;
+
+       Ecore_Timer *pSbeamTimer;
+       Ecore_Timer *pVolumeTimer;
+       Ecore_Idler *pHideIdler;        //used for hide win
+
+       bool bVolumeIncrease;
+       bool bViewChange;
+       bool bMouseOut;
+       bool bVisible;
+       bool bResetPlaySpeed;
+       Ecore_Timer *pMediaLongPressTimer;
+       Ecore_Timer *pMediaKeyTimer;
+       int nMediaKeyPressCount;
+
+       void *pUserData;
+
+       void *pNormalView;
+       void *pMultiView;
+
+       void *pSmartPause;
+       Ecore_Timer *pSmartPauseStartTimer;
+       Ecore_Timer *pSmartPauseEndTimer;
+
+       void *pSensorHandle;
+       void *pSensorPopup;
+
+       GList *pMultiPathList;
+
+       char *szMediaURL;
+       char *szMediaTitle;
+       char *szDeviceID;
+       char *szAutoPlay;
+       char *szDMRID;
+
+       int nStartPosition;
+       int nDuration;
+       bool bStartPause;
+       bool bRealized;
+       bool bActivate;
+       bool bDestroy;
+
+       int nAudioIndex;
+       char *szSubtitleURL;
+       bool bManualAppPause;
+
+       video_play_mode_t nPlayMode;
+       video_play_launching_type_t nLaunchingType;
+       video_play_rotate_t nRotate;
+       video_sound_alive_t nSoundAlive;
+       video_play_list_type_t nListType;
+       sound_stream_info_h stream_info;
+
+       bool reacquire_state;
+       bool bPopupMode;
+       bool bTrimExit;
+       bool bRelaunchCaller;
+
+       PlayViewCbFunc *pCallback;
+       PlayViewFunc *pFunc;
+
+       void *pHollICHandle;
+       bool bKeySpeed;
+       bool bAudioOnly;
+       double fPlaySpeed;
+       float fSubtitleSyncValue;
+
+       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;
+       Ecore_Timer *lockmini_idle_timer;
+       bool lockmini_visible;
+       bool lockmini_hide;
+       bool b_lockmini_show;
+       bool isLiveStreaming;
+       app_control_h pServiceShare;
+
+       int device_state_id;
+       int volume_changed_cb_id;
+} PlayView;
diff --git a/playview/src/view/vp-play-normal-view.c b/playview/src/view/vp-play-normal-view.c
new file mode 100755 (executable)
index 0000000..03d2625
--- /dev/null
@@ -0,0 +1,15421 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-normal-view.h"
+
+#include "vp-play-button.h"
+#include "vp-play-bookmark.h"
+#include "vp-play-progressbar.h"
+#include "vp-play-subtitle.h"
+#include "vp-play-loading-ani.h"
+
+#include "vp-mm-player.h"
+#include "vp-play-popup.h"
+#include "vp-play-preference.h"
+#include "vp-play-config.h"
+#include "vp-play-util.h"
+#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-media-contents.h"
+
+#include "vp-share.h"
+#include "vp-play-ug.h"
+#include "vp-sound-alive.h"
+#include "vp-sound-path.h"
+#include "vp-audio-track.h"
+
+#include "vp-sound.h"
+#include "vp-subtitle.h"
+#include "vp-subtitle-sync.h"
+#include "vp-subtitle-select.h"
+#include "vp-subtitle-font.h"
+#include "vp-subtitle-size.h"
+#include "vp-subtitle-alignment.h"
+#include "vp-subtitle-color.h"
+#include "vp-subtitle-bg-color.h"
+#include "vp-subtitle-track.h"
+#include "vp-subtitle-edge.h"
+
+#include "vp-repeat.h"
+#include "vp-capture.h"
+#include "vp-play-speed.h"
+#include "vp-setting.h"
+#ifdef ENABLE_DRM_FEATURE
+#include "vp-drm.h"
+#endif
+#include "vp-device.h"
+#include "vp-media-key.h"
+#include "vp-detail.h"
+#include "vp-zoom-guide.h"
+
+#include "vp-multi-path.h"
+
+#include "vp-device-language.h"
+
+/* check temp */
+#include "vp-play-log.h"
+#include "vp-util.h"
+#include "vp-file-util.h"
+#include "vp-avrcp.h"
+
+
+#define VP_NORMAL_PROGRESS_TIMER_INTERVAL              0.3
+#define VP_NORMAL_PROGRESS_BAR_START_TERM              26 * elm_config_scale_get()
+#define VP_NORMAL_PROGRESS_BAR_WIDTH_TERM              52 * elm_config_scale_get()
+
+#define VP_NORMAL_HIDE_LAYOUT_TIMER_INTERVAL           5.0
+#define VP_NORMAL_HIDE_LAYOUT_FINISH_TIMER_INTERVAL    2.0     //3.0
+#define VP_NORMAL_WINDOW_LOAD_FINISH_TIMER_INTERVAL    1.5     //wait for window loaded
+
+#define VP_NORMAL_LONG_PRESS_TIMER_INTERVAL            1.0
+#define VP_NORMAL_SUBTITLE_LONG_PRESS_TIMER_INTERVAL           0.5
+
+#define VP_NORMAL_HIDE_SCREEN_LOCK_TIMER_INTERVAL      3.0
+#define VP_NORMAL_MOMENTUM_PRESS_TIMER_INTERVAL                0.2
+#define VP_NORMAL_SCREENSHOT_TIMER_INTERVAL            2.0
+#define VP_NORMAL_EXIT_WAIT_TIMER_INTERVAL             3.0
+#define VP_NORMAL_INDICATOR_HIDE_TIMER_INTERVAL                2.0
+
+#define VP_NORMAL_ALL_BUTTON_L                                 885
+#define VP_NORMAL_ALL_BUTTON_VSFRP_L                   680
+#define VP_NORMAL_ALL_BUTTON_FRP_L                             430
+#define VP_NORMAL_ALL_BUTTON_P_L                               140
+
+
+#define VP_SUBTITLE_PORTRAIT_POSX                              360
+#define VP_SUBTITLE_PORTRAIT_POSY                              1335
+#define VP_SUBTITLE_LANDSCAPE_POSX                             640
+#define VP_SUBTITLE_LANDSCAPE_POSY                             765
+
+#define VP_SUBTITLE_LANDSCAPE_SIZE                             1280
+#define VP_SUBTITLE_PORTRAIT_SIZE                              720
+
+#define VP_SUBTITLE_MARGIN_SIZE                30
+
+#define VP_NORMAL_SPEED_VALUE_MAX                      64
+
+#define VP_NORMAL_VALUE_SEC                            60
+
+#define        VP_VOICE_MUTE_VALUE             0
+
+#define VP_NORMAL_HIDE_VOLUME_TIMER_INTERVAL           0.05
+
+#define VP_NORMAL_SET_GREP_BOX_SIZE_ID                         1
+#define VP_NORMAL_SET_CAPTION_WINDOW_SIZE_ID           2
+#define VP_NORMAL_SET_CAPTION_WINDOW_COLOR_ID          3
+#define VP_NORMAL_SET_CAPTION_WINDOW_OFFSET_ID         4
+
+#define VP_SUBTITLE_SET_GREP_BOX_SIZE_ID                       1
+#define VP_SUBTITLE_SET_CAPTION_WINDOW_SIZE_ID         2
+
+#ifdef K_FEATURE_MICROSEEK
+#define VP_NORMAL_SZ_HALF_SPEED                                "1/2"
+#define VP_NORMAL_SZ_QUARTER_SPEED                     "1/4"
+#define VP_NORMAL_MICROSEEK_TEXT_HEIGHT                (46 * elm_config_scale_get())
+#define VP_NORMAL_MICROSEEK_IMAGE_WIDTH                (46 * elm_config_scale_get())
+#define VP_NORMAL_MICROSEEK_IMAGE_HEIGHT       (70 * elm_config_scale_get())
+#endif
+
+#ifdef _NATIVE_BUFFER_SYNC
+#define VP_NORMAL_DEFAULT_WIDTH                (480 * elm_config_scale_get())
+#define VP_NORMAL_DEFAULT_HEIGHT               (800 * elm_config_scale_get())
+#endif
+
+#define VP_NORMAL_STREAMING_PROTOCOLS_MAX 2
+#define VP_NORMAL_MAX_STR_LEN 8
+
+bool stay_pause = false;
+
+typedef struct _ProgressMouseInfo {
+       int nDownPosX;
+} ProgressMouseInfo;
+
+typedef enum {
+       BUTTON_TYPE_NORMAL = 0,
+       BUTTON_TYPE_PRESSED,
+       BUTTON_TYPE_DIM,
+} ButtonType;
+
+#ifdef K_FEATURE_MICROSEEK
+typedef enum {
+       SEEK_LEVEL_NORMAL = 1,
+       SEEK_LEVEL_HALF = 2,
+       SEEK_LEVEL_QUARTER = 4,
+} SeekLevel;
+#endif
+
+typedef struct _NormalView {
+       PlayView *pPlayView;
+       Ecore_X_Window nXwinID;
+
+       Evas_Object *pNaviFrame;
+       Elm_Object_Item *pNaviItem;
+       Evas_Object *pMainEventRect;
+       Evas_Object *pGestureRect;
+       Evas_Object *pMainLayout;
+#ifdef _NATIVE_BUFFER_SYNC
+       Evas_Object *pVideoSink;
+#endif
+       Evas_Object *pTopControlLayout;
+       Evas_Object *pControlLayout;
+       Evas_Object *pFunctionLayout;
+
+       Evas_Object *pNaviLeftBtn;
+       Evas_Object *pNaviRightBtn;
+
+       Evas_Object *pSoundPathBtn;
+       Evas_Object *pAllsharBtn;
+
+       Evas_Object *pMoreBtn;
+       Evas_Object *pBackBtn;
+
+       Evas_Object *pCtxPopup;
+
+       Evas_Object *pImageBufferObj;
+
+       Evas_Object *pRotateBtn;
+       Evas_Object *pVolumeBtn;
+       Evas_Object *pScreenSizeBtn;
+       Evas_Object *pBookmarkBtn;
+       Evas_Object *pMultiWinBtn;
+       Evas_Object *pRepeatBtn;
+       Evas_Object *pTrimBtn;
+       Evas_Object *pSoundAliveBtn;
+       Evas_Object *pShareBtn;
+       Evas_Object *pLockBtn;
+
+       Evas_Object *pResumeBtn;
+       Evas_Object *pPauseBtn;
+       Evas_Object *pPlayFocusBtn;
+       Evas_Object *pPrevBtn;
+       Evas_Object *pNextBtn;
+
+       Evas_Object *pCaptureBtn;
+       Evas_Object *pCaptureRewBtn;
+       Evas_Object *pCaptureFFBtn;
+       Evas_Object *pPopupBtn;
+
+       Evas_Object *pSpeedBoxCtrl;
+
+       Evas_Object *pPopup;
+
+       Evas_Object *pLoadingAni;
+
+       Ecore_Timer *pHideTimer;
+       Ecore_Timer *pHideFinishTimer;
+       Ecore_Timer *pLockScreenTimer;
+
+       Ecore_Timer *pSpeedTimer;
+       bool bSpeedFF;
+       int nSpeedValue;
+       bool bSpeedDown;
+       bool bKeyPressed;
+
+       Ecore_Timer *pExitWaitTimer;
+
+       Ecore_Idler *pControlIdler;
+       Ecore_Idler *pMultiWinIdler;
+
+       GList *pMediaItemList;
+
+       bool bIsRealize;
+       bool bIsActive;
+       bool bShowLayout;
+       bool bMainFocusState;
+       bool bIsPopupShow;
+       bool bIsSubtitleShow;
+       bool bIsVideoUnsupport;
+
+       /* bookmark part */
+       bookmark_handle pBookmarkHandle;
+       Evas_Object *pBookmarkObj;
+       bool bCaptureComplete;
+       int nCapturePosition;
+       /* progressbar part */
+       Evas_Object *pProgressEvent;
+       Ecore_Timer *pProgressTimer;
+       progressbar_handle pProgressbar;
+       bool bProgressDown;
+#ifdef K_FEATURE_MICROSEEK
+       double nPrevCanvasX;
+       double nPrevPositionX;
+#endif
+       int nCurPosition;
+       bool bHLSMode;
+       int nWaitPos;
+       bool bSeekComplete;
+       bool bSeekPause;
+       bool bSeekResume;
+#ifdef K_FEATURE_MICROSEEK
+       Evas_Object *pMicroSeekTextLayout;
+       Evas_Object *pMicroSeekImageLayout;
+#endif
+#ifdef FLICK_JUMP
+       int nFlickPressX1;
+       int nFlickPressY1;
+       bool bFlickRewind;
+       bool bFlickWaiting;
+       Evas_Object *pFlickJumpSeek;
+#endif
+       bool bBufferingComplete;
+
+       char *szMediaURL;
+       char *szSubtitleURL;
+       int nStartPosition;
+       bool bManualPause;
+
+       mm_player_handle pPlayerHandle;
+       vp_mm_player_display_mode_t nDisplayMode;
+
+       int nDuration;
+       video_play_launching_type_t nLaunchingType;
+       video_play_rotate_t nRotate;
+
+       share_handle pShareHandle;
+
+       volume_handle pVolumeHandle;
+       volume_popup_handle pVolumePopupHandle;
+       brightness_handle pBrightnessHandle;
+
+       sound_alive_handle pSAHandle;
+       int nSoundAlive;
+
+       subtitle_handle pSubtitle;
+       Ecore_Timer *pSubtitleTimer;
+       bool bIsExistSubtitle;
+       subtitle_popup_handle pSubtitlePopup;
+       subtitle_select_handle pSubtitleSelectPopup;
+#ifdef SUBTITLE_K_FEATURE
+       subtitle_alignment_handle pSubtitleAlignmentPopup;
+#endif
+       subtitle_font_handle pSubtitleFontPopup;
+       subtitle_size_handle pSubtitleSizePopup;
+       subtitle_edge_handle pSubtitleEdgePopup;
+       subtitle_color_handle pSubtitleFontColorPopup;
+#ifndef SUBTITLE_K_FEATURE
+       subtitle_bg_color_handle pSubtitleBGColorPopup;
+#else
+       subtitle_color_handle pSubtitleBGColorPopup;
+#endif
+       subtitle_color_handle pSubtitleCaptionWinColorPopup;
+       subtitle_sync_popup pSubtitleSyncPopup;
+       subtitle_track_handle pSubtitleTrackHandle;
+       int nDefaultSubtitleTrackIndex;
+       float fSubtitleSyncValue;
+
+       repeat_handle pRepeatHandle;
+       video_play_repeat_mode_t nRepeatMode;
+
+       sound_path_handle pSoundPathHandle;
+       setting_popup_handle pSettingHandle;
+       detail_handle pDetailHandle;
+
+       audio_track_handle pAudioTrackHandle;
+       int nDefaultAudioTrackIndex;
+
+       media_key_handle pMediaKey;
+       bool bLockScreen;
+       char *szScreenMirrorMacAddr;
+
+       bool bVideoOnlyMode;
+       bool bDeviceRemoveInterrupt;
+
+       int dSubtitleStartTime;
+       int dSubtitleEndTime;
+
+       Ecore_Timer *pMomentTimer;
+       int nGestureStartPosX;
+       int nGestureStartPosY;
+       int nGestureOldPosY;
+       int nMomentDefaultVal;
+       int nMomentWeight;
+       int nMomentStep;
+       int nWindowWidth;
+       int nWindowHeight;
+
+       Ecore_Job *pVolumeJob;
+       Ecore_Job *pBrightnessJob;
+
+       bool bMomentumIncrease;
+
+       play_speed_popup pPlaySpeedPopup;
+       double fPlaySpeed;
+
+       bool bAudioOnly;
+
+       capture_popup_handle pCapturePopup;
+       Ecore_Timer *pScreenShotTimer;
+       Evas_Object *pScreenShot;
+
+       bool bCaptureMode;
+       bool bCaptureBookmark;
+       bool bEarjackConnect;
+
+       zoom_guide_handle pZoomGuide;
+       int nZoomPosX;
+       int nZoomPosY;
+       int nPrevZoomPosX;
+       int nPrevZoomPosY;
+
+       double fActiveZoom;
+       double fZoomValue;
+       double fPrevZoomValue;
+       bool bZoomEnable;
+
+       int nLastVolume;
+
+       Ecore_Pipe *pSeekPipe;
+
+       vp_normal_view_state_cb vp_mini_played_state_cb;
+       bool bKeySpeed;
+       Ecore_Pipe *pPreparePipe;
+       bool bDestroyNavi;
+       bool bSharepopup;
+       bool bSharePanelPause;
+       bool bSharePanelFocusIn;        //first focus in is menu popup hide, second is share panel hdie
+       bool isLiveStreaming;
+
+#ifdef SUBTITLE_K_FEATURE
+       bool bSubtitleDown;
+
+       int nInitSubtitleX;
+       int nInitSubtitleY;
+
+       int nDeltaSubtitleX;
+       int nDeltaSubtitleY;
+
+       int nLongPressX1;
+       int nLongPressY1;
+       int nLongPressX2;
+       int nLongPressY2;
+
+       Ecore_Timer *pSubtitleMoveTimer;
+       int nSubtitleInterval;
+#endif
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+       int nSubtitleLanguageCount;
+       bool *pSelectedSubtitleLanguage;
+#endif
+} NormalView;
+
+
+static void _vp_play_normal_view_destroy_handle(NormalView * pNormalView);
+static bool _vp_play_normal_view_set_subtitle_font_config(NormalView *
+                                                                                                                 pNormalView);
+static bool _vp_play_normal_view_update_progress_value(NormalView *
+                                                                                                          pNormalView);
+static bool _vp_play_normal_view_play_start(NormalView * pNormalView,
+                                                                                       bool bCheckDRM);
+static void _vp_play_normal_view_on_next_play(NormalView * pNormalView,
+                                                                                         bool bManual);
+static void _vp_play_normal_view_on_prev_play(NormalView * pNormalView,
+                                                                                         bool bManual, bool bVoice);
+static bool _vp_play_normal_view_check_during_call(NormalView *
+                                                                                                  pNormalView);
+static void _vp_play_normal_view_show_audio_only_popup(NormalView *
+                                                                                                          pNormalView);
+static void _vp_play_normal_view_show_video_only_popup(NormalView *
+                                                                                                          pNormalView);
+static bool _vp_play_normal_view_check_audio_only(NormalView *
+                                                                                                 pNormalView);
+static bool _vp_play_normal_view_check_drm_lock(NormalView * pNormalView,
+                                                                                               bool * bLock);
+static void _vp_play_normal_view_set_played_time(NormalView * pNormalView);
+static void _vp_play_normal_view_screen_move(NormalView * pNormalView,
+                                                                                        bool bFoward);
+
+static void _vp_play_normal_view_create_progress_timer(NormalView *
+                                                                                                          pNormalView);
+static void _vp_play_normal_view_create_layout_hide_timer(NormalView *
+                                                                                                                 pNormalView);
+static bool _vp_play_normal_view_create_loading_ani(NormalView *
+                                                                                                       pNormalView);
+static void _vp_play_normal_view_set_play_state(NormalView * pNormalView);
+static double _vp_play_normal_view_get_mouse_pos_ratio(Evas_Object * pObj,
+                                                                                                          int nCurX);
+static void _vp_play_normal_view_all_close_popup(NormalView * pNormalView);
+static void _vp_play_normal_view_show_layout(NormalView * pNormalView);
+static void _vp_play_normal_view_hide_layout(NormalView * pNormalView,
+                                                                                        bool bNoEffect);
+
+#ifdef ENABLE_GESTURE_ZOOM_FEATURE
+static void _vp_play_normal_view_on_zoom_mode(NormalView * pNormalView);
+#endif
+static void _vp_play_normal_view_on_capture_mode(NormalView * pNormalView);
+static void _vp_play_normal_view_on_share_popup(NormalView * pNormalView);
+static void _vp_play_normal_view_on_sound_alive_popup(NormalView *
+                                                                                                         pNormalView);
+static void _vp_play_normal_view_on_sound_path_popup(NormalView *
+                                                                                                        pNormalView);
+static void _vp_play_normal_view_on_subtitle_popup(NormalView *
+                                                                                                  pNormalView);
+static void _vp_play_normal_view_on_subtitle_sync_popup(NormalView *
+                                                                                                               pNormalView);
+static void _vp_play_normal_view_on_subtitle_language_popup(NormalView *
+                                                                                                                       pNormalView);
+static void _vp_play_normal_view_on_subtitle_select_popup(NormalView *
+                                                                                                                 pNormalView);
+static void _vp_play_normal_view_on_subtitle_font_popup(NormalView *
+                                                                                                               pNormalView);
+static void _vp_play_normal_view_on_subtitle_size_popup(NormalView *
+                                                                                                               pNormalView);
+static void _vp_play_normal_view_on_subtitle_edge_popup(NormalView *
+                                                                                                               pNormalView);
+
+static void _vp_play_normal_view_on_subtitle_font_color_popup(NormalView *
+                                                                                                                         pNormalView);
+static void _vp_play_normal_view_on_subtitle_bg_color_popup(NormalView *
+                                                                                                                       pNormalView);
+static void
+_vp_play_normal_view_on_subtitle_caption_win_color_popup(NormalView *
+                                                                                                                pNormalView);
+
+#ifdef SUBTITLE_K_FEATURE
+static void _vp_play_normal_view_on_subtitle_alignment_popup(NormalView *
+                                                                                                                        pNormalView);
+#endif
+
+static void _vp_play_normal_view_on_detail_popup(NormalView * pNormalView);
+static void _vp_play_normal_view_on_play_speed_popup(NormalView *
+                                                                                                        pNormalView);
+static void _vp_play_normal_view_on_play_speed_popup_cb(void *data,
+                                                                                                               Evas_Object * obj,
+                                                                                                               const char
+                                                                                                               *emission,
+                                                                                                               const char
+                                                                                                               *source);
+static void _vp_play_normal_view_on_volume_popup(NormalView * pNormalView,
+                                                                                                bool bToggle);
+static void _vp_play_normal_view_on_bookmark_mode(NormalView * pNormalView,
+                                                                                                 bool bShow);
+
+static void _vp_play_normal_view_show_rotate(NormalView * pNormalView);
+static void _vp_play_normal_view_show_volume(NormalView * pNormalView);
+static void _vp_play_normal_view_set_sound_path_state(NormalView *
+                                                                                                         pNormalView);
+static void _vp_play_normal_view_set_rotate_lock_state(NormalView *
+                                                                                                          pNormalView);
+static void _vp_play_normal_view_set_volume_lock_state(NormalView *
+                                                                                                          pNormalView);
+
+static void _vp_normal_set_audio_only_image(NormalView * pNormalView,
+                                                                                       bool bAudioOnly);
+
+static void __vp_play_normal_view_seek_pipe_cb(void *pUserData, void *pBuf,
+                                                                                          int nByte);
+static void __vp_normal_error_popup_time_out_cb(void *pUserData,
+                                                                                               Evas_Object * pObj,
+                                                                                               void *pEventInfo);
+static void __vp_normal_error_popup_key_event_cb(void *pUserData,
+                                                                                                Evas_Object * pObj,
+                                                                                                void *pEventInfo);
+static void __vp_normal_error_popup_mouse_event_cb(void *pUserData,
+                                                                                                  Evas * pEvas,
+                                                                                                  Evas_Object * pObj,
+                                                                                                  void *pEventInfo);
+static void __vp_normal_completed_cb(void *pUserData);
+
+
+//Focus UI
+static void _vp_play_normal_view_set_button_focus_sequence(NormalView *
+                                                                                                                  pNormalView);
+static void _vp_normal_view_speed_for_steps(NormalView * pNormalView,
+                                                                                       bool bSpeedFF);
+
+static NormalView *curr_Handle = NULL;
+
+#ifdef SUBTITLE_K_FEATURE
+/*Set caption window: size, rel1, color*/
+/**
+ *
+ * @param pNormalView
+ */
+static void __vp_normal_subtitle_set_caption_window(NormalView *
+                                                                                                       pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       if (!pNormalView->pSubtitle) {
+               VideoLogError("pSubtitle is NULL");
+               return;
+       }
+
+       Evas_Coord ww = 0;
+       Evas_Coord hh = 0;
+       bool bLandscape = FALSE;
+       int width = 0.0;
+       int offset_x = 0.0;
+       vp_subtitle_alignment_t nAlignment = VP_SUBTITLE_ALIGNMENT_CENTER;
+
+       bLandscape = vp_play_util_get_landscape_check(pNormalView->nRotate);
+       vp_play_subtitle_get_size_formatted(pNormalView->pSubtitle, &ww, &hh);
+       if (pNormalView->bSubtitleDown) {
+               ww = bLandscape ? VP_SUBTITLE_LANDSCAPE_SIZE :
+                       VP_SUBTITLE_PORTRAIT_SIZE;
+               hh += VP_SUBTITLE_MARGIN_SIZE;
+       } else {
+               ww += VP_SUBTITLE_MARGIN_SIZE;
+               hh += VP_SUBTITLE_MARGIN_SIZE;
+       }
+       vp_play_subtitle_get_alignment(pNormalView->pSubtitle, &nAlignment);
+       vp_play_util_set_object_size(_EDJ
+                                                                (vp_play_subtitle_get_object
+                                                                 (pNormalView->pSubtitle)), ww, hh,
+                                                                VP_NORMAL_SET_CAPTION_WINDOW_SIZE_ID);
+       width =
+               bLandscape ? VP_SUBTITLE_LANDSCAPE_SIZE :
+               VP_SUBTITLE_PORTRAIT_SIZE;
+       if (nAlignment == VP_SUBTITLE_ALIGNMENT_LEFT) {
+               offset_x = 0;
+       } else if (nAlignment == VP_SUBTITLE_ALIGNMENT_CENTER) {
+               offset_x = (width - ww) / 2;
+       } else if (nAlignment == VP_SUBTITLE_ALIGNMENT_RIGHT) {
+               offset_x = width - ww;
+       }
+       VideoLogInfo("nAlignment:%d,offset_x:%d", nAlignment, offset_x);
+       vp_play_util_set_object_offset(_EDJ
+                                                                  (vp_play_subtitle_get_object
+                                                                       (pNormalView->pSubtitle)), offset_x, 0,
+                                                                  VP_NORMAL_SET_CAPTION_WINDOW_OFFSET_ID);
+
+       vp_play_subtitle_set_caption_win_color(pNormalView->pSubtitle, TRUE);
+}
+#endif
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_normal_exit_wait_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       pNormalView->pExitWaitTimer = NULL;
+
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_set_volume_state(NormalView * pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       Evas_Object *pIcon = NULL;
+
+       pIcon =
+               elm_object_part_content_get(pNormalView->pVolumeBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_ICON);
+       VP_EVAS_DEL(pIcon);
+       pIcon =
+               elm_object_part_content_get(pNormalView->pVolumeBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_PRESS_ICON);
+       VP_EVAS_DEL(pIcon);
+       pIcon =
+               elm_object_part_content_get(pNormalView->pVolumeBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_DIM_ICON);
+       VP_EVAS_DEL(pIcon);
+
+       elm_object_part_content_unset(pNormalView->pVolumeBtn,
+                                                                 VP_PLAY_SWALLOW_BUTTON_ICON);
+       elm_object_part_content_unset(pNormalView->pVolumeBtn,
+                                                                 VP_PLAY_SWALLOW_BUTTON_PRESS_ICON);
+       elm_object_part_content_unset(pNormalView->pVolumeBtn,
+                                                                 VP_PLAY_SWALLOW_BUTTON_DIM_ICON);
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_RESROUCE_EDJ_PATH);
+       free(path);
+       int nVolume = 0;
+       bool bMute = FALSE;
+       vp_sound_get_volume(&nVolume);
+
+       VideoLogError("nVolume = %d:%d", nVolume, bMute);
+
+       if ((nVolume == 0) || bMute) {
+               pIcon =
+                       vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+                                                                 VP_PLAY_NORMAL_RES_MUTE);
+               elm_object_part_content_set(pNormalView->pVolumeBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+               pIcon =
+                       vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+                                                                 VP_PLAY_NORMAL_RES_MUTE_PRESS);
+               elm_object_part_content_set(pNormalView->pVolumeBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+                                                                       pIcon);
+
+               pIcon =
+                       vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+                                                                 VP_PLAY_NORMAL_RES_MUTE_DIM);
+               elm_object_part_content_set(pNormalView->pVolumeBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+                                                                       pIcon);
+       } else {
+               pIcon =
+                       vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+                                                                 VP_PLAY_NORMAL_RES_VOLUME);
+               elm_object_part_content_set(pNormalView->pVolumeBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+               pIcon =
+                       vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+                                                                 VP_PLAY_NORMAL_RES_VOLUME_PRESS);
+               elm_object_part_content_set(pNormalView->pVolumeBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+                                                                       pIcon);
+
+               pIcon =
+                       vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+                                                                 VP_PLAY_NORMAL_RES_VOLUME_DIM);
+               elm_object_part_content_set(pNormalView->pVolumeBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+                                                                       pIcon);
+       }
+
+}
+
+/**
+ *
+ * @param nVolume
+ * @param pUserData
+ */
+static void __vp_normal_volume_change_value_cb(int nVolume,
+                                                                                          void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       VideoLogWarning("Set Volume: %d", nVolume);
+
+       pNormalView->nLastVolume = nVolume;
+       _vp_play_normal_view_set_volume_state(pNormalView);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_popup_key_event_cb(void *pUserData,
+                                                                                  Evas_Object * pObj,
+                                                                                  void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       VP_EVAS_DEL(pNormalView->pPopup);
+
+       pNormalView->bIsPopupShow = FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_popup_mouse_event_cb(void *pUserData, Evas * pEvas,
+                                                                                        Evas_Object * pObj,
+                                                                                        void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (!pEventInfo) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Evas_Event_Mouse_Up *ev = pEventInfo;
+
+       if (ev->button == 3) {
+               NormalView *pNormalView = (NormalView *) pUserData;
+               VP_EVAS_DEL(pNormalView->pPopup);
+               pNormalView->bIsPopupShow = FALSE;
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_popup_time_out_cb(void *pUserData,
+                                                                                 Evas_Object * pObj,
+                                                                                 void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       VP_EVAS_DEL(pNormalView->pPopup);
+       pNormalView->bIsPopupShow = FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_prepare_error_popup_time_out_cb(void *pUserData,
+                                                                                                               Evas_Object * pObj,
+                                                                                                               void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       VP_EVAS_DEL(pObj);
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ONE ||
+               pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ALL) {
+               PlayView *pPlayView = pNormalView->pPlayView;
+               if (!pPlayView) {
+                       VideoLogError("pPlayView is NULL");
+                       return;
+               }
+               if (!pPlayView->pFunc) {
+                       VideoLogError("pPlayView pFunc is NULL");
+                       return;
+               }
+
+               if (!pPlayView->pFunc->vp_play_func_exit) {
+                       VideoLogError("pPlayView exit Func is NULL");
+                       return;
+               }
+               vp_device_set_screen_off(FALSE);
+               vp_play_util_set_unlock_power_key();
+
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_error_popup_key_event_cb(void *pUserData,
+                                                                                                Evas_Object * pObj,
+                                                                                                void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       VP_EVAS_DEL(pNormalView->pPopup);
+
+       pNormalView->bIsPopupShow = FALSE;
+       if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ONE ||
+               pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ALL) {
+               PlayView *pPlayView = pNormalView->pPlayView;
+               if (!pPlayView) {
+                       VideoLogError("pPlayView is NULL");
+                       return;
+               }
+               if (!pPlayView->pFunc) {
+                       VideoLogError("pPlayView pFunc is NULL");
+                       return;
+               }
+
+               if (!pPlayView->pFunc->vp_play_func_exit) {
+                       VideoLogError("pPlayView exit Func is NULL");
+                       return;
+               }
+               vp_device_set_screen_off(FALSE);
+               vp_play_util_set_unlock_power_key();
+
+               pPlayView->pFunc->vp_play_func_exit(pPlayView);
+       } else {
+               _vp_play_normal_view_on_next_play(pNormalView, FALSE);
+       }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_error_popup_mouse_event_cb(void *pUserData,
+                                                                                                  Evas * pEvas,
+                                                                                                  Evas_Object * pObj,
+                                                                                                  void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (!pEventInfo) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       Evas_Event_Mouse_Up *ev = pEventInfo;
+
+       if (ev->button == 3) {
+               NormalView *pNormalView = (NormalView *) pUserData;
+               VP_EVAS_DEL(pNormalView->pPopup);
+               pNormalView->bIsPopupShow = FALSE;
+               if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ONE ||
+                       pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ALL) {
+                       PlayView *pPlayView = pNormalView->pPlayView;
+                       if (!pPlayView) {
+                               VideoLogError("pPlayView is NULL");
+                               return;
+                       }
+                       if (!pPlayView->pFunc) {
+                               VideoLogError("pPlayView pFunc is NULL");
+                               return;
+                       }
+
+                       if (!pPlayView->pFunc->vp_play_func_exit) {
+                               VideoLogError("pPlayView exit Func is NULL");
+                               return;
+                       }
+                       vp_device_set_screen_off(FALSE);
+                       vp_play_util_set_unlock_power_key();
+
+                       pPlayView->pFunc->vp_play_func_exit(pPlayView);
+               } else {
+                       _vp_play_normal_view_on_next_play(pNormalView, FALSE);
+               }
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_error_popup_time_out_cb(void *pUserData,
+                                                                                               Evas_Object * pObj,
+                                                                                               void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       VP_EVAS_DEL(pNormalView->pPopup);
+       pNormalView->bIsPopupShow = FALSE;
+
+       _vp_play_normal_view_on_next_play(pNormalView, FALSE);
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_normal_control_idler_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return ECORE_CALLBACK_CANCEL;
+       }
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       _vp_play_normal_view_set_play_state(pNormalView);
+       _vp_play_normal_view_on_capture_mode(pNormalView);
+
+       pNormalView->pControlIdler = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+/**
+ *
+ * @param nType
+ * @param bPause
+ * @param pUserData
+ */
+static void __vp_normal_sound_alive_popup_close_cb(int nType, bool bPause,
+                                                                                                  void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       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);
+       pNormalView->pSAHandle = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       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 {
+               if (pNormalView->bManualPause == FALSE) {
+                       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);
+               }
+       }
+
+
+       vp_mm_player_sound_filter_t nSoundFilter = VP_MM_PLAYER_FILTER_NONE;
+
+       if (nSAType == VIDEO_SA_NORMAL) {
+               nSoundFilter = VP_MM_PLAYER_FILTER_NONE;
+       } else if (nSAType == VIDEO_SA_VOICE) {
+               nSoundFilter = VP_MM_PLAYER_FILTER_VOICE;
+       } else if (nSAType == VIDEO_SA_MOVIE) {
+               nSoundFilter = VP_MM_PLAYER_FILTER_MOVIE;
+       } else if (nSAType == VIDEO_SA_7_1_CH) {
+               nSoundFilter = VP_MM_PLAYER_FILTER_VITUAL_71;
+
+               video_sound_device_type_t nSoundDevType = VP_SOUND_DEVICE_NONE;
+               vp_sound_get_active_device(&nSoundDevType);
+               if (nSoundDevType != VP_SOUND_DEVICE_EARJACK
+                       && nSoundDevType != VP_SOUND_DEVICE_BLUETOOTH) {
+                       /* show popup */
+                       VP_EVAS_DEL(pNormalView->pPopup);
+                       pNormalView->pPopup = NULL;
+
+                       PlayView *pPlayView = pNormalView->pPlayView;
+
+                       if (!pPlayView) {
+                               VideoLogError("pPlayView is NULL");
+                               return;
+                       }
+                       pNormalView->bIsPopupShow = TRUE;
+                       char *szMsg =
+                               g_strdup_printf(VP_PLAY_STRING_71CH_ONLY_EARPHONE, "7.1");
+                       pNormalView->pPopup =
+                               vp_popup_create(pPlayView->pWin,
+                                                               POPUP_STYLE_DEFAULT_WITH_CANCEL_BTN, NULL,
+                                                               szMsg, 0.0, NULL,
+                                                               __vp_normal_popup_key_event_cb,
+                                                               __vp_normal_popup_mouse_event_cb,
+                                                               pNormalView);
+                       VP_FREE(szMsg);
+
+                       Evas_Object *pBtn = NULL;
+                       pBtn = elm_button_add(pNormalView->pPopup);
+                       elm_object_style_set(pBtn, "popup_button/default");
+                       elm_object_domain_translatable_text_set(pBtn,
+                                                                                                       VP_SYS_STR_PREFIX,
+                                                                                                       VP_PLAY_STRING_COM_OK_IDS);
+                       elm_object_part_content_set(pNormalView->pPopup, "button1",
+                                                                               pBtn);
+                       evas_object_smart_callback_add(pBtn, "clicked",
+                                                                                  __vp_normal_popup_key_event_cb,
+                                                                                  (void *) pNormalView);
+                       evas_object_show(pNormalView->pPopup);
+
+                       return;
+               }
+       } else {
+               return;
+
+       }
+
+       pNormalView->nSoundAlive = nSAType;
+       if (!vp_play_preference_set_sound_alive_status(nSAType)) {
+               VideoLogError("vp_play_preference_set_sound_alive_status failed");
+       }
+
+       if (!vp_mm_player_set_sound_filter
+               (pNormalView->pPlayerHandle, nSoundFilter)) {
+               VideoLogWarning("vp_mm_player_set_sound_filter is fail");
+       }
+}
+
+/**
+ *
+ * @param nType
+ * @param bPause
+ * @param pUserData
+ */
+static void __vp_normal_sound_path_popup_close_cb(int nType, bool bPause,
+                                                                                                 void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       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);
+       pNormalView->pSoundPathHandle = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       _vp_play_normal_view_set_sound_path_state(pNormalView);
+
+       if (_vp_is_current_focus_available() != 0) {
+               VideoLogInfo("Cannot acquire focus. Setting video to pause state");
+               pNormalView->bManualPause = TRUE;
+       }
+
+       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 {
+               if (pNormalView->bManualPause == FALSE) {
+                       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);
+               }
+       }
+
+}
+
+
+/**
+ *
+ * @param fValue
+ * @param pUserData
+ */
+static void __vp_normal_play_speed_popup_update_cb(double fValue,
+                                                                                                  void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       vp_mm_player_set_rate(pNormalView->pPlayerHandle, (float) fValue);
+}
+
+/**
+ *
+ * @param fValue
+ * @param bSetValue
+ * @param pUserData
+ */
+static void __vp_normal_play_speed_popup_done_cb(double fValue,
+                                                                                                bool bSetValue,
+                                                                                                void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               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;
+
+       if (_vp_is_current_focus_available() != 0) {
+               VideoLogInfo("Cannot acquire focus. Setting video to pause state");
+               pNormalView->bManualPause = TRUE;
+       }
+
+       if (pNormalView->bManualPause == FALSE) {
+               if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Play Fail");
+               }
+               if (pPlayView && pPlayView->win_minicon) {
+                       vp_minicontroller_update_control(pPlayView);
+               }
+               if (pPlayView && 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);
+       }
+
+       if (bSetValue) {
+               pNormalView->fPlaySpeed = fValue;
+               if (pNormalView->pPlayView != NULL) {
+                       pNormalView->pPlayView->fPlaySpeed = fValue;
+               }
+
+               if ((fValue - 0.05) > 1.000 || (fValue + 0.05) < 1.000) {
+                       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_PLAYING_SPEED_SHOW,
+                                                                  "*");
+                       elm_object_signal_callback_add(pNormalView->pMainLayout,
+                                                                                  "elm,action,click", "",
+                                                                                  _vp_play_normal_view_on_play_speed_popup_cb,
+                                                                                  pNormalView);
+                       _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+               } else {
+                       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_PLAYING_SPEED_HIDE,
+                                                                  "*");
+               }
+               char szTxt[5] = { 0, };
+               snprintf(szTxt, 5, "%1.1fX", (float) pNormalView->fPlaySpeed);
+               elm_object_part_text_set(pNormalView->pMainLayout,
+                                                                VP_PLAY_PART_NORMAL_PLAYING_SPEED_TXT,
+                                                                szTxt);
+       }
+       vp_mm_player_set_rate(pNormalView->pPlayerHandle,
+                                                 (float) pNormalView->fPlaySpeed);
+}
+
+/**
+ *
+ * @param nType
+ * @param bPause
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_popup_close_cb(int nType, bool bPause,
+                                                                                               void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       vp_subtitle_mode_t nSubtitleMode = (vp_subtitle_mode_t) nType;
+
+       if (nSubtitleMode == VP_SUBTITLE_MODE_CLOSE) {
+               _vp_play_normal_view_set_subtitle_font_config(pNormalView);
+               vp_play_subtitle_text_update(pNormalView->pSubtitle, NULL);
+               bool bShow = FALSE;
+               vp_play_preference_get_subtitle_show_key(&bShow);
+               if (bShow) {
+                       vp_play_subtitle_realize(pNormalView->pSubtitle);
+                       vp_mm_player_set_deactivate_subtitle(pNormalView->
+                                                                                                pPlayerHandle, FALSE);
+               } else {
+                       vp_play_subtitle_unrealize(pNormalView->pSubtitle);
+                       vp_mm_player_set_deactivate_subtitle(pNormalView->
+                                                                                                pPlayerHandle, TRUE);
+               }
+               vp_subtitle_destroy(pNormalView->pSubtitlePopup);
+               pNormalView->pSubtitlePopup = NULL;
+               pNormalView->bIsSubtitleShow = FALSE;
+       }
+
+       switch (nSubtitleMode) {
+       case VP_SUBTITLE_MODE_NONE:
+       case VP_SUBTITLE_MODE_CLOSE:
+               break;
+       case VP_SUBTITLE_MODE_ACTIVATION:{
+                       bool bShow = FALSE;
+                       vp_play_preference_get_subtitle_show_key(&bShow);
+                       if (bShow) {
+                               vp_play_subtitle_realize(pNormalView->pSubtitle);
+                               vp_mm_player_set_deactivate_subtitle(pNormalView->
+                                                                                                        pPlayerHandle, FALSE);
+                       } else {
+                               vp_play_subtitle_unrealize(pNormalView->pSubtitle);
+                               vp_mm_player_set_deactivate_subtitle(pNormalView->
+                                                                                                        pPlayerHandle, TRUE);
+                       }
+               }
+               break;
+       case VP_SUBTITLE_MODE_SYNC:
+               _vp_play_normal_view_on_subtitle_sync_popup(pNormalView);
+               break;
+       case VP_SUBTITLE_MODE_LANGUAGE:
+               _vp_play_normal_view_on_subtitle_language_popup(pNormalView);
+               break;
+#ifdef SUBTITLE_K_FEATURE
+       case VP_SUBTITLE_MODE_ALIGNMENT:
+               _vp_play_normal_view_on_subtitle_alignment_popup(pNormalView);
+               break;
+#endif
+       case VP_SUBTITLE_MODE_SELECT:
+               _vp_play_normal_view_on_subtitle_select_popup(pNormalView);
+               break;
+       case VP_SUBTITLE_MODE_FONT:
+               _vp_play_normal_view_on_subtitle_font_popup(pNormalView);
+               break;
+       case VP_SUBTITLE_MODE_SIZE:
+               _vp_play_normal_view_on_subtitle_size_popup(pNormalView);
+               break;
+       case VP_SUBTITLE_MODE_EDGE:
+               _vp_play_normal_view_on_subtitle_edge_popup(pNormalView);
+               break;
+       case VP_SUBTITLE_MODE_TEXT:
+               _vp_play_normal_view_on_subtitle_font_color_popup(pNormalView);
+               break;
+       case VP_SUBTITLE_MODE_BG_COLOR:
+
+               _vp_play_normal_view_on_subtitle_bg_color_popup(pNormalView);
+               break;
+       case VP_SUBTITLE_MODE_FONT_COLOR:
+               _vp_play_normal_view_on_subtitle_font_color_popup(pNormalView);
+               break;
+#ifdef SUBTITLE_K_FEATURE
+       case VP_SUBTITLE_MODE_CAPTION_WINDOW:
+               _vp_play_normal_view_on_subtitle_caption_win_color_popup
+                       (pNormalView);
+               break;
+#endif
+       }
+}
+
+/**
+ *
+ * @param fValue
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_sync_popup_update_cb(float fValue,
+                                                                                                         void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+       /* set subtitle sync value */
+
+       int nPosition = fValue * 1000;
+
+       if (!vp_mm_player_set_subtitle_position
+               (pNormalView->pPlayerHandle, nPosition)) {
+               VideoLogError("vp_mm_player_set_subtitle_position is fail");
+       }
+}
+
+/**
+ *
+ * @param fValue
+ * @param bSetValue
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_sync_popup_done_cb(float fValue,
+                                                                                                       bool bSetValue,
+                                                                                                       void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       vp_subtitle_sync_popup_destroy(pNormalView->pSubtitleSyncPopup);
+       pNormalView->pSubtitleSyncPopup = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (bSetValue) {
+               /* set subtitle sync value */
+               int nPosition = fValue * 1000;
+               pNormalView->fSubtitleSyncValue = fValue;
+               pNormalView->pPlayView->fSubtitleSyncValue = fValue;
+               if (!vp_mm_player_set_subtitle_position
+                       (pNormalView->pPlayerHandle, nPosition)) {
+                       VideoLogError("vp_mm_player_set_subtitle_position is fail");
+               }
+       } else {
+               /* set subtitle sync value */
+               int nPosition = pNormalView->fSubtitleSyncValue * 1000;
+
+               if (!vp_mm_player_set_subtitle_position
+                       (pNormalView->pPlayerHandle, nPosition)) {
+                       VideoLogError("vp_mm_player_set_subtitle_position is fail");
+               }
+               _vp_play_normal_view_on_subtitle_popup(pNormalView);
+       }
+}
+
+
+/**
+ *
+ * @param nType
+ * @param bPause
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_size_popup_done_cb(int nType, bool bPause,
+                                                                                                       void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       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;
+
+       if (nType != -1) {
+               vp_play_subtitle_set_size(pNormalView->pSubtitle, nType);
+               vp_play_subtitle_set_size_zoom(pNormalView->pSubtitle, 1.0);
+               vp_play_preference_set_subtitle_size_key(nType);
+               _vp_play_normal_view_set_subtitle_font_config(pNormalView);
+#ifdef SUBTITLE_K_FEATURE
+               /*Set caption window: size, rel1, color */
+               __vp_normal_subtitle_set_caption_window(pNormalView);
+#endif
+       }
+
+       if (bPause) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+               if (pPlayView && pPlayView->win_minicon) {
+                       vp_minicontroller_update_control(pPlayView);
+               }
+               if (pPlayView && 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_on_subtitle_popup(pNormalView);
+
+}
+
+/**
+ *
+ * @param szFontName
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_font_popup_done_cb(char *szFontName,
+                                                                                                       void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       if (szFontName) {
+               vp_play_subtitle_set_font(pNormalView->pSubtitle, szFontName);
+               vp_play_preference_set_subtitle_font_name_key(szFontName);
+               _vp_play_normal_view_set_subtitle_font_config(pNormalView);
+#ifdef SUBTITLE_K_FEATURE
+               /*Set caption window: size, rel1, color */
+               __vp_normal_subtitle_set_caption_window(pNormalView);
+#endif
+       }
+
+       vp_subtitle_font_destroy(pNormalView->pSubtitleFontPopup);
+       pNormalView->pSubtitleFontPopup = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       _vp_play_normal_view_on_subtitle_popup(pNormalView);
+}
+
+/**
+ *
+ * @param option
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_select_button_popup_done_cb(char *option,
+                                                                                                                        void
+                                                                                                                        *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       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 {
+               vp_subtitle_select_destroy(pNormalView->pSubtitleSelectPopup);
+               pNormalView->pSubtitleSelectPopup = NULL;
+               pNormalView->bIsPopupShow = FALSE;
+
+               if (_vp_is_current_focus_available() != 0) {
+                       VideoLogInfo
+                               ("Cannot acquire focus. Setting video to pause state");
+                       pNormalView->bManualPause = TRUE;
+               }
+
+               if (pNormalView->bManualPause == FALSE) {
+                       if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+                               VideoLogWarning("Pause Fail");
+                       }
+                       if (pPlayView && pPlayView->win_minicon) {
+                               vp_minicontroller_update_control(pPlayView);
+                       }
+                       if (pPlayView && 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);
+               }
+       }
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_select_popup_done_cb(char *szFilePath,
+                                                                                                         void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+       }
+       char *szSubtitle = NULL;
+
+       vp_subtitle_select_destroy(pNormalView->pSubtitleSelectPopup);
+       pNormalView->pSubtitleSelectPopup = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (_vp_is_current_focus_available() != 0) {
+               VideoLogInfo("Cannot acquire focus. Setting video to pause state");
+               pNormalView->bManualPause = TRUE;
+       }
+
+       if (pNormalView->bManualPause == FALSE) {
+               if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+               if (pPlayView && pPlayView->win_minicon) {
+                       vp_minicontroller_update_control(pPlayView);
+               }
+               if (pPlayView && 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);
+       }
+       if (!szFilePath) {
+               goto SELECT_DONE;
+       }
+       if (!strcmp(szFilePath, VP_PLAY_STRING_SUBTITLE_OFF)) {
+               pNormalView->bIsExistSubtitle = FALSE;
+               vp_mm_player_set_deactivate_subtitle(pNormalView->pPlayerHandle,
+                                                                                        TRUE);
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_SUBTITLE_HIDE, "*");
+               goto SELECT_DONE;
+       } else {
+               bool bOn = FALSE;
+               vp_play_preference_get_subtitle_show_key(&bOn);
+               if (bOn) {
+                       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_SUBTITLE_PORTRAIT,
+                                                                  "*");
+                       pNormalView->bIsExistSubtitle = TRUE;
+                       vp_mm_player_set_deactivate_subtitle(pNormalView->
+                                                                                                pPlayerHandle, FALSE);
+               }
+       }
+       VP_FREE(pNormalView->szSubtitleURL);
+       VP_STRDUP(pNormalView->szSubtitleURL, szFilePath);
+       vp_mm_player_get_subtitle_url(pNormalView->pPlayerHandle, &szSubtitle);
+
+       if (szSubtitle) {
+               if (strcmp(szSubtitle, szFilePath) == 0) {
+                       goto SELECT_DONE;
+               }
+       }
+
+       pNormalView->bIsExistSubtitle =
+               vp_mm_player_set_subtitle_url(pNormalView->pPlayerHandle,
+                                                                         szFilePath);
+
+  SELECT_DONE:
+       VP_FREE(szSubtitle);
+
+}
+
+#ifndef SUBTITLE_K_FEATURE
+static void __vp_normal_subtitle_font_color_popup_done_cb(int nType,
+                                                                                                                 bool bPause,
+                                                                                                                 void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       vp_subtitle_color_destroy(pNormalView->pSubtitleFontColorPopup);
+       pNormalView->pSubtitleFontColorPopup = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (nType != -1) {
+
+               video_subtitle_color_t nColor = VP_SUBTITLE_COLOR_BLACK;
+               if (nType == VIDEO_SUBTITLE_COLOR_BLACK) {
+                       nColor = VP_SUBTITLE_COLOR_BLACK;
+               } else if (nType == VIDEO_SUBTITLE_COLOR_BLUE) {
+                       nColor = VP_SUBTITLE_COLOR_BLUE;
+               } else if (nType == VIDEO_SUBTITLE_COLOR_GREEN) {
+                       nColor = VP_SUBTITLE_COLOR_GREEN;
+               } else if (nType == VIDEO_SUBTITLE_COLOR_WHITE) {
+                       nColor = VP_SUBTITLE_COLOR_WHITE;
+               }
+               //need to improve....
+
+               vp_play_subtitle_set_color(pNormalView->pSubtitle, nColor);
+
+               vp_play_preference_set_subtitle_font_color_key(nType);
+
+               _vp_play_normal_view_set_subtitle_font_config(pNormalView);
+       }
+
+       _vp_play_normal_view_on_subtitle_popup(pNormalView);
+
+
+}
+
+static void __vp_normal_subtitle_bg_color_popup_done_cb(int nType,
+                                                                                                               bool bPause,
+                                                                                                               void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       vp_subtitle_bg_color_destroy(pNormalView->pSubtitleBGColorPopup);
+       pNormalView->pSubtitleBGColorPopup = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (nType != -1) {
+               video_subtitle_color_t nColor = VP_SUBTITLE_COLOR_BLACK;
+               if (nType == VIDEO_SUBTITLE_COLOR_BLACK) {
+                       nColor = VP_SUBTITLE_COLOR_BLACK;
+               } else if (nType == VIDEO_SUBTITLE_COLOR_WHITE) {
+                       nColor = VP_SUBTITLE_COLOR_WHITE;
+               } else if (nType == VIDEO_SUBTITLE_COLOR_NONE) {
+                       nColor = VP_SUBTITLE_COLOR_NONE;
+               }
+               vp_play_subtitle_set_bg_color(pNormalView->pSubtitle, nColor);
+               vp_play_preference_set_subtitle_bg_color_key(nType);
+               _vp_play_normal_view_set_subtitle_font_config(pNormalView);
+       }
+       _vp_play_normal_view_on_subtitle_popup(pNormalView);
+
+}
+
+#else
+/**
+ *
+ * @param pColorHex
+ * @param bSetValue
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_font_color_popup_done_hex_cb(char
+                                                                                                                         *pColorHex,
+                                                                                                                         bool
+                                                                                                                         bSetValue,
+                                                                                                                         void
+                                                                                                                         *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+       char *pSelectColorHex = strdup(pColorHex);
+
+       vp_subtitle_color_destroy(pNormalView->pSubtitleFontColorPopup);
+       pNormalView->pSubtitleFontColorPopup = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (bSetValue) {
+               VideoLogInfo("pSelectColorHex =%s", pSelectColorHex);
+
+               if (pSelectColorHex != NULL) {
+                       vp_play_subtitle_set_color(pNormalView->pSubtitle,
+                                                                          pSelectColorHex);
+
+                       vp_play_preference_set_subtitle_font_color_hex_key
+                               (pSelectColorHex);
+
+                       _vp_play_normal_view_set_subtitle_font_config(pNormalView);
+
+               }
+       }
+
+       VP_FREE(pSelectColorHex);
+
+       _vp_play_normal_view_on_subtitle_popup(pNormalView);
+}
+
+/**
+ *
+ * @param pColorHex
+ * @param bSetValue
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_bg_color_popup_done_hex_cb(char
+                                                                                                                       *pColorHex,
+                                                                                                                       bool bSetValue,
+                                                                                                                       void
+                                                                                                                       *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+       char *pSelectColorHex = strdup(pColorHex);
+
+       vp_subtitle_color_destroy(pNormalView->pSubtitleBGColorPopup);
+       pNormalView->pSubtitleBGColorPopup = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (bSetValue) {
+               VideoLogInfo("pSelectColorHex =%s", pSelectColorHex);
+               if (pSelectColorHex != NULL) {
+                       vp_play_subtitle_set_bg_color(pNormalView->pSubtitle,
+                                                                                 pSelectColorHex);
+
+                       vp_play_preference_set_subtitle_bg_color_hex_key
+                               (pSelectColorHex);
+
+                       _vp_play_normal_view_set_subtitle_font_config(pNormalView);
+
+               }
+       }
+
+       VP_FREE(pSelectColorHex);
+
+       _vp_play_normal_view_on_subtitle_popup(pNormalView);
+}
+
+/**
+ *
+ * @param pColorHex
+ * @param bSetValue
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_caption_win_color_popup_done_hex_cb(char
+                                                                                                                                        *pColorHex,
+                                                                                                                                        bool
+                                                                                                                                        bSetValue,
+                                                                                                                                        void
+                                                                                                                                        *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+       char *pSelectColorHex = strdup(pColorHex);
+
+       vp_subtitle_color_destroy(pNormalView->pSubtitleCaptionWinColorPopup);
+       pNormalView->pSubtitleCaptionWinColorPopup = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (bSetValue) {
+               VideoLogInfo("pSelectColorHex =%s", pSelectColorHex);
+               if (pSelectColorHex != NULL) {
+                       vp_play_preference_set_subtitle_caption_win_color_hex_key
+                               (pSelectColorHex);
+                       vp_play_subtitle_set_caption_win_color(pNormalView->pSubtitle,
+                                                                                                  TRUE);
+               }
+       }
+
+       VP_FREE(pSelectColorHex);
+
+       _vp_play_normal_view_on_subtitle_popup(pNormalView);
+}
+
+#endif
+
+/**
+ *
+ * @param nType
+ * @param bPause
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_track_popup_close_cb(int nType,
+                                                                                                         bool bPause,
+                                                                                                         void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       vp_subtitle_track_destroy(pNormalView->pSubtitleTrackHandle);
+       pNormalView->pSubtitleTrackHandle = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (nType >= 0) {
+
+               pNormalView->nDefaultSubtitleTrackIndex = nType;
+#ifndef _SUBTITLE_MULTI_LANGUAGE
+               vp_mm_player_set_subtitle_track(pNormalView->pPlayerHandle,
+                                                                               pNormalView->
+                                                                               nDefaultSubtitleTrackIndex);
+#endif
+               _vp_play_normal_view_on_subtitle_popup(pNormalView);
+
+       } else {
+               _vp_play_normal_view_on_subtitle_popup(pNormalView);
+       }
+
+}
+
+
+/**
+ *
+ * @param nType
+ * @param bPause
+ * @param pUserData
+ */
+static void __vp_normal_detail_popup_close_cb(int nType, bool bPause,
+                                                                                         void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+       }
+
+       if (_vp_is_current_focus_available() != 0) {
+               VideoLogInfo("Cannot acquire focus. Setting video to pause state");
+               pNormalView->bManualPause = TRUE;
+       }
+
+       if (pNormalView->bManualPause == FALSE) {
+               if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("resume Fail");
+               }
+               if (pPlayView && pPlayView->win_minicon) {
+                       vp_minicontroller_update_control(pPlayView);
+               }
+               if (pPlayView && 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_detail_destroy(pNormalView->pDetailHandle);
+       pNormalView->pDetailHandle = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (bPause) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+               if (pPlayView && pPlayView->win_minicon) {
+                       vp_minicontroller_update_control(pPlayView);
+               }
+               if (pPlayView && 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 {
+               _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+       }
+
+}
+
+
+/**
+ *
+ * @param pUserData
+ * @param pEventInfo
+ * @return
+ */
+static Evas_Event_Flags __vp_normal_gesture_n_tab_start_cb(void *pUserData,
+                                                                                                                  void
+                                                                                                                  *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       if (!pEventInfo) {
+               VideoLogError("pEventInfo is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       return EVAS_EVENT_FLAG_NONE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEventInfo
+ * @return
+ */
+static Evas_Event_Flags __vp_normal_gesture_n_tab_end_cb(void *pUserData,
+                                                                                                                void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       if (!pEventInfo) {
+               VideoLogError("pEventInfo is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) pEventInfo;
+       NormalView *pNormalView = (NormalView *) pUserData;
+       VideoLogInfo("gesture tab = %d", p->n);
+
+       if (p->n == 1) {
+               if (pNormalView->pVolumeHandle) {
+                       bool bIsRealize = FALSE;
+
+                       if (!vp_play_volume_is_realize
+                               (pNormalView->pVolumeHandle, &bIsRealize)) {
+                               VideoLogWarning("vp_play_volume_is_realize is fail");
+                       }
+
+                       if (bIsRealize) {
+                               if (!vp_play_volume_unrealize(pNormalView->pVolumeHandle)) {
+                                       VideoLogWarning("vp_play_volume_unrealize is fail");
+                               }
+                       }
+               }
+
+               if (pNormalView->bShowLayout) {
+                       _vp_play_normal_view_hide_layout(pNormalView, FALSE);
+               } else {
+                       _vp_play_normal_view_show_layout(pNormalView);
+               }
+       }
+
+       return EVAS_EVENT_FLAG_NONE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEventInfo
+ * @return
+ */
+static Evas_Event_Flags __vp_normal_gesture_n_tab_abort_cb(void *pUserData,
+                                                                                                                  void
+                                                                                                                  *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       if (!pEventInfo) {
+               VideoLogError("pEventInfo is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+
+       return EVAS_EVENT_FLAG_NONE;
+}
+
+#ifdef ENABLE_VOLUME_BRIGHTNESS_POPUP
+static void __vp_normal_volume_job_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       if (pNormalView->bIsActive == FALSE) {
+               VideoLogError("Not Active mode");
+               return;
+       }
+       if (!pNormalView->pVolumePopupHandle) {
+               if (!pNormalView->pPlayView) {
+                       VideoLogError("pNormalView->pPlayView is NULL");
+                       return;
+               }
+
+               Evas_Object *pParent = pNormalView->pPlayView->pWin;
+               pNormalView->pVolumePopupHandle =
+                       vp_play_volume_popup_create(pParent);
+               if (!pNormalView->pVolumePopupHandle) {
+                       VideoLogError("pNormalView->pVolumePopupHandle is NULL");
+                       return;
+               }
+       }
+
+       bool bIsRealize = FALSE;
+
+       if (!vp_play_volume_popup_is_realize
+               (pNormalView->pVolumePopupHandle, &bIsRealize)) {
+               VideoLogWarning("vp_play_volume_popup_is_realize is fail");
+               return;
+       }
+       if (bIsRealize == FALSE) {
+               bool bLandscape = FALSE;
+
+               if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90
+                       || pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+                       bLandscape = TRUE;
+               }
+
+               if (!vp_play_volume_popup_set_landscape_mode
+                       (pNormalView->pVolumePopupHandle, bLandscape)) {
+                       VideoLogWarning
+                               ("vp_play_volume_popup_set_landscape_mode is fail");
+               }
+
+               if (!vp_play_volume_popup_realize(pNormalView->pVolumePopupHandle)) {
+                       VideoLogWarning("vp_play_volume_popup_realize is fail");
+               }
+       }
+       if (pNormalView->bMomentumIncrease) {
+               int nMaxVal = 0;
+               if (!vp_play_volume_popup_set_value
+                       (pNormalView->pVolumePopupHandle,
+                        pNormalView->nMomentDefaultVal +
+                        pNormalView->nMomentWeight)) {
+                       VideoLogWarning("vp_play_volume_popup_set_value is fail");
+               }
+
+               if (vp_play_volume_popup_get_max_value(&nMaxVal)) {
+                       if (pNormalView->nMomentDefaultVal +
+                               pNormalView->nMomentWeight >= nMaxVal) {
+                               pNormalView->nGestureStartPosY =
+                                       pNormalView->nGestureOldPosY;
+                               pNormalView->nMomentDefaultVal = nMaxVal;
+                       }
+               }
+       } else {
+               if (!vp_play_volume_popup_set_value
+                       (pNormalView->pVolumePopupHandle,
+                        pNormalView->nMomentDefaultVal -
+                        pNormalView->nMomentWeight)) {
+                       VideoLogWarning("vp_play_volume_popup_set_value is fail");
+               }
+
+               if (pNormalView->nMomentDefaultVal - pNormalView->nMomentWeight <=
+                       0) {
+                       pNormalView->nGestureStartPosY = pNormalView->nGestureOldPosY;
+                       pNormalView->nMomentDefaultVal = 0;
+               }
+       }
+       //vp_play_volume_update_value(pNormalView->pVolumeHandle);
+       _vp_play_normal_view_set_volume_state(pNormalView);
+
+       VP_EVAS_JOB_DEL(pNormalView->pVolumeJob);
+
+}
+
+static void __vp_normal_brightness_job_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       if (pNormalView->bIsActive == FALSE) {
+               VideoLogError("Not Active mode");
+               return;
+       }
+       if (!pNormalView->pBrightnessHandle) {
+               if (!pNormalView->pPlayView) {
+                       VideoLogError("pNormalView->pPlayView is NULL");
+                       return;
+               }
+
+               Evas_Object *pParent = pNormalView->pPlayView->pWin;
+               pNormalView->pBrightnessHandle =
+                       vp_play_brightness_create(pParent);
+               if (!pNormalView->pBrightnessHandle) {
+                       VideoLogError("pNormalView->pBrightnessHandle is NULL");
+                       return;
+               }
+       }
+
+       bool bIsRealize = FALSE;
+
+       if (!vp_play_brightness_is_realize
+               (pNormalView->pBrightnessHandle, &bIsRealize)) {
+               VideoLogWarning("vp_play_brightness_is_realize is fail");
+               return;
+       }
+       if (bIsRealize == FALSE) {
+               bool bLandscape = FALSE;
+
+               if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90
+                       || pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+                       bLandscape = TRUE;
+               }
+
+               if (!vp_play_brightness_set_landscape_mode
+                       (pNormalView->pBrightnessHandle, bLandscape)) {
+                       VideoLogWarning
+                               ("vp_play_brightness_set_landscape_mode is fail");
+               }
+
+               if (!vp_play_brightness_realize(pNormalView->pBrightnessHandle)) {
+                       VideoLogWarning("vp_play_brightness_realize is fail");
+               }
+       }
+
+       if (pNormalView->bMomentumIncrease) {
+               int nMaxVal = 0;
+               if (!vp_play_brightness_set_value
+                       (pNormalView->pBrightnessHandle,
+                        pNormalView->nMomentDefaultVal +
+                        pNormalView->nMomentWeight)) {
+                       VideoLogWarning("vp_play_brightness_set_value is fail");
+               }
+
+               if (vp_play_brightness_get_max_value(&nMaxVal)) {
+                       if (pNormalView->nMomentDefaultVal +
+                               pNormalView->nMomentWeight >= nMaxVal) {
+                               pNormalView->nGestureStartPosY =
+                                       pNormalView->nGestureOldPosY;
+                               pNormalView->nMomentDefaultVal = nMaxVal;
+                       }
+               }
+       } else {
+               int nMinVal = 0;
+               if (!vp_play_brightness_set_value
+                       (pNormalView->pBrightnessHandle,
+                        pNormalView->nMomentDefaultVal -
+                        pNormalView->nMomentWeight)) {
+                       VideoLogWarning("vp_play_brightness_set_value is fail");
+               }
+
+               if (vp_play_brightness_get_min_value(&nMinVal)) {
+                       if (pNormalView->nMomentDefaultVal -
+                               pNormalView->nMomentWeight <= nMinVal) {
+                               pNormalView->nGestureStartPosY =
+                                       pNormalView->nGestureOldPosY;
+                               pNormalView->nMomentDefaultVal = nMinVal;
+                       }
+               }
+       }
+       VP_EVAS_JOB_DEL(pNormalView->pBrightnessJob);
+
+}
+#endif
+
+#ifdef ENABLE_VOLUME_BRIGHTNESS_POPUP
+static Eina_Bool __vp_normal_momentum_press_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+#ifdef SUBTITLE_K_FEATURE
+       if (pNormalView->bSubtitleDown) {
+               VideoLogError("Skip for subtitle down");
+               return EINA_FALSE;
+       }
+#endif
+
+       bool bVolumeMode = TRUE;
+
+       if (pNormalView->nGestureStartPosX < (pNormalView->nWindowWidth / 2)) {
+               bVolumeMode = FALSE;
+       }
+
+       if (bVolumeMode) {
+               VP_EVAS_JOB_DEL(pNormalView->pVolumeJob);
+               pNormalView->pVolumeJob =
+                       ecore_job_add(__vp_normal_volume_job_cb, (void *) pNormalView);
+       } else {
+               VP_EVAS_JOB_DEL(pNormalView->pBrightnessJob);
+               pNormalView->pBrightnessJob =
+                       ecore_job_add(__vp_normal_brightness_job_cb,
+                                                 (void *) pNormalView);
+       }
+
+       return EINA_FALSE;
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pEventInfo
+ * @return
+ */
+static Evas_Event_Flags __vp_normal_gesture_momentum_start_cb(void
+                                                                                                                         *pUserData,
+                                                                                                                         void
+                                                                                                                         *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       if (!pEventInfo) {
+               VideoLogError("pEventInfo is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       Elm_Gesture_Momentum_Info *p =
+               (Elm_Gesture_Momentum_Info *) pEventInfo;
+       NormalView *pNormalView = (NormalView *) pUserData;
+       if (pNormalView->bLockScreen) {
+               return EVAS_EVENT_FLAG_NONE;
+       }
+#ifdef SUBTITLE_K_FEATURE
+       if (pNormalView->pSubtitleMoveTimer || pNormalView->bSubtitleDown) {
+               VideoLogWarning("Longpress subtitle");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+#endif
+       pNormalView->nGestureOldPosY = p->y1;
+       pNormalView->nGestureStartPosY = p->y1;
+
+       int nWidth, nHeight;
+       bool bLandscape = FALSE;
+
+       if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90
+               || pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+               bLandscape = TRUE;
+       }
+       elm_win_screen_size_get(pNormalView->pPlayView->pWin, NULL, NULL,
+                                                       &nWidth, &nHeight);
+       if (bLandscape) {
+               pNormalView->nWindowWidth = nHeight;
+               pNormalView->nWindowHeight = nWidth;
+       } else {
+
+               pNormalView->nWindowWidth = nWidth;
+               pNormalView->nWindowHeight = nHeight;
+       }
+
+       if (pNormalView->bZoomEnable == FALSE) {
+#ifdef ENABLE_VOLUME_BRIGHTNESS_POPUP
+               bool bVolumeMode = TRUE;
+               int nMaxVal = 0;
+               int nMinVal = 0;
+
+               pNormalView->nGestureStartPosX = p->x1;
+               pNormalView->nMomentWeight = 0;
+
+               if (p->x1 < (pNormalView->nWindowWidth / 2)) {
+                       bVolumeMode = FALSE;
+               }
+
+               bool bIsVolumeRealize = FALSE;
+
+               if (pNormalView->pVolumeHandle) {
+                       vp_play_volume_is_realize(pNormalView->pVolumeHandle,
+                                                                         &bIsVolumeRealize);
+               }
+
+               if (bVolumeMode && bIsVolumeRealize) {
+                       if (pNormalView->pVolumePopupHandle) {
+                               if (!vp_play_volume_popup_unrealize
+                                       (pNormalView->pVolumePopupHandle)) {
+                                       VideoLogWarning
+                                               ("vp_play_volume_popup_unrealize is fail");
+                               }
+                       }
+                       return EVAS_EVENT_FLAG_NONE;
+               }
+
+
+               if (bVolumeMode) {
+                       if (!vp_play_volume_popup_get_value
+                               (&pNormalView->nMomentDefaultVal)) {
+                               VideoLogError("vp_play_volume_popup_get_value is fail");
+                       }
+                       if (!vp_play_volume_popup_get_max_value(&nMaxVal)) {
+                               VideoLogError
+                                       ("vp_play_volume_popup_get_max_value is fail");
+                       }
+               } else {
+
+                       if (!vp_play_brightness_get_value
+                               (&pNormalView->nMomentDefaultVal)) {
+                               VideoLogError("vp_play_brightness_get_value is fail");
+                       }
+                       if (!vp_play_brightness_get_max_value(&nMaxVal)) {
+                               VideoLogError("vp_play_brightness_get_max_value is fail");
+                       }
+                       if (!vp_play_brightness_get_min_value(&nMinVal)) {
+                               VideoLogError("vp_play_brightness_get_min_value is fail");
+                       }
+               }
+
+               VP_EVAS_TIMER_DEL(pNormalView->pMomentTimer);
+               pNormalView->pMomentTimer = NULL;
+
+               pNormalView->pMomentTimer =
+                       ecore_timer_add(VP_NORMAL_MOMENTUM_PRESS_TIMER_INTERVAL,
+                                                       __vp_normal_momentum_press_timer_cb,
+                                                       (void *) pNormalView);
+
+               if (nMaxVal <= 0) {
+                       nMaxVal = 1;
+               }
+               pNormalView->nMomentStep =
+                       (pNormalView->nWindowHeight / 2) / (nMaxVal - nMinVal);
+#endif
+       } else {
+               pNormalView->nGestureStartPosX = p->x2;
+               pNormalView->nGestureStartPosY = p->y2;
+       }
+
+       return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEventInfo
+ * @return
+ */
+static Evas_Event_Flags __vp_normal_gesture_momentum_move_cb(void
+                                                                                                                        *pUserData,
+                                                                                                                        void
+                                                                                                                        *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       if (!pEventInfo) {
+               VideoLogError("pEventInfo is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       Elm_Gesture_Momentum_Info *p =
+               (Elm_Gesture_Momentum_Info *) pEventInfo;
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+#ifdef SUBTITLE_K_FEATURE
+       if (pNormalView->pSubtitleMoveTimer || pNormalView->bSubtitleDown) {
+               VideoLogWarning("Longpress subtitle");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+#endif
+
+       if (pNormalView->bLockScreen) {
+               VideoLogError("Skip for lock mode");
+               _vp_play_normal_view_show_layout(pNormalView);
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       if (p->n != 1) {
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       if (pNormalView->bZoomEnable == FALSE) {
+#ifdef ENABLE_VOLUME_BRIGHTNESS_POPUP
+               if (!pNormalView->pMomentTimer || pNormalView->bLockScreen) {
+                       return EVAS_EVENT_FLAG_NONE;
+               }
+
+               if (pNormalView->bShowLayout) {
+                       _vp_play_normal_view_hide_layout(pNormalView, FALSE);
+               }
+
+               int nDiff = 0;
+               bool bVolumeMode = TRUE;
+               if (pNormalView->nMomentStep <= 0) {
+                       pNormalView->nMomentStep = 1;
+               }
+
+               if (p->x1 < (pNormalView->nWindowWidth / 2)) {
+                       bVolumeMode = FALSE;
+               }
+
+               bool bIsVolumeRealize = FALSE;
+
+               if (pNormalView->pVolumeHandle) {
+                       vp_play_volume_is_realize(pNormalView->pVolumeHandle,
+                                                                         &bIsVolumeRealize);
+               }
+
+               if (bVolumeMode && bIsVolumeRealize) {
+                       if (pNormalView->pVolumePopupHandle) {
+                               if (!vp_play_volume_popup_unrealize
+                                       (pNormalView->pVolumePopupHandle)) {
+                                       VideoLogWarning
+                                               ("vp_play_volume_popup_unrealize is fail");
+                               }
+                       }
+                       return EVAS_EVENT_FLAG_NONE;
+               }
+
+               if (pNormalView->nGestureStartPosY < p->y2) {
+                       pNormalView->bMomentumIncrease = FALSE;
+                       nDiff = p->y2 - pNormalView->nGestureStartPosY;
+               } else {
+                       pNormalView->bMomentumIncrease = TRUE;
+                       nDiff = pNormalView->nGestureStartPosY - p->y2;
+               }
+
+               pNormalView->nGestureOldPosY = p->y2;
+               pNormalView->nMomentWeight = nDiff / pNormalView->nMomentStep;
+
+               if (bVolumeMode) {
+                       VP_EVAS_JOB_DEL(pNormalView->pVolumeJob);
+                       pNormalView->pVolumeJob =
+                               ecore_job_add(__vp_normal_volume_job_cb,
+                                                         (void *) pNormalView);
+               } else {
+                       VP_EVAS_JOB_DEL(pNormalView->pBrightnessJob);
+                       pNormalView->pBrightnessJob =
+                               ecore_job_add(__vp_normal_brightness_job_cb,
+                                                         (void *) pNormalView);
+               }
+#endif
+       } else {
+               int nDiffX = 0;
+               int nDiffY = 0;
+               int nWidth = 0;
+               int nHeight = 0;
+               double fX = 0.0;
+               double fY = 0.0;
+
+               nDiffX = p->x2 - pNormalView->nGestureStartPosX;
+               nDiffY = p->y2 - pNormalView->nGestureStartPosY;
+
+               vp_zoom_guide_get_move_position(pNormalView->pZoomGuide, &fX, &fY);
+               Evas_Coord_Rectangle rtSrc = { 0, };
+               Evas_Coord_Rectangle rtDst = { 0, };
+               Evas_Coord_Rectangle rtResult = { 0, };
+
+               elm_win_screen_size_get(pNormalView->pPlayView->pWin, NULL, NULL,
+                                                               &nWidth, &nHeight);
+
+               if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90
+                       || pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+                       rtDst.w = nHeight;
+                       rtDst.h = nWidth;
+               } else {
+                       rtDst.w = nWidth;
+                       rtDst.h = nHeight;
+               }
+               vp_mm_player_get_resolution(pNormalView->pPlayerHandle, &(rtSrc.w),
+                                                                       &(rtSrc.h));
+
+               vp_play_util_calculator_position(rtSrc, rtDst, &rtResult,
+                                                                                pNormalView->nDisplayMode);
+
+               fX -= (double) nDiffX / rtResult.w;
+               fY -= (double) nDiffY / rtResult.h;
+
+               pNormalView->nGestureStartPosX = p->x2;
+               pNormalView->nGestureStartPosY = p->y2;
+
+               vp_zoom_guide_set_move_position(pNormalView->pZoomGuide, fX, fY);
+               vp_zoom_guide_get_real_position(pNormalView->pZoomGuide, &fX, &fY);
+
+               vp_mm_player_set_zoom(pNormalView->pPlayerHandle,
+                                                         pNormalView->fZoomValue,
+                                                         (int) (fX * rtSrc.w), (int) (fY * rtSrc.h));
+       }
+
+       return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEventInfo
+ * @return
+ */
+static Evas_Event_Flags __vp_normal_gesture_momentum_end_cb(void
+                                                                                                                       *pUserData,
+                                                                                                                       void
+                                                                                                                       *pEventInfo)
+{
+       VideoLogInfo("");
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       if (!pEventInfo) {
+               VideoLogError("pEventInfo is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       if (pNormalView->bLockScreen) {
+               VideoLogError("Skip for lock mode");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+#ifdef SUBTITLE_K_FEATURE
+       if (pNormalView->pSubtitleMoveTimer || pNormalView->bSubtitleDown) {
+               VideoLogWarning("Longpress subtitle");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+#endif
+
+       if (pNormalView->bZoomEnable == FALSE) {
+#ifdef ENABLE_VOLUME_BRIGHTNESS_POPUP
+               VP_EVAS_TIMER_DEL(pNormalView->pMomentTimer);
+               pNormalView->pMomentTimer = NULL;
+
+               VP_EVAS_JOB_DEL(pNormalView->pVolumeJob);
+               VP_EVAS_JOB_DEL(pNormalView->pBrightnessJob);
+
+               if (!vp_play_brightness_unrealize(pNormalView->pBrightnessHandle)) {
+                       VideoLogWarning("vp_play_brightness_unrealize is fail");
+               }
+
+               if (!vp_play_volume_popup_unrealize
+                       (pNormalView->pVolumePopupHandle)) {
+                       VideoLogWarning("vp_play_volume_popup_unrealize is fail");
+               }
+
+               _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+#endif
+       }
+
+       return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+#ifdef ENABLE_GESTURE_ZOOM_FEATURE
+static Evas_Event_Flags __vp_normal_gesture_zoom_start_cb(void *pUserData,
+                                                                                                                 void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       if (!pEventInfo) {
+               VideoLogError("pEventInfo is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       if (pNormalView->bLockScreen) {
+               VideoLogError("Skip for lock mode");
+               _vp_play_normal_view_show_layout(pNormalView);
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       Elm_Gesture_Zoom_Info *pZoomInfo =
+               (Elm_Gesture_Zoom_Info *) pEventInfo;
+
+       pNormalView->fActiveZoom = pZoomInfo->zoom;
+
+       pNormalView->nZoomPosX = pZoomInfo->x;
+       pNormalView->nZoomPosY = pZoomInfo->y;
+
+       pNormalView->nPrevZoomPosX = 0;
+       pNormalView->nPrevZoomPosY = 0;
+       pNormalView->fPrevZoomValue = 0;
+
+       return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+static Evas_Event_Flags __vp_normal_gesture_zoom_move_cb(void *pUserData,
+                                                                                                                void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       if (!pEventInfo) {
+               VideoLogError("pEventInfo is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+       Elm_Gesture_Zoom_Info *pZoomInfo =
+               (Elm_Gesture_Zoom_Info *) pEventInfo;
+
+       if (pNormalView->bLockScreen) {
+               VideoLogError("Skip for lock mode");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       double fVal = pZoomInfo->zoom / pNormalView->fActiveZoom;
+
+       pNormalView->fActiveZoom = pZoomInfo->zoom;
+
+       pNormalView->fZoomValue = pNormalView->fZoomValue * fVal;
+
+       if (pNormalView->fZoomValue < 1.0) {
+               pNormalView->fZoomValue = 1.0;
+       } else if (pNormalView->fZoomValue > 3.0) {
+               pNormalView->fZoomValue = 3.0;
+       }
+       // event filtering
+       bool bLandscape = FALSE;
+       if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90
+               || pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+               bLandscape = TRUE;
+       }
+       if (bLandscape
+               && fabs(pNormalView->fPrevZoomValue - pNormalView->fZoomValue) <
+               0.05) {
+               return EVAS_EVENT_FLAG_ON_HOLD;
+       }
+
+       _vp_play_normal_view_on_zoom_mode(pNormalView);
+
+       double fX = 0.0;
+       double fY = 0.0;
+       int nSrcW = 0;
+       int nSrcH = 0;
+
+       vp_mm_player_get_resolution(pNormalView->pPlayerHandle, &nSrcW,
+                                                               &nSrcH);
+       vp_zoom_guide_get_real_position(pNormalView->pZoomGuide, &fX, &fY);
+
+       // event filtering
+       if ((pNormalView->fZoomValue > 1.0 && pNormalView->fZoomValue < 3.0) &&
+               (pNormalView->nPrevZoomPosX == (int) (fX * nSrcW))
+               && (pNormalView->nPrevZoomPosY == (int) (fY * nSrcH))) {
+               return EVAS_EVENT_FLAG_ON_HOLD;
+       }
+
+       pNormalView->nPrevZoomPosX = (int) (fX * nSrcW);
+       pNormalView->nPrevZoomPosY = (int) (fY * nSrcH);
+       pNormalView->fPrevZoomValue = pNormalView->fZoomValue;
+
+       vp_mm_player_set_zoom(pNormalView->pPlayerHandle,
+                                                 pNormalView->fZoomValue, (int) (fX * nSrcW),
+                                                 (int) (fY * nSrcH));
+
+       return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+static Evas_Event_Flags __vp_normal_gesture_zoom_end_cb(void *pUserData,
+                                                                                                               void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       if (!pEventInfo) {
+               VideoLogError("pEventInfo is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       Elm_Gesture_Zoom_Info *pZoomInfo =
+               (Elm_Gesture_Zoom_Info *) pEventInfo;
+
+       if (pNormalView->bLockScreen) {
+               VideoLogError("Skip for lock mode");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       double fVal = pZoomInfo->zoom / pNormalView->fActiveZoom;
+
+       pNormalView->fActiveZoom = pZoomInfo->zoom;
+
+       pNormalView->fZoomValue = pNormalView->fZoomValue * fVal;
+
+       if (pNormalView->fZoomValue < 1.0) {
+               pNormalView->fZoomValue = 1.0;
+       } else if (pNormalView->fZoomValue > 3.0) {
+               pNormalView->fZoomValue = 3.0;
+       }
+
+       _vp_play_normal_view_on_zoom_mode(pNormalView);
+
+       pNormalView->nPrevZoomPosX = 0;
+       pNormalView->nPrevZoomPosY = 0;
+       pNormalView->fPrevZoomValue = 0;
+
+       return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+static Evas_Event_Flags __vp_normal_gesture_zoom_abort_cb(void *pUserData,
+                                                                                                                 void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       if (!pEventInfo) {
+               VideoLogError("pEventInfo is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       return EVAS_EVENT_FLAG_ON_HOLD;
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pEventInfo
+ * @return
+ */
+static Evas_Event_Flags __vp_normal_gesture_double_click_start_cb(void
+                                                                                                                                 *pUserData,
+                                                                                                                                 void
+                                                                                                                                 *pEventInfo)
+{
+       VideoLogInfo("");
+
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       if (!pEventInfo) {
+               VideoLogError("pEventInfo is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEventInfo
+ * @return
+ */
+static Evas_Event_Flags __vp_normal_gesture_double_click_end_cb(void
+                                                                                                                               *pUserData,
+                                                                                                                               void
+                                                                                                                               *pEventInfo)
+{
+       VideoLogInfo("");
+
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       if (!pEventInfo) {
+               VideoLogError("pEventInfo is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       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) {
+               pNormalView->fZoomValue = 1.0;
+#ifdef ENABLE_GESTURE_ZOOM_FEATURE
+               _vp_play_normal_view_on_zoom_mode(pNormalView);
+#endif
+       } else if (pEvent->n == 1) {
+
+               if (pNormalView->bLockScreen) {
+                       _vp_play_normal_view_show_layout(pNormalView);
+               } else {
+                       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");
+                       }
+                       if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+                               vp_mm_player_pause(pNormalView->pPlayerHandle);
+                               if (pPlayView && pPlayView->win_minicon) {
+                                       vp_minicontroller_update_control(pPlayView);
+                               }
+                               if (pPlayView && pPlayView->win_lockmini) {
+                                       vp_lockscreenmini_update_control(pPlayView);
+                               }
+                               pNormalView->bManualPause = TRUE;
+                       } else {
+                               bool bSpeedMode = FALSE;
+
+                               if (pNormalView->pSpeedTimer) {
+                                       bSpeedMode = TRUE;
+                               }
+                               VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+                               VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+                               VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+
+                               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                          VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE,
+                                                                          "*");
+
+                               if (bSpeedMode) {
+                                       int nPosition = 0;
+                                       if (vp_mm_player_get_position
+                                               (pNormalView->pPlayerHandle, &nPosition)) {
+                                               VideoLogDebug("nPosition[%d], curPosition[%d]",
+                                                                         nPosition,
+                                                                         pNormalView->nCurPosition);
+
+                                               if (vp_mm_player_set_position
+                                                       (pNormalView->pPlayerHandle,
+                                                        pNormalView->nCurPosition)) {
+                                                       pNormalView->bSeekComplete = FALSE;
+                                                       pNormalView->nWaitPos = -1;
+                                               } else {
+                                                       pNormalView->nWaitPos = nPosition;
+                                               }
+                                       }
+                               }
+
+                               pNormalView->nSpeedValue = 1;
+                               pNormalView->bSpeedDown = TRUE;
+
+                               if (_vp_is_current_focus_available() != 0) {
+                                       VideoLogInfo
+                                               ("Cannot acquire focus. Setting video to pause state");
+                                       vp_play_util_status_noti_show
+                                               (VP_PLAY_STRING_UNABLE_TO_PLAY);
+                                       pNormalView->bManualPause = TRUE;
+                               }
+
+                               if (pNormalView->bManualPause == FALSE) {
+                                       if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+                                               VideoLogWarning("Resume Fail");
+                                       }
+                                       if (pPlayView && pPlayView->win_minicon) {
+                                               vp_minicontroller_update_control(pPlayView);
+                                       }
+                                       if (pPlayView && 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;
+                       }
+                       _vp_play_normal_view_set_play_state(pNormalView);
+                       _vp_play_normal_view_on_capture_mode(pNormalView);
+               }
+
+       }
+
+       return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEventInfo
+ * @return
+ */
+static Evas_Event_Flags __vp_normal_gesture_double_click_abort_cb(void
+                                                                                                                                 *pUserData,
+                                                                                                                                 void
+                                                                                                                                 *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       if (!pEventInfo) {
+               VideoLogError("pEventInfo is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+#ifdef FLICK_JUMP
+static Evas_Event_Flags __vp_normal_gesture_flick_start_cb(void *pUserData,
+                                                                                                                  void
+                                                                                                                  *event_info)
+{
+       Elm_Gesture_Line_Info *pEvent = (Elm_Gesture_Line_Info *) event_info;
+
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+
+       VideoLogWarning("flick started");
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       if (pNormalView->bFlickWaiting == TRUE) {
+               VideoLogWarning("seek is not complete. ignore signal");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       if (!pNormalView->pFlickJumpSeek) {
+               pNormalView->nFlickPressX1 = pEvent->momentum.x1;
+               pNormalView->nFlickPressY1 = pEvent->momentum.y1;
+       }
+
+       return EVAS_EVENT_FLAG_NONE;
+}
+
+static Eina_Bool __vp_normal_flickjump_seek(void *pUserData, bool rewind)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+       VideoLogWarning("");
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       int nSetPosition = 0;
+       int nCurPosition = 0;
+
+       if (!vp_mm_player_get_position
+               (pNormalView->pPlayerHandle, &nCurPosition)) {
+               VideoLogError("vp_mm_player_get_position is fail");
+               return EINA_TRUE;
+       }
+
+       if (rewind) {
+               if (nCurPosition - 5000 < 0) {
+                       nSetPosition = 0;
+               } else {
+                       nSetPosition = nCurPosition - 5000;
+               }
+       } else {
+               if (nCurPosition + 5000 > pNormalView->nDuration) {
+                       nSetPosition = pNormalView->nDuration;
+               } else {
+                       nSetPosition = nCurPosition + 5000;
+               }
+       }
+
+       pNormalView->bFlickWaiting = TRUE;
+
+       if (vp_mm_player_set_position
+               (pNormalView->pPlayerHandle, nSetPosition)) {
+               pNormalView->nWaitPos = -1;
+               pNormalView->bSeekComplete = FALSE;
+               pNormalView->nCurPosition = nSetPosition;
+               vp_play_progressbar_set_position(pNormalView->pProgressbar,
+                                                                                nSetPosition);
+       }
+
+       return EINA_TRUE;
+}
+
+static void __vp_normal_flickjump_seek_del_cb(void *pUserData, Evas * e,
+                                                                                         Evas_Object * obj,
+                                                                                         void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       evas_object_event_callback_del(obj, EVAS_CALLBACK_DEL,
+                                                                  __vp_normal_flickjump_seek_del_cb);
+       NormalView *pNormalView = (NormalView *) pUserData;
+       pNormalView->pFlickJumpSeek = NULL;
+}
+
+static void __vp_normal_flickjump_layout_position(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+       if (pNormalView->pFlickJumpSeek) {
+               int nFlickSeekImageWidth = 80;
+               int nFlickSeekImageHeight = 60;
+               int nFlickSeekLeftMargin = 8;
+               int nScreenWidth = 0;
+               int nScreenHeight = 0;
+               if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90
+                       || pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+                       nScreenWidth = 1280;
+                       nScreenHeight = 720;
+               } else {
+                       nScreenWidth = 720;
+                       nScreenHeight = 1280;
+               }
+               if (pNormalView->bFlickRewind == FALSE) {
+                       evas_object_move(pNormalView->pFlickJumpSeek,
+                                                        nScreenWidth - (nFlickSeekLeftMargin +
+                                                                                        nFlickSeekImageWidth / 2),
+                                                        (nScreenHeight -
+                                                         nFlickSeekImageHeight / 2) / 2);
+               } else {
+                       evas_object_move(pNormalView->pFlickJumpSeek,
+                                                        nFlickSeekLeftMargin +
+                                                        nFlickSeekImageWidth / 2,
+                                                        (nScreenHeight -
+                                                         nFlickSeekImageHeight / 2) / 2);
+               }
+       }
+}
+
+static void __vp_normal_gesture_flick_animation_done_cb(void *data,
+                                                                                                               Evas_Object * obj,
+                                                                                                               const char
+                                                                                                               *emission,
+                                                                                                               const char *source)
+{
+       if (!data) {
+               VideoLogError("data is NULL");
+               return;
+       }
+       NormalView *pNormalView = (NormalView *) data;
+
+       if (emission) {
+               if (!g_strcmp0(emission, "rew_animation_done")
+                       || !g_strcmp0(emission, "ff_animation_done")) {
+                       if (pNormalView->bFlickWaiting == TRUE) {
+                               if (pNormalView->bFlickRewind == TRUE) {
+                                       if (pNormalView->pFlickJumpSeek) {
+                                               elm_object_signal_emit(pNormalView->pFlickJumpSeek,
+                                                                                          VP_NORMAL_SIGNAL_FLICKJUMP_FF,
+                                                                                          "*");
+                                       }
+                               } else {
+                                       if (pNormalView->pFlickJumpSeek) {
+                                               elm_object_signal_emit(pNormalView->pFlickJumpSeek,
+                                                                                          VP_NORMAL_SIGNAL_FLICKJUMP_REW,
+                                                                                          "*");
+                                       }
+                               }
+                       } else {
+                               VP_EVAS_DEL(pNormalView->pFlickJumpSeek);
+                       }
+               }
+       }
+}
+
+static Evas_Event_Flags __vp_normal_gesture_flick_end_cb(void *pUserData,
+                                                                                                                void *event_info)
+{
+       Elm_Gesture_Line_Info *pEvent = (Elm_Gesture_Line_Info *) event_info;
+
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       VideoLogWarning("gesture flick end");
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       if (pNormalView->bLockScreen) {
+               VideoLogError("Skip for lock mode");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       if (pNormalView->pFlickJumpSeek || pNormalView->nFlickPressX1 == 0
+               || pNormalView->nFlickPressY1 == 0) {
+               VideoLogWarning("seek is not complete. ignore signal");
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       if (pNormalView->fZoomValue > 1.0) {
+               VideoLogWarning("Current zoom level : [%f]",
+                                               pNormalView->fZoomValue);
+               return EVAS_EVENT_FLAG_NONE;
+       }
+
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB &&
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_PREVIEW &&
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MESSAGE &&
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_EMAIL &&
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+               VideoLogWarning
+                       ("pNormalView->nLaunchingType : [%d]. not support gesture flick in this mode",
+                        pNormalView->nLaunchingType);
+               return EVAS_EVENT_FLAG_NONE;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_NORMAL_MAIN_EDJ);
+       free(path);
+       pNormalView->pFlickJumpSeek = elm_layout_add(pNormalView->pMainLayout);
+       elm_layout_file_set(pNormalView->pFlickJumpSeek, edj_path,
+                                               VP_PLAY_EDJ_GROUP_FLICKJUMP_SEEK);
+       evas_object_size_hint_weight_set(pNormalView->pFlickJumpSeek,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pNormalView->pFlickJumpSeek,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_event_callback_add(pNormalView->pFlickJumpSeek,
+                                                                  EVAS_CALLBACK_DEL,
+                                                                  __vp_normal_flickjump_seek_del_cb,
+                                                                  (void *) pNormalView);
+       edje_object_signal_callback_add(_EDJ(pNormalView->pFlickJumpSeek), "*",
+                                                                       "*",
+                                                                       __vp_normal_gesture_flick_animation_done_cb,
+                                                                       (void *) pNormalView);
+       evas_object_hide(pNormalView->pFlickJumpSeek);
+
+       if (pNormalView->nFlickPressX1 > pEvent->momentum.x2) {
+               pNormalView->bFlickRewind = TRUE;
+               elm_object_signal_emit(pNormalView->pFlickJumpSeek,
+                                                          VP_NORMAL_SIGNAL_FLICKJUMP_FF, "*");
+               __vp_normal_flickjump_layout_position(pNormalView);
+               __vp_normal_flickjump_seek(pNormalView, TRUE);
+       } else if (pNormalView->nFlickPressX1 < pEvent->momentum.x2) {
+               pNormalView->bFlickRewind = FALSE;
+               elm_object_signal_emit(pNormalView->pFlickJumpSeek,
+                                                          VP_NORMAL_SIGNAL_FLICKJUMP_REW, "*");
+               __vp_normal_flickjump_layout_position(pNormalView);
+               __vp_normal_flickjump_seek(pNormalView, FALSE);
+       }
+
+       char *szTxt = NULL;
+       char *szPdSECS = VP_PLAY_STRING_PD_SECS;
+       szTxt = g_strdup_printf(szPdSECS, 5);
+
+       if (pNormalView->bFlickRewind == FALSE) {
+               elm_object_part_text_set(pNormalView->pFlickJumpSeek,
+                                                                VP_PLAY_PART_FLICKJUMP_SEEK_REW_TEXT,
+                                                                szTxt);
+       } else {
+               elm_object_part_text_set(pNormalView->pFlickJumpSeek,
+                                                                VP_PLAY_PART_FLICKJUMP_SEEK_FF_TEXT,
+                                                                szTxt);
+       }
+       VP_FREE(szTxt);
+
+       evas_object_show(pNormalView->pFlickJumpSeek);
+
+       pNormalView->nFlickPressX1 = 0;
+       pNormalView->nFlickPressY1 = 0;
+
+
+       return EVAS_EVENT_FLAG_NONE;
+}
+
+static Evas_Event_Flags __vp_normal_gesture_flick_abort_cb(void *pUserData,
+                                                                                                                  void
+                                                                                                                  *event_info)
+{
+       VideoLogWarning("flick abort");
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       if (pNormalView->bFlickWaiting == FALSE) {
+               pNormalView->nFlickPressX1 = 0;
+               pNormalView->nFlickPressY1 = 0;
+       }
+
+       return EVAS_EVENT_FLAG_NONE;
+}
+#endif                                                 // FLICK_JUMP
+
+#ifdef K_FEATURE_MICROSEEK
+static void __vp_normal_progress_microseek_textlayout_del_cb(void
+                                                                                                                        *pUserData,
+                                                                                                                        Evas * e,
+                                                                                                                        Evas_Object *
+                                                                                                                        obj,
+                                                                                                                        void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       evas_object_event_callback_del(obj, EVAS_CALLBACK_DEL,
+                                                                  __vp_normal_progress_microseek_textlayout_del_cb);
+       NormalView *pNormalView = (NormalView *) pUserData;
+       pNormalView->pMicroSeekTextLayout = NULL;
+}
+
+static void __vp_normal_progress_microseek_imagelayout_del_cb(void
+                                                                                                                         *pUserData,
+                                                                                                                         Evas * e,
+                                                                                                                         Evas_Object *
+                                                                                                                         obj,
+                                                                                                                         void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       evas_object_event_callback_del(obj, EVAS_CALLBACK_DEL,
+                                                                  __vp_normal_progress_microseek_imagelayout_del_cb);
+       NormalView *pNormalView = (NormalView *) pUserData;
+       pNormalView->pMicroSeekImageLayout = NULL;
+}
+
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_progress_mouse_down_cb(void *pUserData, Evas * e,
+                                                                                          Evas_Object * pObj,
+                                                                                          void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       NormalView *pNormalView = (NormalView *) pUserData;
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+       VideoLogWarning("Mouse Down");
+
+       if (pNormalView->bIsRealize == FALSE) {
+               VideoLogWarning("Skip for not realized");
+               return;
+       }
+
+       if (pNormalView->bHLSMode) {
+               VideoLogWarning("Skip for HLS");
+               return;
+       }
+
+       Evas_Event_Mouse_Down *pMouseDownEvent =
+               (Evas_Event_Mouse_Down *) pEvent;
+
+       double dRatio =
+               _vp_play_normal_view_get_mouse_pos_ratio(pNormalView->
+                                                                                                pProgressEvent,
+                                                                                                pMouseDownEvent->canvas.
+                                                                                                x);
+       elm_object_signal_emit(pNormalView->pProgressEvent,
+                                                  VP_NORMAL_SIGNAL_PROGRESS_PRESS, "*");
+
+       VP_EVAS_TIMER_DEL(pNormalView->pProgressTimer);
+       pNormalView->pProgressTimer = NULL;
+
+       int nCurPos = dRatio * pNormalView->nDuration;
+
+#ifdef K_FEATURE_MICROSEEK
+       pNormalView->nPrevCanvasX = (double) pMouseDownEvent->canvas.x;
+       pNormalView->nPrevPositionX = (double) pNormalView->nPrevCanvasX;
+
+       VP_EVAS_DEL(pNormalView->pMicroSeekTextLayout);
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_NORMAL_MAIN_EDJ);
+       free(path);
+       pNormalView->pMicroSeekTextLayout =
+               elm_layout_add(pNormalView->pMainLayout);
+       elm_layout_file_set(pNormalView->pMicroSeekTextLayout, edj_path,
+                                               VP_PLAY_EDJ_GROUP_MICROSEEK_TEXT);
+       evas_object_size_hint_weight_set(pNormalView->pMicroSeekTextLayout,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pNormalView->pMicroSeekTextLayout,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_event_callback_add(pNormalView->pMicroSeekTextLayout,
+                                                                  EVAS_CALLBACK_DEL,
+                                                                  __vp_normal_progress_microseek_textlayout_del_cb,
+                                                                  (void *) pNormalView);
+       evas_object_hide(pNormalView->pMicroSeekTextLayout);
+
+       pNormalView->pMicroSeekImageLayout =
+               elm_layout_add(pNormalView->pMainLayout);
+       elm_layout_file_set(pNormalView->pMicroSeekImageLayout, edj_path,
+                                               VP_PLAY_EDJ_GROUP_MICROSEEK_IMAGE);
+       evas_object_size_hint_weight_set(pNormalView->pMicroSeekImageLayout,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pNormalView->pMicroSeekImageLayout,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_event_callback_add(pNormalView->pMicroSeekImageLayout,
+                                                                  EVAS_CALLBACK_DEL,
+                                                                  __vp_normal_progress_microseek_imagelayout_del_cb,
+                                                                  (void *) pNormalView);
+       evas_object_hide(pNormalView->pMicroSeekImageLayout);
+
+#endif
+
+       vp_play_progressbar_set_position(pNormalView->pProgressbar, nCurPos);
+
+       pNormalView->bProgressDown = TRUE;
+
+       if (vp_play_util_check_streaming(pNormalView->szMediaURL)) {
+               if (pNormalView->bManualPause == FALSE) {
+                       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");
+                       }
+                       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);
+                       }
+               }
+
+               return;
+       } else {
+               if (pNormalView->bManualPause == FALSE) {
+                       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");
+                       }
+                       VideoLogInfo("nState:%d", nState);
+                       if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+                               vp_mm_player_pause(pNormalView->pPlayerHandle);
+                               if (pPlayView && pPlayView->win_minicon) {
+                                       vp_minicontroller_update_control(pPlayView);
+                               }
+                               if (pPlayView && pPlayView->win_lockmini) {
+                                       vp_lockscreenmini_update_control(pPlayView);
+                               }
+                       }
+               }
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_progress_mouse_up_cb(void *pUserData, Evas * e,
+                                                                                        Evas_Object * pObj,
+                                                                                        void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       NormalView *pNormalView = (NormalView *) pUserData;
+#ifdef K_FEATURE_MICROSEEK
+#else
+       Evas_Event_Mouse_Up *pMouseUpEvent = (Evas_Event_Mouse_Up *) pEvent;
+#endif
+
+       VideoLogWarning("Mouse Up");
+       if (pNormalView->bIsRealize == FALSE
+               || pNormalView->bProgressDown == FALSE) {
+               VideoLogWarning("Skip for not realized or prgress down");
+               return;
+       }
+       if (pNormalView->bHLSMode) {
+               VideoLogWarning("Skip for HLS");
+               return;
+       }
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+#ifdef K_FEATURE_MICROSEEK
+       double dRatio =
+               _vp_play_normal_view_get_mouse_pos_ratio(pNormalView->
+                                                                                                pProgressEvent,
+                                                                                                pNormalView->
+                                                                                                nPrevPositionX);
+#else
+       double dRatio =
+               _vp_play_normal_view_get_mouse_pos_ratio(pNormalView->
+                                                                                                pProgressEvent,
+                                                                                                pMouseUpEvent->canvas.x);
+#endif
+       elm_object_signal_emit(pNormalView->pProgressEvent,
+                                                  VP_NORMAL_SIGNAL_PROGRESS_UNPRESS, "*");
+       if (fabs(dRatio - 1.0) < 1.0e-6) {
+               VideoLogWarning("It is the end of the video!");
+               __vp_normal_completed_cb(pNormalView);
+               return;
+       }
+
+       int nCurPos = dRatio * pNormalView->nDuration;
+
+#ifdef K_FEATURE_MICROSEEK
+       VP_EVAS_DEL(pNormalView->pMicroSeekTextLayout);
+       VP_EVAS_DEL(pNormalView->pMicroSeekImageLayout);
+
+       pNormalView->nPrevCanvasX = 0.0;
+       pNormalView->nPrevPositionX = 0.0;
+#endif
+
+       vp_play_progressbar_set_position(pNormalView->pProgressbar, nCurPos);
+
+       pNormalView->bProgressDown = FALSE;
+
+       if (vp_play_util_check_streaming(pNormalView->szMediaURL)) {
+               if (pNormalView->bSeekComplete == FALSE) {
+                       pNormalView->nWaitPos = nCurPos;
+                       VideoLogWarning("== REAL SEEK SET == [%d]",
+                                                       pNormalView->nWaitPos);
+               } else {
+                       VideoLogWarning("== REAL SEEK == [%d]", nCurPos);
+
+                       pNormalView->bBufferingComplete = TRUE;
+
+                       if (vp_mm_player_set_position
+                               (pNormalView->pPlayerHandle, nCurPos)) {
+                               pNormalView->nWaitPos = -1;
+                               pNormalView->bSeekComplete = FALSE;
+                               if (pNormalView->pLoadingAni) {
+                                       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+                                       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+                               }
+                       } else {
+                               _vp_play_normal_view_update_progress_value(pNormalView);
+                       }
+               }
+
+               return;
+       }
+
+       if (pNormalView->bSeekComplete == FALSE) {
+               pNormalView->nWaitPos = nCurPos;
+               VideoLogWarning("== REAL SEEK SET == [%d]", pNormalView->nWaitPos);
+       } else {
+               VideoLogWarning("== REAL SEEK == [%d]", nCurPos);
+               if (vp_mm_player_set_position(pNormalView->pPlayerHandle, nCurPos)) {
+                       pNormalView->nWaitPos = -1;
+                       pNormalView->bSeekComplete = FALSE;
+                       if (pNormalView->pLoadingAni) {
+                               VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+                               VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+                       }
+               } else {
+                       _vp_play_normal_view_update_progress_value(pNormalView);
+               }
+       }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_progress_del_cb(void *pUserData, Evas * e,
+                                                                               Evas_Object * pObj, void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       VideoLogError("pNormalView->pProgressEvent is free");
+       NormalView *pNormalView = (NormalView *) pUserData;
+       pNormalView->pProgressEvent = NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_progress_mouse_move_cb(void *pUserData, Evas * e,
+                                                                                          Evas_Object * pObj,
+                                                                                          void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       Evas_Event_Mouse_Move *pMouseMoveEvent =
+               (Evas_Event_Mouse_Move *) pEvent;
+       if (pNormalView->bHLSMode) {
+               VideoLogWarning("Skip for HLS");
+               return;
+       }
+
+       if (pNormalView->bIsRealize == FALSE
+               || pNormalView->bProgressDown == FALSE) {
+               VideoLogWarning("Skip for not realized or prgress down");
+               return;
+       }
+
+       if (pNormalView->bLockScreen) {
+               VideoLogError("Skip for lock mode");
+               __vp_normal_progress_mouse_up_cb(pUserData, NULL, NULL, pEvent);
+               return;
+       }
+
+       if (pNormalView->bProgressDown == FALSE
+               || pNormalView->bIsRealize == FALSE) {
+               VideoLogWarning("Skip for not realized or prgress down");
+               return;
+       }
+#ifdef K_FEATURE_MICROSEEK
+       bool bLandscape = FALSE;
+       int nScreenWidth = 0;
+       int nScreenHeight = 0;
+       int nControllerHeight = 0;
+       int nSeek_Height = 0;
+       if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90
+               || pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+               bLandscape = TRUE;
+               nScreenWidth = 1280;
+               nScreenHeight = 720;
+               nControllerHeight = 180;
+               nSeek_Height =
+                       (VP_NORMAL_MICROSEEK_TEXT_HEIGHT +
+                        ((6 + 70 + 40) * elm_config_scale_get()));
+       } else {
+               nScreenWidth = 720;
+               nScreenHeight = 1280;
+               nControllerHeight = 293;
+               nSeek_Height =
+                       (VP_NORMAL_MICROSEEK_TEXT_HEIGHT +
+                        ((6 + 70 + 20) * elm_config_scale_get()));
+       }
+
+       double dDistance = 0;
+       SeekLevel Level = SEEK_LEVEL_NORMAL;
+       dDistance =
+               (pMouseMoveEvent->cur.canvas.x - pNormalView->nPrevCanvasX);
+
+       if (pMouseMoveEvent->cur.canvas.y >
+               (nScreenHeight - nControllerHeight)) {
+               Level = SEEK_LEVEL_NORMAL;
+       } else if (pMouseMoveEvent->cur.canvas.y >
+                          (nScreenHeight - nControllerHeight - nSeek_Height)) {
+               Level = SEEK_LEVEL_HALF;
+               dDistance = dDistance / 2;
+       } else {
+               Level = SEEK_LEVEL_QUARTER;
+               dDistance = dDistance / 4;
+       }
+
+       pNormalView->nPrevCanvasX = (double) pMouseMoveEvent->cur.canvas.x;
+
+       // Calc position
+       if (Level == SEEK_LEVEL_NORMAL) {
+               pNormalView->nPrevPositionX =
+                       (double) pMouseMoveEvent->cur.canvas.x;
+       } else {
+               pNormalView->nPrevPositionX =
+                       pNormalView->nPrevPositionX + dDistance;
+       }
+
+
+       if (Level == SEEK_LEVEL_NORMAL) {
+               if (pNormalView->pMicroSeekTextLayout) {
+                       elm_object_signal_emit(pNormalView->pMicroSeekTextLayout,
+                                                                  VP_NORMAL_SIGNAL_MICROSEEK_TEXT_HIDE,
+                                                                  "*");
+               }
+               if (pNormalView->pMicroSeekImageLayout) {
+                       elm_object_signal_emit(pNormalView->pMicroSeekImageLayout,
+                                                                  VP_NORMAL_SIGNAL_MICROSEEK_IMAGE_HIDE,
+                                                                  "*");
+               }
+       } else {
+               Evas_Coord nTextWidth = -1, nTextHeight = -1;
+               // Text  Layout move
+               if (pNormalView->pMicroSeekTextLayout) {
+                       char *szTxt = NULL;
+                       char *szPsSpeed = VP_PLAY_STRING_SCRUBBING_AT_PSX_SPEED;
+
+                       if (Level == SEEK_LEVEL_HALF) {
+                               szTxt =
+                                       g_strdup_printf(szPsSpeed, VP_NORMAL_SZ_HALF_SPEED);
+                       } else if (Level == SEEK_LEVEL_QUARTER) {
+                               szTxt =
+                                       g_strdup_printf(szPsSpeed, VP_NORMAL_SZ_QUARTER_SPEED);
+                       }
+
+                       elm_object_part_text_set(pNormalView->pMicroSeekTextLayout,
+                                                                        VP_NORMAL_SIGNAL_MICROSEEK_SPEED_TEXT,
+                                                                        szTxt);
+                       edje_object_size_min_restricted_calc(_EDJ
+                                                                                                (pNormalView->
+                                                                                                 pMicroSeekTextLayout),
+                                                                                                &nTextWidth, &nTextHeight,
+                                                                                                nTextWidth, nTextHeight);
+                       evas_object_resize(pNormalView->pMicroSeekTextLayout,
+                                                          nTextWidth, nTextHeight);
+
+                       int nTextPositionX =
+                               (int) pNormalView->nPrevPositionX - nTextWidth / 2;
+
+                       if (nTextPositionX < 0) {
+                               nTextPositionX = 0;
+                       } else if (nTextPositionX + nTextWidth > nScreenWidth) {
+                               nTextPositionX = nScreenWidth - nTextWidth;
+                       }
+
+                       if (Level == SEEK_LEVEL_HALF) {
+                               evas_object_move(pNormalView->pMicroSeekTextLayout,
+                                                                nTextPositionX,
+                                                                nScreenHeight - nControllerHeight -
+                                                                nSeek_Height);
+                       } else if (Level == SEEK_LEVEL_QUARTER) {
+                               evas_object_move(pNormalView->pMicroSeekTextLayout,
+                                                                nTextPositionX,
+                                                                nScreenHeight - nControllerHeight -
+                                                                nSeek_Height * 2);
+                       }
+                       elm_object_signal_emit(pNormalView->pMicroSeekTextLayout,
+                                                                  VP_NORMAL_SIGNAL_MICROSEEK_TEXT_SHOW,
+                                                                  "*");
+                       evas_object_show(pNormalView->pMicroSeekTextLayout);
+
+                       VP_FREE(szTxt);
+
+                       // Image  Layout move
+                       if (pNormalView->pMicroSeekImageLayout) {
+                               Evas_Coord nImageWidth = -1, nImageHeight = -1;
+                               edje_object_size_min_restricted_calc(_EDJ
+                                                                                                        (pNormalView->
+                                                                                                         pMicroSeekImageLayout),
+                                                                                                        &nImageWidth,
+                                                                                                        &nImageHeight,
+                                                                                                        nImageWidth,
+                                                                                                        nImageHeight);
+                               evas_object_resize(pNormalView->pMicroSeekImageLayout,
+                                                                  nImageWidth, nImageHeight);
+
+                               int nImagePositionX =
+                                       (int) pNormalView->nPrevPositionX - nImageWidth / 2;
+
+                               int nImageLeftPadding = 0;
+                               int nImageRightPadding = 0;
+                               if (bLandscape) {
+                                       nImageLeftPadding = 28 + 112;
+                                       nImageRightPadding = 28 + 162;
+                               } else {
+                                       nImageLeftPadding = 6;
+                                       nImageRightPadding = 26;
+                               }
+
+                               if (nImagePositionX < nImageLeftPadding) {
+                                       nImagePositionX = nImageLeftPadding;
+                               } else if (nImagePositionX >
+                                                  nScreenWidth - nImageRightPadding) {
+                                       nImagePositionX = nScreenWidth - nImageRightPadding;
+                               }
+
+                               if (Level == SEEK_LEVEL_HALF) {
+                                       evas_object_move(pNormalView->pMicroSeekImageLayout,
+                                                                        nImagePositionX,
+                                                                        nScreenHeight - nControllerHeight -
+                                                                        nSeek_Height + nTextHeight + 6);
+                               } else if (Level == SEEK_LEVEL_QUARTER) {
+                                       evas_object_move(pNormalView->pMicroSeekImageLayout,
+                                                                        nImagePositionX,
+                                                                        nScreenHeight - nControllerHeight -
+                                                                        nSeek_Height * 2 + nTextHeight + 6);
+                               }
+                               elm_object_signal_emit(pNormalView->pMicroSeekImageLayout,
+                                                                          VP_NORMAL_SIGNAL_MICROSEEK_IMAGE_SHOW,
+                                                                          "*");
+                               evas_object_show(pNormalView->pMicroSeekImageLayout);
+                       }
+               }
+       }
+
+       double dRatio =
+               _vp_play_normal_view_get_mouse_pos_ratio(pNormalView->
+                                                                                                pProgressEvent,
+                                                                                                (int) pNormalView->
+                                                                                                nPrevPositionX,
+                                                                                                bLandscape);
+
+#else
+
+       double dRatio =
+               _vp_play_normal_view_get_mouse_pos_ratio(pNormalView->
+                                                                                                pProgressEvent,
+                                                                                                pMouseMoveEvent->cur.
+                                                                                                canvas.x);
+#endif
+       int nCurPos = dRatio * pNormalView->nDuration;
+
+       vp_play_progressbar_set_position(pNormalView->pProgressbar, nCurPos);
+
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB ||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+               return;
+       }
+
+       if (pNormalView->bSeekComplete == FALSE) {
+               pNormalView->nWaitPos = nCurPos;
+       } else {
+               VideoLogWarning("== I FRMAE SEEK == [%d]", nCurPos);
+               if (vp_mm_player_set_position_by_key_frame
+                       (pNormalView->pPlayerHandle, nCurPos)) {
+                       pNormalView->nWaitPos = -1;
+                       pNormalView->bSeekComplete = FALSE;
+               }
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_focus_key_down_cb(void *pUserData, Evas * e,
+                                                                                 Evas_Object * pObj, void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+
+       Evas_Event_Key_Down *ev = pEvent;
+
+       if (!ev) {
+               return;
+       }
+       if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) {
+               return;
+       }
+
+       VideoLogInfo("KEY: %s", ev->keyname);
+
+       if (!strcmp(ev->keyname, "Left")) {
+               if (pNormalView->bKeySpeed == FALSE) {
+                       vp_play_normal_view_ff_rew_keyboard_longpress_event_cb
+                               (pPlayView->pNormalView, FALSE, FALSE);
+                       pNormalView->bKeySpeed = TRUE;
+               }
+       } else if (!strcmp(ev->keyname, "Right")) {
+               if (pNormalView->bKeySpeed == FALSE) {
+                       vp_play_normal_view_ff_rew_keyboard_longpress_event_cb
+                               (pPlayView->pNormalView, FALSE, TRUE);
+                       pNormalView->bKeySpeed = TRUE;
+               }
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_focus_key_up_cb(void *pUserData, Evas * e,
+                                                                               Evas_Object * pObj, void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+
+       Evas_Event_Key_Down *ev = pEvent;
+
+       if (!ev) {
+               return;
+       }
+       if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) {
+               return;
+       }
+
+       VideoLogInfo("KEY: %s", ev->keyname);
+
+       if (!strcmp(ev->keyname, "Left")) {
+               if (pNormalView->bKeySpeed == TRUE) {
+                       vp_play_normal_view_ff_rew_keyboard_longpress_event_cb
+                               (pPlayView->pNormalView, TRUE, FALSE);
+                       pNormalView->bKeySpeed = FALSE;
+               }
+       } else if (!strcmp(ev->keyname, "Right")) {
+               if (pNormalView->bKeySpeed == TRUE) {
+                       vp_play_normal_view_ff_rew_keyboard_longpress_event_cb
+                               (pPlayView->pNormalView, TRUE, TRUE);
+                       pNormalView->bKeySpeed = FALSE;
+               }
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+bool vp_normal_rotate_icon_timer_cb(void *pUserData)
+{
+       VideoLogError("vp_normal_rotate_icon_timer_cb");
+       _vp_play_normal_view_hide_layout(curr_Handle, TRUE);
+       return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_normal_hide_layout_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+       VideoLogWarning("");
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       pNormalView->pHideTimer = NULL;
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+       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");
+       }
+
+       if ((nState != VP_MM_PLAYER_STATE_PLAYING)
+               && (nState != VP_MM_PLAYER_STATE_PAUSED)) {
+               return EINA_FALSE;
+       }
+
+       _vp_play_normal_view_hide_layout(pNormalView, FALSE);
+
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_normal_hide_layout_finish_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+       VideoLogWarning("");
+       NormalView *pNormalView = (NormalView *) pUserData;
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (pNormalView->pSubtitleTimer) {
+               VideoLogError("Skip for Subtitle");
+               return EINA_TRUE;
+       }
+
+       if (pNormalView->pVolumeJob) {
+               VideoLogError("Skip for pVolumeJob");
+               return EINA_TRUE;
+       }
+
+       if (pNormalView->pBrightnessJob) {
+               VideoLogError("Skip for pBrightnessJob");
+               return EINA_TRUE;
+       }
+
+       pNormalView->pHideFinishTimer = NULL;
+
+       if (pNormalView->pImageBufferObj == NULL &&
+               pNormalView->bIsPopupShow == FALSE &&
+               pNormalView->bIsSubtitleShow == FALSE &&
+               pPlayView->bMouseOut == FALSE &&
+               pNormalView->bVideoOnlyMode == FALSE &&
+               pNormalView->bCaptureMode == FALSE) {
+               vp_play_util_fb_visible_off(pPlayView->pWin, FALSE);
+       }
+       vp_device_set_frame_rate(40);
+
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_normal_subtitle_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       int nPosition = 0;
+       if (!vp_mm_player_get_position(pNormalView->pPlayerHandle, &nPosition)) {
+               VideoLogError("vp_mm_player_get_position is fail");
+       }
+
+       if (nPosition > pNormalView->dSubtitleStartTime &&
+               nPosition < pNormalView->dSubtitleEndTime) {
+               return EINA_TRUE;
+       }
+
+       pNormalView->pSubtitleTimer = NULL;
+
+       vp_play_subtitle_set_text(pNormalView->pSubtitle, NULL);
+
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_normal_dlna_speed_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+       VideoLogWarning("");
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       VP_EVAS_DEL(pNormalView->pPopup);
+       pNormalView->pPopup = NULL;
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+
+               pNormalView->pSpeedTimer = NULL;
+               return EINA_FALSE;
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       pNormalView->pPopup =
+               vp_popup_create(pPlayView->pWin,
+                                               POPUP_STYLE_DEFAULT_WITH_CANCEL_BTN, NULL,
+                                               VP_PLAY_STRING_UNABLE_TO_FF_REW, 0.0, NULL,
+                                               __vp_normal_popup_key_event_cb,
+                                               __vp_normal_popup_mouse_event_cb, pNormalView);
+
+       Evas_Object *pBtn = NULL;
+       pBtn = elm_button_add(pNormalView->pPopup);
+       elm_object_style_set(pBtn, "popup_button/default");
+       elm_object_domain_translatable_text_set(pBtn, VP_SYS_STR_PREFIX,
+                                                                                       VP_PLAY_STRING_COM_OK_IDS);
+       elm_object_part_content_set(pNormalView->pPopup, "button1", pBtn);
+       evas_object_smart_callback_add(pBtn, "clicked",
+                                                                  __vp_normal_popup_key_event_cb,
+                                                                  (void *) pNormalView);
+       evas_object_show(pNormalView->pPopup);
+
+       pNormalView->pSpeedTimer = NULL;
+
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_normal_speed_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+       VideoLogWarning("");
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return EINA_TRUE;
+       }
+
+       if (pNormalView->bSpeedDown) {
+               pNormalView->nSpeedValue++;
+       }
+       //SPEED: *2, *8, *32
+       //int nSeedVal = pNormalView->nSpeedValue - (pNormalView->nSpeedValue%2);
+
+       //SPEED: *2, *4, *8, *16, *32
+       int nSeedVal = pNormalView->nSpeedValue;
+
+       int nStep = (int) pow(2.0, (double) (nSeedVal - 1));
+
+       VideoLogWarning("pNormalView->nSpeedValue : %d",
+                                       pNormalView->nSpeedValue);
+       if (pNormalView->nSpeedValue >= 2) {
+
+               if (pPlayView->szAutoPlay
+                       && !strcmp(pPlayView->szAutoPlay, "TRUE")) {
+                       pPlayView->bResetPlaySpeed = TRUE;
+               }
+
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_SPEED_SHOW, "*");
+       } else {
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+               if (pNormalView->bManualPause == FALSE) {
+                       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");
+                       }
+
+                       if (nState != VP_MM_PLAYER_STATE_PLAYING) {
+                               if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+                                       VideoLogError("Pause Fail");
+                               }
+                               if (pPlayView && pPlayView->win_minicon) {
+                                       vp_minicontroller_update_control(pPlayView);
+                               }
+                               if (pPlayView && pPlayView->win_lockmini) {
+                                       vp_lockscreenmini_update_control(pPlayView);
+                               }
+                               _vp_play_normal_view_set_play_state(pNormalView);
+                               _vp_play_normal_view_on_capture_mode(pNormalView);
+                       }
+                       pNormalView->pSpeedTimer = NULL;
+               }
+
+               return EINA_FALSE;
+       }
+
+       if (nStep > VP_NORMAL_SPEED_VALUE_MAX) {
+               nStep = VP_NORMAL_SPEED_VALUE_MAX;
+       }
+
+       char szTxt[5] = { 0, };
+       snprintf(szTxt, 5, "%d X", nStep);
+       elm_object_part_text_set(pNormalView->pMainLayout,
+                                                        VP_PLAY_PART_NORMAL_SPEED_TXT, szTxt);
+
+       if (pNormalView->bSeekComplete == FALSE) {
+               VideoLogError("bSeekComplete is fail");
+               return EINA_TRUE;
+       }
+
+       if (pNormalView->nSpeedValue > 1) {
+               // during FAST FF/REW moving(player state is paused). don't allow sleep mode
+               vp_play_util_set_lock_power_key();
+       }
+
+       int nSetPosition = 0;
+       int nCurPosition = 0;
+
+       if (!vp_mm_player_get_position
+               (pNormalView->pPlayerHandle, &nCurPosition)) {
+               VideoLogError("vp_mm_player_get_position is fail");
+               return EINA_TRUE;
+       }
+
+       if (pNormalView->nDuration <= nCurPosition) {
+               VideoLogWarning("nCurPosition : %d, Duration : %d", nCurPosition,
+                                               pNormalView->nDuration);
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+               _vp_play_normal_view_on_next_play(pNormalView, FALSE);
+               pNormalView->pSpeedTimer = NULL;
+               return EINA_FALSE;
+       }
+
+       if (nCurPosition <= 0 && pNormalView->bSpeedFF == FALSE) {
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+               if (pNormalView->bManualPause == FALSE
+                       && pNormalView->bSpeedDown == FALSE) {
+                       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");
+                       }
+
+                       if (nState != VP_MM_PLAYER_STATE_PLAYING) {
+                               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);
+                       }
+                       pNormalView->pSpeedTimer = NULL;
+                       return EINA_FALSE;
+               }
+
+               return EINA_TRUE;
+       }
+
+       if (pNormalView->bSpeedFF) {
+               nSetPosition = nCurPosition + (nStep * 1000);
+       } else {
+               nSetPosition = nCurPosition - (nStep * 1000);
+       }
+
+       if (pNormalView->nDuration < nSetPosition) {
+               nSetPosition = pNormalView->nDuration;
+               VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+       }
+
+       if (nSetPosition < 0) {
+               nSetPosition = 0;
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+       }
+       if (pNormalView->pProgressTimer) {
+               VP_EVAS_TIMER_DEL(pNormalView->pProgressTimer);
+       }
+
+       if (vp_mm_player_set_position_by_key_frame
+               (pNormalView->pPlayerHandle, nSetPosition)) {
+               pNormalView->bSeekComplete = FALSE;
+               pNormalView->nCurPosition = nSetPosition;
+               vp_play_progressbar_set_position(pNormalView->pProgressbar,
+                                                                                nSetPosition);
+       }
+
+       return EINA_TRUE;
+}
+
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param emission
+ * @param source
+ */
+static void __vp_normal_show_finish_cb(void *pUserData, Evas_Object * pObj,
+                                                                          const char *emission,
+                                                                          const char *source)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       VideoLogWarning("");
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param emission
+ * @param source
+ */
+static void __vp_normal_hide_finish_cb(void *pUserData, Evas_Object * pObj,
+                                                                          const char *emission,
+                                                                          const char *source)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       VideoLogWarning("");
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+       if (!pPlayView->pWin) {
+               VideoLogError("pPlayView->pWin is NULL");
+               return;
+       }
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+       pNormalView->pHideFinishTimer =
+               ecore_timer_add(VP_NORMAL_HIDE_LAYOUT_FINISH_TIMER_INTERVAL,
+                                               __vp_normal_hide_layout_finish_timer_cb,
+                                               (void *) pNormalView);
+
+#ifndef SUBTITLE_K_FEATURE
+       if (pNormalView->nDisplayMode != VP_MM_PLAYER_DISPLAY_FULL_SCREEN) {
+               if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_NONE
+                       || pNormalView->nRotate == VIDEO_PLAY_ROTATE_180) {
+                       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_SUBTITLE_PORTRAIT,
+                                                                  "*");
+               } else {
+                       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_SUBTITLE_HIDE,
+                                                                  "*");
+               }
+       } else {
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_SUBTITLE_HIDE, "*");
+       }
+#endif
+}
+
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_normal_progressbar_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       if (!_vp_play_normal_view_update_progress_value(pNormalView)) {
+               pNormalView->pProgressTimer = NULL;
+               return EINA_FALSE;
+       }
+
+       return EINA_TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_normal_lockscreen_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                  VP_NORMAL_SIGNAL_LOCKSCREEN_HIDE, "*");
+
+       pNormalView->pLockScreenTimer = NULL;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_normal_prepare_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       VideoLogWarning("");
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+       if (pNormalView->pPreparePipe != NULL) {
+               ecore_pipe_write(pNormalView->pPreparePipe, pNormalView,
+                                                sizeof(NormalView));
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_normal_completed_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       VideoLogWarning("");
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+
+       if (pPlayView->szAutoPlay != NULL) {
+               if (!strcmp(pPlayView->szAutoPlay, "TRUE")) {
+                       VideoLogError
+                               ("===========================vp_is_auto_play_on is True");
+                       _vp_play_normal_view_on_next_play(pNormalView, TRUE);
+               } else {
+                       VideoLogError
+                               ("===========================vp_is_auto_play_on is False");
+                       _vp_play_normal_view_on_next_play(pNormalView, FALSE);
+               }
+       } else {
+               VideoLogError
+                       ("===========================vp_is_auto_play_on is False");
+               _vp_play_normal_view_on_next_play(pNormalView, FALSE);
+       }
+
+#ifdef FLICK_JUMP
+       pNormalView->bFlickWaiting = FALSE;
+       VP_EVAS_DEL(pNormalView->pFlickJumpSeek);
+#endif
+
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+               vp_multi_path_set_item_position(pNormalView->szMediaURL, 0,
+                                                                               pPlayView->pMultiPathList);
+       }
+
+       vp_mm_player_unrealize(pNormalView->pPlayerHandle);
+
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MESSAGE ||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_EMAIL ||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_PREVIEW) {
+               if (!pPlayView->pFunc) {
+                       VideoLogError("pPlayView pFunc is NULL");
+                       return;
+               }
+
+               if (!pPlayView->pFunc->vp_play_func_exit) {
+                       VideoLogError("pPlayView exit Func is NULL");
+                       return;
+               }
+               vp_device_set_screen_off(FALSE);
+               vp_play_util_set_unlock_power_key();
+
+               VideoLogWarning("== Auto Off ==");
+
+               pPlayView->pFunc->vp_play_func_exit(pPlayView);
+
+               return;
+       }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuf
+ * @param nByte
+ */
+static void __vp_play_normal_view_seek_pipe_cb(void *pUserData, void *pBuf,
+                                                                                          int nByte)
+{
+       if (!pUserData) {
+               VideoLogError("NormalView handle is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       if (pNormalView->nWaitPos >= 0) {
+               if (pNormalView->bProgressDown == TRUE) {
+                       VideoLogWarning("== I-FRAME SEEK ==[%d]",
+                                                       pNormalView->nWaitPos);
+                       if (vp_mm_player_set_position_by_key_frame
+                               (pNormalView->pPlayerHandle, pNormalView->nWaitPos)) {
+                               pNormalView->bSeekComplete = FALSE;
+                               pNormalView->nWaitPos = -1;
+                               return;
+                       }
+               } else {
+                       VideoLogWarning("== REAL SEEK ==[%d]", pNormalView->nWaitPos);
+                       if (vp_mm_player_set_position
+                               (pNormalView->pPlayerHandle, pNormalView->nWaitPos)) {
+                               pNormalView->bSeekComplete = FALSE;
+                               pNormalView->nWaitPos = -1;
+                               return;
+                       }
+               }
+               pNormalView->nWaitPos = -1;
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_normal_seek_completed_cb(void *pUserData)
+{
+       VideoLogDebug("#################START####################");
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       NormalView *pNormalView = (NormalView *) pUserData;
+       VideoLogWarning("%d", pNormalView->nWaitPos);
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (!pPlayView) {
+               VideoLogError("pPlayView handle is NULL");
+               return;
+       }
+
+       if (!pPlayView->pWin) {
+               VideoLogError("pPlayView->pWin handle is NULL");
+               return;
+       }
+
+       pNormalView->bSeekComplete = TRUE;
+       vp_mm_player_set_visible(pNormalView->pPlayerHandle, TRUE);
+
+       if (vp_play_util_check_streaming(pNormalView->szMediaURL)) {
+               if (pNormalView->bBufferingComplete == FALSE) {
+                       VideoLogError
+                               ("Skip for buffering state : buffering complete(false) so, set StartPosition 0");
+                       if (pNormalView->nStartPosition > 0) {
+                               pNormalView->nStartPosition = 0;
+                               pNormalView->bIsRealize = TRUE;
+                       }
+                       return;
+               }
+       }
+#ifdef FLICK_JUMP
+       pNormalView->bFlickWaiting = FALSE;
+#endif
+
+       if (pNormalView->pLoadingAni) {
+               _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+               vp_play_loading_ani_destroy(pNormalView->pLoadingAni);
+               pNormalView->pLoadingAni = NULL;
+       }
+
+       if (pPlayView->bAVRCP) {
+               int nPosition = 0;
+               if (!vp_mm_player_get_position
+                       (pNormalView->pPlayerHandle, &nPosition)) {
+                       VideoLogError("vp_mm_player_get_position is fail");
+               } else {
+                       vp_avrcp_noti_track_position(nPosition);
+               }
+       }
+
+       if (pNormalView->nStartPosition > 0) {
+               bool bLCDOffStatus = FALSE;
+
+               vp_play_config_get_lcd_off_state(&bLCDOffStatus);
+               if (bLCDOffStatus && (pNormalView->bVideoOnlyMode == FALSE)) {
+                       VideoLogError("Invalid LCD Status");
+
+                       pPlayView->pFunc->vp_play_func_exit(pPlayView);
+
+                       return;
+               }
+
+               if (pNormalView->bManualPause || pNormalView->bSharepopup
+                       || _vp_play_normal_view_check_during_call(pNormalView)) {
+                       vp_mm_player_pause(pNormalView->pPlayerHandle);
+               } 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");
+               }
+
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+               pNormalView->nStartPosition = 0;
+               pNormalView->bIsRealize = TRUE;
+
+               return;
+       }
+
+       if (pNormalView->bProgressDown == TRUE) {
+               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");
+               }
+               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);
+                       }
+               }
+       }
+
+       if (pNormalView->bIsRealize == FALSE) {
+               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);
+               return;
+       }
+
+       if (pNormalView->nWaitPos >= 0) {
+               if (pNormalView->pSeekPipe) {
+                       ecore_pipe_write(pNormalView->pSeekPipe, pNormalView,
+                                                        sizeof(NormalView));
+               }
+       }
+
+       if (pNormalView->bManualPause == FALSE &&
+               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);
+       }
+       VideoLogDebug("#################END####################");
+
+}
+
+/**
+ *
+ * @param nCode
+ * @param pUserData
+ */
+static void __vp_normal_interrupted_cb(vp_mm_player_interrupt_t nCode,
+                                                                          void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       VideoLogWarning("== %d ==", nCode);
+
+       if (nCode == VP_MM_PLAYER_INTERRUPTED_BY_RESOURCE_CONFLICT) {
+
+               NormalView *pNormalView = (NormalView *) pUserData;
+               PlayView *pPlayView = pNormalView->pPlayView;
+               if (!pPlayView) {
+                       VideoLogError("pPlayView is NULL");
+                       return;
+               }
+
+               if (!pPlayView->pFunc) {
+                       VideoLogError("pPlayView->pFunc is NULL");
+                       return;
+
+               }
+               elm_exit();
+               return;
+       }
+
+}
+
+/**
+ *
+ * @param nError
+ * @param pUserData
+ */
+static void __vp_normal_error_cb(vp_mm_player_error_t nError,
+                                                                void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       VideoLogWarning("Error triggered: 0x%x", nError);
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       VP_EVAS_DEL(pNormalView->pPopup);
+       pNormalView->pPopup = NULL;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+       Evas_Object *pParent = pPlayView->pWin;
+       switch (nError) {
+       case VP_MM_PLAYER_ERR_OUT_OF_MEMORY:
+       case VP_MM_PLAYER_ERR_INVALID_OPERATION:
+       case VP_MM_PLAYER_ERR_FILE_NO_SPACE_ON_DEVICE:
+       case VP_MM_PLAYER_ERR_INVALID_PARAMETER:
+               pNormalView->pPopup = vp_popup_create(pParent,
+                                                                                         POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                                                         VP_PLAY_STRING_COM_ERROR,
+                                                                                         VP_PLAY_STRING_ERROR_UNABLE_PLAY,
+                                                                                         3.0,
+                                                                                         __vp_normal_error_popup_time_out_cb,
+                                                                                         __vp_normal_error_popup_key_event_cb,
+                                                                                         __vp_normal_error_popup_mouse_event_cb,
+                                                                                         pNormalView);
+               evas_object_show(pNormalView->pPopup);
+               pNormalView->bIsPopupShow = TRUE;
+
+               break;
+       case VP_MM_PLAYER_ERR_NO_SUCH_FILE:
+               pNormalView->pPopup = vp_popup_create(pParent,
+                                                                                         POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                                                         VP_PLAY_STRING_COM_ERROR,
+                                                                                         VP_PLAY_STRING_ERROR_FILE_NOT_EXIST,
+                                                                                         3.0,
+                                                                                         __vp_normal_error_popup_time_out_cb,
+                                                                                         __vp_normal_error_popup_key_event_cb,
+                                                                                         __vp_normal_error_popup_mouse_event_cb,
+                                                                                         pNormalView);
+               evas_object_show(pNormalView->pPopup);
+               pNormalView->bIsPopupShow = TRUE;
+
+               break;
+
+
+       case VP_MM_PLAYER_ERR_SEEK_FAILED:
+               VideoLogWarning("VP_MM_PLAYER_ERR_SEEK_FAILED");
+               break;
+       case VP_MM_PLAYER_ERR_INVALID_STATE:
+               VideoLogWarning("VP_MM_PLAYER_ERR_INVALID_STATE");
+               break;
+       case VP_MM_PLAYER_ERR_SOUND_POLICY:
+               VideoLogWarning("VP_MM_PLAYER_ERR_SOUND_POLICY");
+               break;
+       case VP_MM_PLAYER_ERR_VIDEO_CAPTUR_FAILED:
+               VideoLogWarning("VP_MM_PLAYER_ERR_VIDEO_CAPTUR_FAILED");
+               break;
+       case VP_MM_PLAYER_ERR_NOT_SUPPORTED_FILE:
+               pNormalView->pPopup = vp_popup_create(pParent,
+                                                                                         POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                                                         VP_PLAY_STRING_COM_ERROR,
+                                                                                         VP_PLAY_STRING_ERROR_UNSUPPORTED_FORMAT,
+                                                                                         3.0,
+                                                                                         __vp_normal_error_popup_time_out_cb,
+                                                                                         __vp_normal_error_popup_key_event_cb,
+                                                                                         __vp_normal_error_popup_mouse_event_cb,
+                                                                                         pNormalView);
+               evas_object_show(pNormalView->pPopup);
+               pNormalView->bIsPopupShow = TRUE;
+               break;
+       case VP_MM_PLAYER_ERR_INVALID_URI:
+               pNormalView->pPopup = vp_popup_create(pParent,
+                                                                                         POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                                                         VP_PLAY_STRING_COM_ERROR,
+                                                                                         VP_PLAY_STRING_ERROR_INVALID_URL,
+                                                                                         3.0,
+                                                                                         __vp_normal_error_popup_time_out_cb,
+                                                                                         __vp_normal_error_popup_key_event_cb,
+                                                                                         __vp_normal_error_popup_mouse_event_cb,
+                                                                                         pNormalView);
+               evas_object_show(pNormalView->pPopup);
+               pNormalView->bIsPopupShow = TRUE;
+               break;
+
+       case VP_MM_PLAYER_ERR_CONNECTION_FAILED:
+               pNormalView->pPopup = vp_popup_create(pParent,
+                                                                                         POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                                                         VP_PLAY_STRING_COM_ERROR,
+                                                                                         VP_PLAY_STRING_ERROR_CONNECTION_FAILED,
+                                                                                         3.0,
+                                                                                         __vp_normal_error_popup_time_out_cb,
+                                                                                         __vp_normal_error_popup_key_event_cb,
+                                                                                         __vp_normal_error_popup_mouse_event_cb,
+                                                                                         pNormalView);
+               evas_object_show(pNormalView->pPopup);
+               pNormalView->bIsPopupShow = TRUE;
+               break;
+       case VP_MM_PLAYER_ERR_DRM_EXPIRED:
+       case VP_MM_PLAYER_ERR_DRM_FUTURE_USE:
+               VideoLogWarning("DRM BUG");
+               pNormalView->pPopup = vp_popup_create(pParent,
+                                                                                         POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                                                         VP_PLAY_STRING_COM_ERROR,
+                                                                                         VP_PLAY_STRING_ERROR_UNABLE_PLAY,
+                                                                                         3.0,
+                                                                                         __vp_normal_error_popup_time_out_cb,
+                                                                                         __vp_normal_error_popup_key_event_cb,
+                                                                                         __vp_normal_error_popup_mouse_event_cb,
+                                                                                         pNormalView);
+               evas_object_show(pNormalView->pPopup);
+               pNormalView->bIsPopupShow = TRUE;
+               break;
+       case VP_MM_PLAYER_ERR_DRM_NO_LICENSE:
+               pNormalView->pPopup =
+                       vp_popup_create(pPlayView->pWin,
+                                                       POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                       VP_PLAY_STRING_COM_ERROR,
+                                                       VP_PLAY_STRING_DIVX_DRM_AUTHORIZATION_ERROR,
+                                                       3.0, __vp_normal_error_popup_time_out_cb,
+                                                       __vp_normal_error_popup_key_event_cb,
+                                                       __vp_normal_error_popup_mouse_event_cb,
+                                                       pNormalView);
+               evas_object_show(pNormalView->pPopup);
+               pNormalView->bIsPopupShow = TRUE;
+               break;
+       default:
+               VideoLogWarning("UNKNOWN TYPE : %d", nError);
+               if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ONE ||
+                       pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ALL) {
+                       PlayView *pPlayView = pNormalView->pPlayView;
+                       if (!pPlayView) {
+                               VideoLogError("pPlayView is NULL");
+                               return;
+                       }
+                       if (!pPlayView->pFunc) {
+                               VideoLogError("pPlayView pFunc is NULL");
+                               return;
+                       }
+
+                       if (!pPlayView->pFunc->vp_play_func_exit) {
+                               VideoLogError("pPlayView exit Func is NULL");
+                               return;
+                       }
+                       vp_device_set_screen_off(FALSE);
+                       vp_play_util_set_unlock_power_key();
+
+                       pPlayView->pFunc->vp_play_func_exit(pPlayView);
+               } else {
+                       _vp_play_normal_view_on_next_play(pNormalView, FALSE);
+               }
+               break;
+       }
+
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void _vp_normal_view_loading_ani_layout_del_cb(void *data, Evas * e,
+                                                                                                         Evas_Object * obj,
+                                                                                                         void *event_info)
+{
+       if (!data) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) data;
+       pNormalView->pLoadingAni = NULL;
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_create_loading_ani(NormalView *
+                                                                                                       pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+
+       Evas_Object *pParent = NULL;
+       pParent = pNormalView->pMainLayout;
+
+       if (pNormalView->pLoadingAni) {
+               vp_play_loading_ani_destroy(pNormalView->pLoadingAni);
+               pNormalView->pLoadingAni = NULL;
+       }
+
+       pNormalView->pLoadingAni =
+               vp_play_loading_ani_create(pParent, VIDEO_LOADING_SIZE_LARGE);
+       if (!pNormalView->pLoadingAni) {
+               VideoLogError("pLoadingAni create fail");
+               return FALSE;
+       }
+       evas_object_event_callback_add(pNormalView->pLoadingAni,
+                                                                  EVAS_CALLBACK_DEL,
+                                                                  _vp_normal_view_loading_ani_layout_del_cb,
+                                                                  (void *) pNormalView);
+
+       elm_object_part_content_set(pParent,
+                                                               VP_PLAY_SWALLOW_NORMAL_LOADING_ANI,
+                                                               pNormalView->pLoadingAni);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nPercent
+ * @param pUserData
+ */
+static void __vp_normal_buffering_cb(int nPercent, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+       }
+       if (nPercent == 100) {
+               VideoLogError("Buffering complete");
+               pNormalView->bBufferingComplete = TRUE;
+               if (pNormalView->pLoadingAni) {
+                       vp_play_loading_ani_destroy(pNormalView->pLoadingAni);
+                       pNormalView->pLoadingAni = NULL;
+               }
+
+               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");
+               }
+
+               if (nState != VP_MM_PLAYER_STATE_PLAYING) {
+                       PlayView *pPlayView = pNormalView->pPlayView;
+                       if (!pPlayView) {
+                               VideoLogError("pPlayView handle is NULL");
+                               return;
+                       }
+
+                       if (pNormalView->nSpeedValue > 1) {
+                               VideoLogWarning("pNormalView->nSpeedValue : [%d]",
+                                                               pNormalView->nSpeedValue);
+                       } else {
+                               if (pNormalView->bManualPause
+                                       || pPlayView->bActivate == FALSE) {
+                                       vp_mm_player_set_visible(pNormalView->pPlayerHandle,
+                                                                                        TRUE);
+                                       vp_mm_player_pause(pNormalView->pPlayerHandle);
+                               } 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);
+                       }
+               }
+       } else {
+               pNormalView->bBufferingComplete = FALSE;
+               if (pNormalView->bManualPause == FALSE) {
+                       vp_play_util_set_lock_power_key();
+               }
+               // Remove loading animation during speed playback.
+               if (pNormalView->pSpeedTimer) {
+                       //
+               } else if (!pNormalView->pLoadingAni) {
+                       if (!_vp_play_normal_view_create_loading_ani(pNormalView)) {
+                               VideoLogError
+                                       ("_vp_play_normal_view_create_loading_ani fail");
+                               return;
+                       }
+               }
+       }
+}
+
+/**
+ *
+ * @param nDuration
+ * @param text
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_updated_cb(unsigned long nDuration,
+                                                                                       char *text, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       VideoLogWarning("%s", text);
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       int nPosition = 0;
+       if (!vp_mm_player_get_position(pNormalView->pPlayerHandle, &nPosition)) {
+               VideoLogError("vp_mm_player_get_position is fail");
+       }
+       int tDuration = 0;
+       vp_mm_player_get_duration(pNormalView->pPlayerHandle, &tDuration);
+       if (nPosition >= tDuration) {
+               __vp_normal_completed_cb(pNormalView);
+       }
+
+       bool bIsWhiteSpace = vp_play_util_check_white_space(text);
+
+       VP_EVAS_TIMER_DEL(pNormalView->pSubtitleTimer);
+
+       if (pNormalView->bVideoOnlyMode) {
+               return;
+       }
+
+       if (bIsWhiteSpace) {
+               vp_play_subtitle_set_text(pNormalView->pSubtitle, "");
+               elm_object_signal_emit(vp_play_subtitle_get_object
+                                                          (pNormalView->pSubtitle),
+                                                          VP_SUBTITLE_SIGNAL_CAPTION_WINDOW_HIDE,
+                                                          "*");
+               elm_object_signal_emit(vp_play_subtitle_get_object
+                                                          (pNormalView->pSubtitle),
+                                                          VP_SUBTITLE_SIGNAL_GREP_BOX_HIDE, "*");
+               return;
+       }
+
+       double dTimeInterval = (double) nDuration / (double) 1000;
+
+       if (!vp_mm_player_get_position(pNormalView->pPlayerHandle, &nPosition)) {
+               VideoLogError("vp_mm_player_get_position is fail");
+       }
+
+       pNormalView->dSubtitleStartTime = nPosition;
+       pNormalView->dSubtitleEndTime = nPosition + nDuration;
+
+       pNormalView->pSubtitleTimer = ecore_timer_add(dTimeInterval,
+                                                                                                 __vp_normal_subtitle_timer_cb,
+                                                                                                 (void *) pNormalView);
+
+       vp_play_subtitle_set_text(pNormalView->pSubtitle, text);
+#ifdef SUBTITLE_K_FEATURE
+       /*Set caption window: size, rel1, color */
+       __vp_normal_subtitle_set_caption_window(pNormalView);
+#endif
+}
+
+/**
+ *
+ * @param nType
+ * @param pUserData
+ */
+static void __vp_normal_pd_message_cb(vp_mm_player_pd_message_t nType,
+                                                                         void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       VideoLogWarning("");
+}
+
+static void __vp_normal_missed_plugin_cb(vp_mm_player_missed_plugin_t
+                                                                                nType, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       VideoLogWarning("nType=%d", nType);
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       VP_EVAS_DEL(pNormalView->pPopup);
+       pNormalView->pPopup = NULL;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+#if 1
+       if (nType == VP_MM_PLAYER_MISSED_PLUGIN_AUDIO) {
+               _vp_play_normal_view_show_video_only_popup(pNormalView);
+       } else if (nType == VP_MM_PLAYER_MISSED_PLUGIN_VIDEO) {
+               _vp_play_normal_view_show_audio_only_popup(pNormalView);
+       }
+#else                                                  /* Disabled. please use ecore_pipe if need to use popup. */
+       Evas_Object *pParent = pPlayView->pWin;
+       if (nType == VP_MM_PLAYER_MISSED_PLUGIN_AUDIO) {
+               pNormalView->pPopup = vp_popup_create(pParent,
+                                                                                         POPUP_STYLE_DEFAULT,
+                                                                                         NULL,
+                                                                                         VP_PLAY_STRING_ERROR_UNSUPPORTED_AUDIO,
+                                                                                         3.0,
+                                                                                         __vp_normal_popup_time_out_cb,
+                                                                                         __vp_normal_popup_key_event_cb,
+                                                                                         __vp_normal_popup_mouse_event_cb,
+                                                                                         pNormalView);
+
+               evas_object_show(pNormalView->pPopup);
+               pNormalView->bIsPopupShow = TRUE;
+       } else if (nType == VP_MM_PLAYER_MISSED_PLUGIN_VIDEO) {
+               pNormalView->pPopup = vp_popup_create(pParent,
+                                                                                         POPUP_STYLE_DEFAULT,
+                                                                                         NULL,
+                                                                                         VP_PLAY_STRING_ERROR_UNSUPPORTED_VIDEO,
+                                                                                         3.0,
+                                                                                         __vp_normal_popup_time_out_cb,
+                                                                                         __vp_normal_popup_key_event_cb,
+                                                                                         __vp_normal_popup_mouse_event_cb,
+                                                                                         pNormalView);
+
+               evas_object_show(pNormalView->pPopup);
+               pNormalView->bIsPopupShow = TRUE;
+               pNormalView->bIsVideoUnsupport = TRUE;
+
+               VP_EVAS_DISABLE_SET(pNormalView->pBookmarkBtn, EINA_TRUE);
+               VP_EVAS_DISABLE_SET(pNormalView->pMultiWinBtn, EINA_TRUE);
+       }
+#endif
+}
+
+/**
+ *
+ * @param pBuffer
+ * @param nSize
+ * @param pUserData
+ */
+static void __vp_normal_image_buffer_cb(char *pBuffer, int nSize,
+                                                                               void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       VideoLogWarning("%p, %d", pBuffer, nSize);
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+       if (pNormalView->pImageBufferObj) {
+               elm_object_part_content_unset(pNormalView->pMainLayout,
+                                                                         VP_PLAY_SWALLOW_NORMAL_IMAGE_BUFFER);
+               VP_EVAS_DEL(pNormalView->pImageBufferObj);
+       }
+       vp_play_util_save_file(VP_PLAY_IMAGE_BUFFER_PATH, pBuffer, nSize);
+
+       pNormalView->pImageBufferObj = elm_image_add(pNormalView->pMainLayout);
+       elm_image_file_set(pNormalView->pImageBufferObj,
+                                          VP_PLAY_IMAGE_BUFFER_PATH, NULL);
+
+       evas_object_size_hint_weight_set(pNormalView->pImageBufferObj,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pNormalView->pImageBufferObj,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       elm_object_part_content_set(pNormalView->pMainLayout,
+                                                               VP_PLAY_SWALLOW_NORMAL_IMAGE_BUFFER,
+                                                               pNormalView->pImageBufferObj);
+       evas_object_show(pNormalView->pImageBufferObj);
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param bAudioOnly
+ */
+static void _vp_normal_set_audio_only_image(NormalView * pNormalView,
+                                                                                       bool bAudioOnly)
+{
+       if (pNormalView->pImageBufferObj) {
+               elm_object_part_content_unset(pNormalView->pMainLayout,
+                                                                         VP_PLAY_SWALLOW_NORMAL_IMAGE_BUFFER);
+               VP_EVAS_DEL(pNormalView->pImageBufferObj);
+       }
+
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_RESROUCE_EDJ_PATH);
+       free(path);
+       if (bAudioOnly == TRUE) {
+               pNormalView->pImageBufferObj =
+                       vp_button_create_image(pNormalView->pMainLayout, edj_path,
+                                                                  VP_PLAY_NORMAL_AUDIO_ERROR_IMG);
+               evas_object_size_hint_weight_set(pNormalView->pImageBufferObj,
+                                                                                EVAS_HINT_EXPAND,
+                                                                                EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(pNormalView->pImageBufferObj,
+                                                                               EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_color_set(pNormalView->pImageBufferObj, 255, 255, 255,
+                                                         255);
+               elm_object_part_content_set(pNormalView->pMainLayout,
+                                                                       VP_PLAY_SWALLOW_NORMAL_ERROR_IMAGE,
+                                                                       pNormalView->pImageBufferObj);
+               evas_object_show(pNormalView->pImageBufferObj);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_ctx_popup_dismiss_cb(void *pUserData,
+                                                                                        Evas_Object * pObj,
+                                                                                        void *pEventInfo)
+{
+       if (!pObj) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       VP_EVAS_DEL(pNormalView->pCtxPopup);
+
+       _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_ctx_popup_share_cb(void *pUserData,
+                                                                                  Evas_Object * pObj,
+                                                                                  void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("[ERR]No have pUserData");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       VP_EVAS_DEL(pNormalView->pCtxPopup);
+
+       _vp_play_normal_view_on_share_popup(pNormalView);
+}
+
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_ctx_popup_audio_only_cb(void *pUserData,
+                                                                                               Evas_Object * pObj,
+                                                                                               void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("[ERR]No have pUserData");
+               return;
+       }
+
+       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;
+               pPlayView->bAudioOnly = FALSE;
+
+               if (pPlayView->win_minicon) {
+                       vp_minicontroller_destroy(pPlayView);
+               }
+               if (pPlayView->win_lockmini) {
+                       vp_lockscreenmini_destroy(pPlayView);
+               }
+       } else {
+               pNormalView->bAudioOnly = TRUE;
+               pPlayView->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);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_ctx_popup_subtitle_cb(void *pUserData,
+                                                                                         Evas_Object * pObj,
+                                                                                         void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("[ERR]No have pUserData");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       VP_EVAS_DEL(pNormalView->pCtxPopup);
+
+       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");
+       }
+
+       /*If it is playing video, pause video */
+       if (pNormalView->bVideoOnlyMode == FALSE
+               && nState == VP_MM_PLAYER_STATE_PLAYING) {
+               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);
+       }
+
+       _vp_play_normal_view_set_play_state(pNormalView);
+
+       _vp_play_normal_view_on_subtitle_select_popup(pNormalView);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_normal_del_popup_cancel_cb(void *data, Evas_Object * obj,
+                                                                                       void *event_info)
+{
+       NormalView *pNormalView = (NormalView *) data;
+
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       VP_EVAS_DEL(pNormalView->pPopup);
+
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (_vp_is_current_focus_available() != 0) {
+               VideoLogInfo("Cannot acquire focus. Setting video to pause state");
+               pNormalView->bManualPause = TRUE;
+       }
+
+       if (pNormalView->bManualPause == FALSE) {
+               if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+               _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);
+       }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __vp_normal_del_popup_delete_cb(void *data, Evas_Object * obj,
+                                                                                       void *event_info)
+{
+       NormalView *pNormalView = (NormalView *) data;
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       if (pNormalView->szMediaURL) {
+               char *szPreviewURL = NULL;
+               vp_play_config_get_preview_url_videos(&szPreviewURL);
+
+               if (szPreviewURL) {
+                       if (!g_strcmp0(szPreviewURL, pNormalView->szMediaURL)) {
+                               VideoLogInfo("Erase preview url.");
+                               vp_play_config_set_preview_url_videos("");
+                       }
+               }
+               VP_FREE(szPreviewURL);
+
+               vp_media_contents_del_video(pNormalView->szMediaURL);
+
+               VP_EVAS_DEL(pNormalView->pPopup);
+               pNormalView->bIsPopupShow = FALSE;
+
+
+               PlayView *pPlayView = pNormalView->pPlayView;
+               if (!pPlayView) {
+                       VideoLogError("pPlayView is NULL");
+                       return;
+               }
+               if (!pPlayView->pFunc) {
+                       VideoLogError("pPlayView pFunc is NULL");
+                       return;
+               }
+
+               if (!pPlayView->pFunc->vp_play_func_exit) {
+                       VideoLogError("pPlayView exit Func is NULL");
+                       return;
+               }
+               vp_device_set_screen_off(FALSE);
+               vp_play_util_set_unlock_power_key();
+
+               pPlayView->pFunc->vp_play_func_exit(pPlayView);
+
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_ctx_popup_delete_cb(void *pUserData,
+                                                                                       Evas_Object * pObj,
+                                                                                       void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("[ERR]No have pUserData");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       VP_EVAS_DEL(pNormalView->pCtxPopup);
+
+       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");
+       }
+
+       if (pNormalView->bVideoOnlyMode == FALSE
+               && nState == VP_MM_PLAYER_STATE_PLAYING) {
+               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);
+       }
+
+       VP_EVAS_DEL(pNormalView->pPopup);
+       pNormalView->pPopup = vp_two_button_popup_create(pPlayView->pWin,
+                                                                                                        VP_PLAY_STRING_POPUP_DELETE,
+                                                                                                        VP_PLAY_STRING_POPUP_DELETE_CONTENT,
+                                                                                                        VP_PLAY_STRING_CANCEL,
+                                                                                                        __vp_normal_del_popup_cancel_cb,
+                                                                                                        VP_PLAY_STRING_POPUP_DELETE,
+                                                                                                        __vp_normal_del_popup_delete_cb,
+                                                                                                        (const void *)
+                                                                                                        pNormalView);
+
+       pNormalView->bIsPopupShow = TRUE;
+       eext_object_event_callback_add(pNormalView->pPopup, EEXT_CALLBACK_BACK,
+                                                                  __vp_normal_del_popup_cancel_cb,
+                                                                  (void *) pNormalView);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_ctx_popup_play_speed_cb(void *pUserData,
+                                                                                               Evas_Object * pObj,
+                                                                                               void *pEventInfo)
+{
+       VideoLogInfo("");
+       if (!pUserData) {
+               VideoLogError("[ERR]No have pUserData");
+               return;
+       }
+
+       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;
+       if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+               VideoLogWarning("vp_mm_player_get_state is fail");
+       }
+
+       if (pNormalView->bVideoOnlyMode == FALSE
+               && nState == VP_MM_PLAYER_STATE_PLAYING) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogError("Pause Fail");
+               }
+               if (pPlayView && pPlayView->win_minicon) {
+                       vp_minicontroller_update_control(pPlayView);
+               }
+               if (pPlayView && pPlayView->win_lockmini) {
+                       vp_lockscreenmini_update_control(pPlayView);
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+       }
+
+       _vp_play_normal_view_on_play_speed_popup(pNormalView);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_normal_ctx_popup_detail_cb(void *pUserData,
+                                                                                       Evas_Object * pObj,
+                                                                                       void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("[ERR]No have pUserData");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       VP_EVAS_DEL(pNormalView->pCtxPopup);
+
+       _vp_play_normal_view_on_detail_popup(pNormalView);
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+static bool _vp_play_normal_view_show_lock_screen(normal_view_handle
+                                                                                                 pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       if (pNormalView->bLockScreen == FALSE) {
+               return FALSE;
+       }
+
+       VP_EVAS_TIMER_DEL(pNormalView->pLockScreenTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                  VP_NORMAL_SIGNAL_LOCKSCREEN_SHOW, "*");
+
+       pNormalView->pLockScreenTimer =
+               ecore_timer_add(VP_NORMAL_HIDE_SCREEN_LOCK_TIMER_INTERVAL,
+                                               __vp_normal_lockscreen_timer_cb,
+                                               (void *) pNormalView);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_more_btn_clicked_cb(void *pUserData,
+                                                                                       Evas_Object * pObj,
+                                                                                       void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       VP_EVAS_DEL(pNormalView->pCtxPopup);
+
+       if (pNormalView->bLockScreen) {
+               VideoLogError("Skip for bLockScreen");
+               _vp_play_normal_view_show_lock_screen(pNormalView);
+               return;
+       }
+
+       if (pNormalView->bIsRealize == FALSE) {
+               VideoLogWarning("Skip for not realized");
+               return;
+       }
+
+       if (!vp_play_volume_unrealize(pNormalView->pVolumeHandle)) {
+               VideoLogWarning("vp_play_volume_unrealize is fail");
+       }
+
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+               VideoLogWarning("Skip for VIDEO_PLAY_TYPE_MULTI_PATH mode.");
+               if (vp_play_util_check_streaming(pNormalView->szMediaURL)) {
+                       VideoLogWarning("url is streaming. don't need to show detail");
+                       return;
+               }
+       }
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_PREVIEW) {
+               VideoLogInfo("current launching type not support menu.");
+               return;
+       }
+
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+               VideoLogInfo("current launching type not support menu.");
+       }
+       if (strstr(pPlayView->szMediaURL, "/.") != NULL) {
+               VideoLogInfo("hidden file not suport menu.");
+               return;
+       }
+
+       int val = 0;
+       system_settings_get_value_int(SYSTEM_SETTINGS_KEY_LOCK_STATE, &val);
+       if (val == SYSTEM_SETTINGS_LOCK_STATE_LOCK) {
+               return;
+       }
+
+       pNormalView->pCtxPopup = elm_ctxpopup_add(pPlayView->pWin);
+
+       if (!pNormalView->pCtxPopup) {
+               VideoLogError("pNormalView->pCtxPopup is NULL");
+               return;
+       }
+       eext_object_event_callback_add(pNormalView->pCtxPopup,
+                                                                  EEXT_CALLBACK_BACK,
+                                                                  __vp_normal_ctx_popup_dismiss_cb,
+                                                                  (void *) pNormalView);
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+       elm_object_style_set(pNormalView->pCtxPopup, "more/default");
+       evas_object_smart_callback_add(pNormalView->pCtxPopup, "dismissed",
+                                                                  __vp_normal_ctx_popup_dismiss_cb,
+                                                                  (void *) pNormalView);
+       elm_ctxpopup_auto_hide_disabled_set(pNormalView->pCtxPopup, EINA_TRUE);
+
+#ifdef ENABLE_DRM_FEATURE
+       bool bDRMLock = FALSE;
+       bool bPlayReady = FALSE;
+#endif
+       char *szMediaID = NULL;
+
+       if (pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_WEB &&
+               pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_MULTI_PATH) {
+               vp_media_contents_get_video_id(pNormalView->szMediaURL,
+                                                                          &szMediaID);
+               if (!szMediaID) {
+               }
+       }
+       VP_FREE(szMediaID);
+#ifdef ENABLE_DRM_FEATURE
+       _vp_play_normal_view_check_drm_lock(pNormalView, &bDRMLock);
+
+       vp_drm_is_playready_drm_file(pNormalView->szMediaURL, &bPlayReady);
+#endif
+
+       switch (pNormalView->nLaunchingType) {
+       case VIDEO_PLAY_TYPE_STORE:
+       case VIDEO_PLAY_TYPE_LIST:
+       case VIDEO_PLAY_TYPE_GALLERY:
+       case VIDEO_PLAY_TYPE_MYFILE:
+       case VIDEO_PLAY_TYPE_OTHER:
+
+               /* delete */
+               elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+                                                                VP_PLAY_STRING_POPUP_DELETE, NULL,
+                                                                __vp_normal_ctx_popup_delete_cb,
+                                                                (void *) pNormalView);
+
+               /* Share via */
+               elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+                                                                VP_PLAY_STRING_POPUP_SHARE, NULL,
+                                                                __vp_normal_ctx_popup_share_cb,
+                                                                (void *) pNormalView);
+
+               /* Audio only */
+
+               if (pNormalView->bAudioOnly)
+                       elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+                                                                        VP_PLAY_STRING_POPUP_DISABLE_AUDIO_ONLY,
+                                                                        NULL,
+                                                                        __vp_normal_ctx_popup_audio_only_cb,
+                                                                        (void *) pNormalView);
+               else
+                       elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+                                                                        VP_PLAY_STRING_POPUP_ENABLE_AUDIO_ONLY,
+                                                                        NULL,
+                                                                        __vp_normal_ctx_popup_audio_only_cb,
+                                                                        (void *) pNormalView);
+
+               /* Play speed */
+               elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+                                                                VP_PLAY_STRING_POPUP_PLAY_SPEED, NULL,
+                                                                __vp_normal_ctx_popup_play_speed_cb,
+                                                                (void *) pNormalView);
+
+               /* subtitles */
+               elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+                                                                VP_PLAY_STRING_POPUP_SUBTITLE, NULL,
+                                                                __vp_normal_ctx_popup_subtitle_cb,
+                                                                (void *) pNormalView);
+
+               /* Details */
+               elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+                                                                VP_PLAY_STRING_COM_DETAILS, NULL,
+                                                                __vp_normal_ctx_popup_detail_cb,
+                                                                (void *) pNormalView);
+               break;
+
+       case VIDEO_PLAY_TYPE_MESSAGE:
+       case VIDEO_PLAY_TYPE_EMAIL:
+
+               /* Play speed */
+               elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+                               VP_PLAY_STRING_POPUP_PLAY_SPEED, NULL,
+                               __vp_normal_ctx_popup_play_speed_cb,
+                               (void *) pNormalView);
+
+               /* subtitles */
+               elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+                               VP_PLAY_STRING_POPUP_SUBTITLE, NULL,
+                               __vp_normal_ctx_popup_subtitle_cb,
+                               (void *) pNormalView);
+               break;
+
+       case VIDEO_PLAY_TYPE_WEB:
+
+               /* Audio only */
+               if (pNormalView->bAudioOnly)
+                       elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+                                       VP_PLAY_STRING_POPUP_DISABLE_AUDIO_ONLY,
+                                       NULL,
+                                       __vp_normal_ctx_popup_audio_only_cb,
+                                       (void *) pNormalView);
+               else
+                       elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+                                       VP_PLAY_STRING_POPUP_ENABLE_AUDIO_ONLY,
+                                       NULL,
+                                       __vp_normal_ctx_popup_audio_only_cb,
+                                       (void *) pNormalView);
+
+               /* Play speed */
+               elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+                               VP_PLAY_STRING_POPUP_PLAY_SPEED, NULL,
+                               __vp_normal_ctx_popup_play_speed_cb,
+                               (void *) pNormalView);
+
+               /* subtitles */
+               elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+                               VP_PLAY_STRING_POPUP_SUBTITLE, NULL,
+                               __vp_normal_ctx_popup_subtitle_cb,
+                               (void *) pNormalView);
+
+               /* Details */
+               elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+                               VP_PLAY_STRING_COM_DETAILS, NULL,
+                               __vp_normal_ctx_popup_detail_cb,
+                               (void *) pNormalView);
+               break;
+
+       case VIDEO_PLAY_TYPE_MULTI_PATH:
+               /* Details */
+               elm_ctxpopup_item_append(pNormalView->pCtxPopup,
+                                                                VP_PLAY_STRING_COM_DETAILS, NULL,
+                                                                __vp_normal_ctx_popup_detail_cb,
+                                                                (void *) pNormalView);
+               break;
+
+       case VIDEO_PLAY_TYPE_PREVIEW:
+               break;
+       }
+
+       int nW = 0;
+       int nH = 0;
+
+       Evas_Coord_Rectangle rect = { 0, };
+       elm_win_screen_size_get(pPlayView->pWin, &rect.x, &rect.y, &rect.w,
+                                                       &rect.h);
+       if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_NONE) {
+               nW = rect.w / 2;
+               nH = rect.h;
+       } else if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90) {
+               nW = rect.h / 2;
+               nH = rect.w;
+       } else if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_180) {
+               nW = rect.w / 2;
+               nH = rect.h;
+       } else if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+               nW = rect.h / 2;
+               nH = rect.w;
+       }
+
+       evas_object_move(pNormalView->pCtxPopup, nW, nH);
+
+
+       evas_object_show(pNormalView->pCtxPopup);
+}
+
+/**
+ *
+ * @param pPlayview
+ */
+void vp_play_normal_view_pause_player(void *pPlayview)
+{
+       if (!pPlayview) {
+               return;
+       }
+       PlayView *vPlayview = (PlayView *) pPlayview;
+       NormalView *pNormalView = vPlayview->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");
+       }
+       if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+               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);
+}
+
+/**
+ *
+ * @param pPlayview
+ */
+void vp_play_normal_view_play_player(void *pPlayview)
+{
+       if (!pPlayview) {
+               VideoLogError("Invalid player View)");
+               return;
+       }
+       PlayView *vPlayview = (PlayView *) pPlayview;
+       NormalView *pNormalView = vPlayview->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");
+       }
+       if (nState == VP_MM_PLAYER_STATE_PAUSED) {
+               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);
+}
+
+/**
+ *
+ * @param pPlayview
+ */
+void vp_play_normal_view_show_volume_popup(void *pPlayview)
+{
+       if (!pPlayview) {
+               return;
+       }
+       PlayView *vPlayview = (PlayView *) pPlayview;
+       NormalView *pNormalView = vPlayview->pNormalView;
+       pNormalView->pVolumePopupHandle = NULL;
+       vp_play_volume_update_value(pNormalView->pVolumeHandle);
+       _vp_play_normal_view_on_volume_popup(pNormalView, FALSE);
+       vp_play_volume_set_focus_in(pNormalView->pVolumeHandle);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_function_btn_clicked_cb(void *pUserData,
+                                                                                               Evas_Object * pObj,
+                                                                                               void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       if (pObj != pNormalView->pVolumeBtn
+               && pObj != pNormalView->pScreenSizeBtn
+               && pObj != pNormalView->pLockBtn) {
+               return;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_RESROUCE_EDJ_PATH);
+       free(path);
+       if (pObj == pNormalView->pVolumeBtn) {
+               VideoLogWarning("pVolumeBtn button");
+               vp_play_volume_update_value(pNormalView->pVolumeHandle);
+               _vp_play_normal_view_on_volume_popup(pNormalView, TRUE);
+               vp_play_volume_set_focus_in(pNormalView->pVolumeHandle);
+       } else if (pObj == pNormalView->pBookmarkBtn) {
+               VideoLogWarning("pBookmarkBtn button");
+
+               bool bIsRealize = FALSE;
+               if (!vp_play_bookmark_is_realize
+                       (pNormalView->pBookmarkHandle, &bIsRealize)) {
+                       VideoLogWarning("vp_play_bookmark_is_realize fail");
+                       return;
+               }
+               if (bIsRealize) {
+                       _vp_play_normal_view_on_bookmark_mode(pNormalView, FALSE);
+               } else {
+                       _vp_play_normal_view_on_bookmark_mode(pNormalView, TRUE);
+               }
+       } else if (pObj == pNormalView->pShareBtn) {
+               VideoLogWarning("pShareBtn button");
+               _vp_play_normal_view_on_share_popup(pNormalView);
+       } else if (pObj == pNormalView->pLockBtn) {
+               VideoLogWarning("pLockBtn button");
+               if (!pNormalView->bLockScreen) {
+                       pNormalView->bLockScreen = TRUE;
+                       vp_play_normal_view_set_lock_screen(pNormalView,
+                                                                                               pNormalView->bLockScreen);
+               } else {
+                       pNormalView->bLockScreen = FALSE;
+                       vp_play_normal_view_set_lock_screen(pNormalView,
+                                                                                               pNormalView->bLockScreen);
+               }
+       } else if (pObj == pNormalView->pSoundAliveBtn) {
+               VideoLogWarning("pSoundAliveBtn button");
+               _vp_play_normal_view_on_sound_alive_popup(pNormalView);
+       } else if (pObj == pNormalView->pRepeatBtn) {
+               VideoLogWarning("pRepeatBtn button");
+               if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_NONE) {
+                       pNormalView->nRepeatMode = VIDEO_PLAY_REPEAT_ONE;
+
+                       Evas_Object *pIcon = NULL;
+                       pIcon =
+                               elm_object_part_content_get(pNormalView->pRepeatBtn,
+                                                                                       VP_PLAY_SWALLOW_BUTTON_ICON);
+                       if (pIcon) {
+                               evas_object_del(pIcon);
+                               pIcon = NULL;
+                       }
+                       pIcon =
+                               elm_object_part_content_get(pNormalView->pRepeatBtn,
+                                                                                       VP_PLAY_SWALLOW_BUTTON_PRESS_ICON);
+                       if (pIcon) {
+                               evas_object_del(pIcon);
+                               pIcon = NULL;
+                       }
+                       pIcon =
+                               elm_object_part_content_get(pNormalView->pRepeatBtn,
+                                                                                       VP_PLAY_SWALLOW_BUTTON_DIM_ICON);
+                       if (pIcon) {
+                               evas_object_del(pIcon);
+                               pIcon = NULL;
+                       }
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pRepeatBtn, edj_path,
+                                                                         VP_PLAY_NORMAL_RES_REPEAT_ONE);
+                       elm_object_part_content_set(pNormalView->pRepeatBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_ICON,
+                                                                               pIcon);
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pRepeatBtn, edj_path,
+                                                                         VP_PLAY_NORMAL_RES_REPEAT_ONE_PRESS);
+                       elm_object_part_content_set(pNormalView->pRepeatBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+                                                                               pIcon);
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pRepeatBtn, edj_path,
+                                                                         VP_PLAY_NORMAL_RES_REPEAT_ONE_DIM);
+                       elm_object_part_content_set(pNormalView->pRepeatBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+                                                                               pIcon);
+               } else if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ONE) {
+                       pNormalView->nRepeatMode = VIDEO_PLAY_REPEAT_ALL;
+
+                       Evas_Object *pIcon = NULL;
+                       pIcon =
+                               elm_object_part_content_get(pNormalView->pRepeatBtn,
+                                                                                       VP_PLAY_SWALLOW_BUTTON_ICON);
+                       if (pIcon) {
+                               evas_object_del(pIcon);
+                               pIcon = NULL;
+                       }
+                       pIcon =
+                               elm_object_part_content_get(pNormalView->pRepeatBtn,
+                                                                                       VP_PLAY_SWALLOW_BUTTON_PRESS_ICON);
+                       if (pIcon) {
+                               evas_object_del(pIcon);
+                               pIcon = NULL;
+                       }
+                       pIcon =
+                               elm_object_part_content_get(pNormalView->pRepeatBtn,
+                                                                                       VP_PLAY_SWALLOW_BUTTON_DIM_ICON);
+                       if (pIcon) {
+                               evas_object_del(pIcon);
+                               pIcon = NULL;
+                       }
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pRepeatBtn, edj_path,
+                                                                         VP_PLAY_NORMAL_RES_REPEAT_ALL);
+                       elm_object_part_content_set(pNormalView->pRepeatBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_ICON,
+                                                                               pIcon);
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pRepeatBtn, edj_path,
+                                                                         VP_PLAY_NORMAL_RES_REPEAT_ALL_PRESS);
+                       elm_object_part_content_set(pNormalView->pRepeatBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+                                                                               pIcon);
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pRepeatBtn, edj_path,
+                                                                         VP_PLAY_NORMAL_RES_REPEAT_ALL_DIM);
+                       elm_object_part_content_set(pNormalView->pRepeatBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+                                                                               pIcon);
+
+               } else if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ALL) {
+                       pNormalView->nRepeatMode = VIDEO_PLAY_REPEAT_NONE;
+                       Evas_Object *pIcon = NULL;
+                       pIcon =
+                               elm_object_part_content_get(pNormalView->pRepeatBtn,
+                                                                                       VP_PLAY_SWALLOW_BUTTON_ICON);
+                       if (pIcon) {
+                               evas_object_del(pIcon);
+                               pIcon = NULL;
+                       }
+                       pIcon =
+                               elm_object_part_content_get(pNormalView->pRepeatBtn,
+                                                                                       VP_PLAY_SWALLOW_BUTTON_PRESS_ICON);
+                       if (pIcon) {
+                               evas_object_del(pIcon);
+                               pIcon = NULL;
+                       }
+                       pIcon =
+                               elm_object_part_content_get(pNormalView->pRepeatBtn,
+                                                                                       VP_PLAY_SWALLOW_BUTTON_DIM_ICON);
+                       if (pIcon) {
+                               evas_object_del(pIcon);
+                               pIcon = NULL;
+                       }
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pRepeatBtn, edj_path,
+                                                                         VP_PLAY_NORMAL_RES_REPEAT_OFF);
+                       elm_object_part_content_set(pNormalView->pRepeatBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_ICON,
+                                                                               pIcon);
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pRepeatBtn, edj_path,
+                                                                         VP_PLAY_NORMAL_RES_REPEAT_OFF_PRESS);
+                       elm_object_part_content_set(pNormalView->pRepeatBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+                                                                               pIcon);
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pRepeatBtn, edj_path,
+                                                                         VP_PLAY_NORMAL_RES_REPEAT_OFF_DIM);
+                       elm_object_part_content_set(pNormalView->pRepeatBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+                                                                               pIcon);
+               }
+       } else if (pObj == pNormalView->pScreenSizeBtn) {
+               VideoLogWarning("pScreenSizeBtn button");
+
+               if (pNormalView->nDisplayMode == VP_MM_PLAYER_DISPLAY_FULL_SCREEN) {
+                       VideoLogWarning(" VP_MM_PLAYER_DISPLAY_LETTER_BOX");
+                       pNormalView->nDisplayMode = VP_MM_PLAYER_DISPLAY_LETTER_BOX;
+                       vp_play_preference_set_screen_mode_key(pNormalView->
+                                                                                                  nDisplayMode);
+
+                       vp_mm_player_set_display_mode(pNormalView->pPlayerHandle,
+                                                                                 pNormalView->nDisplayMode);
+
+                       Evas_Object *pIcon = NULL;
+                       pIcon =
+                               elm_object_part_content_get(pNormalView->pScreenSizeBtn,
+                                                                                       VP_PLAY_SWALLOW_BUTTON_ICON);
+                       if (pIcon) {
+                               evas_object_del(pIcon);
+                               pIcon = NULL;
+                       }
+                       pIcon =
+                               elm_object_part_content_get(pNormalView->pScreenSizeBtn,
+                                                                                       VP_PLAY_SWALLOW_BUTTON_PRESS_ICON);
+                       if (pIcon) {
+                               evas_object_del(pIcon);
+                               pIcon = NULL;
+                       }
+                       pIcon =
+                               elm_object_part_content_get(pNormalView->pScreenSizeBtn,
+                                                                                       VP_PLAY_SWALLOW_BUTTON_DIM_ICON);
+                       if (pIcon) {
+                               evas_object_del(pIcon);
+                               pIcon = NULL;
+                       }
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pScreenSizeBtn,
+                                                                         edj_path,
+                                                                         VP_PLAY_NORMAL_RES_SCREEN_1_MODE);
+                       elm_object_part_content_set(pNormalView->pScreenSizeBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_ICON,
+                                                                               pIcon);
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pScreenSizeBtn,
+                                                                         edj_path,
+                                                                         VP_PLAY_NORMAL_RES_SCREEN_1_MODE);
+                       elm_object_part_content_set(pNormalView->pScreenSizeBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+                                                                               pIcon);
+                       elm_object_text_set(pNormalView->pScreenSizeBtn,
+                                                               VP_PLAY_STRING_COM_FULL);
+
+                       return;
+               } else if (pNormalView->nDisplayMode ==
+                                  VP_MM_PLAYER_DISPLAY_LETTER_BOX) {
+                       VideoLogWarning("VP_MM_PLAYER_DISPLAY_FULL_SCREEN");
+                       pNormalView->nDisplayMode = VP_MM_PLAYER_DISPLAY_FULL_SCREEN;
+                       vp_play_preference_set_screen_mode_key(pNormalView->
+                                                                                                  nDisplayMode);
+
+                       vp_mm_player_set_display_mode(pNormalView->pPlayerHandle,
+                                                                                 pNormalView->nDisplayMode);
+
+                       Evas_Object *pIcon = NULL;
+                       pIcon =
+                               elm_object_part_content_get(pNormalView->pScreenSizeBtn,
+                                                                                       VP_PLAY_SWALLOW_BUTTON_ICON);
+                       if (pIcon) {
+                               evas_object_del(pIcon);
+                               pIcon = NULL;
+                       }
+                       pIcon =
+                               elm_object_part_content_get(pNormalView->pScreenSizeBtn,
+                                                                                       VP_PLAY_SWALLOW_BUTTON_PRESS_ICON);
+                       if (pIcon) {
+                               evas_object_del(pIcon);
+                               pIcon = NULL;
+                       }
+                       pIcon =
+                               elm_object_part_content_get(pNormalView->pScreenSizeBtn,
+                                                                                       VP_PLAY_SWALLOW_BUTTON_DIM_ICON);
+                       if (pIcon) {
+                               evas_object_del(pIcon);
+                               pIcon = NULL;
+                       }
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pScreenSizeBtn,
+                                                                         edj_path,
+                                                                         VP_PLAY_NORMAL_RES_SCREEN_2_MODE);
+                       elm_object_part_content_set(pNormalView->pScreenSizeBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_ICON,
+                                                                               pIcon);
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pScreenSizeBtn,
+                                                                         edj_path,
+                                                                         VP_PLAY_NORMAL_RES_SCREEN_2_MODE_PRESS);
+                       elm_object_part_content_set(pNormalView->pScreenSizeBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+                                                                               pIcon);
+                       elm_object_text_set(pNormalView->pScreenSizeBtn,
+                                                               VP_PLAY_STRING_COM_KEEP_RATIO);
+
+                       return;
+               }
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_control_btn_clicked_cb(void *pUserData,
+                                                                                          Evas_Object * pObj,
+                                                                                          void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (!pPlayView) {
+               VideoLogError("pPlayView handle is NULL");
+               return;
+       }
+
+       if (pNormalView->bIsRealize == FALSE) {
+               VideoLogWarning("Skip for not realized");
+               return;
+       }
+
+       if (pObj == pNormalView->pPauseBtn) {
+               VideoLogWarning("Pause button");
+               vp_util_release_cpu();
+
+               if (pNormalView->bBufferingComplete == FALSE) {
+                       VideoLogWarning
+                               ("Bufferring is not completed. ignore pause signal");
+               } else {
+                       if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                               VideoLogWarning("Pause Fail");
+                       }
+               }
+
+               VP_EVAS_IDLER_DEL(pNormalView->pControlIdler);
+               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();
+               if (_vp_play_normal_view_check_during_call(pNormalView)) {
+                       return;
+               }
+
+               VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+               pNormalView->nSpeedValue = 1;
+               pNormalView->bSpeedDown = TRUE;
+
+               if (pNormalView->bBufferingComplete == FALSE) {
+                       VideoLogWarning
+                               ("Bufferring is not completed. ignore pause signal");
+               } else {
+                       if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+                               VideoLogWarning("Resume Fail");
+                       }
+               }
+
+               VP_EVAS_IDLER_DEL(pNormalView->pControlIdler);
+               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);
+               if (pNormalView->pPauseBtn == pObj) {
+
+                       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;
+               } else {
+                       if (_vp_play_normal_view_check_during_call(pNormalView)) {
+                               return;
+                       }
+
+                       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;
+               }
+       } else if (pObj == pNormalView->pPrevBtn) {
+               VideoLogWarning("Prev button");
+               if (pNormalView->bHLSMode == FALSE) {
+                       if (pNormalView->nSpeedValue < 2) {
+                               VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+                               _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);
+                       vp_lockscreenmini_update_control(pPlayView);
+               }
+       } else if (pObj == pNormalView->pNextBtn) {
+               VideoLogWarning("Next button");
+               if (pNormalView->bHLSMode == FALSE) {
+                       if (pPlayView->bResetPlaySpeed == TRUE) {
+                               pPlayView->bResetPlaySpeed = FALSE;
+                               VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+                       } else if (pNormalView->nSpeedValue < 2
+                                          && strstr(pPlayView->szMediaURL, "/.") == NULL) {
+                               VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+                               _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);
+                       vp_lockscreenmini_update_control(pPlayView);
+               }
+       } else if (pObj == pNormalView->pRotateBtn) {
+               VideoLogWarning("Rotate button");
+
+               bool bLandscape =
+                       vp_play_util_get_landscape_check(pNormalView->nRotate);
+               PlayView *pPlayView = pNormalView->pPlayView;
+
+               if (!pPlayView) {
+                       VideoLogError("pPlayView is NULL");
+                       return;
+               }
+
+               if (bLandscape) {
+                       pPlayView->nRotate = VIDEO_PLAY_ROTATE_NONE;
+                       elm_win_wm_rotation_preferred_rotation_set(pPlayView->pWin, 0);
+                       vp_play_normal_view_set_rotate((normal_view_handle)
+                                                                                  pNormalView,
+                                                                                  VIDEO_PLAY_ROTATE_NONE, TRUE);
+               } else {
+                       pPlayView->nRotate = VIDEO_PLAY_ROTATE_270;
+                       elm_win_wm_rotation_preferred_rotation_set(pPlayView->pWin,
+                                                                                                          270);
+                       vp_play_normal_view_set_rotate((normal_view_handle)
+                                                                                  pNormalView,
+                                                                                  VIDEO_PLAY_ROTATE_270, TRUE);
+               }
+       } else if (pObj == pNormalView->pSoundPathBtn) {
+               VideoLogWarning("SoundPath button");
+               _vp_play_normal_view_on_sound_path_popup(pNormalView);
+       } else if (pObj == pNormalView->pCaptureRewBtn) {
+               _vp_play_normal_view_screen_move(pNormalView, FALSE);
+       } else if (pObj == pNormalView->pCaptureFFBtn) {
+               _vp_play_normal_view_screen_move(pNormalView, TRUE);
+       } else {
+               VideoLogWarning("Unknown button");
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param btn
+ */
+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);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_control_btn_press_cb(void *pUserData,
+                                                                                        Evas_Object * pObj,
+                                                                                        void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       if (!pObj) {
+               VideoLogError("pObj is NULL");
+               return;
+       }
+       bool bSpeedMode = FALSE;
+       NormalView *pNormalView = (NormalView *) pUserData;
+       if (pNormalView->bKeyPressed == TRUE) {
+               VideoLogInfo("Key has been pressed");
+               return;
+       }
+       pNormalView->bKeyPressed = TRUE;
+
+       if (pNormalView->pSpeedTimer) {
+               bSpeedMode = TRUE;
+       }
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+
+       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                  VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+
+       if (pObj == pNormalView->pNextBtn) {
+               VideoLogInfo("pNextBtn Press");
+               if (pNormalView->bHLSMode == FALSE) {
+                       pNormalView->bSpeedFF = TRUE;
+                       pNormalView->nSpeedValue = 1;
+                       pNormalView->bSpeedDown = TRUE;
+                       pNormalView->pSpeedTimer =
+                               ecore_timer_add(VP_NORMAL_LONG_PRESS_TIMER_INTERVAL,
+                                                               __vp_normal_speed_timer_cb,
+                                                               (void *) pNormalView);
+               } else {
+                       pNormalView->pSpeedTimer =
+                               ecore_timer_add(VP_NORMAL_LONG_PRESS_TIMER_INTERVAL,
+                                                               __vp_normal_dlna_speed_timer_cb,
+                                                               (void *) pNormalView);
+               }
+
+       } else if (pObj == pNormalView->pPrevBtn) {
+               VideoLogInfo("pPrevBtn Press");
+               if (pNormalView->bHLSMode == FALSE) {
+                       pNormalView->bSpeedFF = FALSE;
+                       pNormalView->nSpeedValue = 1;
+                       pNormalView->bSpeedDown = TRUE;
+                       pNormalView->pSpeedTimer =
+                               ecore_timer_add(VP_NORMAL_LONG_PRESS_TIMER_INTERVAL,
+                                                               __vp_normal_speed_timer_cb,
+                                                               (void *) pNormalView);
+               } else {
+                       pNormalView->pSpeedTimer =
+                               ecore_timer_add(VP_NORMAL_LONG_PRESS_TIMER_INTERVAL,
+                                                               __vp_normal_dlna_speed_timer_cb,
+                                                               (void *) pNormalView);
+               }
+       } else if (pObj == pNormalView->pResumeBtn) {
+               if (bSpeedMode) {
+                       int nPosition = 0;
+                       if (vp_mm_player_get_position
+                               (pNormalView->pPlayerHandle, &nPosition)) {
+                               VideoLogDebug("nPosition[%d], curPosition[%d]", nPosition,
+                                                         pNormalView->nCurPosition);
+
+                               if (vp_mm_player_set_position
+                                       (pNormalView->pPlayerHandle,
+                                        pNormalView->nCurPosition)) {
+                                       pNormalView->bSeekComplete = FALSE;
+                                       pNormalView->nWaitPos = -1;
+                               } else {
+                                       pNormalView->nWaitPos = nPosition;
+                               }
+                       }
+               }
+       } else if (pObj == pNormalView->pPlayFocusBtn) {
+               VideoLogInfo("pPlayFocusBtn Press");
+               Evas_Object *pObj =
+                       elm_object_part_content_get(pNormalView->pControlLayout,
+                                                                               VP_PLAY_SWALLOW_NORMAL_PLAY);
+               if (pNormalView->pResumeBtn == pObj) {
+                       if (bSpeedMode) {
+                               int nPosition = 0;
+                               if (vp_mm_player_get_position
+                                       (pNormalView->pPlayerHandle, &nPosition)) {
+                                       if (vp_mm_player_set_position
+                                               (pNormalView->pPlayerHandle,
+                                                pNormalView->nCurPosition)) {
+                                               pNormalView->bSeekComplete = FALSE;
+                                               pNormalView->nWaitPos = -1;
+                                       } else {
+                                               pNormalView->nWaitPos = nPosition;
+                                       }
+                               }
+                       }
+               }
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_control_btn_unpress_cb(void *pUserData,
+                                                                                          Evas_Object * pObj,
+                                                                                          void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (!pObj) {
+               VideoLogError("pObj is NULL");
+               return;
+       }
+       VideoLogInfo("");
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       pNormalView->bKeyPressed = FALSE;
+
+       if (pObj == pNormalView->pPauseBtn) {
+       } else if (pObj == pNormalView->pResumeBtn) {
+       } else if (pObj == pNormalView->pNextBtn) {
+               pNormalView->bSpeedDown = FALSE;
+               VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+               if (!pNormalView->pProgressTimer) {
+                       _vp_play_normal_view_create_progress_timer(pNormalView);
+               }
+       } else if (pObj == pNormalView->pPrevBtn) {
+               pNormalView->bSpeedDown = FALSE;
+               VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+               if (!pNormalView->pProgressTimer) {
+                       _vp_play_normal_view_create_progress_timer(pNormalView);
+               }
+       } else if (pObj == pNormalView->pAllsharBtn) {
+               VP_EVAS_IDLER_DEL(pNormalView->pControlIdler);
+               pNormalView->pControlIdler =
+                       ecore_idler_add(__vp_normal_control_idler_cb,
+                                                       (void *) pNormalView);
+       }
+       _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+}
+
+/**
+ *
+ * @param nKey
+ * @param bRelease
+ * @param pUserData
+ */
+static void __vp_normal_media_key_event_cb(vp_media_key_event_t nKey,
+                                                                                  bool bRelease, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+       if (pNormalView->bSharepopup) {
+               VideoLogWarning("bSharepopup is TRUE");
+               return;
+       }
+
+       switch (nKey) {
+       case VP_MEDIA_KEY_PLAY:
+       case VP_MEDIA_KEY_PAUSE:
+       case VP_MEDIA_KEY_PLAYPAUSE:
+               if (bRelease) {
+                       VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+
+                       if (pNormalView->pDetailHandle) {
+                               vp_detail_destroy(pNormalView->pDetailHandle);
+                               pNormalView->pDetailHandle = NULL;
+                       }
+
+                       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+
+                       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");
+                       }
+
+                       if (nState != VP_MM_PLAYER_STATE_PLAYING) {
+                               if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+                                       VideoLogError("Pause Fail");
+                               }
+                               pNormalView->bManualPause = FALSE;
+                       } else {
+                               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                                       VideoLogError("Pause Fail");
+                               }
+                               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);
+               }
+               break;
+
+       case VP_MEDIA_KEY_PREVIOUS:
+               if (bRelease) {
+                       VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+                       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+                       _vp_play_normal_view_on_prev_play(pNormalView, TRUE, FALSE);
+               }
+               break;
+       case VP_MEDIA_KEY_NEXT:
+               if (bRelease) {
+                       VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+                       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+                       _vp_play_normal_view_on_next_play(pNormalView, TRUE);
+               }
+               break;
+       case VP_MEDIA_KEY_REWIND:
+               if (bRelease) {
+                       pNormalView->bSpeedDown = FALSE;
+
+                       if (pNormalView->nSpeedValue < 2) {
+                               VideoLogInfo("speed up");
+                               _vp_normal_view_speed_for_steps(pNormalView, FALSE);
+                       }
+
+                       VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+                       if (pNormalView->pDetailHandle) {
+                               vp_detail_destroy(pNormalView->pDetailHandle);
+                               pNormalView->pDetailHandle = NULL;
+                       }
+
+                       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+
+                       if (pNormalView->bManualPause == FALSE) {
+                               if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+                                       VideoLogError("play Fail");
+                               }
+                               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 {
+                       if (pNormalView->pDetailHandle) {
+                               vp_detail_destroy(pNormalView->pDetailHandle);
+                               pNormalView->pDetailHandle = NULL;
+                       }
+                       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+                       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+                       VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+
+                       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+
+                       pNormalView->bSpeedFF = FALSE;
+                       pNormalView->nSpeedValue = 1;
+                       pNormalView->bSpeedDown = TRUE;
+                       pNormalView->pSpeedTimer =
+                               ecore_timer_add(VP_NORMAL_LONG_PRESS_TIMER_INTERVAL,
+                                                               __vp_normal_speed_timer_cb,
+                                                               (void *) pNormalView);
+               }
+               break;
+       case VP_MEDIA_KEY_FASTFORWARD:
+               if (bRelease) {
+                       pNormalView->bSpeedDown = FALSE;
+
+                       if (pNormalView->nSpeedValue < 2) {
+                               VideoLogInfo("speed up");
+                               _vp_normal_view_speed_for_steps(pNormalView, TRUE);
+                       }
+
+                       VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+                       if (pNormalView->pDetailHandle) {
+                               vp_detail_destroy(pNormalView->pDetailHandle);
+                               pNormalView->pDetailHandle = NULL;
+                       }
+
+                       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+
+                       if (pNormalView->bManualPause == FALSE) {
+                               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;
+                       }
+
+                       _vp_play_normal_view_set_play_state(pNormalView);
+                       _vp_play_normal_view_on_capture_mode(pNormalView);
+               } else {
+                       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+                       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+                       VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+
+                       if (pNormalView->pDetailHandle) {
+                               vp_detail_destroy(pNormalView->pDetailHandle);
+                               pNormalView->pDetailHandle = NULL;
+                       }
+
+                       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+
+                       pNormalView->bSpeedFF = TRUE;
+                       pNormalView->nSpeedValue = 1;
+                       pNormalView->bSpeedDown = TRUE;
+                       pNormalView->pSpeedTimer =
+                               ecore_timer_add(VP_NORMAL_LONG_PRESS_TIMER_INTERVAL,
+                                                               __vp_normal_speed_timer_cb,
+                                                               (void *) pNormalView);
+               }
+               break;
+       case VP_MEDIA_KEY_STOP:
+               if (bRelease) {
+                       VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+                       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+                       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");
+                       }
+
+                       if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+                               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                                       VideoLogError("Pause Fail");
+                               }
+                       }
+                       if (pPlayView && pPlayView->win_minicon) {
+                               vp_minicontroller_update_control(pPlayView);
+                       }
+                       if (pPlayView && 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);
+               }
+               break;
+       }
+
+}
+
+/*
+   this function is for only for keyboard FF/REW key longpress case
+   because of different FF/REW long press scenario in keyboard
+       video -> play a file -> pause -> key down FF button(long press) -> move seek -> key up FF button -> seek stop -> stay pause
+       video -> play a file -> playing -> key down FF button(long press) -> move seek -> key up FF button -> seek stop -> resume
+*/
+
+/**
+ *
+ * @param pViewHandle
+ * @param bRelease
+ * @param bFFseek
+ */
+void
+vp_play_normal_view_ff_rew_keyboard_longpress_event_cb(normal_view_handle
+                                                                                                          pViewHandle,
+                                                                                                          bool bRelease,
+                                                                                                          bool bFFseek)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+       }
+
+       if (pNormalView->pSpeedTimer == NULL && bRelease == FALSE) {
+               if (bFFseek) {
+                       __vp_normal_media_key_event_cb(VP_MEDIA_KEY_FASTFORWARD,
+                                                                                  bRelease, pNormalView);
+               } else {
+                       __vp_normal_media_key_event_cb(VP_MEDIA_KEY_REWIND, bRelease,
+                                                                                  pNormalView);
+               }
+       } else if (pNormalView->pSpeedTimer && bRelease == TRUE) {
+               if (pNormalView->nSpeedValue < 2) {
+                       VideoLogInfo("speed up");
+                       _vp_normal_view_speed_for_steps(pNormalView, bFFseek);
+               } else {
+                       int nPosition = 0;
+                       if (vp_mm_player_get_position
+                               (pNormalView->pPlayerHandle, &nPosition)) {
+                               if (vp_mm_player_set_position
+                                       (pNormalView->pPlayerHandle,
+                                        pNormalView->nCurPosition)) {
+                                       pNormalView->bSeekComplete = FALSE;
+                                       pNormalView->nWaitPos = -1;
+                               } else {
+                                       pNormalView->nWaitPos = nPosition;
+                               }
+                       }
+               }
+
+               VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+               if (pNormalView->pDetailHandle) {
+                       vp_detail_destroy(pNormalView->pDetailHandle);
+                       pNormalView->pDetailHandle = NULL;
+               }
+
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+
+               if (pNormalView->bManualPause == FALSE) {
+                       if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+                               VideoLogError("play Fail");
+                       }
+                       if (pPlayView && pPlayView->win_minicon) {
+                               vp_minicontroller_update_control(pPlayView);
+                       }
+                       if (pPlayView && pPlayView->win_lockmini) {
+                               vp_lockscreenmini_update_control(pPlayView);
+                       }
+                       pNormalView->bManualPause = FALSE;
+               }
+
+               _vp_play_normal_view_set_play_state(pNormalView);
+               _vp_play_normal_view_on_capture_mode(pNormalView);
+       }
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param bSpeedFF
+ */
+static void _vp_normal_view_speed_for_steps(NormalView * pNormalView,
+                                                                                       bool bSpeedFF)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       if (pNormalView->bSeekComplete == FALSE) {
+               VideoLogError("bSeekComplete is fail");
+               return;
+       }
+
+       int nSetPosition = 0;
+       int nCurPosition = 0;
+
+       if (!vp_mm_player_get_position
+               (pNormalView->pPlayerHandle, &nCurPosition)) {
+               VideoLogError("vp_mm_player_get_position is fail");
+               return;
+       }
+
+       if (pNormalView->nDuration <= nCurPosition) {
+               _vp_play_normal_view_on_next_play(pNormalView, FALSE);
+               return;
+       }
+
+       VideoLogInfo("pNormalView->nDuration %d", pNormalView->nDuration);
+       if (bSpeedFF) {
+               nSetPosition = nCurPosition + (15 * 1000);      //15 sec
+       } else {
+               nSetPosition = nCurPosition - (15 * 1000);
+       }
+
+       if (pNormalView->nDuration < nSetPosition) {
+               nSetPosition = pNormalView->nDuration;
+       }
+
+       if (nSetPosition < 0) {
+               nSetPosition = 0;
+       }
+#if 1
+       if (vp_mm_player_set_position
+               (pNormalView->pPlayerHandle, nSetPosition)) {
+#else
+       if (vp_mm_player_set_position_by_key_frame
+               (pNormalView->pPlayerHandle, nSetPosition)) {
+#endif
+               pNormalView->bSeekComplete = FALSE;
+               pNormalView->nCurPosition = nSetPosition;
+               vp_play_progressbar_set_position(pNormalView->pProgressbar,
+                                                                                nSetPosition);
+       }
+
+       return;
+}
+
+//Focus UI
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_view_set_main_layout_focus_out(normal_view_handle *
+                                                                                                  pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       pNormalView->bMainFocusState = FALSE;
+
+       elm_object_focus_set(pNormalView->pNaviFrame, EINA_FALSE);
+       elm_object_tree_focus_allow_set(pNormalView->pNaviFrame, EINA_FALSE);
+       elm_object_focus_allow_set(pNormalView->pNaviFrame, EINA_FALSE);
+
+       elm_object_focus_set(pNormalView->pMainLayout, EINA_FALSE);
+       elm_object_tree_focus_allow_set(pNormalView->pMainLayout, EINA_FALSE);
+       elm_object_focus_allow_set(pNormalView->pMainLayout, EINA_FALSE);
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_view_set_main_layout_focus_in(normal_view_handle *
+                                                                                                 pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+       if (pNormalView->bMainFocusState == TRUE) {
+               VideoLogInfo("Already Focus In");
+               return;
+       }
+       pNormalView->bMainFocusState = TRUE;
+
+       elm_object_focus_allow_set(pNormalView->pNaviFrame, EINA_TRUE);
+       elm_object_tree_focus_allow_set(pNormalView->pNaviFrame, EINA_TRUE);
+       elm_object_focus_set(pNormalView->pNaviFrame, EINA_TRUE);
+
+       elm_object_focus_allow_set(pNormalView->pMainLayout, EINA_TRUE);
+       elm_object_tree_focus_allow_set(pNormalView->pMainLayout, EINA_TRUE);
+       elm_object_focus_set(pNormalView->pMainLayout, EINA_TRUE);
+
+       elm_object_focus_set(pNormalView->pAllsharBtn, EINA_TRUE);
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_view_set_resume_or_pause(normal_view_handle *
+                                                                                        pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       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)) {
+               VideoLogWarning("vp_mm_player_get_state is fail");
+       }
+       if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+               vp_mm_player_pause(pNormalView->pPlayerHandle);
+               pNormalView->bManualPause = TRUE;
+       } else {
+               vp_mm_player_play(pNormalView->pPlayerHandle);
+               pNormalView->bManualPause = FALSE;
+       }
+       if (pPlayView && pPlayView->win_minicon) {
+               vp_minicontroller_update_control(pPlayView);
+       }
+       if (pPlayView && pPlayView->win_lockmini) {
+               vp_lockscreenmini_update_control(pPlayView);
+       }
+       _vp_play_normal_view_set_play_state(pNormalView);
+       _vp_play_normal_view_on_capture_mode(pNormalView);
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_view_show_main_layout(normal_view_handle * pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       _vp_play_normal_view_show_layout(pNormalView);
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_view_create_main_layout_hide_timer(normal_view_handle *
+                                                                                                          pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_set_button_focus_sequence(NormalView *
+                                                                                                                  pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       bool bLandscape =
+               vp_play_util_get_landscape_check(pNormalView->nRotate);
+
+       elm_object_focus_set(pNormalView->pVolumeBtn, EINA_TRUE);
+
+       vp_play_util_focus_next_object_set(pNormalView->pPrevBtn,
+                                                                          pNormalView->pPlayFocusBtn,
+                                                                          ELM_FOCUS_RIGHT);
+       vp_play_util_focus_next_object_set(pNormalView->pPlayFocusBtn,
+                                                                          pNormalView->pPrevBtn,
+                                                                          ELM_FOCUS_LEFT);
+
+       vp_play_util_focus_next_object_set(pNormalView->pPlayFocusBtn,
+                                                                          pNormalView->pNextBtn,
+                                                                          ELM_FOCUS_RIGHT);
+       vp_play_util_focus_next_object_set(pNormalView->pNextBtn,
+                                                                          pNormalView->pPlayFocusBtn,
+                                                                          ELM_FOCUS_LEFT);
+
+       vp_play_util_focus_next_object_set(pNormalView->pAllsharBtn,
+                                                                          pNormalView->pPlayFocusBtn,
+                                                                          ELM_FOCUS_DOWN);
+       if (pNormalView->pSoundPathBtn) {
+               vp_play_util_focus_next_object_set(pNormalView->pAllsharBtn,
+                                                                                  pNormalView->pSoundPathBtn,
+                                                                                  ELM_FOCUS_NEXT);
+       } else {
+               vp_play_util_focus_next_object_set(pNormalView->pAllsharBtn,
+                                                                                  pNormalView->pPlayFocusBtn,
+                                                                                  ELM_FOCUS_NEXT);
+       }
+       vp_play_util_focus_next_object_set(pNormalView->pSoundPathBtn,
+                                                                          pNormalView->pPlayFocusBtn,
+                                                                          ELM_FOCUS_DOWN);
+       vp_play_util_focus_next_object_set(pNormalView->pSoundPathBtn,
+                                                                          pNormalView->pPlayFocusBtn,
+                                                                          ELM_FOCUS_NEXT);
+
+       if (bLandscape == TRUE) {
+               vp_play_util_focus_next_object_set(pNormalView->pVolumeBtn,
+                                                                                  pNormalView->pBookmarkBtn,
+                                                                                  ELM_FOCUS_RIGHT);
+               vp_play_util_focus_next_object_set(pNormalView->pBookmarkBtn,
+                                                                                  pNormalView->pVolumeBtn,
+                                                                                  ELM_FOCUS_LEFT);
+
+               vp_play_util_focus_next_object_set(pNormalView->pBookmarkBtn,
+                                                                                  pNormalView->pPrevBtn,
+                                                                                  ELM_FOCUS_RIGHT);
+               vp_play_util_focus_next_object_set(pNormalView->pPrevBtn,
+                                                                                  pNormalView->pBookmarkBtn,
+                                                                                  ELM_FOCUS_LEFT);
+
+               vp_play_util_focus_next_object_set(pNormalView->pNextBtn,
+                                                                                  pNormalView->pMultiWinBtn,
+                                                                                  ELM_FOCUS_RIGHT);
+               vp_play_util_focus_next_object_set(pNormalView->pMultiWinBtn,
+                                                                                  pNormalView->pNextBtn,
+                                                                                  ELM_FOCUS_LEFT);
+
+               vp_play_util_focus_next_object_set(pNormalView->pMultiWinBtn,
+                                                                                  pNormalView->pScreenSizeBtn,
+                                                                                  ELM_FOCUS_RIGHT);
+               vp_play_util_focus_next_object_set(pNormalView->pScreenSizeBtn,
+                                                                                  pNormalView->pMultiWinBtn,
+                                                                                  ELM_FOCUS_LEFT);
+       } else {
+               vp_play_util_focus_next_object_set(pNormalView->pBookmarkBtn,
+                                                                                  pNormalView->pMultiWinBtn,
+                                                                                  ELM_FOCUS_RIGHT);
+               vp_play_util_focus_next_object_set(pNormalView->pMultiWinBtn,
+                                                                                  pNormalView->pBookmarkBtn,
+                                                                                  ELM_FOCUS_LEFT);
+
+               vp_play_util_focus_next_object_set(pNormalView->pVolumeBtn,
+                                                                                  pNormalView->pPrevBtn,
+                                                                                  ELM_FOCUS_RIGHT);
+               vp_play_util_focus_next_object_set(pNormalView->pPrevBtn,
+                                                                                  pNormalView->pVolumeBtn,
+                                                                                  ELM_FOCUS_LEFT);
+
+               vp_play_util_focus_next_object_set(pNormalView->pNextBtn,
+                                                                                  pNormalView->pScreenSizeBtn,
+                                                                                  ELM_FOCUS_RIGHT);
+               vp_play_util_focus_next_object_set(pNormalView->pScreenSizeBtn,
+                                                                                  pNormalView->pNextBtn,
+                                                                                  ELM_FOCUS_LEFT);
+
+               vp_play_util_focus_next_object_set(pNormalView->pVolumeBtn,
+                                                                                  pNormalView->pBookmarkBtn,
+                                                                                  ELM_FOCUS_UP);
+               vp_play_util_focus_next_object_set(pNormalView->pBookmarkBtn,
+                                                                                  pNormalView->pVolumeBtn,
+                                                                                  ELM_FOCUS_DOWN);
+       }
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_get_main_layout_focus_state(normal_view_handle *
+                                                                                                        pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       return pNormalView->bMainFocusState;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_get_main_layout_show_state(normal_view_handle *
+                                                                                                       pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       return pNormalView->bShowLayout;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+vp_normalview_popup_style_e
+vp_play_normal_view_get_popup_show_state(normal_view_handle * pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return VP_PLAY_NORMAL_VIEW_POPUP_NONE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       vp_normalview_popup_style_e nPopUpShow =
+               VP_PLAY_NORMAL_VIEW_POPUP_NONE;
+
+       if (pNormalView->pCtxPopup) {
+               nPopUpShow = VP_PLAY_NORMAL_VIEW_CTX_POPUP;
+       } else if (pNormalView->bIsPopupShow || pNormalView->bIsSubtitleShow) {
+               nPopUpShow = VP_PLAY_NORMAL_VIEW_OTHER_POPUP;
+       }
+
+       return nPopUpShow;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param obj
+ * @param event_info
+ */
+static void __vp_normal_naviframe_back_btn_cb(void *pUserData,
+                                                                                         Evas_Object * obj,
+                                                                                         void *event_info)
+{
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       _vp_play_normal_view_set_played_time(pNormalView);
+
+       pNormalView->pExitWaitTimer =
+               ecore_timer_add(VP_NORMAL_EXIT_WAIT_TIMER_INTERVAL,
+                                               __vp_normal_exit_wait_timer_cb,
+                                               (void *) pNormalView);
+
+       elm_naviframe_item_pop(pNormalView->pNaviFrame);
+
+       return;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+static Eina_Bool __vp_normal_naviframe_pop_cb(void *pUserData,
+                                                                                         Elm_Object_Item * pItem)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       if (pNormalView->bLockScreen) {
+               VideoLogError("Skip for bLockScreen");
+               _vp_play_normal_view_show_lock_screen(pNormalView);
+               return EINA_FALSE;
+       }
+
+       if (pNormalView->bIsActive) {
+               if (pNormalView->pExitWaitTimer) {
+                       _vp_play_normal_view_set_played_time(pNormalView);
+
+                       PlayView *pPlayView = pNormalView->pPlayView;
+
+                       if (!pPlayView) {
+                               VideoLogError("pPlayView is NULL");
+                               return EINA_FALSE;
+                       }
+
+                       if (!pPlayView->pFunc) {
+                               VideoLogError("pPlayView pFunc is NULL");
+                               return EINA_FALSE;
+                       }
+
+                       if (!pPlayView->pFunc->vp_play_func_exit) {
+                               VideoLogError("pPlayView exit Func is NULL");
+                               return EINA_FALSE;
+                       }
+
+                       vp_device_set_screen_off(FALSE);
+                       vp_play_util_set_unlock_power_key();
+
+                       VideoLogWarning("== BACK ==");
+                       pPlayView->pFunc->vp_play_func_exit(pPlayView);
+
+                       return EINA_FALSE;
+               } else {
+                       PlayView *pPlayView = pNormalView->pPlayView;
+
+                       if (!pPlayView) {
+                               VideoLogError("pPlayView is NULL");
+                               return EINA_FALSE;
+                       }
+
+                       if (pPlayView->bDestroy) {
+                               pNormalView->pNaviFrame = NULL; // it will be deleted when return TRUE
+                               return EINA_TRUE;
+                       }
+
+                       vp_play_util_status_noti_show(VP_PLAY_STRING_COM_WAIT_BACK);
+
+                       pNormalView->pExitWaitTimer =
+                               ecore_timer_add(VP_NORMAL_EXIT_WAIT_TIMER_INTERVAL,
+                                                               __vp_normal_exit_wait_timer_cb,
+                                                               (void *) pNormalView);
+
+                       return EINA_FALSE;
+               }
+       }
+
+       if (pNormalView->bDestroyNavi) {
+               VideoLogWarning("bDestroyNavi is TRUE.");
+               pNormalView->pNaviFrame = NULL; // it will be deleted when return TRUE
+
+               return EINA_TRUE;
+       }
+
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_normal_main_layout_resize_cb(void *pUserData,
+                                                                                         Evas * pEvas,
+                                                                                         Evas_Object * pObj,
+                                                                                         void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("[ERR] No Exist pUserData.");
+               return;
+       }
+       //if needed, to do
+}
+
+/**
+ *
+ * @param szColorHex
+ * @return
+ */
+/*szColorHex:#RGBA ---> nColor:ARGB*/
+static unsigned int _vp_play_normal_view_convert_color_to_argb(char
+                                                                                                                          *szColorHex)
+{
+       unsigned int nColor = 0;
+       char *szColor =
+               g_strdup_printf("%s%6.6s", (szColorHex + 7), (szColorHex + 1));
+       nColor = strtoul(szColor, NULL, 16);
+       VideoLogInfo("szColorHex:%s, szColor: %s, nColor:%0x", szColorHex,
+                                szColor, nColor);
+       VP_FREE(szColor);
+
+       return nColor;
+}
+
+/* internal functions */
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_set_subtitle_font_config(NormalView *
+                                                                                                                 pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+
+       if (!pNormalView->pPlayerHandle) {
+               VideoLogError("pNormalView pPlayerHandle is NULL");
+               return FALSE;
+       }
+
+       /* set subtitle option */
+       char *szFontFamilyName = NULL;
+       int nSubtitleSize = VIDEO_SUBTITLE_SIZE_MEDIUM;
+       int nSubtitleSizeValue = VP_SUBTITLE_SIZE_MEDIUM_VALUE;
+       unsigned int nFontColor = 0;
+       unsigned int nBGColor = 0;
+       int nAlignment = VIDEO_SUBTITLE_ALIGNMENT_CENTER;
+
+       vp_play_preference_get_subtitle_font_name_key(&szFontFamilyName);
+       vp_play_preference_get_subtitle_size_key(&nSubtitleSize);
+
+       if (nSubtitleSize == VIDEO_SUBTITLE_SIZE_SMALL) {
+               nSubtitleSizeValue = VP_SUBTITLE_SIZE_SMALL_VALUE;
+       } else if (nSubtitleSize == VIDEO_SUBTITLE_SIZE_MEDIUM) {
+               nSubtitleSizeValue = VP_SUBTITLE_SIZE_MEDIUM_VALUE;
+       } else if (nSubtitleSize == VIDEO_SUBTITLE_SIZE_LARGE) {
+               nSubtitleSizeValue = VP_SUBTITLE_SIZE_LARGE_VALUE;
+       }
+#ifndef SUBTITLE_K_FEATURE
+       int nFontColorKey = VP_SUBTITLE_COLOR_BLACK;
+       int nBGColorKey = VP_SUBTITLE_COLOR_BLACK;
+
+       vp_play_preference_get_subtitle_font_color_key(&nFontColorKey);
+
+       if (nFontColorKey == VIDEO_SUBTITLE_COLOR_BLACK) {
+               nFontColor = 0xff000000;
+       } else if (nFontColorKey == VIDEO_SUBTITLE_COLOR_BLUE) {
+               nFontColor = 0xff0000ff;
+       } else if (nFontColorKey == VIDEO_SUBTITLE_COLOR_GREEN) {
+               nFontColor = 0xff00ff00;
+       } else if (nFontColorKey == VIDEO_SUBTITLE_COLOR_WHITE) {
+               nFontColor = 0xffffffff;
+       }
+
+       vp_play_preference_get_subtitle_bg_color_key(&nBGColorKey);
+
+       if (nBGColorKey == VIDEO_SUBTITLE_COLOR_BLACK) {
+               nBGColor = 0xff000000;
+       } else if (nBGColorKey == VIDEO_SUBTITLE_COLOR_WHITE) {
+               nBGColor = 0xffffffff;
+       } else if (nBGColorKey == VIDEO_SUBTITLE_COLOR_NONE) {
+               nBGColor = 0x00000000;
+       }
+#else
+       char *szColorHex = NULL;
+       vp_play_preference_get_subtitle_font_color_hex_key(&szColorHex);
+       if (szColorHex != NULL) {
+               nFontColor =
+                       _vp_play_normal_view_convert_color_to_argb(szColorHex);
+       }
+
+       char *szBGColorHex = NULL;
+       vp_play_preference_get_subtitle_bg_color_hex_key(&szBGColorHex);
+       if (szBGColorHex != NULL) {
+               nBGColor =
+                       _vp_play_normal_view_convert_color_to_argb(szBGColorHex);
+
+       }
+
+       vp_play_preference_get_subtitle_alignment_key(&nAlignment);
+
+#endif
+       if (!vp_mm_player_set_subtitle_font
+               (pNormalView->pPlayerHandle, szFontFamilyName, NULL,
+                nSubtitleSizeValue)) {
+               VideoLogError("vp_mm_player_set_subtitle_font fail");
+       }
+       if (!vp_mm_player_set_subtitle_font_color
+               (pNormalView->pPlayerHandle, nFontColor, nBGColor)) {
+               VideoLogError("vp_mm_player_set_subtitle_font_color fail");
+       }
+       VP_FREE(szFontFamilyName);
+
+       if (!vp_mm_player_subtitle_ignore_markup_tags
+               (pNormalView->pPlayerHandle, FALSE)) {
+               VideoLogError("vp_mm_player_subtitle_ignore_markup_tags fail");
+       }
+
+       if (!vp_mm_player_subtitle_set_alignment_in_line
+               (pNormalView->pPlayerHandle, nAlignment)) {
+               VideoLogError("vp_mm_player_subtitle_set_alignment_in_line fail");
+       }
+
+       if (!vp_mm_player_subtitle_set_alignment_horizontal
+               (pNormalView->pPlayerHandle, nAlignment)) {
+               VideoLogError
+                       ("vp_mm_player_subtitle_set_alignment_horizontal fail");
+       }
+
+       if (!vp_mm_player_subtitle_apply_alignment_right_away
+               (pNormalView->pPlayerHandle)) {
+               VideoLogError
+                       ("vp_mm_player_subtitle_apply_alignment_right_away fail");
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_update_progress_value(NormalView *
+                                                                                                          pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+
+       int nPosition = 0;
+       vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+       if (pNormalView->bHLSMode) {
+               VideoLogWarning("Skip for HLS");
+               VP_EVAS_TIMER_DEL(pNormalView->pProgressTimer);
+               return FALSE;
+       }
+
+       if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+               VideoLogWarning("vp_mm_player_get_state is fail");
+       }
+       if (!vp_mm_player_get_position(pNormalView->pPlayerHandle, &nPosition)) {
+               VideoLogError("vp_mm_player_get_position is fail");
+       }
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+               int nBufferingPosition = 0;
+               vp_mm_player_get_buffering_position(pNormalView->pPlayerHandle,
+                                                                                       &nBufferingPosition);
+               vp_play_progressbar_set_buffering_position(pNormalView->
+                                                                                                  pProgressbar,
+                                                                                                  nBufferingPosition);
+       }
+       if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+               nPosition += 1000;
+       }
+       if (nPosition > pNormalView->nDuration) {
+               nPosition = pNormalView->nDuration;
+       }
+       vp_play_progressbar_set_position(pNormalView->pProgressbar, nPosition);
+
+       pNormalView->nCurPosition = nPosition;
+
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+               PlayView *pPlayView = pNormalView->pPlayView;
+               pPlayView->nStartPosition = nPosition;
+       }
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_check_during_call(NormalView *
+                                                                                                  pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+       bool bCallOn = FALSE;
+
+       if (pPlayView && pPlayView->telinit) {
+               vp_play_config_get_call_state(&bCallOn);
+       } else {
+               VideoLogError
+                       ("telephony was not initialised hence returning call state as default =  FALSE");
+       }
+       if (bCallOn) {
+               VP_EVAS_DEL(pNormalView->pPopup);
+               pNormalView->pPopup = NULL;
+
+               if (!pPlayView) {
+                       VideoLogError("pPlayView is NULL");
+                       return FALSE;
+               }
+               pNormalView->pPopup = vp_popup_create(pPlayView->pWin,
+                                                                                         POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                                                         NULL,
+                                                                                         VP_PLAY_STRING_UNABLE_TO_PLAY_VIDEO_DURING_CALL,
+                                                                                         2.0,
+                                                                                         __vp_normal_popup_time_out_cb,
+                                                                                         __vp_normal_popup_key_event_cb,
+                                                                                         __vp_normal_popup_mouse_event_cb,
+                                                                                         pNormalView);
+
+               evas_object_show(pNormalView->pPopup);
+               pNormalView->bIsPopupShow = TRUE;
+       }
+
+       return bCallOn;
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_show_audio_only_popup(NormalView *
+                                                                                                          pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       VideoLogInfo
+               ("Show toast popup: Only audio data supported by this file. Now playing video.");
+       _vp_normal_set_audio_only_image(pNormalView, TRUE);
+       vp_play_util_status_noti_show
+               (VP_PLAY_STRING_ERROR_ONLY_AUDIO_DATA_SUPPORTED);
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_show_video_only_popup(NormalView *
+                                                                                                          pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       VideoLogInfo
+               ("Show toast popup: Only video data supported by this file. Now playing video.");
+       _vp_normal_set_audio_only_image(pNormalView, FALSE);
+       vp_play_util_status_noti_show
+               (VP_PLAY_STRING_ERROR_ONLY_VIDEO_DATA_SUPPORTED);
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_check_audio_only(NormalView * pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+
+       /* Audio only */
+       char *audio_codec = NULL;
+       char *video_codec = NULL;
+       bool b_audio_only = FALSE;
+       bool b_video_only = FALSE;
+       if (vp_mm_player_get_codecinfo
+               (pNormalView->pPlayerHandle, &audio_codec, &video_codec)) {
+               VideoLogWarning("audio_codec=%s, video_codec=%s", audio_codec,
+                                               video_codec);
+               if (video_codec == NULL || strlen(video_codec) <= 1) {
+                       if (audio_codec != NULL && strlen(audio_codec) > 1) {
+                               b_audio_only = TRUE;
+                       }
+               }
+
+               if (audio_codec == NULL || strlen(audio_codec) <= 1) {
+                       if (video_codec != NULL && strlen(video_codec) > 1) {
+                               b_video_only = TRUE;
+                       }
+               }
+
+               VP_FREE(audio_codec);
+               VP_FREE(video_codec);
+       }
+
+       VideoLogWarning("b_audio_only=%d, b_video_only=%d", b_audio_only,
+                                       b_video_only);
+
+       if (b_audio_only) {
+               VideoLogInfo("Only audio data supported.");
+               _vp_play_normal_view_show_audio_only_popup(pNormalView);
+       } else {
+               _vp_normal_set_audio_only_image(pNormalView, FALSE);
+       }
+
+       if (b_video_only) {
+               VideoLogInfo("Only video data supported.");
+               _vp_play_normal_view_show_video_only_popup(pNormalView);
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param bLock
+ * @return
+ */
+static bool _vp_play_normal_view_check_drm_lock(NormalView * pNormalView,
+                                                                                               bool * bLock)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+
+
+       if (!pNormalView->szMediaURL) {
+               return FALSE;
+       }
+
+       *bLock = FALSE;
+#ifdef ENABLE_DRM_FEATURE
+       bool bIsDrm = FALSE;
+
+       if (vp_drm_is_drm_file(pNormalView->szMediaURL, &bIsDrm)) {
+               if (bIsDrm) {
+                       bool bIsFWLock = FALSE;
+                       bool bIsDivX = FALSE;
+                       bool bIsPlayReadyDRM = FALSE;
+
+                       if (vp_drm_is_check_forward_lock
+                               (pNormalView->szMediaURL, &bIsFWLock)) {
+                               if (bIsFWLock) {
+                                       *bLock = TRUE;
+                               }
+                       }
+                       if (vp_drm_is_divx_drm_file(pNormalView->szMediaURL, &bIsDivX)) {
+                               if (bIsDivX) {
+                                       *bLock = TRUE;
+                               }
+                       }
+
+                       if (vp_drm_is_playready_drm_file
+                               (pNormalView->szMediaURL, &bIsPlayReadyDRM)) {
+                               if (bIsPlayReadyDRM) {
+                                       *bLock = TRUE;
+                               }
+                       }
+               }
+       }
+#endif
+       return TRUE;
+}
+
+#ifdef ENABLE_DRM_FEATURE
+static bool _vp_play_normal_view_check_drm(NormalView * pNormalView,
+                                                                                  bool * bIsAvailablePlay)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return FALSE;
+       }
+
+       *bIsAvailablePlay = TRUE;
+
+       bool bIsDrm = FALSE;
+       bool bIsDivXDRM = FALSE;
+
+       if (!vp_drm_is_drm_file(pNormalView->szMediaURL, &bIsDrm)) {
+               VideoLogError("vp_drm_is_drm_file is fail");
+               return FALSE;
+       }
+
+       if (bIsDrm == FALSE) {
+               VideoLogWarning("Not DRM File");
+               return TRUE;
+       } else {
+               VideoLogWarning("== IS DRM FILE ================================");
+       }
+
+       if (pNormalView->pPlayView->bStoreDownload == TRUE) {
+               bool bCheckLicense = FALSE;
+               if (!vp_drm_is_check_license
+                       (pNormalView->szMediaURL, &bCheckLicense)) {
+                       VideoLogError("vp_drm_is_check_license is fail");
+
+                       *bIsAvailablePlay = FALSE;
+
+                       return FALSE;
+               }
+
+               if (bCheckLicense == FALSE) {
+                       if (!vp_store_license_acquisition(pNormalView->szMediaURL,
+                                                                                         pNormalView->pPlayView->
+                                                                                         pStoreAppId,
+                                                                                         pNormalView->pPlayView->
+                                                                                         pStoreOrderId,
+                                                                                         pNormalView->pPlayView->
+                                                                                         pStoreMvId,
+                                                                                         pNormalView->pPlayView->
+                                                                                         pStoreServerId,
+                                                                                         _vp_play_normal_view_store_la_cb,
+                                                                                         (const void *) pNormalView)) {
+                               VideoLogError("vp_store_license_acquisition is fail");
+
+                               *bIsAvailablePlay = FALSE;
+
+                               return FALSE;
+                       }
+
+                       return FALSE;
+               }
+       }
+
+       if (!vp_drm_is_divx_drm_file(pNormalView->szMediaURL, &bIsDivXDRM)) {
+               VideoLogError("vp_drm_is_divx_drm_file is fail");
+               return FALSE;
+       }
+
+       if (bIsDivXDRM == FALSE) {
+               return TRUE;
+
+               if (!vp_drm_is_check_license(pNormalView->szMediaURL, &bIsLicense)) {
+                       VideoLogError("vp_drm_is_check_license is fail");
+                       *bIsAvailablePlay = FALSE;
+                       return FALSE;
+               }
+
+
+               if (bIsLicense == FALSE) {
+                       VideoLogWarning("bIsLicense is Invalid");
+
+                       *bIsAvailablePlay = FALSE;
+
+
+                       VP_EVAS_DEL(pNormalView->pPopup);
+                       pNormalView->pPopup = NULL;
+
+                       char *szMessage = NULL;
+                       char *szTitleTemp = NULL;
+
+                       szTitleTemp =
+                               vp_play_util_get_title_from_path(pNormalView->szMediaURL);
+                       szMessage =
+                               g_strdup_printf
+                               (VP_PLAY_STRING_DRM_CURRENTLY_LOCKED_UNLOCK_Q,
+                                szTitleTemp);
+
+                       pNormalView->pPopup =
+                               vp_popup_create(pPlayView->pWin, POPUP_STYLE_DEFAULT,
+                                                               VP_PLAY_STRING_COM_ERROR, szMessage, 3.0,
+                                                               __vp_normal_error_popup_time_out_cb, NULL,
+                                                               NULL, pNormalView);
+                       evas_object_show(pNormalView->pPopup);
+                       pNormalView->bIsPopupShow = TRUE;
+
+                       VP_FREE(szMessage);
+                       VP_FREE(szTitleTemp);
+
+                       return TRUE;
+               }
+       }
+
+       vp_drm_constraint_info stConstraintInfo = { 0, };
+
+       if (!vp_drm_get_constarint_info
+               (pNormalView->szMediaURL, &stConstraintInfo)) {
+               VideoLogError("vp_drm_get_constarint_info is fail");
+               return FALSE;
+       }
+
+       char *szMsg = NULL;
+       char *szTitle = NULL;
+       szTitle = vp_play_util_get_title_from_path(pNormalView->szMediaURL);
+
+       if (bIsDivXDRM) {
+               if (stConstraintInfo.status ==
+                       VP_DRM_CONSTRAINT_TYPE_NOT_AUTHORIZED) {
+                       VP_EVAS_DEL(pNormalView->pPopup);
+                       pNormalView->pPopup = NULL;
+                       pNormalView->pPopup =
+                               vp_popup_create(pPlayView->pWin,
+                                                               POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                               VP_PLAY_STRING_COM_ERROR,
+                                                               VP_PLAY_STRING_DIVX_DRM_AUTHORIZATION_ERROR,
+                                                               3.0, __vp_normal_error_popup_time_out_cb,
+                                                               NULL, NULL, pNormalView);
+
+                       evas_object_show(pNormalView->pPopup);
+                       pNormalView->bIsPopupShow = TRUE;
+
+                       VP_FREE(szTitle);
+
+                       return TRUE;
+               }
+
+               while (stConstraintInfo.constraints) {
+                       if (stConstraintInfo.constraints & VP_DRM_CONSTRAINT_COUNT) {
+                               if (stConstraintInfo.remaining_count == 0) {
+                                       szMsg =
+                                               g_strdup_printf
+                                               (VP_PLAY_STRING_DIVX_DRM_RENTAL_EXPIRED_ERROR,
+                                                stConstraintInfo.original_count -
+                                                stConstraintInfo.remaining_count,
+                                                stConstraintInfo.original_count);
+                               } else {
+                                       szMsg =
+                                               g_strdup_printf
+                                               (VP_PLAY_STRING_DIVX_DRM_RENTAL_CONFIRMATION_CHOICE,
+                                                stConstraintInfo.original_count -
+                                                stConstraintInfo.remaining_count,
+                                                stConstraintInfo.original_count);
+                               }
+                               break;
+                       }
+               }
+       } else {
+               bool bNotiPopup = FALSE;
+
+               while (stConstraintInfo.constraints) {
+                       if (stConstraintInfo.constraints & VP_DRM_CONSTRAINT_COUNT) {
+                               if (stConstraintInfo.remaining_count == 2) {
+                                       szMsg =
+                                               g_strdup_printf
+                                               (VP_PLAY_STRING_DRM_PS_2_MORE_TIME_START_NOW_Q,
+                                                szTitle);
+                               } else if (stConstraintInfo.remaining_count == 1) {
+                                       szMsg =
+                                               g_strdup_printf
+                                               (VP_PLAY_STRING_DRM_PS_1_MORE_TIME_START_NOW_Q,
+                                                szTitle);
+                               } else if (stConstraintInfo.remaining_count == 0) {
+                                       bNotiPopup = TRUE;
+                               }
+                               break;
+                       }
+
+                       if (stConstraintInfo.constraints & VP_DRM_CONSTRAINT_DATE_TIME) {
+                               if (stConstraintInfo.date_time_expired) {
+                                       bNotiPopup = TRUE;
+                               }
+                               break;
+                       }
+
+                       if (stConstraintInfo.constraints & VP_DRM_CONSTRAINT_INTERVAL) {
+                               if (stConstraintInfo.remaining_interval_sec == 0) {
+                                       bNotiPopup = TRUE;
+                               } else {
+                                       int nDays =
+                                               stConstraintInfo.remaining_interval_sec /
+                                               VP_ACCUMULATED_DATE + 1;
+                                       szMsg =
+                                               g_strdup_printf
+                                               (VP_PLAY_STRING_DRM_PS_FOR_PD_DAYS_START_NOW_Q,
+                                                szTitle, nDays);
+                               }
+                               break;
+                       }
+
+                       if (stConstraintInfo.
+                               constraints & VP_DRM_CONSTRAINT_TIMED_COUNT) {
+                               if (stConstraintInfo.remaining_timed_count == 2) {
+                                       szMsg =
+                                               g_strdup_printf
+                                               (VP_PLAY_STRING_DRM_PS_2_MORE_TIME_START_NOW_Q,
+                                                szTitle);
+                               } else if (stConstraintInfo.remaining_timed_count == 1) {
+                                       szMsg =
+                                               g_strdup_printf
+                                               (VP_PLAY_STRING_DRM_PS_1_MORE_TIME_START_NOW_Q,
+                                                szTitle);
+                               } else if (stConstraintInfo.remaining_timed_count == 0) {
+                                       bNotiPopup = TRUE;
+                               }
+                               break;
+                       }
+
+                       if (stConstraintInfo.
+                               constraints & VP_DRM_CONSTRAINT_ACCUMLATED_TIME) {
+                               if (stConstraintInfo.remaining_acc_sec == 0) {
+                                       bNotiPopup = TRUE;
+                               }
+                               break;
+                       }
+               }
+       }
+
+       VP_FREE(szMsg);
+       VP_FREE(szTitle);
+
+       return TRUE;
+}
+#endif
+
+#ifndef ENABLE_SUBTITLE
+/**
+ *
+ * @param pSubtitleList
+ */
+static void _vp_play_normal_view_free_subtitle_list(GList * pSubtitleList)
+{
+       if (pSubtitleList) {
+               int nCount = 0;
+               int i = 0;
+               nCount = g_list_length(pSubtitleList);
+               for (i = 0; i < nCount; i++) {
+                       char *szName = NULL;
+                       szName = (char *) g_list_nth_data(pSubtitleList, i);
+                       VP_FREE(szName);
+               }
+
+               g_list_free(pSubtitleList);
+       }
+}
+#endif
+
+#ifdef _NATIVE_BUFFER_SYNC
+static Evas_Object *_vp_play_normal_view_create_image_sink(void *pParent,
+                                                                                                                  void *pUserData)
+{
+
+       if (!pUserData) {
+               VideoLogError("[ERR] No Exist pUserData.");
+               return NULL;
+       }
+
+       Evas *pEvas = NULL;
+       Evas_Object *pObj = NULL;
+
+       pEvas = evas_object_evas_get(pParent);
+
+       pObj = evas_object_image_add(pEvas);
+       if (NULL == pObj) {
+               VideoLogError("pObj is NULL");
+               return NULL;
+       }
+
+       evas_object_image_size_set(pObj, VP_NORMAL_DEFAULT_WIDTH,
+                                                          VP_NORMAL_DEFAULT_HEIGHT);
+       evas_object_image_fill_set(pObj, 0, 0, VP_NORMAL_DEFAULT_WIDTH,
+                                                          VP_NORMAL_DEFAULT_HEIGHT);
+       evas_object_resize(pObj, VP_NORMAL_DEFAULT_WIDTH,
+                                          VP_NORMAL_DEFAULT_HEIGHT);
+
+       void *pImageBuf = evas_object_image_data_get(pObj, EINA_TRUE);
+       if (NULL == pImageBuf) {
+               VideoLogError("pImageBuf is NULL");
+               VP_EVAS_DEL(pObj);
+               return NULL;
+       }
+
+       int nBufSize = VP_NORMAL_DEFAULT_WIDTH * VP_NORMAL_DEFAULT_HEIGHT * 4;
+
+       memset(pImageBuf, 0, nBufSize);
+       evas_object_image_data_set(pObj, pImageBuf);
+
+       elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_SINK,
+                                                               pObj);
+
+       return pObj;
+
+}
+#endif
+
+/**
+ *
+ * @param pView
+ * @return
+ */
+static bool _vp_play_normal_view_release_service_share(PlayView * pView)
+{
+       if (!pView)
+               return FALSE;
+
+       if (pView->pServiceShare) {
+               app_control_send_terminate_request(pView->pServiceShare);
+               app_control_destroy(pView->pServiceShare);
+               pView->pServiceShare = NULL;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_play_start(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+       _vp_play_normal_view_play_start(pNormalView, FALSE);
+       return TRUE;
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param bCheckDRM
+ * @return
+ */
+static bool _vp_play_normal_view_play_start(NormalView * pNormalView,
+                                                                                       bool bCheckDRM)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+       VideoLogWarning(">>");
+
+       if (pNormalView->bIsActive == FALSE) {
+               VideoLogError("pNormalView is NOT realized. skip");
+               return FALSE;
+       }
+
+
+       VP_EVAS_TIMER_DEL(pNormalView->pSubtitleTimer);
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (!pPlayView) {
+               VideoLogWarning("pPlayView is NULL");
+               return FALSE;
+       }
+
+       vp_mm_player_state_t nState =
+               vp_play_normal_view_get_player_state(pPlayView);
+       pPlayView->lockmini_hide = FALSE;
+       if (pPlayView->b_lockmini_show && nState == VP_MM_PLAYER_STATE_PAUSED) {
+               /* Screen unlocked in paused state. So, hide lockscreen minicontrol */
+               pPlayView->lockmini_hide = TRUE;
+       }
+
+       if (pNormalView->pZoomGuide) {
+               vp_zoom_guide_destroy(pNormalView->pZoomGuide);
+               pNormalView->pZoomGuide = NULL;
+       }
+
+       if (pNormalView->pImageBufferObj) {
+               elm_object_part_content_unset(pNormalView->pMainLayout,
+                                                                         VP_PLAY_SWALLOW_NORMAL_IMAGE_BUFFER);
+               VP_EVAS_DEL(pNormalView->pImageBufferObj);
+       }
+
+       pNormalView->fZoomValue = 1.0;
+       pNormalView->bIsVideoUnsupport = FALSE;
+       pNormalView->bBufferingComplete = TRUE;
+       pNormalView->bCaptureComplete = TRUE;
+       pNormalView->bDeviceRemoveInterrupt = FALSE;
+
+       _vp_play_normal_view_all_close_popup(pNormalView);
+
+       VP_FREE(pPlayView->szMediaURL);
+       VP_STRDUP(pPlayView->szMediaURL, pNormalView->szMediaURL);
+       VideoSecureLogInfo("== PLAY START : %s ==", pNormalView->szMediaURL);
+
+#ifdef _NATIVE_BUFFER_SYNC
+       VP_EVAS_DEL(pNormalView->pVideoSink);
+       pNormalView->pVideoSink =
+               _vp_play_normal_view_create_image_sink(pNormalView->pMainLayout,
+                                                                                          (void *) pNormalView);
+       if (!pNormalView->pVideoSink) {
+               VideoLogError
+                       ("_vp_play_normal_view_create_image_sink handle is null");
+               return FALSE;
+       }
+#endif
+
+       pNormalView->pSubtitleTimer = NULL;
+       pNormalView->bIsExistSubtitle = FALSE;
+
+       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                  VP_NORMAL_SIGNAL_MAIN_PLAYING_SPEED_HIDE, "*");
+
+       VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+
+       if (pNormalView->pDetailHandle) {
+               vp_detail_destroy(pNormalView->pDetailHandle);
+               pNormalView->pDetailHandle = NULL;
+       }
+
+       if (pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_WEB &&
+               pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_MULTI_PATH) {
+
+               if (!vp_play_util_local_file_check(pNormalView->szMediaURL)) {
+                       /* popup show */
+                       VP_EVAS_DEL(pNormalView->pPopup);
+                       pNormalView->pPopup = NULL;
+                       PlayView *pPlayView = pNormalView->pPlayView;
+                       if (!pPlayView) {
+                               VideoLogError("pPlayView is NULL");
+                               return FALSE;
+                       }
+                       pNormalView->pPopup =
+                               vp_popup_create(pPlayView->pWin,
+                                                               POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                               VP_PLAY_STRING_COM_ERROR,
+                                                               VP_PLAY_STRING_ERROR_FILE_NOT_EXIST, 3.0,
+                                                               __vp_normal_error_popup_time_out_cb, NULL,
+                                                               NULL, pNormalView);
+
+                       evas_object_show(pNormalView->pPopup);
+                       pNormalView->bIsPopupShow = TRUE;
+
+                       return TRUE;
+               }
+       }
+
+       if (bCheckDRM) {
+               if (pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_WEB &&
+                       pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_MULTI_PATH) {
+                       bool bIsAvailablePlay = TRUE;
+#ifdef ENABLE_DRM_FEATURE
+                       if (_vp_play_normal_view_check_drm
+                               (pNormalView, &bIsAvailablePlay)) {
+                               if (bIsAvailablePlay == FALSE) {
+                                       VideoLogWarning("Wait Drm popup result");
+                                       return TRUE;
+                               }
+                       } else
+#endif
+                       {
+                               if (pNormalView->pPlayView->bStoreDownload == TRUE) {
+                                       if (bIsAvailablePlay == FALSE) {
+                                               VideoLogWarning("license acquisition failed!!!");
+
+                                               Evas_Object *pPopup = NULL;
+                                               pPopup =
+                                                       vp_popup_create(pNormalView->pPlayView->pWin,
+                                                                                       POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                                                       VP_PLAY_STRING_COM_ERROR,
+                                                                                       VP_PLAY_STRING_ERROR_UNABLE_PLAY,
+                                                                                       3.0,
+                                                                                       __vp_normal_prepare_error_popup_time_out_cb,
+                                                                                       NULL, NULL, pNormalView);
+
+                                               evas_object_show(pPopup);
+
+                                               pNormalView->bIsPopupShow = TRUE;
+
+                                               return FALSE;
+                                       } else {
+                                               VideoLogWarning("need license acquisition");
+                                               return FALSE;
+                                       }
+                               }
+                       }
+               }
+       }
+
+       if (pNormalView->nStartPosition == 0) {
+               if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_STORE ||
+                       pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_LIST ||
+                       pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_OTHER) {
+                               pNormalView->nStartPosition = 0;
+               }
+       }
+
+       vp_play_subtitle_set_text(pNormalView->pSubtitle, NULL);
+
+       if (bCheckDRM) {
+               if (pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_WEB &&
+                       pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_MULTI_PATH) {
+
+                       bool bDRMLock = FALSE;
+                       _vp_play_normal_view_check_drm_lock(pNormalView, &bDRMLock);
+                       if (bDRMLock) {
+                               VP_EVAS_DISABLE_SET(pNormalView->pBookmarkBtn, EINA_TRUE);
+                               VP_EVAS_DISABLE_SET(pNormalView->pMultiWinBtn, EINA_TRUE);
+                       } else {
+                               VP_EVAS_DISABLE_SET(pNormalView->pBookmarkBtn, EINA_FALSE);
+                               VP_EVAS_DISABLE_SET(pNormalView->pMultiWinBtn, EINA_FALSE);
+                       }
+               } else {
+                       if (pNormalView->bVideoOnlyMode == FALSE) {
+                               VP_EVAS_DISABLE_SET(pNormalView->pMultiWinBtn, EINA_FALSE);
+                       } else {
+                               VP_EVAS_DISABLE_SET(pNormalView->pMultiWinBtn, EINA_TRUE);
+                       }
+               }
+       }
+
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_EMAIL) {
+               char *szMediaID = NULL;
+               bool bReturn = FALSE;
+               bReturn =
+                       vp_media_contents_get_video_id(pNormalView->szMediaURL,
+                                                                                  &szMediaID);
+               if (!szMediaID || bReturn == FALSE) {
+                       VP_EVAS_DISABLE_SET(pNormalView->pTrimBtn, EINA_TRUE);
+               } else {
+                       VP_EVAS_DISABLE_SET(pNormalView->pTrimBtn, EINA_FALSE);
+               }
+               VP_FREE(szMediaID);
+       }
+       char *szSubtitle = NULL;
+       vp_mm_player_get_subtitle_url(pNormalView->pPlayerHandle, &szSubtitle);
+
+       if (szSubtitle) {
+               VideoLogWarning("subtitle value : %s", szSubtitle);
+               VP_STRDUP(pNormalView->szSubtitleURL, szSubtitle);
+               VP_FREE(szSubtitle);
+       }
+       if (pNormalView->pPlayerHandle) {
+               vp_mm_player_destroy(pNormalView->pPlayerHandle);
+               pNormalView->pPlayerHandle = NULL;
+       }
+
+       if (pNormalView->pLoadingAni) {
+               VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+               VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+       }
+
+       /* mm_player create */
+       if (!vp_mm_player_set_hw_decoder(TRUE)) {
+               VideoLogError("vp_mm_player_set_user_param fail");
+               _vp_play_normal_view_destroy_handle(pNormalView);
+               return FALSE;
+       }
+
+       pNormalView->pPlayerHandle = vp_mm_player_create();
+       if (!pNormalView->pPlayerHandle) {
+               VideoLogError("vp_mm_player_create fail");
+               return FALSE;
+       }
+       MMPlayer *handle = (MMPlayer *) pNormalView->pPlayerHandle;
+       int nRet;
+       nRet =
+               player_set_sound_stream_info(handle->pPlayer,
+                                                                        pNormalView->pPlayView->stream_info);
+       if (nRet != PLAYER_ERROR_NONE) {
+               VideoLogError("unable to set sound policy [%x]", nRet);
+       }
+
+       if (!vp_mm_player_set_stream_info
+               (pNormalView->pPlayerHandle,
+                (void *) (pNormalView->pPlayView->stream_info))) {
+               VideoLogError("vp_mm_player_set_stream_info fail");
+               return FALSE;
+       }
+       if (!vp_mm_player_set_user_param
+               (pNormalView->pPlayerHandle, (void *) pNormalView)) {
+               VideoLogError("vp_mm_player_set_user_param fail");
+               return FALSE;
+       }
+
+       if (!vp_mm_player_set_callback
+               (pNormalView->pPlayerHandle, VP_MM_PLAYER_REALIZE_ASYNC_CB,
+                (void *) __vp_normal_prepare_cb)) {
+               VideoLogError("vp_mm_player_set_callback fail");
+               return FALSE;
+       }
+       if (!vp_mm_player_set_callback
+               (pNormalView->pPlayerHandle, VP_MM_PLAYER_SEEK_COMPLETE_CB,
+                (void *) __vp_normal_seek_completed_cb)) {
+               VideoLogError("vp_mm_player_set_callback fail");
+               return FALSE;
+       }
+       if (!vp_mm_player_set_callback
+               (pNormalView->pPlayerHandle, VP_MM_PLAYER_END_OF_STREAM_CB,
+                (void *) __vp_normal_completed_cb)) {
+               VideoLogError("vp_mm_player_set_callback fail");
+               return FALSE;
+       }
+       if (!vp_mm_player_set_callback
+               (pNormalView->pPlayerHandle, VP_MM_PLAYER_INTERRUPT_CB,
+                (void *) __vp_normal_interrupted_cb)) {
+               VideoLogError("vp_mm_player_set_callback fail");
+               return FALSE;
+       }
+       if (!vp_mm_player_set_callback
+               (pNormalView->pPlayerHandle, VP_MM_PLAYER_ERROR_CB,
+                (void *) __vp_normal_error_cb)) {
+               VideoLogError("vp_mm_player_set_callback fail");
+               return FALSE;
+       }
+       if (!vp_mm_player_set_callback
+               (pNormalView->pPlayerHandle, VP_MM_PLAYER_BUFFERING_CB,
+                (void *) __vp_normal_buffering_cb)) {
+               VideoLogError("vp_mm_player_set_callback fail");
+               return FALSE;
+       }
+       if (!vp_mm_player_set_callback
+               (pNormalView->pPlayerHandle, VP_MM_PLAYER_SUBTITLE_UPDATE_CB,
+                (void *) __vp_normal_subtitle_updated_cb)) {
+               VideoLogError("vp_mm_player_set_callback fail");
+               return FALSE;
+       }
+       if (!vp_mm_player_set_callback
+               (pNormalView->pPlayerHandle, VP_MM_PLAYER_PD_MESSAGE_CB,
+                (void *) __vp_normal_pd_message_cb)) {
+               VideoLogError("vp_mm_player_set_callback fail");
+               return FALSE;
+       }
+       if (!vp_mm_player_set_callback
+               (pNormalView->pPlayerHandle, VP_MM_PLAYER_MISSED_PLUGIN_CB,
+                (void *) __vp_normal_missed_plugin_cb)) {
+               VideoLogError("vp_mm_player_set_callback fail");
+               return FALSE;
+       }
+
+       if (!vp_mm_player_set_callback
+               (pNormalView->pPlayerHandle, VP_MM_PLAYER_IMAGE_BUFFER_CB,
+                (void *) __vp_normal_image_buffer_cb)) {
+               VideoLogError("vp_mm_player_set_callback fail");
+               return FALSE;
+       }
+
+       if (pNormalView->pBookmarkHandle) {
+               vp_play_bookmark_set_media_url(pNormalView->pBookmarkHandle,
+                                                                          pNormalView->szMediaURL);
+       }
+
+       if (pNormalView->szSubtitleURL) {
+               pNormalView->bIsExistSubtitle =
+                       vp_mm_player_set_subtitle_url(pNormalView->pPlayerHandle,
+                                                                                 pNormalView->szSubtitleURL);
+               bool bOn = FALSE;
+               vp_play_preference_get_subtitle_show_key(&bOn);
+               if (bOn) {
+                       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_SUBTITLE_PORTRAIT,
+                                                                  "*");
+                       pNormalView->bIsExistSubtitle = TRUE;
+                       vp_mm_player_set_deactivate_subtitle(pNormalView->
+                                                                                                pPlayerHandle, FALSE);
+               }
+
+       }
+#ifdef _NATIVE_BUFFER_SYNC
+       if (!vp_mm_player_set_video_sink(pNormalView->pPlayerHandle,
+                                                                        VP_MM_PLAYER_VIDEO_TYPE_EVAS,
+                                                                        (void *) pNormalView->pVideoSink)) {
+               VideoLogError("vp_mm_player_set_video_sink fail");
+               _vp_play_normal_view_destroy_handle(pNormalView);
+               return FALSE;
+       }
+#else
+       if (!vp_mm_player_set_video_sink
+               (pNormalView->pPlayerHandle, VP_MM_PLAYER_VIDEO_TYPE_X11,
+                (void *) (pNormalView->pPlayView->pWin))) {
+               VideoLogError("vp_mm_player_set_video_sink fail");
+               return FALSE;
+       }
+#endif
+
+       if (!vp_mm_player_set_hub_download_mode
+               (pNormalView->pPlayerHandle, pPlayView->bStoreDownload)) {
+               VideoLogError("vp_mm_player_set_hub_download_mode fail");
+       }
+
+       if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_NONE) {
+               vp_mm_player_set_video_rotate(pNormalView->pPlayerHandle,
+                                                                         VP_MM_PLAYER_ROTATE_0);
+       } else if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90) {
+               vp_mm_player_set_video_rotate(pNormalView->pPlayerHandle,
+                                                                         VP_MM_PLAYER_ROTATE_90);
+       } else if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_180) {
+               vp_mm_player_set_video_rotate(pNormalView->pPlayerHandle,
+                                                                         VP_MM_PLAYER_ROTATE_180);
+       } else if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+               vp_mm_player_set_video_rotate(pNormalView->pPlayerHandle,
+                                                                         VP_MM_PLAYER_ROTATE_270);
+       }
+
+       vp_mm_player_sound_filter_t nSoundFilter = VP_MM_PLAYER_FILTER_NONE;
+
+       if (pNormalView->nSoundAlive == VIDEO_SA_NORMAL) {
+               nSoundFilter = VP_MM_PLAYER_FILTER_NONE;
+       } else if (pNormalView->nSoundAlive == VIDEO_SA_VOICE) {
+               nSoundFilter = VP_MM_PLAYER_FILTER_VOICE;
+       } else if (pNormalView->nSoundAlive == VIDEO_SA_MOVIE) {
+               nSoundFilter = VP_MM_PLAYER_FILTER_MOVIE;
+       } else if (pNormalView->nSoundAlive == VIDEO_SA_7_1_CH) {
+               nSoundFilter = VP_MM_PLAYER_FILTER_VITUAL_71;
+
+               video_sound_device_type_t nSoundDevType = VP_SOUND_DEVICE_NONE;
+               vp_sound_get_active_device(&nSoundDevType);
+
+               if (nSoundDevType != VP_SOUND_DEVICE_EARJACK) {
+                       nSoundFilter = VP_MM_PLAYER_FILTER_NONE;
+               }
+       }
+
+       vp_mm_player_set_display_mode(pNormalView->pPlayerHandle,
+                                                                 pNormalView->nDisplayMode);
+
+       if (nSoundFilter != VP_MM_PLAYER_FILTER_NONE) {
+               if (!vp_mm_player_set_sound_filter
+                       (pNormalView->pPlayerHandle, nSoundFilter)) {
+                       VideoLogWarning("vp_mm_player_set_sound_filter is fail");
+               }
+       }
+
+       if (pNormalView->nDefaultAudioTrackIndex > 0) {
+               vp_mm_player_set_audio_track(pNormalView->pPlayerHandle,
+                                                                        pNormalView->nDefaultAudioTrackIndex);
+       }
+
+       if (pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_WEB &&
+               pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_MULTI_PATH) {
+               if (pPlayView->szMediaTitle) {
+                       elm_object_item_text_set(pNormalView->pNaviItem,
+                                                                        pPlayView->szMediaTitle);
+               } else {
+                       char *szTitle = NULL;
+                       szTitle =
+                               vp_play_util_get_title_from_path(pNormalView->szMediaURL);
+                       if (szTitle) {
+                               elm_object_item_text_set(pNormalView->pNaviItem, szTitle);
+                       }
+                       VP_FREE(szTitle);
+               }
+               if (!vp_mm_player_realize_async
+                       (pNormalView->pPlayerHandle, pNormalView->szMediaURL)) {
+                       VideoLogError("vp_mm_player_realize_async fail");
+
+                       Evas_Object *pPopup = NULL;
+                       pPopup = vp_popup_create(pPlayView->pWin,
+                                                                        POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                                        VP_PLAY_STRING_COM_ERROR,
+                                                                        VP_PLAY_STRING_ERROR_UNABLE_PLAY,
+                                                                        3.0,
+                                                                        __vp_normal_prepare_error_popup_time_out_cb,
+                                                                        NULL, NULL, pNormalView);
+
+
+                       evas_object_show(pPopup);
+
+                       pNormalView->bIsPopupShow = TRUE;
+
+                       return TRUE;
+               }
+       } else {
+               if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+                       VideoLogInfo("VIDEO_PLAY_TYPE_WEB:%s",
+                                                pNormalView->szMediaURL);
+                       if (pPlayView->szMediaTitle) {
+                               elm_object_item_text_set(pNormalView->pNaviItem,
+                                                                                pPlayView->szMediaTitle);
+                       } else {
+                               elm_object_item_text_set(pNormalView->pNaviItem,
+                                                                                VP_PLAY_STRING_STREAMING_PLAYER);
+                       }
+                       if (pPlayView->szCookie) {
+                               if (!vp_mm_player_set_cookie
+                                       (pNormalView->pPlayerHandle, pPlayView->szCookie)) {
+                                       VideoLogError("vp_mm_player_set_cookie fail");
+                               }
+                       }
+                       if (pPlayView->szProxy) {
+                               if (!vp_mm_player_set_proxy
+                                       (pNormalView->pPlayerHandle, pPlayView->szProxy)) {
+                                       VideoLogError("vp_mm_player_set_proxy fail");
+                               }
+                       }
+                       char *szSdpPath = NULL;
+                       szSdpPath =
+                               vp_play_util_get_sdp_url((const char *) pNormalView->
+                                                                                szMediaURL);
+                       if (vp_play_util_check_sdp_url((const char *) szSdpPath)) {
+                               VP_FREE(szSdpPath);
+                               return TRUE;
+                       }
+                       VP_FREE(szSdpPath);
+
+                       if (!vp_mm_player_realize_async
+                               (pNormalView->pPlayerHandle, pNormalView->szMediaURL)) {
+                               VideoLogError("vp_mm_player_realize_async fail");
+                               Evas_Object *pPopup = NULL;
+                               pPopup = vp_popup_create(pPlayView->pWin,
+                                                                                POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                                                VP_PLAY_STRING_COM_ERROR,
+                                                                                VP_PLAY_STRING_ERROR_UNABLE_PLAY,
+                                                                                3.0,
+                                                                                __vp_normal_prepare_error_popup_time_out_cb,
+                                                                                NULL, NULL, pNormalView);
+
+                               evas_object_show(pPopup);
+
+                               pNormalView->bIsPopupShow = TRUE;
+
+                               return TRUE;
+                       }
+               } else if (pNormalView->nLaunchingType ==
+                                  VIDEO_PLAY_TYPE_MULTI_PATH) {
+
+                       char *szTitle = NULL;
+                       char *szMultiPathURL = NULL;
+                       char *szSubtitleForMultiPath = NULL;
+                       int nMultiPathPosition = 0;
+                       int nMultiPathDuration = 0;
+                       bool bIsSameAP = TRUE;
+
+
+                       vp_multi_path_get_current_item(pNormalView->szMediaURL,
+                                                                                  &szMultiPathURL, &szTitle,
+                                                                                  &szSubtitleForMultiPath,
+                                                                                  &nMultiPathPosition,
+                                                                                  &nMultiPathDuration, &bIsSameAP,
+                                                                                  pPlayView->pMultiPathList);
+                       if (szSubtitleForMultiPath) {
+                               if (strlen(szSubtitleForMultiPath) > 0) {
+                                       if (vp_file_exists(szSubtitleForMultiPath)) {
+                                               pNormalView->bIsExistSubtitle = TRUE;
+                                               VideoSecureLogInfo("SUBTITLE : %s",
+                                                                                  szSubtitleForMultiPath);
+                                               vp_mm_player_set_subtitle_url(pNormalView->
+                                                                                                         pPlayerHandle,
+                                                                                                         szSubtitleForMultiPath);
+                                               VP_FREE(pNormalView->szSubtitleURL);
+                                       } else {
+                                               pNormalView->pPopup =
+                                                       vp_popup_create(pPlayView->pWin,
+                                                                                       POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                                                       VP_PLAY_STRING_COM_ERROR,
+                                                                                       VP_PLAY_STRING_ERROR_SUBTITLE_FAIL,
+                                                                                       3.0,
+                                                                                       __vp_normal_error_popup_time_out_cb,
+                                                                                       __vp_normal_error_popup_key_event_cb,
+                                                                                       __vp_normal_error_popup_mouse_event_cb,
+                                                                                       pNormalView);
+                                               evas_object_show(pNormalView->pPopup);
+                                               pNormalView->bIsPopupShow = TRUE;
+                                               _vp_play_normal_view_release_service_share
+                                                       (pNormalView->pPlayView);
+                                       }
+                               }
+                       }
+
+                       if (!szTitle) {
+                               szTitle =
+                                       vp_play_util_get_title_from_path(pNormalView->
+                                                                                                        szMediaURL);
+                       }
+
+                       if (szTitle) {
+                               elm_object_item_text_set(pNormalView->pNaviItem, szTitle);
+                       } else {
+                               elm_object_item_text_set(pNormalView->pNaviItem,
+                                                                                VP_PLAY_STRING_NO_TITLE);
+                       }
+
+                       if (pNormalView->nStartPosition == 0) {
+                               pNormalView->nStartPosition = nMultiPathPosition;
+                       }
+
+                       if (nMultiPathDuration > 0) {
+                               pNormalView->nDuration = nMultiPathDuration;
+                       }
+
+                       VP_FREE(szMultiPathURL);
+                       VP_FREE(szSubtitleForMultiPath);
+                       VP_FREE(szTitle);
+
+                       if (!vp_mm_player_realize_async
+                               (pNormalView->pPlayerHandle, pNormalView->szMediaURL)) {
+                               VideoLogError("vp_mm_player_realize_async fail");
+                               Evas_Object *pPopup = NULL;
+                               pPopup = vp_popup_create(pPlayView->pWin,
+                                                                                POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                                                VP_PLAY_STRING_COM_ERROR,
+                                                                                VP_PLAY_STRING_ERROR_UNABLE_PLAY,
+                                                                                3.0,
+                                                                                __vp_normal_prepare_error_popup_time_out_cb,
+                                                                                NULL, NULL, pNormalView);
+
+                               evas_object_show(pPopup);
+
+                               pNormalView->bIsPopupShow = TRUE;
+
+                               return TRUE;
+                       }
+               }
+       }
+
+       if (!pNormalView->bAudioOnly) {
+               vp_play_util_set_lock_power_key();
+       }
+
+       VideoLogWarning("<<");
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param bManual
+ */
+static void _vp_play_normal_view_on_next_play(NormalView * pNormalView,
+                                                                                         bool bManual)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MESSAGE ||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_EMAIL ||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_PREVIEW) {
+               return;
+       }
+
+       bool bIsExit = FALSE;
+
+       pNormalView->nStartPosition = 0;
+       pNormalView->nDefaultAudioTrackIndex = 0;
+       pNormalView->nSpeedValue = 1;
+       pNormalView->fPlaySpeed = 1.0;
+
+       VP_FREE(pNormalView->szSubtitleURL);
+       vp_mm_player_set_subtitle_url(pNormalView->pPlayerHandle, "");
+
+       _vp_play_normal_view_on_bookmark_mode(pNormalView, FALSE);
+
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+               if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_NONE) {
+                       if (bManual) {
+                               return;
+                       } else {
+                               bIsExit = TRUE;
+                       }
+               } else {
+                       _vp_play_normal_view_play_start(pNormalView, FALSE);
+               }
+       } else if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+               PlayView *pPlayView = pNormalView->pPlayView;
+
+               if (!pPlayView) {
+                       VideoLogError("pPlayView is NULL");
+                       bIsExit = TRUE;
+               } else if (!pPlayView->pMultiPathList) {
+                       VideoLogError("pMultiPathList is NULL");
+                       bIsExit = TRUE;
+               } else {
+                       if (bManual) {
+                               _vp_play_normal_view_set_played_time(pNormalView);
+
+                               char *szNextURL = NULL;
+                               char *szSubtitle = NULL;
+                               int nPosition = 0;
+                               int nDuration = 0;
+                               vp_multi_path_get_next_item(pNormalView->szMediaURL,
+                                                                                       &szNextURL, &szSubtitle,
+                                                                                       &nPosition, &nDuration, TRUE,
+                                                                                       pPlayView->pMultiPathList);
+                               VP_FREE(szSubtitle);
+                               if (szNextURL) {
+                                       VP_FREE(pNormalView->szMediaURL);
+                                       VP_STRDUP(pNormalView->szMediaURL, szNextURL);
+                                       VP_FREE(szNextURL);
+                                       pNormalView->nStartPosition = nPosition;
+                                       pNormalView->nDuration = nDuration;
+                                       _vp_play_normal_view_play_start(pNormalView, TRUE);
+                               } else {
+                                       _vp_play_normal_view_play_start(pNormalView, TRUE);
+                               }
+                               return;
+                       }
+
+                       if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_NONE) {
+                               bIsExit = TRUE;
+                       } else if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_OFF) {
+                               bIsExit = TRUE;
+                       } else if (pNormalView->nRepeatMode ==
+                                          VIDEO_PLAY_REPEAT_ALL_STOP) {
+                               char *szNextURL = NULL;
+                               char *szSubtitle = NULL;
+                               int nPosition = 0;
+                               int nDuration = 0;
+                               vp_multi_path_get_next_item(pNormalView->szMediaURL,
+                                                                                       &szNextURL, &szSubtitle,
+                                                                                       &nPosition, &nDuration, FALSE,
+                                                                                       pPlayView->pMultiPathList);
+
+                               VP_FREE(szSubtitle);
+
+                               if (!szNextURL) {
+                                       bIsExit = TRUE;
+                               } else {
+                                       VP_FREE(pNormalView->szMediaURL);
+                                       VP_STRDUP(pNormalView->szMediaURL, szNextURL);
+                                       VP_FREE(szNextURL);
+                                       pNormalView->nDuration = nDuration;
+                                       _vp_play_normal_view_play_start(pNormalView, TRUE);
+                               }
+                       } else if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ONE) {
+                               _vp_play_normal_view_play_start(pNormalView, TRUE);
+                       } else if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ALL) {
+                               char *szNextURL = NULL;
+                               char *szSubtitle = NULL;
+                               int nPosition = 0;
+                               int nDuration = 0;
+                               vp_multi_path_get_next_item(pNormalView->szMediaURL,
+                                                                                       &szNextURL, &szSubtitle,
+                                                                                       &nPosition, &nDuration, TRUE,
+                                                                                       pPlayView->pMultiPathList);
+                               VP_FREE(szSubtitle);
+                               if (!szNextURL) {
+                                       bIsExit = TRUE;
+                               } else {
+                                       VP_FREE(pNormalView->szMediaURL);
+                                       VP_STRDUP(pNormalView->szMediaURL, szNextURL);
+                                       VP_FREE(szNextURL);
+                                       pNormalView->nDuration = nDuration;
+                                       _vp_play_normal_view_play_start(pNormalView, TRUE);
+                               }
+                       }
+               }
+       } else {
+               if (bManual) {
+                       _vp_play_normal_view_set_played_time(pNormalView);
+                       char *szNextURL = NULL;
+                       vp_media_contents_get_next_file_path(pNormalView->szMediaURL,
+                                                                                                &szNextURL, TRUE,
+                                                                                                pNormalView->
+                                                                                                pMediaItemList);
+
+                       VideoSecureLogInfo("pNormalView->szMediaURL is %s",
+                                                          pNormalView->szMediaURL);
+                       if (szNextURL) {
+                               VP_FREE(pNormalView->szMediaURL);
+                               VP_STRDUP(pNormalView->szMediaURL, szNextURL);
+                               VP_FREE(szNextURL);
+
+                               if (_vp_play_normal_view_play_start(pNormalView, TRUE)) {
+                                       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");
+                                       }
+                                       if (!stay_pause && nState != VP_MM_PLAYER_STATE_PLAYING) {
+                                               vp_mm_player_play(pNormalView->pPlayerHandle);
+                                               pNormalView->bManualPause = FALSE;
+                                       }
+                               }
+
+
+                               if (stay_pause) {
+                                       VideoLogDebug
+                                               ("Some other application requested Video Player to remain in Paused state");
+                                       stay_pause = 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 {
+                               _vp_play_normal_view_play_start(pNormalView, TRUE);
+                       }
+                       return;
+               }
+
+               if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_NONE) {
+                       bIsExit = TRUE;
+               } else if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_OFF) {
+                       bIsExit = TRUE;
+               } else if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ALL_STOP) {
+                       char *szNextURL = NULL;
+                       vp_media_contents_get_next_file_path(pNormalView->szMediaURL,
+                                                                                                &szNextURL, FALSE,
+                                                                                                pNormalView->
+                                                                                                pMediaItemList);
+                       if (!szNextURL) {
+                               bIsExit = TRUE;
+                       } else {
+                               VP_FREE(pNormalView->szMediaURL);
+                               VP_STRDUP(pNormalView->szMediaURL, szNextURL);
+                               VP_FREE(szNextURL);
+                               _vp_play_normal_view_play_start(pNormalView, TRUE);
+                       }
+               } else if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ONE) {
+                       _vp_play_normal_view_play_start(pNormalView, TRUE);
+               } else if (pNormalView->nRepeatMode == VIDEO_PLAY_REPEAT_ALL) {
+                       char *szNextURL = NULL;
+                       vp_media_contents_get_next_file_path(pNormalView->szMediaURL,
+                                                                                                &szNextURL, TRUE,
+                                                                                                pNormalView->
+                                                                                                pMediaItemList);
+                       if (!szNextURL) {
+                               bIsExit = TRUE;
+                       } else {
+                               VP_FREE(pNormalView->szMediaURL);
+                               VP_STRDUP(pNormalView->szMediaURL, szNextURL);
+                               VP_FREE(szNextURL);
+                               _vp_play_normal_view_play_start(pNormalView, TRUE);
+                       }
+               }
+       }
+
+       if (bIsExit) {
+               if (!pPlayView->pFunc) {
+                       VideoLogError("pPlayView pFunc is NULL");
+                       return;
+               }
+
+               if (!pPlayView->pFunc->vp_play_func_exit) {
+                       VideoLogError("pPlayView exit Func is NULL");
+                       return;
+               }
+               vp_device_set_screen_off(FALSE);
+               vp_play_util_set_unlock_power_key();
+
+               pPlayView->pFunc->vp_play_func_exit(pPlayView);
+       }
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param bManual
+ * @param bVoice
+ */
+static void _vp_play_normal_view_on_prev_play(NormalView * pNormalView,
+                                                                                         bool bManual, bool bVoice)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       pNormalView->nDefaultAudioTrackIndex = 0;
+       pNormalView->nSpeedValue = 1;
+       pNormalView->fPlaySpeed = 1.0;
+
+       VP_FREE(pNormalView->szSubtitleURL);
+       vp_mm_player_set_subtitle_url(pNormalView->pPlayerHandle, "");
+
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+               _vp_play_normal_view_play_start(pNormalView, FALSE);
+               return;
+       }
+
+       int nPosition = 0;
+       if (!vp_mm_player_get_position(pNormalView->pPlayerHandle, &nPosition)) {
+               VideoLogError("vp_mm_player_get_position is fail");
+       }
+
+       pNormalView->nStartPosition = 0;
+       if (bVoice == FALSE) {
+               if (nPosition > 2000) {
+                       vp_mm_player_set_position(pNormalView->pPlayerHandle, 0);
+
+                       if (pNormalView->bManualPause) {
+                               vp_play_progressbar_set_position(pNormalView->pProgressbar,
+                                                                                                0);
+                       }
+                       return;
+               }
+       }
+
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MESSAGE ||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_EMAIL ||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_PREVIEW ||
+               (pPlayView && (strstr(pPlayView->szMediaURL, "/.") != NULL))) {
+               return;
+       }
+
+       if (bManual) {
+               _vp_play_normal_view_set_played_time(pNormalView);
+       }
+
+       char *szPrevURL = NULL;
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+               if (!pPlayView) {
+                       _vp_play_normal_view_play_start(pNormalView, TRUE);
+                       return;
+               } else if (pPlayView->pMultiPathList == NULL) {
+                       _vp_play_normal_view_play_start(pNormalView, TRUE);
+                       return;
+               } else {
+                       char *szSubtitle = NULL;
+                       int nPosition = 0;
+                       int nDuration = 0;
+                       vp_multi_path_get_next_item(pNormalView->szMediaURL,
+                                                                               &szPrevURL, &szSubtitle,
+                                                                               &nPosition, &nDuration, TRUE,
+                                                                               pPlayView->pMultiPathList);
+                       VP_FREE(szSubtitle);
+
+                       if (szPrevURL) {
+                               VP_FREE(pNormalView->szMediaURL);
+                               VP_STRDUP(pNormalView->szMediaURL, szPrevURL);
+                               VP_FREE(szPrevURL);
+                               pNormalView->nDuration = nDuration;
+                       }
+
+                       _vp_play_normal_view_play_start(pNormalView, TRUE);
+               }
+
+       } else {
+               vp_media_contents_get_prev_file_path(pNormalView->szMediaURL,
+                                                                                        &szPrevURL, TRUE,
+                                                                                        pNormalView->pMediaItemList);
+               VideoSecureLogInfo("pNormalView->szMediaURL pre is %s",
+                                                  pNormalView->szMediaURL);
+               if (szPrevURL) {
+                       VP_FREE(pNormalView->szMediaURL);
+                       VP_STRDUP(pNormalView->szMediaURL, szPrevURL);
+                       VP_FREE(szPrevURL);
+               }
+
+               _vp_play_normal_view_on_bookmark_mode(pNormalView, FALSE);
+               if (_vp_play_normal_view_play_start(pNormalView, TRUE)) {
+                       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");
+                       }
+                       if (!stay_pause && nState != VP_MM_PLAYER_STATE_PLAYING) {
+                               vp_mm_player_play(pNormalView->pPlayerHandle);
+                               pNormalView->bManualPause = FALSE;
+                       }
+               }
+
+
+               if (stay_pause) {
+                       VideoLogDebug
+                               ("Some other application requested Video Player to remain in Paused state");
+                       stay_pause = 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);
+       }
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_set_played_time(NormalView * pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       int nPosition = 0;
+       if (pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_WEB &&
+               pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_PREVIEW &&
+               pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_MESSAGE &&
+               pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_EMAIL &&
+               pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_MULTI_PATH) {
+               if (!vp_mm_player_get_position
+                       (pNormalView->pPlayerHandle, &nPosition)) {
+                       VideoLogError("vp_mm_player_get_position is fail");
+               }
+       } else if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+               if (!vp_mm_player_get_position
+                       (pNormalView->pPlayerHandle, &nPosition)) {
+                       VideoLogError("vp_mm_player_get_position is fail");
+               } else {
+                       PlayView *pPlayView = pNormalView->pPlayView;
+                       if (!pPlayView) {
+                               VideoLogError("pPlayView is NULL");
+                               return;
+                       }
+                       if (!pPlayView->pMultiPathList) {
+                               VideoLogError("pMultiPathList is NULL");
+                               return;
+                       }
+                       if (nPosition >= pNormalView->nDuration) {
+                               nPosition = 0;
+                       }
+                       vp_multi_path_set_item_position(pNormalView->szMediaURL,
+                                                                                       nPosition,
+                                                                                       pPlayView->pMultiPathList);
+               }
+
+       }
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_LIST ||
+               pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_OTHER) {
+               bool bIsCloud = FALSE;
+               vp_media_contents_get_cloud_attribute(pNormalView->szMediaURL,
+                                                                                         &bIsCloud);
+               if (!bIsCloud) {
+                       PlayView *pPlayView = pNormalView->pPlayView;
+                       if (!pPlayView) {
+                               VideoLogError("pPlayView is NULL");
+                               return;
+                       }
+                       if (pPlayView->bViewChange == FALSE) {
+                               if (vp_file_exists(pNormalView->szMediaURL)) {
+                                       vp_play_config_set_preview_url_videos(pNormalView->
+                                                                                                                 szMediaURL);
+                               } else {
+                                       _vp_play_normal_view_release_service_share
+                                               (pNormalView->pPlayView);
+                               }
+                       }
+                       vp_play_preference_set_preview_audio_track(pNormalView->
+                                                                                                          nDefaultAudioTrackIndex);
+               }
+       }
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param bFoward
+ */
+static void _vp_play_normal_view_screen_move(NormalView * pNormalView,
+                                                                                        bool bFoward)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       int nSetPosition = 0;
+       int nCurPosition = 0;
+
+       if (!vp_mm_player_get_position
+               (pNormalView->pPlayerHandle, &nCurPosition)) {
+               VideoLogError("vp_mm_player_get_position is fail");
+               return;
+       }
+
+
+       if (bFoward) {
+               nSetPosition = nCurPosition + 1000;
+       } else {
+               nSetPosition = nCurPosition - 1000;
+       }
+
+       if (pNormalView->nDuration < nSetPosition) {
+               nSetPosition = pNormalView->nDuration;
+       }
+
+       if (nSetPosition < 0) {
+               nSetPosition = 0;
+       }
+
+       if (vp_mm_player_set_position
+               (pNormalView->pPlayerHandle, nSetPosition)) {
+               pNormalView->nWaitPos = -1;
+               pNormalView->bSeekComplete = FALSE;
+               vp_play_progressbar_set_position(pNormalView->pProgressbar,
+                                                                                nSetPosition);
+       }
+}
+
+#ifdef ENABLE_GESTURE_ZOOM_FEATURE
+static void _vp_play_normal_view_on_zoom_mode(NormalView * pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       if (!pNormalView->pPlayerHandle) {
+               VideoLogWarning("Player Handle is NULL");
+               return;
+       }
+
+       if (vp_play_util_check_streaming(pNormalView->szMediaURL)) {
+               VideoLogWarning("Skip for streaming");
+               return;
+       }
+
+       if (pNormalView->fZoomValue > 1.0) {
+               pNormalView->bZoomEnable = TRUE;
+               if (!pNormalView->pZoomGuide) {
+                       VP_EVAS_TIMER_DEL(pNormalView->pMomentTimer);
+
+                       VP_EVAS_JOB_DEL(pNormalView->pVolumeJob);
+                       VP_EVAS_JOB_DEL(pNormalView->pBrightnessJob);
+
+                       if (!vp_play_brightness_unrealize
+                               (pNormalView->pBrightnessHandle)) {
+                               VideoLogWarning("vp_play_brightness_unrealize is fail");
+                       }
+
+                       if (!vp_play_volume_popup_unrealize
+                               (pNormalView->pVolumePopupHandle)) {
+                               VideoLogWarning("vp_play_volume_popup_unrealize is fail");
+                       }
+
+                       pNormalView->pZoomGuide =
+                               vp_zoom_guide_create(pNormalView->pMainLayout);
+                       vp_zoom_guide_realize(pNormalView->pZoomGuide);
+                       Evas_Object *pZoomGuideLayout =
+                               vp_zoom_guide_get_object(pNormalView->pZoomGuide);
+                       if (pZoomGuideLayout) {
+                               elm_object_part_content_set(pNormalView->pMainLayout,
+                                                                                       VP_PLAY_SWALLOW_NORMAL_ZOOM_GUIDE,
+                                                                                       pZoomGuideLayout);
+                       } else {
+                               VideoLogError("pZoomGuideLayout is NULL");
+                       }
+
+                       Evas_Coord_Rectangle rtSrc = { 0, };
+                       Evas_Coord_Rectangle rtDst = { 0, };
+                       Evas_Coord_Rectangle rtResult = { 0, };
+                       int nWidth = 0;
+                       int nHeight = 0;
+
+                       elm_win_screen_size_get(pNormalView->pPlayView->pWin, NULL,
+                                                                       NULL, &nWidth, &nHeight);
+
+                       if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90
+                               || pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+                               rtDst.w = nHeight;
+                               rtDst.h = nWidth;
+                       } else {
+                               rtDst.w = nWidth;
+                               rtDst.h = nHeight;
+                       }
+                       vp_mm_player_get_resolution(pNormalView->pPlayerHandle,
+                                                                               &(rtSrc.w), &(rtSrc.h));
+                       vp_play_util_calculator_position(rtSrc, rtDst, &rtResult,
+                                                                                        pNormalView->nDisplayMode);
+                       vp_zoom_guide_set_move_position(pNormalView->pZoomGuide,
+                                                                                       (double) pNormalView->
+                                                                                       nZoomPosX / rtDst.w,
+                                                                                       (double) pNormalView->
+                                                                                       nZoomPosY / rtDst.h);
+                       float fPosX = pNormalView->nZoomPosX / rtResult.w;
+                       float fPosY = pNormalView->nZoomPosY / rtResult.h;
+                       if (fPosX > 1.0) {
+                               fPosX = 1.0;
+                       }
+
+                       if (fPosY > 1.0) {
+                               fPosY = 1.0;
+                       }
+
+                       if (fPosX < 0.0) {
+                               fPosX = 0.0;
+                       }
+
+                       if (fPosY < 0.0) {
+                               fPosY = 0.0;
+                       }
+               }
+               // event filtering
+               bool bLandscape = FALSE;
+               if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90
+                       || pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+                       bLandscape = TRUE;
+               }
+               if (bLandscape
+                       && fabs(pNormalView->fPrevZoomValue -
+                                       pNormalView->fZoomValue) < 0.05) {
+                       return;
+               }
+
+               vp_zoom_guide_set_zoom_value(pNormalView->pZoomGuide,
+                                                                        pNormalView->fZoomValue);
+               pNormalView->fPrevZoomValue = pNormalView->fZoomValue;
+       } else {
+               pNormalView->fZoomValue = 1.0;
+               pNormalView->bZoomEnable = FALSE;
+               vp_zoom_guide_set_zoom_value(pNormalView->pZoomGuide,
+                                                                        pNormalView->fZoomValue);
+               elm_object_part_content_unset(pNormalView->pMainLayout,
+                                                                         VP_PLAY_SWALLOW_NORMAL_ZOOM_GUIDE);
+
+               vp_mm_player_set_zoom(pNormalView->pPlayerHandle,
+                                                         pNormalView->fZoomValue, 0, 0);
+
+               vp_zoom_guide_destroy(pNormalView->pZoomGuide);
+               pNormalView->pZoomGuide = NULL;
+       }
+}
+#endif
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_capture_mode(NormalView * pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+       Evas_Object *pParent = NULL;
+       pParent = pNormalView->pTopControlLayout;
+       if (!pParent) {
+               VideoLogError("pParent is NULL");
+               return;
+       }
+       vp_play_preference_get_capture_on_key(&pNormalView->bCaptureMode);
+
+       elm_object_part_content_unset(pParent,
+                                                                 VP_PLAY_SWALLOW_NORMAL_TOP_CAPTURE);
+       elm_object_part_content_unset(pParent,
+                                                                 VP_PLAY_SWALLOW_NORMAL_TOP_CAPTURE_REW);
+       elm_object_part_content_unset(pParent,
+                                                                 VP_PLAY_SWALLOW_NORMAL_TOP_CAPTURE_FF);
+
+       VP_EVAS_DEL(pNormalView->pCaptureBtn);
+       VP_EVAS_DEL(pNormalView->pCaptureRewBtn);
+       VP_EVAS_DEL(pNormalView->pCaptureFFBtn);
+
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_RESROUCE_EDJ_PATH);
+       free(path);
+       if (!pNormalView->szMediaURL) {
+               return;
+       }
+
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+               return;
+       }
+
+       if (pNormalView->bCaptureMode) {
+               pNormalView->pCaptureBtn =
+                       vp_button_create(pNormalView->pNaviFrame,
+                                                        "custom/flat_63_63/default", NULL,
+                                                        (Evas_Smart_Cb)
+                                                        __vp_normal_control_btn_clicked_cb,
+                                                        (Evas_Smart_Cb)
+                                                        __vp_normal_control_btn_press_cb,
+                                                        (Evas_Smart_Cb)
+                                                        __vp_normal_control_btn_unpress_cb,
+                                                        (void *) pNormalView);
+               Evas_Object *pIcon = NULL;
+               pIcon =
+                       vp_button_create_icon(pNormalView->pCaptureBtn, edj_path,
+                                                                 VP_PLAY_NORMAL_RES_CAPTURE);
+               elm_object_part_content_set(pNormalView->pCaptureBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+               pIcon =
+                       vp_button_create_icon(pNormalView->pCaptureBtn, edj_path,
+                                                                 VP_PLAY_NORMAL_RES_CAPTURE_PRESS);
+               elm_object_part_content_set(pNormalView->pCaptureBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+                                                                       pIcon);
+
+               pIcon =
+                       vp_button_create_icon(pNormalView->pCaptureBtn, edj_path,
+                                                                 VP_PLAY_NORMAL_RES_CAPTURE_DIM);
+               elm_object_part_content_set(pNormalView->pCaptureBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+                                                                       pIcon);
+
+               elm_object_part_content_set(pParent,
+                                                                       VP_PLAY_SWALLOW_NORMAL_TOP_CAPTURE,
+                                                                       pNormalView->pCaptureBtn);
+
+               evas_object_show(pNormalView->pCaptureBtn);
+
+               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");
+               }
+               if (nState == VP_MM_PLAYER_STATE_PAUSED ||
+                       (nState != VP_MM_PLAYER_STATE_PLAYING
+                        && pNormalView->bManualPause)) {
+                       pNormalView->pCaptureRewBtn =
+                               vp_button_create(pNormalView->pNaviFrame,
+                                                                "custom/flat_63_63/default", NULL,
+                                                                (Evas_Smart_Cb)
+                                                                __vp_normal_control_btn_clicked_cb,
+                                                                (Evas_Smart_Cb)
+                                                                __vp_normal_control_btn_press_cb,
+                                                                (Evas_Smart_Cb)
+                                                                __vp_normal_control_btn_unpress_cb,
+                                                                (void *) pNormalView);
+
+                       pNormalView->pCaptureFFBtn =
+                               vp_button_create(pNormalView->pNaviFrame,
+                                                                "custom/flat_63_63/default", NULL,
+                                                                (Evas_Smart_Cb)
+                                                                __vp_normal_control_btn_clicked_cb,
+                                                                (Evas_Smart_Cb)
+                                                                __vp_normal_control_btn_press_cb,
+                                                                (Evas_Smart_Cb)
+                                                                __vp_normal_control_btn_unpress_cb,
+                                                                (void *) pNormalView);
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pCaptureRewBtn,
+                                                                         edj_path,
+                                                                         VP_PLAY_NORMAL_RES_CAPTURE_REW);
+                       elm_object_part_content_set(pNormalView->pCaptureRewBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_ICON,
+                                                                               pIcon);
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pCaptureRewBtn,
+                                                                         edj_path,
+                                                                         VP_PLAY_NORMAL_RES_CAPTURE_REW_PRESS);
+                       elm_object_part_content_set(pNormalView->pCaptureRewBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+                                                                               pIcon);
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pCaptureRewBtn,
+                                                                         edj_path,
+                                                                         VP_PLAY_NORMAL_RES_CAPTURE_REW_DIM);
+                       elm_object_part_content_set(pNormalView->pCaptureRewBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+                                                                               pIcon);
+
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pCaptureFFBtn, edj_path,
+                                                                         VP_PLAY_NORMAL_RES_CAPTURE_FF);
+                       elm_object_part_content_set(pNormalView->pCaptureFFBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_ICON,
+                                                                               pIcon);
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pCaptureFFBtn, edj_path,
+                                                                         VP_PLAY_NORMAL_RES_CAPTURE_FF_PRESS);
+                       elm_object_part_content_set(pNormalView->pCaptureFFBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+                                                                               pIcon);
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pCaptureFFBtn, edj_path,
+                                                                         VP_PLAY_NORMAL_RES_CAPTURE_FF_DIM);
+                       elm_object_part_content_set(pNormalView->pCaptureFFBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+                                                                               pIcon);
+
+                       elm_object_part_content_set(pParent,
+                                                                               VP_PLAY_SWALLOW_NORMAL_TOP_CAPTURE_REW,
+                                                                               pNormalView->pCaptureRewBtn);
+                       elm_object_part_content_set(pParent,
+                                                                               VP_PLAY_SWALLOW_NORMAL_TOP_CAPTURE_FF,
+                                                                               pNormalView->pCaptureFFBtn);
+
+                       evas_object_show(pNormalView->pCaptureRewBtn);
+                       evas_object_show(pNormalView->pCaptureFFBtn);
+               }
+
+       }
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_share_popup(NormalView * pNormalView)
+{
+       if (!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");
+       }
+       pPlayView->bIsSharePopup = TRUE;
+       if (nState != VP_MM_PLAYER_STATE_PLAYING) {
+               pPlayView->bIsPlayBeforeShare = false;
+       } else {
+               pPlayView->bIsPlayBeforeShare = true;
+       }
+
+       bool bDRMLock = FALSE;
+
+       _vp_play_normal_view_check_drm_lock(pNormalView, &bDRMLock);
+       if (bDRMLock) {
+               VP_EVAS_DEL(pNormalView->pPopup);
+               pNormalView->pPopup = NULL;
+
+               pNormalView->pPopup = vp_popup_create(pPlayView->pWin,
+                                                                                         POPUP_STYLE_DEFAULT_NO_CANCEL_BTN,
+                                                                                         VP_PLAY_STRING_COM_ERROR,
+                                                                                         VP_PLAY_STRING_DRM_UNABLE_TO_SHARE_DRM_FILE,
+                                                                                         3.0,
+                                                                                         __vp_normal_popup_time_out_cb,
+                                                                                         NULL, NULL, pNormalView);
+
+               evas_object_show(pNormalView->pPopup);
+               pNormalView->bIsPopupShow = TRUE;
+               return;
+       }
+
+       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;
+       pNormalView->bSharePanelFocusIn = FALSE;
+       VideoLogInfo("share popup: bSharePanelPause = %d",
+                                pNormalView->bManualPause);
+       if (!pNormalView->bManualPause) {
+               pNormalView->bSharePanelPause = TRUE;
+       }
+
+       if (vp_play_app_launch_share_panel
+               (pPlayView->pWin, pNormalView->szMediaURL,
+                &pPlayView->pServiceShare, (void *) pNormalView)) {
+               pNormalView->bSharepopup = TRUE;
+
+       } else {
+               pNormalView->bSharepopup = FALSE;
+               VideoLogError("Launch share app failed");
+       }
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_sound_alive_popup(NormalView *
+                                                                                                         pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView 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");
+       }
+
+       if (pNormalView->bVideoOnlyMode == FALSE
+               && nState == VP_MM_PLAYER_STATE_PLAYING) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogError("Pause Fail");
+               }
+
+               _vp_play_normal_view_set_play_state(pNormalView);
+       }
+
+       vp_sound_alive_destroy(pNormalView->pSAHandle);
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+
+       pNormalView->pSAHandle = vp_sound_alive_create(pPlayView->pWin,
+                                                                                                  pNormalView->szMediaURL,
+                                                                                                  __vp_normal_sound_alive_popup_close_cb,
+                                                                                                  pNormalView->
+                                                                                                  nSoundAlive);
+       if (!pNormalView->pSAHandle) {
+               VideoLogError("vp_sound_alive_create fail");
+               return;
+       }
+       if (!vp_sound_alive_set_user_data
+               (pNormalView->pSAHandle, (void *) pNormalView)) {
+               VideoLogWarning("vp_share_set_user_data is fail");
+       }
+
+       if (!vp_sound_alive_realize(pNormalView->pSAHandle)) {
+               VideoLogWarning("vp_share_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_sound_path_popup(NormalView *
+                                                                                                        pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       vp_sound_path_destroy(pNormalView->pSoundPathHandle);
+       pNormalView->pSoundPathHandle = NULL;
+
+       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");
+       }
+
+       if (pNormalView->bVideoOnlyMode == FALSE
+               && nState == VP_MM_PLAYER_STATE_PLAYING) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogError("Pause Fail");
+               }
+               _vp_play_normal_view_set_play_state(pNormalView);
+       }
+
+       pNormalView->pSoundPathHandle = vp_sound_path_create(pPlayView->pWin,
+                                                                                                                __vp_normal_sound_path_popup_close_cb);
+       if (!pNormalView->pSoundPathHandle) {
+               VideoLogError("vp_sound_path_create fail");
+               return;
+       }
+       if (!vp_sound_path_set_user_data
+               (pNormalView->pSoundPathHandle, (void *) pNormalView)) {
+               VideoLogWarning("vp_sound_path_set_user_data is fail");
+       }
+
+       if (!vp_sound_path_realize(pNormalView->pSoundPathHandle)) {
+               VideoLogWarning("vp_sound_path_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_subtitle_popup(NormalView *
+                                                                                                  pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+
+       SubtitleInfo *pSubtitleInfo = NULL;
+       pSubtitleInfo = calloc(1, sizeof(SubtitleInfo));
+       if (!pSubtitleInfo) {
+               VideoLogError("pSubtitleInfo alloc fail");
+               return;
+       }
+       bool bIsClosedCaption = FALSE;
+       bIsClosedCaption =
+               vp_mm_player_is_closed_caption_exist(pNormalView->pPlayerHandle);
+
+       pSubtitleInfo->bClosedCaption = bIsClosedCaption;
+       pSubtitleInfo->fSync = pNormalView->fSubtitleSyncValue;
+       int nCount = 0;
+       char *szSubtitle = NULL;
+
+       if (vp_mm_player_get_subtitle_track_count
+               (pNormalView->pPlayerHandle, &nCount)) {
+               if (nCount > 0) {
+                       char *szCode = NULL;
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+                       if (pNormalView->pSelectedSubtitleLanguage
+                               && nCount == pNormalView->nSubtitleLanguageCount) {
+                               int index = 0;
+                               VP_FREE(pSubtitleInfo->szLanguage);
+                               for (; index < nCount; ++index) {
+                                       if (pNormalView->pSelectedSubtitleLanguage[index]) {
+                                               char *szName = NULL;
+                                               vp_mm_player_get_subtitle_track_language_code
+                                                       (pNormalView->pPlayerHandle, index, &szCode);
+                                               vp_subtitle_track_get_name(szCode, &szName);
+                                               if (!pSubtitleInfo->szLanguage) {
+                                                       pSubtitleInfo->szLanguage = g_strdup(szName);
+                                               } else {
+                                                       char *szTmp =
+                                                               g_strdup(pSubtitleInfo->szLanguage);
+                                                       VP_FREE(pSubtitleInfo->szLanguage);
+                                                       pSubtitleInfo->szLanguage =
+                                                               g_strdup_printf("%s,%s", szTmp, szName);
+                                                       VP_FREE(szTmp);
+                                               }
+                                               VP_FREE(szName);
+                                               VP_FREE(szCode);
+                                       }
+                               }
+                       } else
+#endif
+                       {
+                               vp_mm_player_get_subtitle_track_language_code(pNormalView->
+                                                                                                                         pPlayerHandle,
+                                                                                                                         pNormalView->
+                                                                                                                         nDefaultSubtitleTrackIndex,
+                                                                                                                         &szCode);
+                               vp_subtitle_track_get_name(szCode,
+                                                                                  &(pSubtitleInfo->szLanguage));
+                               VP_FREE(szCode);
+                       }
+               } else {
+                       pSubtitleInfo->szLanguage =
+                               g_strdup_printf("%s", VP_PLAY_STRING_COM_UNKNOWN);
+               }
+       }
+
+       if (!pSubtitleInfo->szLanguage) {
+               pSubtitleInfo->szLanguage =
+                       g_strdup_printf("%s", VP_PLAY_STRING_COM_UNKNOWN);
+       }
+
+       vp_play_preference_get_subtitle_font_name_key(&
+                                                                                                 (pSubtitleInfo->
+                                                                                                  szFontName));
+       if (pSubtitleInfo->szFontName) {
+               if (strcmp(pSubtitleInfo->szFontName, "Tizen") == 0) {
+                       VP_FREE(pSubtitleInfo->szFontName);
+                       pSubtitleInfo->szFontName =
+                               g_strdup_printf("%s", VP_PLAY_STRING_FONT_DEFAULT);
+               }
+       }
+       vp_play_preference_get_subtitle_size_key(&(pSubtitleInfo->nFontSize));
+       vp_play_preference_get_subtitle_edge_key(&(pSubtitleInfo->nEdge));
+
+#ifndef SUBTITLE_K_FEATURE
+       vp_play_preference_get_subtitle_font_color_key(&
+                                                                                                  (pSubtitleInfo->
+                                                                                                       nTextColor));
+       vp_play_preference_get_subtitle_bg_color_key(&
+                                                                                                (pSubtitleInfo->
+                                                                                                 nBGColor));
+#else
+       vp_play_preference_get_subtitle_font_color_hex_key(&
+                                                                                                          (pSubtitleInfo->
+                                                                                                               pTextColorHex));
+       vp_play_preference_get_subtitle_bg_color_hex_key(&
+                                                                                                        (pSubtitleInfo->
+                                                                                                         pBGColorHex));
+       vp_play_preference_get_subtitle_caption_win_color_hex_key(&
+                                                                                                                         (pSubtitleInfo->
+                                                                                                                          pCaptionWinColorHex));
+
+       int nAlignment = VIDEO_SUBTITLE_ALIGNMENT_CENTER;
+       vp_play_preference_get_subtitle_alignment_key(&nAlignment);
+       pSubtitleInfo->eAlignment = nAlignment;
+#endif
+       vp_mm_player_get_subtitle_url(pNormalView->pPlayerHandle, &szSubtitle);
+       if (szSubtitle) {
+               VP_STRDUP(pSubtitleInfo->szURL, szSubtitle);
+       }
+
+       VP_FREE(szSubtitle);
+
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+               pSubtitleInfo->bSupportSelect = FALSE;
+       } else {
+               pSubtitleInfo->bSupportSelect = TRUE;
+       }
+       vp_play_subtitle_get_text(pNormalView->pSubtitle,
+                                                         &pSubtitleInfo->szText);
+       vp_play_subtitle_get_size_zoom(pNormalView->pSubtitle,
+                                                                  &pSubtitleInfo->fZoom);
+
+       if (pNormalView->pSubtitlePopup) {
+               VideoLogWarning("pSubtitlePopup has been created");
+               vp_subtitle_update(pNormalView->pSubtitlePopup, pSubtitleInfo);
+       } else {
+               pNormalView->pSubtitlePopup =
+                       vp_subtitle_create(pPlayView->pWin, pSubtitleInfo,
+                                                          __vp_normal_subtitle_popup_close_cb);
+
+               if (!pNormalView->pSubtitlePopup) {
+                       VideoLogError("vp_subtitle_create fail");
+
+                       VP_FREE(pSubtitleInfo->szURL);
+                       VP_FREE(pSubtitleInfo->szText);
+                       VP_FREE(pSubtitleInfo->szLanguage);
+                       VP_FREE(pSubtitleInfo->szFontName);
+
+                       VP_FREE(pSubtitleInfo);
+                       return;
+               }
+               if (!vp_subtitle_set_user_data
+                       (pNormalView->pSubtitlePopup, (void *) pNormalView)) {
+                       VideoLogWarning("vp_subtitle_set_user_data is fail");
+               }
+
+               if (!vp_subtitle_realize(pNormalView->pSubtitlePopup)) {
+                       VideoLogWarning("vp_subtitle_realize is fail");
+               }
+       }
+
+       VP_FREE(pSubtitleInfo->szLanguage);
+       VP_FREE(pSubtitleInfo->szFontName);
+       VP_FREE(pSubtitleInfo->szText);
+       VP_FREE(pSubtitleInfo->szURL);
+       VP_FREE(pSubtitleInfo);
+
+       pNormalView->bIsSubtitleShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_subtitle_sync_popup(NormalView *
+                                                                                                               pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+
+       pNormalView->pSubtitleSyncPopup =
+               vp_subtitle_sync_popup_create(pPlayView->pWin,
+                                                                         pNormalView->fSubtitleSyncValue,
+                                                                         __vp_normal_subtitle_sync_popup_update_cb,
+                                                                         __vp_normal_subtitle_sync_popup_done_cb);
+
+       if (!pNormalView->pSubtitleSyncPopup) {
+               VideoLogError("vp_subtitle_sync_popup_create fail");
+               return;
+       }
+       if (!vp_subtitle_sync_popup_set_user_data
+               (pNormalView->pSubtitleSyncPopup, (void *) pNormalView)) {
+               VideoLogWarning("vp_subtitle_sync_popup_set_user_data is fail");
+       }
+
+       if (!vp_subtitle_sync_popup_realize(pNormalView->pSubtitleSyncPopup)) {
+               VideoLogWarning("vp_subtitle_sync_popup_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+
+static void _vp_play_normal_view_selected_subtitle_language(NormalView *
+                                                                                                                       pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       if (!pNormalView->pPlayerHandle) {
+               VideoLogError("pPlayerHandle is NULL");
+               return;
+       }
+
+       VP_FREE(pNormalView->pSelectedSubtitleLanguage);
+       pNormalView->pSelectedSubtitleLanguage =
+               calloc(pNormalView->nSubtitleLanguageCount, sizeof(int));
+
+}
+
+static void _vp_play_normal_view_subtitle_add_language_cb(int index,
+                                                                                                                 void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+       if (!pNormalView->pPlayerHandle) {
+               VideoLogError("pPlayerHandle is NULL");
+               return;
+       }
+
+       if (!pNormalView->pSelectedSubtitleLanguage) {
+               VideoLogError("pSelectedSubtitleLanguage is NULL");
+               return;
+       }
+
+       if (index < 0 || index > pNormalView->nSubtitleLanguageCount) {
+               VideoLogError("Invalid index");
+               return;
+       }
+
+       if (pNormalView->pSelectedSubtitleLanguage[index]) {
+               VideoLogWarning("index:%d has been added", index);
+       } else {
+               if (!vp_mm_player_add_subtitle_language
+                       (pNormalView->pPlayerHandle, index)) {
+                       VideoLogError("vp_mm_player_add_subtitle_language:%d failed",
+                                                 index);
+               } else {
+                       VideoLogInfo("vp_mm_player_add_subtitle_language:%d successed",
+                                                index);
+                       pNormalView->pSelectedSubtitleLanguage[index] = true;
+               }
+       }
+}
+
+static void _vp_play_normal_view_subtitle_remove_language_cb(int index,
+                                                                                                                        void
+                                                                                                                        *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pUserData;
+       if (!pNormalView->pPlayerHandle) {
+               VideoLogError("pPlayerHandle is NULL");
+               return;
+       }
+
+       if (!pNormalView->pSelectedSubtitleLanguage) {
+               VideoLogError("pSelectedSubtitleLanguage is NULL");
+               return;
+       }
+
+       if (index < 0 || index > pNormalView->nSubtitleLanguageCount) {
+               VideoLogError("Invalid index");
+               return;
+       }
+
+       if (pNormalView->pSelectedSubtitleLanguage[index]) {
+               if (!vp_mm_player_remove_subtitle_language
+                       (pNormalView->pPlayerHandle, index)) {
+                       VideoLogError
+                               ("vp_mm_player_remove_subtitle_language:%d failed", index);
+               } else {
+                       VideoLogInfo
+                               ("vp_mm_player_remove_subtitle_language:%d successed",
+                                index);
+                       pNormalView->pSelectedSubtitleLanguage[index] = false;
+               }
+       } else {
+               VideoLogWarning("index:%d has not been selected", index);
+       }
+}
+
+#endif
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_subtitle_language_popup(NormalView *
+                                                                                                                       pNormalView)
+{
+       if (!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");
+       }
+
+       if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+               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);
+
+       }
+
+       vp_subtitle_track_destroy(pNormalView->pSubtitleTrackHandle);
+       pNormalView->pSubtitleTrackHandle = NULL;
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+       pNormalView->pSubtitleTrackHandle =
+               vp_subtitle_track_create(pPlayView->pWin,
+                                                                __vp_normal_subtitle_track_popup_close_cb);
+#else
+       pNormalView->pSubtitleTrackHandle =
+               vp_subtitle_track_create(pPlayView->pWin,
+                                                                __vp_normal_subtitle_track_popup_close_cb,
+                                                                pNormalView->nDefaultSubtitleTrackIndex);
+#endif
+       if (!pNormalView->pSubtitleTrackHandle) {
+               VideoLogError("vp_subtitle_track_create fail");
+               return;
+       }
+
+       if (!vp_subtitle_track_set_user_data
+               (pNormalView->pSubtitleTrackHandle, (void *) pNormalView)) {
+               VideoLogWarning("vp_subtitle_track_set_user_data is fail");
+       }
+
+       int nCount = 0;
+       if (vp_mm_player_get_subtitle_track_count
+               (pNormalView->pPlayerHandle, &nCount)) {
+               VideoLogInfo("== TRACK : %d ==", nCount);
+               if (nCount > 0) {
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+                       pNormalView->nSubtitleLanguageCount = nCount;
+                       _vp_play_normal_view_selected_subtitle_language(pNormalView);
+#endif
+                       int nIdx = 0;
+                       for (nIdx = 0; nIdx < nCount; nIdx++) {
+                               char *szCode = NULL;
+                               if (vp_mm_player_get_subtitle_track_language_code
+                                       (pNormalView->pPlayerHandle, nIdx, &szCode)) {
+                                       VideoLogWarning("== language : %s ==", szCode);
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+                                       vp_subtitle_track_add_Item(pNormalView->
+                                                                                          pSubtitleTrackHandle,
+                                                                                          szCode, nIdx,
+                                                                                          pNormalView->
+                                                                                          pSelectedSubtitleLanguage
+                                                                                          [nIdx]);
+#else
+                                       vp_subtitle_track_add_Item(pNormalView->
+                                                                                          pSubtitleTrackHandle,
+                                                                                          szCode, nIdx);
+#endif
+                               }
+                               VP_FREE(szCode);
+                       }
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+                       vp_subtitle_track_set_add_language_cb(pNormalView->
+                                                                                                 pSubtitleTrackHandle,
+                                                                                                 _vp_play_normal_view_subtitle_add_language_cb);
+                       vp_subtitle_track_set_remove_language_cb(pNormalView->
+                                                                                                        pSubtitleTrackHandle,
+                                                                                                        _vp_play_normal_view_subtitle_remove_language_cb);
+#endif
+               } else {
+                       char *szTrack =
+                               g_strdup_printf("%s %d", VP_PLAY_STRING_COM_DEFAULT, 0);
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+                       vp_subtitle_track_add_Item(pNormalView->pSubtitleTrackHandle,
+                                                                          szTrack, 0, true);
+#else
+                       vp_subtitle_track_add_Item(pNormalView->pSubtitleTrackHandle,
+                                                                          szTrack, 0);
+#endif
+                       VP_FREE(szTrack);
+               }
+       } else {
+               char *szTrack =
+                       g_strdup_printf("%s %d", VP_PLAY_STRING_COM_DEFAULT, 0);
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+               vp_subtitle_track_add_Item(pNormalView->pSubtitleTrackHandle,
+                                                                  szTrack, 0, true);
+#else
+               vp_subtitle_track_add_Item(pNormalView->pSubtitleTrackHandle,
+                                                                  szTrack, 0);
+#endif
+               VP_FREE(szTrack);
+       }
+
+       if (!vp_subtitle_track_realize(pNormalView->pSubtitleTrackHandle)) {
+               VideoLogWarning("vp_subtitle_track_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+}
+
+#ifdef SUBTITLE_K_FEATURE
+/**
+ *
+ * @param nType
+ * @param bPause
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_alignment_popup_done_cb(int nType,
+                                                                                                                bool bPause,
+                                                                                                                void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       NormalView *pNormalView = (NormalView *) pUserData;
+
+       vp_subtitle_alignment_destroy(pNormalView->pSubtitleAlignmentPopup);
+       pNormalView->pSubtitleAlignmentPopup = NULL;
+       pNormalView->bIsPopupShow = FALSE;
+
+       if (nType != -1) {
+
+               vp_subtitle_alignment_t nAlignment = VP_SUBTITLE_ALIGNMENT_CENTER;
+               if (nType == VIDEO_SUBTITLE_ALIGNMENT_LEFT) {
+                       nAlignment = VP_SUBTITLE_ALIGNMENT_LEFT;
+               } else if (nType == VIDEO_SUBTITLE_ALIGNMENT_CENTER) {
+                       nAlignment = VP_SUBTITLE_ALIGNMENT_CENTER;
+               } else if (nType == VIDEO_SUBTITLE_ALIGNMENT_RIGHT) {
+                       nAlignment = VP_SUBTITLE_ALIGNMENT_RIGHT;
+               }
+
+               vp_play_subtitle_set_alignment(pNormalView->pSubtitle, nAlignment);
+
+               vp_play_preference_set_subtitle_alignment_key(nType);
+
+               _vp_play_normal_view_set_subtitle_font_config(pNormalView);
+
+               /*Set caption window: size, rel1, color */
+               __vp_normal_subtitle_set_caption_window(pNormalView);
+       }
+
+       _vp_play_normal_view_on_subtitle_popup(pNormalView);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_subtitle_alignment_popup(NormalView *
+                                                                                                                        pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+       int nAlignment = 0;
+       vp_play_preference_get_subtitle_alignment_key(&nAlignment);
+
+       pNormalView->pSubtitleAlignmentPopup =
+               vp_subtitle_alignment_create(pPlayView->pWin,
+                                                                        __vp_normal_subtitle_alignment_popup_done_cb,
+                                                                        nAlignment);
+
+       if (!pNormalView->pSubtitleAlignmentPopup) {
+               VideoLogError("vp_subtitle_alignment_create fail");
+               return;
+       }
+       if (!vp_subtitle_alignment_set_user_data
+               (pNormalView->pSubtitleAlignmentPopup, (void *) pNormalView)) {
+               VideoLogWarning("vp_subtitle_alignment_set_user_data is fail");
+       }
+
+       if (!vp_subtitle_alignment_realize
+               (pNormalView->pSubtitleAlignmentPopup)) {
+               VideoLogWarning("vp_subtitle_alignment_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+}
+#endif
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_subtitle_select_popup(NormalView *
+                                                                                                                 pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+       char *szSubtitle = NULL;
+       GList *pItemList = NULL;
+       char *szDir = NULL;
+       szDir = vp_play_util_get_folder_from_path(pNormalView->szMediaURL);
+#ifdef ENABLE_SUBTITLE
+       bool bIsExistSubtitlesInFolder = FALSE;
+       bIsExistSubtitlesInFolder =
+               vp_play_util_get_subtitle_path_list(&pItemList);
+       if (bIsExistSubtitlesInFolder && pItemList) {
+
+               if (g_list_length(pItemList) > 0) {
+                       bIsExistSubtitlesInFolder = TRUE;
+               } else {
+                       g_list_free(pItemList);
+                       pItemList = NULL;
+               }
+
+       } else {
+               VideoLogInfo("bIsExistSubtitlesInFolder && pItemList failed");
+               bIsExistSubtitlesInFolder = FALSE;
+       }
+
+#endif
+       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");
+       }
+
+       if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+               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);
+
+       }
+#ifdef ENABLE_SUBTITLE
+#else
+       vp_play_util_get_subtitle_path_list(&pItemList);
+#endif
+       VP_FREE(szDir);
+       vp_mm_player_get_subtitle_url(pNormalView->pPlayerHandle, &szSubtitle);
+       pNormalView->pSubtitleSelectPopup =
+               vp_subtitle_select_create(pPlayView->pWin,
+                                                                 __vp_normal_subtitle_select_popup_done_cb,
+                                                                 __vp_normal_subtitle_select_button_popup_done_cb,
+                                                                 pItemList, szSubtitle,
+                                                                 !(pNormalView->bIsExistSubtitle));
+       VP_FREE(szSubtitle);
+       if (pItemList) {
+
+               int nCount = 0;
+               int i = 0;
+               nCount = g_list_length(pItemList);
+               for (i = 0; i < nCount; i++) {
+                       char *szName = NULL;
+                       szName = (char *) g_list_nth_data(pItemList, i);
+                       VP_FREE(szName);
+               }
+
+               g_list_free(pItemList);
+               pItemList = NULL;
+       }
+
+       if (!pNormalView->pSubtitleSelectPopup) {
+               VideoLogError("vp_subtitle_select_create fail");
+               return;
+       }
+       if (!vp_subtitle_select_set_user_data
+               (pNormalView->pSubtitleSelectPopup, (void *) pNormalView)) {
+               VideoLogWarning("vp_subtitle_select_set_user_data is fail");
+       }
+
+       if (!vp_subtitle_select_realize(pNormalView->pSubtitleSelectPopup)) {
+               VideoLogWarning("vp_subtitle_select_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_subtitle_font_popup(NormalView *
+                                                                                                               pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+
+       char *szFont = NULL;
+       vp_play_preference_get_subtitle_font_name_key(&szFont);
+
+       pNormalView->pSubtitleFontPopup =
+               vp_subtitle_font_create(pPlayView->pWin,
+                                                               __vp_normal_subtitle_font_popup_done_cb,
+                                                               szFont);
+       VP_FREE(szFont);
+
+       if (!pNormalView->pSubtitleFontPopup) {
+               VideoLogError("vp_subtitle_font_create fail");
+               return;
+       }
+       if (!vp_subtitle_font_set_user_data
+               (pNormalView->pSubtitleFontPopup, (void *) pNormalView)) {
+               VideoLogWarning("vp_subtitle_font_set_user_data is fail");
+       }
+
+       if (!vp_subtitle_font_realize(pNormalView->pSubtitleFontPopup)) {
+               VideoLogWarning("vp_subtitle_font_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+
+}
+
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_subtitle_size_popup(NormalView *
+                                                                                                               pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+       int nSize = 0;
+       vp_play_preference_get_subtitle_size_key(&nSize);
+
+       pNormalView->pSubtitleSizePopup =
+               vp_subtitle_size_create(pPlayView->pWin,
+                                                               __vp_normal_subtitle_size_popup_done_cb,
+                                                               nSize);
+
+       if (!pNormalView->pSubtitleSizePopup) {
+               VideoLogError("vp_subtitle_size_create fail");
+               return;
+       }
+       if (!vp_subtitle_size_set_user_data
+               (pNormalView->pSubtitleSizePopup, (void *) pNormalView)) {
+               VideoLogWarning("vp_subtitle_size_set_user_data is fail");
+       }
+
+       if (!vp_subtitle_size_realize(pNormalView->pSubtitleSizePopup)) {
+               VideoLogWarning("vp_subtitle_size_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+/**
+ *
+ * @param nType
+ * @param bPause
+ * @param pUserData
+ */
+static void __vp_normal_subtitle_edge_popup_done_cb(int nType, bool bPause,
+                                                                                                       void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       // 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;
+
+       if (nType != -1) {
+               vp_play_subtitle_set_edge(pNormalView->pSubtitle, nType);
+               vp_play_preference_set_subtitle_edge_key(nType);
+               /*Set caption window: size, rel1, color */
+               __vp_normal_subtitle_set_caption_window(pNormalView);
+       }
+
+       if (bPause) {
+               if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) {
+                       VideoLogWarning("Pause Fail");
+               }
+               if (pPlayView && pPlayView->win_minicon) {
+                       vp_minicontroller_update_control(pPlayView);
+               }
+               if (pPlayView && 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_on_subtitle_popup(pNormalView);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_subtitle_edge_popup(NormalView *
+                                                                                                               pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+       int nEdge = 0;
+       vp_play_preference_get_subtitle_edge_key(&nEdge);
+
+       pNormalView->pSubtitleEdgePopup =
+               vp_subtitle_edge_create(pPlayView->pWin,
+                                                               __vp_normal_subtitle_edge_popup_done_cb,
+                                                               nEdge);
+
+       if (!pNormalView->pSubtitleEdgePopup) {
+               VideoLogError("vp_subtitle_size_create fail");
+               return;
+       }
+       if (!vp_subtitle_edge_set_user_data
+               (pNormalView->pSubtitleEdgePopup, (void *) pNormalView)) {
+               VideoLogWarning("vp_subtitle_size_set_user_data is fail");
+       }
+
+       if (!vp_subtitle_edge_realize(pNormalView->pSubtitleEdgePopup)) {
+               VideoLogWarning("vp_subtitle_size_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_subtitle_font_color_popup(NormalView *
+                                                                                                                         pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+       int nColor = 0;
+       vp_play_preference_get_subtitle_font_color_key(&nColor);
+
+#ifndef SUBTITLE_K_FEATURE
+       pNormalView->pSubtitleFontColorPopup =
+               vp_subtitle_color_create(pPlayView->pWin,
+                                                                __vp_normal_subtitle_font_color_popup_done_cb,
+                                                                nColor);
+#else
+       char *szColorHex = NULL;
+       vp_play_preference_get_subtitle_font_color_hex_key(&szColorHex);
+       if (!szColorHex) {
+               VideoLogError("szColorHex is NULL");
+       } else {
+               pNormalView->pSubtitleFontColorPopup =
+                       vp_subtitle_color_hex_create(pPlayView->pWin,
+                                                                                __vp_normal_subtitle_font_color_popup_done_hex_cb,
+                                                                                szColorHex);
+       }
+       VP_FREE(szColorHex);
+#endif
+
+       if (!pNormalView->pSubtitleFontColorPopup) {
+               VideoLogError("vp_subtitle_color_create fail");
+               return;
+       }
+       if (!vp_subtitle_color_set_user_data
+               (pNormalView->pSubtitleFontColorPopup, (void *) pNormalView)) {
+               VideoLogWarning("vp_subtitle_font_color_set_user_data is fail");
+       }
+
+       if (!vp_subtitle_color_realize(pNormalView->pSubtitleFontColorPopup)) {
+               VideoLogWarning("vp_subtitle_color_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_subtitle_bg_color_popup(NormalView *
+                                                                                                                       pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+#ifndef SUBTITLE_K_FEATURE
+       int nColor = 0;
+       vp_play_preference_get_subtitle_bg_color_key(&nColor);
+
+       pNormalView->pSubtitleBGColorPopup =
+               vp_subtitle_bg_color_create(pPlayView->pWin,
+                                                                       __vp_normal_subtitle_bg_color_popup_done_cb,
+                                                                       nColor);
+#else
+       char *szColorHex = NULL;
+       vp_play_preference_get_subtitle_bg_color_hex_key(&szColorHex);
+       if (!szColorHex) {
+               VideoLogError("szColorHex is NULL");
+       } else {                                        //prevent issue fix
+               pNormalView->pSubtitleBGColorPopup =
+                       vp_subtitle_color_hex_create(pPlayView->pWin,
+                                                                                __vp_normal_subtitle_bg_color_popup_done_hex_cb,
+                                                                                szColorHex);
+               VP_FREE(szColorHex);
+       }
+#endif
+
+       if (!pNormalView->pSubtitleBGColorPopup) {
+               VideoLogError("vp_subtitle_bg_color_create fail");
+               return;
+       }
+       if (!vp_subtitle_color_set_user_data
+               (pNormalView->pSubtitleBGColorPopup, (void *) pNormalView)) {
+               VideoLogWarning("vp_subtitle_color_set_user_data is fail");
+       }
+
+       if (!vp_subtitle_color_realize(pNormalView->pSubtitleBGColorPopup)) {
+               VideoLogWarning("vp_subtitle_color_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void
+_vp_play_normal_view_on_subtitle_caption_win_color_popup(NormalView *
+                                                                                                                pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+
+       char *szColorHex = NULL;
+       vp_play_preference_get_subtitle_caption_win_color_hex_key(&szColorHex);
+       if (!szColorHex) {
+               VideoLogError("szColorHex is NULL");
+       } else {
+               pNormalView->pSubtitleCaptionWinColorPopup =
+                       vp_subtitle_color_hex_create(pPlayView->pWin,
+                                                                                __vp_normal_subtitle_caption_win_color_popup_done_hex_cb,
+                                                                                szColorHex);
+       }
+       VP_FREE(szColorHex);
+
+
+       if (!pNormalView->pSubtitleCaptionWinColorPopup) {
+               VideoLogError("vp_subtitle_color_hex_create fail");
+               return;
+       }
+       if (!vp_subtitle_color_set_user_data
+               (pNormalView->pSubtitleCaptionWinColorPopup,
+                (void *) pNormalView)) {
+               VideoLogWarning("vp_subtitle_color_set_user_data is fail");
+       }
+
+       if (!vp_subtitle_color_realize
+               (pNormalView->pSubtitleCaptionWinColorPopup)) {
+               VideoLogWarning("vp_subtitle_color_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param emission
+ * @param source
+ */
+static void _vp_play_normal_view_on_play_speed_popup_cb(void *data,
+                                                                                                               Evas_Object * obj,
+                                                                                                               const char
+                                                                                                               *emission,
+                                                                                                               const char *source)
+{
+       NormalView *pNormalView = (NormalView *) data;
+       _vp_play_normal_view_on_play_speed_popup(pNormalView);
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_play_speed_popup(NormalView *
+                                                                                                        pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       vp_play_speed_popup_destroy(pNormalView->pPlaySpeedPopup);
+       pNormalView->pPlaySpeedPopup = NULL;
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+
+       pNormalView->pPlaySpeedPopup =
+               vp_play_speed_popup_create(pPlayView->pWin,
+                                                                  pNormalView->fPlaySpeed,
+                                                                  __vp_normal_play_speed_popup_update_cb,
+                                                                  __vp_normal_play_speed_popup_done_cb);
+
+       if (!pNormalView->pPlaySpeedPopup) {
+               VideoLogError("vp_play_speed_popup_create fail");
+               return;
+       }
+       if (!vp_play_speed_popup_set_user_data
+               (pNormalView->pPlaySpeedPopup, (void *) pNormalView)) {
+               VideoLogWarning("vp_play_speed_popup_set_user_data is fail");
+       }
+
+       if (!vp_play_speed_popup_realize(pNormalView->pPlaySpeedPopup)) {
+               VideoLogWarning("vp_play_speed_popup_realize is fail");
+       }
+       pNormalView->bIsPopupShow = TRUE;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_on_detail_popup(NormalView * pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       vp_detail_destroy(pNormalView->pDetailHandle);
+       pNormalView->pDetailHandle = NULL;
+
+       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");
+       }
+
+       if (pNormalView->bVideoOnlyMode == FALSE
+               && nState == VP_MM_PLAYER_STATE_PLAYING) {
+               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);
+       }
+
+       _vp_play_normal_view_set_play_state(pNormalView);
+
+       vp_detail_info *pDetailInfo = NULL;
+
+       pDetailInfo = calloc(1, sizeof(vp_detail_info));
+       if (!pDetailInfo) {
+               VideoLogError("pDetailInfo is alloc fail");
+               return;
+       }
+       int nWidth = 0;
+       int nHeight = 0;
+       double dLatitude = 0.0;
+       double dLongitude = 0.0;
+       char *szModifiedTime = NULL;
+       char *szTitle = NULL;
+       char *szFileDate = NULL;
+       int nDuration = 0;
+
+#ifdef ENABLE_DRM_FEATURE
+       vp_drm_is_drm_file(pNormalView->szMediaURL, &(pDetailInfo->bDrm));
+       vp_drm_is_playready_drm_file(pNormalView->szMediaURL,
+                                                                &(pDetailInfo->bPlayready));
+       _vp_play_normal_view_check_drm_lock(pNormalView,
+                                                                               &(pDetailInfo->bForwardLock));
+#endif
+       if (pDetailInfo->bPlayready == FALSE) { /* Just check it for performance */
+               vp_media_contents_get_content_info(pNormalView->szMediaURL,
+                                                                                  &szTitle, &nWidth, &nHeight,
+                                                                                  &nDuration, &dLatitude,
+                                                                                  &dLongitude, &szModifiedTime);
+               if (szTitle) {
+                       pDetailInfo->szTitle =
+                               vp_play_util_get_title_from_path(szTitle);
+               } else {
+                       pDetailInfo->szTitle =
+                               vp_play_util_get_title_from_path(pNormalView->szMediaURL);
+               }
+
+               if (nWidth == 0) {
+                       vp_media_metadata_get_width(pNormalView->szMediaURL, &nWidth);
+               }
+               if (nHeight == 0) {
+                       vp_media_metadata_get_height(pNormalView->szMediaURL,
+                                                                                &nHeight);
+               }
+       } else {
+               pDetailInfo->szTitle =
+                       vp_play_util_get_title_from_path(pNormalView->szMediaURL);
+       }
+
+       vp_play_util_get_file_info(pNormalView->szMediaURL,
+                                                          &pDetailInfo->szSize, &pDetailInfo->szDate,
+                                                          &pDetailInfo->szFormat);
+
+       VP_FREE(szTitle);
+       VP_FREE(szFileDate);
+       if (!szModifiedTime && pDetailInfo->szDate) {
+               pDetailInfo->szLastModified = g_strdup(pDetailInfo->szDate);
+       } else {
+               pDetailInfo->szLastModified = g_strdup(szModifiedTime);
+       }
+       pDetailInfo->szResolution =
+               g_strdup_printf("%d X %d", nWidth, nHeight);
+       pDetailInfo->szLatitude = g_strdup_printf("%f", dLatitude);
+       pDetailInfo->szLongitude = g_strdup_printf("%f", dLongitude);
+
+       if (vp_file_exists((const char *) pNormalView->szMediaURL)) {
+               pDetailInfo->szLocation =
+                       vp_dir_get((const char *) pNormalView->szMediaURL);
+       } else {
+               _vp_play_normal_view_release_service_share(pNormalView->pPlayView);
+       }
+
+       pNormalView->pDetailHandle =
+               vp_detail_page_create((void *) pPlayView->pNaviframe,
+                                                         __vp_normal_detail_popup_close_cb,
+                                                         pDetailInfo);
+       if (!pNormalView->pDetailHandle) {
+               VideoLogError("vp_detail_create fail");
+
+               VP_FREE(pDetailInfo->szTitle);
+               VP_FREE(pDetailInfo->szFormat);
+               VP_FREE(pDetailInfo->szDate);
+               VP_FREE(pDetailInfo->szSize);
+               VP_FREE(pDetailInfo->szLastModified);
+               VP_FREE(pDetailInfo->szResolution);
+               VP_FREE(pDetailInfo->szLatitude);
+               VP_FREE(pDetailInfo->szLongitude);
+               VP_FREE(pDetailInfo->szLocation);
+               VP_FREE(pDetailInfo->szLastModified);
+               VP_FREE(pDetailInfo);
+               return;
+       }
+       if (!vp_detail_set_user_data
+               (pNormalView->pDetailHandle, (void *) pNormalView)) {
+               VideoLogWarning("vp_detail_set_user_data is fail");
+       }
+       VP_FREE(pDetailInfo->szTitle);
+       VP_FREE(pDetailInfo->szFormat);
+       VP_FREE(pDetailInfo->szDate);
+       VP_FREE(pDetailInfo->szSize);
+       VP_FREE(pDetailInfo->szResolution);
+       VP_FREE(pDetailInfo->szLatitude);
+       VP_FREE(pDetailInfo->szLongitude);
+       VP_FREE(pDetailInfo->szLocation);
+       VP_FREE(pDetailInfo->szLastModified);
+       VP_FREE(pDetailInfo);
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param bToggle
+ */
+static void _vp_play_normal_view_on_volume_popup(NormalView * pNormalView,
+                                                                                                bool bToggle)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       bool bLandscape =
+               vp_play_util_get_landscape_check(pNormalView->nRotate);
+       bool bIsRealize = FALSE;
+
+       if (pNormalView->pVolumePopupHandle) {
+               if (!vp_play_volume_popup_unrealize
+                       (pNormalView->pVolumePopupHandle)) {
+                       VideoLogWarning("vp_play_volume_popup_unrealize is fail");
+               }
+       }
+       if (!pNormalView->pVolumeHandle) {
+               if (!pNormalView->pPlayView) {
+                       VideoLogError("pNormalView->pPlayView is NULL");
+                       return;
+               }
+
+               Evas_Object *pParent = pNormalView->pPlayView->pWin;
+
+               pNormalView->pVolumeHandle =
+                       vp_play_volume_create(pParent, pNormalView->pPlayerHandle,
+                                                                 __vp_normal_volume_change_value_cb);
+               if (!pNormalView->pVolumeHandle) {
+                       VideoLogError("pNormalView->pVolumeHandle  is NULL");
+                       return;
+               }
+               if (!vp_play_volume_set_user_data
+                       (pNormalView->pVolumeHandle, (void *) pNormalView)) {
+                       VideoLogWarning("vp_play_volume_set_user_data is fail");
+                       return;
+               }
+               if (!pNormalView->bLockScreen) {
+                       vp_play_volume_set_mouse_callbacks(pNormalView->pVolumeHandle,
+                                                                                          pNormalView->pPlayView->
+                                                                                          pWin);
+               } else {
+                       vp_play_volume_unset_mouse_callbacks(pNormalView->
+                                                                                                pVolumeHandle,
+                                                                                                pNormalView->pPlayView->
+                                                                                                pWin);
+               }
+       }
+       Evas_Object *pParent = pNormalView->pPlayView->pWin;
+       if (!vp_play_volume_set_landscape_mode
+               (pNormalView->pVolumeHandle, bLandscape, pParent)) {
+               VideoLogWarning("vp_play_volume_set_landscape_mode is fail");
+               return;
+       }
+
+       if (!vp_play_volume_is_realize
+               (pNormalView->pVolumeHandle, &bIsRealize)) {
+               VideoLogWarning("vp_play_volume_is_realize is fail");
+               return;
+       }
+
+       if (bIsRealize && bToggle) {
+               if (!vp_play_volume_unrealize(pNormalView->pVolumeHandle)) {
+                       VideoLogWarning("vp_play_volume_unrealize is fail");
+               }
+       } else {
+               if (!vp_play_volume_update_value(pNormalView->pVolumeHandle)) {
+                       VideoLogWarning("vp_play_volume_update_value is fail");
+               }
+
+               VP_EVAS_DEL(pNormalView->pCtxPopup);
+
+               if (!vp_play_volume_realize
+                       (pNormalView->pVolumeHandle, pNormalView->pPlayView->pWin)) {
+                       VideoLogWarning("vp_play_volume_realize is fail");
+               }
+       }
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param bShow
+ */
+static void _vp_play_normal_view_on_bookmark_mode(NormalView * pNormalView,
+                                                                                                 bool bShow)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       if (bShow) {
+               _vp_play_normal_view_show_layout(pNormalView);
+       }
+
+       if (bShow) {
+               pNormalView->bCaptureComplete = TRUE;
+               vp_play_bookmark_realize(pNormalView->pBookmarkHandle);
+#ifndef SUBTITLE_K_FEATURE
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_BOOKMARK_ON, "*");
+#endif
+               elm_object_part_content_set(pNormalView->pControlLayout,
+                                                                       VP_PLAY_SWALLOW_NORMAL_BOOKMARK,
+                                                                       pNormalView->pBookmarkObj);
+       } else {
+               pNormalView->bCaptureComplete = TRUE;
+#ifndef SUBTITLE_K_FEATURE
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_BOOKMARK_OFF, "*");
+#endif
+               elm_object_part_content_unset(pNormalView->pControlLayout,
+                                                                         VP_PLAY_SWALLOW_NORMAL_BOOKMARK);
+               vp_play_bookmark_unrealize(pNormalView->pBookmarkHandle);
+       }
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_all_close_popup(NormalView * pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       if (pNormalView->pPopup) {
+               VP_EVAS_DEL(pNormalView->pPopup);
+               pNormalView->pPopup = NULL;
+       }
+
+       if (pNormalView->pCtxPopup) {
+               VP_EVAS_DEL(pNormalView->pCtxPopup);
+               pNormalView->pCtxPopup = NULL;
+       }
+
+       if (pNormalView->pSubtitlePopup) {
+               vp_subtitle_destroy(pNormalView->pSubtitlePopup);
+               pNormalView->pSubtitlePopup = NULL;
+               pNormalView->bIsSubtitleShow = FALSE;
+       }
+
+       if (pNormalView->pSubtitleSelectPopup) {
+               vp_subtitle_select_destroy(pNormalView->pSubtitleSelectPopup);
+               pNormalView->pSubtitleSelectPopup = NULL;
+       }
+
+       if (pNormalView->pSubtitleFontPopup) {
+               vp_subtitle_font_destroy(pNormalView->pSubtitleFontPopup);
+               pNormalView->pSubtitleFontPopup = NULL;
+       }
+
+       if (pNormalView->pSubtitleAlignmentPopup) {
+               vp_subtitle_alignment_destroy(pNormalView->
+                                                                         pSubtitleAlignmentPopup);
+               pNormalView->pSubtitleAlignmentPopup = NULL;
+       }
+
+       if (pNormalView->pSubtitleFontColorPopup) {
+               vp_subtitle_color_destroy(pNormalView->pSubtitleFontColorPopup);
+               pNormalView->pSubtitleFontColorPopup = NULL;
+       }
+
+       if (pNormalView->pSubtitleBGColorPopup) {
+               vp_subtitle_bg_color_destroy(pNormalView->pSubtitleBGColorPopup);
+               pNormalView->pSubtitleBGColorPopup = NULL;
+       }
+
+       if (pNormalView->pSubtitleEdgePopup) {
+               vp_subtitle_edge_destroy(pNormalView->pSubtitleEdgePopup);
+               pNormalView->pSubtitleEdgePopup = NULL;
+       }
+
+       if (pNormalView->pSubtitleSizePopup) {
+               vp_subtitle_size_destroy(pNormalView->pSubtitleSizePopup);
+               pNormalView->pSubtitleSizePopup = NULL;
+       }
+
+       if (pNormalView->pSubtitleSyncPopup) {
+               vp_subtitle_sync_popup_destroy(pNormalView->pSubtitleSyncPopup);
+               pNormalView->pSubtitleSyncPopup = NULL;
+       }
+
+       if (pNormalView->pRepeatHandle) {
+               vp_repeat_destroy(pNormalView->pRepeatHandle);
+               pNormalView->pRepeatHandle = NULL;
+       }
+
+       if (pNormalView->pSAHandle) {
+               vp_sound_alive_destroy(pNormalView->pSAHandle);
+               pNormalView->pSAHandle = NULL;
+       }
+
+       if (pNormalView->pSoundPathHandle) {
+               vp_sound_path_destroy(pNormalView->pSoundPathHandle);
+               pNormalView->pSoundPathHandle = NULL;
+       }
+
+       if (pNormalView->pAudioTrackHandle) {
+               vp_audio_track_destroy(pNormalView->pAudioTrackHandle);
+               pNormalView->pAudioTrackHandle = NULL;
+       }
+
+       if (pNormalView->pSettingHandle) {
+               vp_setting_destroy(pNormalView->pSettingHandle);
+               pNormalView->pSettingHandle = NULL;
+       }
+
+       if (pNormalView->pCapturePopup) {
+               vp_capture_popup_destroy(pNormalView->pCapturePopup);
+               pNormalView->pCapturePopup = NULL;
+       }
+
+       if (pNormalView->pPlaySpeedPopup) {
+               vp_mm_player_set_rate(pNormalView->pPlayerHandle,
+                                                         (float) pNormalView->fPlaySpeed);
+               vp_play_speed_popup_destroy(pNormalView->pPlaySpeedPopup);
+               pNormalView->pPlaySpeedPopup = NULL;
+       }
+
+       pNormalView->bIsPopupShow = FALSE;
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_show_layout(NormalView * pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       if (!pNormalView->pNaviItem) {
+               VideoLogError("pNaviItem is NULL");
+               return;
+       }
+
+       if (pNormalView->bLockScreen) {
+               VideoLogError("bLockScreen is TRUE");
+               vp_play_normal_view_set_lock_screen(pNormalView,
+                                                                                       pNormalView->bLockScreen);
+               return;
+       }
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+       if (!pPlayView->pWin) {
+               VideoLogError("pPlayView->pWin is NULL");
+               return;
+       }
+
+       vp_device_set_frame_rate(60);
+
+       _vp_play_normal_view_set_rotate_lock_state(pNormalView);
+
+       VP_EVAS_TIMER_DEL(pNormalView->pScreenShotTimer);
+
+       elm_object_part_content_unset(pNormalView->pMainLayout,
+                                                                 VP_PLAY_SWALLOW_NORMAL_SCREENSHOT_PORTRAIT);
+       elm_object_part_content_unset(pNormalView->pMainLayout,
+                                                                 VP_PLAY_SWALLOW_NORMAL_SCREENSHOT_LANDSCAPE);
+
+       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                  VP_NORMAL_SIGNAL_MAIN_SCREEN_HIDE, "*");
+       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                  VP_NORMAL_SIGNAL_MAIN_ROTATE_HIDE, "*");
+       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                  VP_NORMAL_SIGNAL_MAIN_VOLUME_HIDE, "*");
+       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                  VP_NORMAL_SIGNAL_MAIN_PLAYING_SPEED_HIDE, "*");
+
+       VP_EVAS_DEL(pNormalView->pScreenShot);
+       pNormalView->pScreenShot = NULL;
+
+       elm_object_item_signal_emit(pNormalView->pNaviItem,
+                                                               VP_NORMAL_SIGNAL_NAVIFRAME_TITLE_SHOW,
+                                                               "elm");
+       _vp_play_normal_view_show_rotate(pNormalView);
+       _vp_play_normal_view_show_volume(pNormalView);
+
+       bool bLandscape =
+               vp_play_util_get_landscape_check(pNormalView->nRotate);
+       if (bLandscape) {
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_LANDSCAPE_SHOW, "*");
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_NO_EFFECT_LANDSCAPE_SHOW,
+                                                          "*");
+               elm_object_signal_emit(pNormalView->pControlLayout,
+                                                          VP_NORMAL_SIGNAL_CONTROL_LANDSCAPE_MODE,
+                                                          "*");
+               elm_object_signal_emit(pNormalView->pFunctionLayout,
+                                                          VP_NORMAL_SIGNAL_FUNCTION_LANDSCAPE_MODE,
+                                                          "*");
+               vp_play_progressbar_set_landscape_mode(pNormalView->pProgressbar,
+                                                                                          TRUE);
+       } else {
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_PORTRAIT_SHOW, "*");
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_NO_EFFECT_PORTRAIT_SHOW,
+                                                          "*");
+               elm_object_signal_emit(pNormalView->pControlLayout,
+                                                          VP_NORMAL_SIGNAL_CONTROL_PORTRAIT_MODE,
+                                                          "*");
+               elm_object_signal_emit(pNormalView->pFunctionLayout,
+                                                          VP_NORMAL_SIGNAL_FUNCTION_PORTRAIT_MODE,
+                                                          "*");
+               vp_play_progressbar_set_landscape_mode(pNormalView->pProgressbar,
+                                                                                          FALSE);
+       }
+
+       bool bIsRealize = FALSE;
+       if (pNormalView->pBookmarkHandle) {
+               vp_play_bookmark_is_realize(pNormalView->pBookmarkHandle,
+                                                                       &bIsRealize);
+               if (bIsRealize) {
+#ifndef SUBTITLE_K_FEATURE
+                       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_BOOKMARK_ON, "*");
+#endif
+               }
+       }
+
+       _vp_play_normal_view_set_play_state(pNormalView);
+       _vp_play_normal_view_on_capture_mode(pNormalView);
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+       pNormalView->bShowLayout = TRUE;
+       vp_play_normal_view_set_main_layout_focus_out((void *) pPlayView->
+                                                                                                 pNormalView);
+       _vp_play_normal_view_set_button_focus_sequence(pNormalView);
+       _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param bNoEffect
+ */
+static void _vp_play_normal_view_hide_layout(NormalView * pNormalView,
+                                                                                        bool bNoEffect)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       if (!pNormalView->pNaviItem) {
+               VideoLogError("pNaviItem is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+
+       if (pNormalView->pBookmarkHandle) {
+               bool bIsRealize = FALSE;
+               bool bEditMode = FALSE;
+               bool bPressed = FALSE;
+               if (!vp_play_bookmark_is_realize
+                       (pNormalView->pBookmarkHandle, &bIsRealize)) {
+                       VideoLogWarning("vp_play_bookmark_is_realize fail");
+               }
+               if (bIsRealize) {
+                       if (!vp_play_bookmark_get_edit_mode
+                               (pNormalView->pBookmarkHandle, &bEditMode)) {
+                               VideoLogWarning("vp_play_bookmark_get_edit_mode fail");
+                       }
+                       if (bEditMode) {
+                               _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+                               return;
+                       }
+
+                       if (!vp_play_bookmark_get_pressed_status
+                               (pNormalView->pBookmarkHandle, &bPressed)) {
+                               VideoLogWarning
+                                       ("vp_play_bookmark_get_pressed_status fail");
+                       }
+
+                       if (bPressed) {
+                               _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+                               return;
+                       }
+               }
+       }
+
+       VP_EVAS_TIMER_DEL(pNormalView->pScreenShotTimer);
+
+       elm_object_part_content_unset(pNormalView->pMainLayout,
+                                                                 VP_PLAY_SWALLOW_NORMAL_SCREENSHOT_PORTRAIT);
+       elm_object_part_content_unset(pNormalView->pMainLayout,
+                                                                 VP_PLAY_SWALLOW_NORMAL_SCREENSHOT_LANDSCAPE);
+
+       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                  VP_NORMAL_SIGNAL_MAIN_SCREEN_HIDE, "*");
+       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                  VP_NORMAL_SIGNAL_MAIN_ROTATE_HIDE, "*");
+       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                  VP_NORMAL_SIGNAL_MAIN_VOLUME_HIDE, "*");
+       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                  VP_NORMAL_SIGNAL_MAIN_PLAYING_SPEED_HIDE, "*");
+
+       VP_EVAS_DEL(pNormalView->pScreenShot);
+       pNormalView->pScreenShot = NULL;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pProgressTimer);
+
+       if (bNoEffect) {
+               elm_object_item_signal_emit(pNormalView->pNaviItem,
+                                                                       VP_NORMAL_SIGNAL_NAVIFRAME_TITLE_NO_EFFECT_HIDE,
+                                                                       "elm");
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_NO_EFFECT_HIDE, "*");
+       } else {
+               elm_object_item_signal_emit(pNormalView->pNaviItem,
+                                                                       VP_NORMAL_SIGNAL_NAVIFRAME_TITLE_HIDE,
+                                                                       "elm");
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_HIDE, "*");
+       }
+       vp_play_normal_view_set_main_layout_focus_out((void *) pPlayView->
+                                                                                                 pNormalView);
+       pNormalView->bShowLayout = FALSE;
+}
+
+/**
+ *
+ * @param pObj
+ * @param nCurX
+ * @return
+ */
+static double _vp_play_normal_view_get_mouse_pos_ratio(Evas_Object * pObj,
+                                                                                                          int nCurX)
+{
+       if (!pObj) {
+               VideoLogError("pObj is NULL");
+               return 0.0;
+       }
+
+       int nWidth = 0;
+       int nCurrent = 0;
+       double dRatio = 0.0;
+
+       evas_object_geometry_get(pObj, NULL, NULL, &nWidth, NULL);
+
+       nCurrent = nCurX - (VP_NORMAL_PROGRESS_BAR_START_TERM);
+       nWidth = nWidth - (VP_NORMAL_PROGRESS_BAR_WIDTH_TERM);
+
+       if (nCurrent < 0) {
+               nCurrent = 0;
+       } else if (nCurrent > nWidth) {
+               nCurrent = nWidth;
+       }
+
+       dRatio = (double) nCurrent / nWidth;
+
+       return dRatio;
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_create_progress_timer(NormalView *
+                                                                                                          pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       VP_EVAS_TIMER_DEL(pNormalView->pProgressTimer);
+
+       pNormalView->pProgressTimer =
+               ecore_timer_add(VP_NORMAL_PROGRESS_TIMER_INTERVAL,
+                                               __vp_normal_progressbar_timer_cb,
+                                               (void *) pNormalView);
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_create_layout_hide_timer(NormalView *
+                                                                                                                 pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+       pNormalView->pHideTimer =
+               ecore_timer_add(VP_NORMAL_HIDE_LAYOUT_TIMER_INTERVAL,
+                                               __vp_normal_hide_layout_timer_cb,
+                                               (void *) pNormalView);
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_show_rotate(NormalView * pNormalView)
+{
+       bool bLockState = FALSE;
+
+       if (!vp_play_config_get_rotate_lock_status(&bLockState)) {
+               VideoLogError("vp_play_config_get_rotate_lock_status is fail");
+               return;
+       }
+
+       if (!bLockState) {
+               if (pNormalView->pMainLayout) {
+                       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_ROTATE_SHOW, "*");
+               }
+       }
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_show_volume(NormalView * pNormalView)
+{
+       bool bLockState = FALSE;
+
+       if (!bLockState) {
+               if (pNormalView->pMainLayout) {
+                       if ((pNormalView->fPlaySpeed - 0.05) > 1.000
+                               || (pNormalView->fPlaySpeed + 0.05) < 1.000) {
+                               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                          VP_NORMAL_SIGNAL_MAIN_PLAYING_SPEED_SHOW,
+                                                                          "*");
+                               elm_object_signal_callback_add(pNormalView->pMainLayout,
+                                                                                          "elm,action,click", "",
+                                                                                          _vp_play_normal_view_on_play_speed_popup_cb,
+                                                                                          pNormalView);
+                               _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+                       } else {
+                               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                          VP_NORMAL_SIGNAL_MAIN_PLAYING_SPEED_HIDE,
+                                                                          "*");
+                       }
+                       char szTxt[5] = { 0, };
+                       snprintf(szTxt, 5, "%1.1fX", (float) pNormalView->fPlaySpeed);
+                       elm_object_part_text_set(pNormalView->pMainLayout,
+                                                                        VP_PLAY_PART_NORMAL_PLAYING_SPEED_TXT,
+                                                                        szTxt);
+               }
+               bool bLandscape =
+                       vp_play_util_get_landscape_check(pNormalView->nRotate);
+               if (bLandscape) {
+                       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_VOLUME_LANDSCAPE_SHOW,
+                                                                  "*");
+               } else {
+                       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_VOLUME_PORTRAIT_SHOW,
+                                                                  "*");
+               }
+       }
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_set_rotate_lock_state(NormalView *
+                                                                                                          pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       bool bLockState = FALSE;
+
+       if (!vp_play_config_get_rotate_lock_status(&bLockState)) {
+               VideoLogError("vp_play_config_get_rotate_lock_status is fail");
+               return;
+       }
+
+       if (pNormalView->pMainLayout) {
+               elm_object_part_content_unset(pNormalView->pMainLayout,
+                                                                         VP_PLAY_SWALLOW_NORMAL_ROTATE);
+       }
+
+       VP_EVAS_DEL(pNormalView->pRotateBtn);
+       pNormalView->pRotateBtn = NULL;
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_RESROUCE_EDJ_PATH);
+       free(path);
+       Evas_Object *pParent = NULL;
+       if (!pNormalView->pSoundPathBtn) {
+               pParent = pNormalView->pMainLayout;
+
+       } else if (pNormalView->pFunctionLayout) {
+
+               pParent = pNormalView->pFunctionLayout;
+
+       } else {
+
+               pParent = pNormalView->pMainLayout;
+       }
+
+       if (!bLockState) {
+               pNormalView->pRotateBtn =
+                       vp_button_create(pParent, "custom/flat_46_46/default",
+                                                        VP_PLAY_STRING_COM_ROTATE,
+                                                        (Evas_Smart_Cb)
+                                                        __vp_normal_control_btn_clicked_cb,
+                                                        (Evas_Smart_Cb)
+                                                        __vp_normal_control_btn_press_cb,
+                                                        (Evas_Smart_Cb)
+                                                        __vp_normal_control_btn_unpress_cb,
+                                                        (void *) pNormalView);
+
+               Evas_Object *pIcon = NULL;
+               pIcon =
+                       vp_button_create_icon(pNormalView->pRotateBtn, edj_path,
+                                                                 VP_PLAY_NORMAL_RES_ROTATE);
+               elm_object_part_content_set(pNormalView->pRotateBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+               pIcon =
+                       vp_button_create_icon(pNormalView->pRotateBtn, edj_path,
+                                                                 VP_PLAY_NORMAL_RES_ROTATE_PRESS);
+               elm_object_part_content_set(pNormalView->pRotateBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+                                                                       pIcon);
+
+               pIcon =
+                       vp_button_create_icon(pNormalView->pRotateBtn, edj_path,
+                                                                 VP_PLAY_NORMAL_RES_ROTATE_DIM);
+               elm_object_part_content_set(pNormalView->pRotateBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+                                                                       pIcon);
+
+               if (pNormalView->pMainLayout) {
+                       elm_object_part_content_set(pNormalView->pMainLayout,
+                                                                               VP_PLAY_SWALLOW_NORMAL_ROTATE,
+                                                                               pNormalView->pRotateBtn);
+               }
+       }
+
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_set_volume_lock_state(NormalView *
+                                                                                                          pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       bool bLockState = FALSE;
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_RESROUCE_EDJ_PATH);
+       free(path);
+       if (pNormalView->pMainLayout) {
+               elm_object_part_content_unset(pNormalView->pMainLayout,
+                                                                         VP_PLAY_SWALLOW_NORMAL_VOLUME);
+       }
+
+       VP_EVAS_DEL(pNormalView->pVolumeBtn);
+       pNormalView->pVolumeBtn = NULL;
+
+
+       Evas_Object *pParent = NULL;
+       if (pNormalView->pSoundPathBtn == NULL) {
+               pParent = pNormalView->pMainLayout;
+
+       } else if (pNormalView->pFunctionLayout) {
+
+               pParent = pNormalView->pFunctionLayout;
+
+       } else {
+
+               pParent = pNormalView->pMainLayout;
+       }
+
+       if (!bLockState) {
+               pNormalView->pVolumeBtn =
+                       vp_button_create(pParent, "custom/flat_46_46/default",
+                                                        VP_PLAY_STRING_COM_VOLUME,
+                                                        (Evas_Smart_Cb)
+                                                        __vp_normal_function_btn_clicked_cb,
+                                                        (Evas_Smart_Cb)
+                                                        __vp_normal_control_btn_press_cb,
+                                                        (Evas_Smart_Cb)
+                                                        __vp_normal_control_btn_unpress_cb,
+                                                        (void *) pNormalView);
+               if (!pNormalView->pVolumeBtn) {
+                       VideoLogError("elm_button_add is fail");
+                       return;
+               }
+               Evas_Object *pIcon = NULL;
+               int nVolume = 0;
+               vp_sound_get_volume(&nVolume);
+
+               VideoLogError("nVolume = %d:", nVolume);
+
+               if (nVolume == 0) {
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+                                                                         VP_PLAY_NORMAL_RES_MUTE);
+                       elm_object_part_content_set(pNormalView->pVolumeBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_ICON,
+                                                                               pIcon);
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+                                                                         VP_PLAY_NORMAL_RES_MUTE_PRESS);
+                       elm_object_part_content_set(pNormalView->pVolumeBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+                                                                               pIcon);
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+                                                                         VP_PLAY_NORMAL_RES_MUTE_DIM);
+                       elm_object_part_content_set(pNormalView->pVolumeBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+                                                                               pIcon);
+               } else {
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+                                                                         VP_PLAY_NORMAL_RES_VOLUME);
+                       elm_object_part_content_set(pNormalView->pVolumeBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_ICON,
+                                                                               pIcon);
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+                                                                         VP_PLAY_NORMAL_RES_VOLUME_PRESS);
+                       elm_object_part_content_set(pNormalView->pVolumeBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+                                                                               pIcon);
+
+                       pIcon =
+                               vp_button_create_icon(pNormalView->pVolumeBtn, edj_path,
+                                                                         VP_PLAY_NORMAL_RES_VOLUME_DIM);
+                       elm_object_part_content_set(pNormalView->pVolumeBtn,
+                                                                               VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+                                                                               pIcon);
+               }
+
+               if (pNormalView->pMainLayout) {
+                       elm_object_part_content_set(pNormalView->pMainLayout,
+                                                                               VP_PLAY_SWALLOW_NORMAL_VOLUME,
+                                                                               pNormalView->pVolumeBtn);
+               }
+       }
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_set_sound_path_state(NormalView *
+                                                                                                         pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+       VideoLogInfo("set_sound_path");
+
+       bool bSoundPath = FALSE;
+       bool bEarjack = FALSE;
+
+       vp_sound_path_destroy(pNormalView->pSoundPathHandle);
+       pNormalView->pSoundPathHandle = NULL;
+
+       vp_sound_is_sound_path_enable(&bSoundPath);
+
+       bEarjack =
+               vp_sound_device_is_enable(VP_SOUND_DEVICE_EARJACK,
+                                                                 pNormalView->pPlayView);
+       vp_sound_set_earjack_connection_changed_cb(pNormalView->pPlayView);
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_RESROUCE_EDJ_PATH);
+       free(path);
+       if (pNormalView->bEarjackConnect != bEarjack) {
+               if (bEarjack == FALSE) {
+                       pNormalView->bManualPause = TRUE;
+               }
+       }
+
+       pNormalView->bEarjackConnect = bEarjack;
+
+       if (!vp_play_preference_get_sound_alive_status
+               (&pNormalView->nSoundAlive)) {
+               VideoLogError("vp_play_preference_get_sound_alive_status failed");
+       }
+       if (bEarjack == FALSE && pNormalView->nSoundAlive == VIDEO_SA_7_1_CH) {
+               pNormalView->nSoundAlive = VIDEO_SA_NORMAL;
+               if (!vp_play_preference_set_sound_alive_status
+                       (pNormalView->nSoundAlive)) {
+                       VideoLogError
+                               ("vp_play_preference_set_sound_alive_status failed");
+               }
+               if (!vp_mm_player_set_sound_filter
+                       (pNormalView->pPlayerHandle, VP_MM_PLAYER_FILTER_NONE)) {
+                       VideoLogWarning("vp_mm_player_set_sound_filter is fail");
+               }
+       }
+
+       elm_object_item_part_content_unset(pNormalView->pNaviItem,
+                                                                          "title_right_btn");
+       VideoLogInfo("rotate_lock_state_sound:%d", bSoundPath);
+
+       VP_EVAS_DEL(pNormalView->pSoundPathBtn);
+       pNormalView->pSoundPathBtn = NULL;
+
+       if (bSoundPath) {
+               VP_EVAS_DEL(pNormalView->pRotateBtn);
+               pNormalView->pRotateBtn = NULL;
+
+               video_sound_device_type_t nType = VP_SOUND_DEVICE_NONE;
+               vp_sound_get_active_device(&nType);
+               char *szIconPath = VP_PLAY_NORMAL_RES_SPEAKER;
+               switch (nType) {
+               case VP_SOUND_DEVICE_SPEAKER:
+                       szIconPath = VP_PLAY_NORMAL_RES_SPEAKER;
+                       break;
+
+               case VP_SOUND_DEVICE_EARJACK:
+                       szIconPath = VP_PLAY_NORMAL_RES_EARPHONE;
+                       break;
+
+               case VP_SOUND_DEVICE_BLUETOOTH:
+                       szIconPath = VP_PLAY_NORMAL_RES_BLUETOOTH_HEADSET;
+                       break;
+
+               case VP_SOUND_DEVICE_HDMI:
+                       szIconPath = VP_PLAY_NORMAL_RES_ICON_HDMI;
+                       break;
+
+               case VP_SOUND_DEVICE_MIRRORING:
+                       szIconPath = VP_PLAY_NORMAL_RES_MIRRORING;
+                       break;
+
+               case VP_SOUND_DEVICE_USB_AUDIO:
+                       szIconPath = VP_PLAY_NORMAL_RES_USB_AUDIOE;
+                       break;
+
+               default:
+                       szIconPath = VP_PLAY_NORMAL_RES_SPEAKER;
+                       break;
+               }
+
+               pNormalView->pSoundPathBtn =
+                       vp_navirame_button_create(pNormalView->pNaviFrame,
+                                                                         "custom/navi_button/default",
+                                                                         edj_path, (const char *) szIconPath,
+                                                                         (Evas_Smart_Cb)
+                                                                         __vp_normal_control_btn_clicked_cb,
+                                                                         (void *) pNormalView);
+
+               elm_object_item_part_content_set(pNormalView->pNaviItem,
+                                                                                "title_right_btn",
+                                                                                pNormalView->pSoundPathBtn);
+       }
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_set_play_state(NormalView * pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+       if (!pPlayView->pWin) {
+               VideoLogError("pPlayView->pWin is NULL");
+               return;
+       }
+
+       Evas_Object *pParent = NULL;
+       vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+
+       pParent = pNormalView->pControlLayout;
+
+       if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+               VideoLogWarning("vp_mm_player_get_state is fail");
+       }
+
+       if (pPlayView->bAVRCP && nState != VP_MM_PLAYER_STATE_NONE
+               && nState != VP_MM_PLAYER_STATE_IDLE) {
+               vp_avrcp_noti_player_state(nState);
+       }
+
+       elm_object_part_content_unset(pParent, VP_PLAY_SWALLOW_NORMAL_PLAY);
+       evas_object_hide(pNormalView->pPauseBtn);
+       evas_object_hide(pNormalView->pResumeBtn);
+
+       if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+               VideoLogWarning("VP_MM_PLAYER_STATE_PLAYING");
+               evas_object_show(pNormalView->pPauseBtn);
+               elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_PLAY,
+                                                                       pNormalView->pPauseBtn);
+               evas_object_hide(pNormalView->pResumeBtn);
+
+               if (!pNormalView->pProgressTimer) {
+                       _vp_play_normal_view_create_progress_timer(pNormalView);
+               }
+               if (!pNormalView->bAudioOnly) {
+                       vp_play_util_set_lock_power_key();
+               }
+               vp_play_progressbar_set_opacity(pNormalView->pProgressbar, FALSE);
+       } else {
+               VideoLogWarning("Play_Status[%d]", nState);
+               evas_object_show(pNormalView->pResumeBtn);
+               elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_PLAY,
+                                                                       pNormalView->pResumeBtn);
+               evas_object_hide(pNormalView->pPauseBtn);
+               VP_EVAS_TIMER_DEL(pNormalView->pProgressTimer);
+
+               if (nState == VP_MM_PLAYER_STATE_PAUSED) {
+                       vp_device_set_screen_off(FALSE);
+               }
+               vp_play_util_set_unlock_power_key();
+       }
+
+       VideoLogWarning("STATUS[%d]", nState);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_normal_view_create_main_layout(Evas_Object *
+                                                                                                                       pParent)
+{
+       if (!pParent) {
+               VideoLogError("Parent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       Eina_Bool bRet = EINA_FALSE;
+
+       pObj = elm_layout_add(pParent);
+       if (!pObj) {
+               VideoLogError("elm_layout_add object is NULL");
+               return NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_NORMAL_MAIN_EDJ);
+       free(path);
+       bRet =
+               elm_layout_file_set(pObj, edj_path, VP_PLAY_EDJ_GROUP_NORMAL_MAIN);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail : %s [%s]", edj_path,
+                                         VP_PLAY_EDJ_GROUP_NORMAL_MAIN);
+       }
+
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_create_gesture_layout(NormalView *
+                                                                                                          pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("Parent is NULL");
+               return FALSE;
+       }
+
+       Evas_Object *pParent = NULL;
+       PlayView *pPlayView = pNormalView->pPlayView;
+       Eina_Bool bRet = EINA_FALSE;
+
+       pParent = pPlayView->pMainLayout;
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje", VP_PLAY_GESTURE_EDJ);
+       free(path);
+       pNormalView->pMainEventRect = elm_layout_add(pParent);
+       bRet =
+               elm_layout_file_set(pNormalView->pMainEventRect, edj_path,
+                                                       VP_PLAY_EDJ_GROUP_GESTURE);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail : %s [%s]", edj_path,
+                                         VP_PLAY_EDJ_GROUP_GESTURE);
+               return FALSE;
+       }
+       elm_object_part_content_set(pParent, "elm.swallow.event",
+                                                               pNormalView->pMainEventRect);
+
+       pNormalView->pGestureRect =
+               elm_gesture_layer_add(pNormalView->pMainEventRect);
+       if (!pNormalView->pGestureRect) {
+               VideoLogError("elm_gesture_layer_add is NULL");
+               return FALSE;
+       }
+       elm_gesture_layer_hold_events_set(pNormalView->pGestureRect,
+                                                                         EINA_FALSE);
+
+       elm_gesture_layer_cb_set(pNormalView->pGestureRect, ELM_GESTURE_N_TAPS,
+                                                        ELM_GESTURE_STATE_START,
+                                                        __vp_normal_gesture_n_tab_start_cb,
+                                                        (void *) pNormalView);
+       elm_gesture_layer_cb_set(pNormalView->pGestureRect, ELM_GESTURE_N_TAPS,
+                                                        ELM_GESTURE_STATE_END,
+                                                        __vp_normal_gesture_n_tab_end_cb,
+                                                        (void *) pNormalView);
+       elm_gesture_layer_cb_set(pNormalView->pGestureRect, ELM_GESTURE_N_TAPS,
+                                                        ELM_GESTURE_STATE_ABORT,
+                                                        __vp_normal_gesture_n_tab_abort_cb,
+                                                        (void *) pNormalView);
+
+       elm_gesture_layer_cb_set(pNormalView->pGestureRect,
+                                                        ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_START,
+                                                        __vp_normal_gesture_momentum_start_cb,
+                                                        (void *) pNormalView);
+       elm_gesture_layer_cb_set(pNormalView->pGestureRect,
+                                                        ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_END,
+                                                        __vp_normal_gesture_momentum_end_cb,
+                                                        (void *) pNormalView);
+       elm_gesture_layer_cb_set(pNormalView->pGestureRect,
+                                                        ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_ABORT,
+                                                        __vp_normal_gesture_momentum_end_cb,
+                                                        (void *) pNormalView);
+       elm_gesture_layer_cb_set(pNormalView->pGestureRect,
+                                                        ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_MOVE,
+                                                        __vp_normal_gesture_momentum_move_cb,
+                                                        (void *) pNormalView);
+
+#ifdef ENABLE_GESTURE_ZOOM_FEATURE
+       elm_gesture_layer_cb_set(pNormalView->pGestureRect, ELM_GESTURE_ZOOM,
+                                                        ELM_GESTURE_STATE_START,
+                                                        __vp_normal_gesture_zoom_start_cb,
+                                                        (void *) pNormalView);
+       elm_gesture_layer_cb_set(pNormalView->pGestureRect, ELM_GESTURE_ZOOM,
+                                                        ELM_GESTURE_STATE_END,
+                                                        __vp_normal_gesture_zoom_end_cb,
+                                                        (void *) pNormalView);
+       elm_gesture_layer_cb_set(pNormalView->pGestureRect, ELM_GESTURE_ZOOM,
+                                                        ELM_GESTURE_STATE_ABORT,
+                                                        __vp_normal_gesture_zoom_abort_cb,
+                                                        (void *) pNormalView);
+       elm_gesture_layer_cb_set(pNormalView->pGestureRect, ELM_GESTURE_ZOOM,
+                                                        ELM_GESTURE_STATE_MOVE,
+                                                        __vp_normal_gesture_zoom_move_cb,
+                                                        (void *) pNormalView);
+#endif
+
+       elm_gesture_layer_cb_set(pNormalView->pGestureRect,
+                                                        ELM_GESTURE_N_DOUBLE_TAPS,
+                                                        ELM_GESTURE_STATE_START,
+                                                        __vp_normal_gesture_double_click_start_cb,
+                                                        (void *) pNormalView);
+       elm_gesture_layer_cb_set(pNormalView->pGestureRect,
+                                                        ELM_GESTURE_N_DOUBLE_TAPS,
+                                                        ELM_GESTURE_STATE_END,
+                                                        __vp_normal_gesture_double_click_end_cb,
+                                                        (void *) pNormalView);
+       elm_gesture_layer_cb_set(pNormalView->pGestureRect,
+                                                        ELM_GESTURE_N_DOUBLE_TAPS,
+                                                        ELM_GESTURE_STATE_ABORT,
+                                                        __vp_normal_gesture_double_click_abort_cb,
+                                                        (void *) pNormalView);
+
+#ifdef FLICK_JUMP
+       elm_gesture_layer_cb_set(pNormalView->pGestureRect,
+                                                        ELM_GESTURE_N_FLICKS, ELM_GESTURE_STATE_START,
+                                                        __vp_normal_gesture_flick_start_cb,
+                                                        (void *) pNormalView);
+       elm_gesture_layer_cb_set(pNormalView->pGestureRect,
+                                                        ELM_GESTURE_N_FLICKS, ELM_GESTURE_STATE_END,
+                                                        __vp_normal_gesture_flick_end_cb,
+                                                        (void *) pNormalView);
+       elm_gesture_layer_cb_set(pNormalView->pGestureRect,
+                                                        ELM_GESTURE_N_FLICKS, ELM_GESTURE_STATE_ABORT,
+                                                        __vp_normal_gesture_flick_abort_cb,
+                                                        (void *) pNormalView);
+#endif
+
+       elm_gesture_layer_line_angular_tolerance_set(pNormalView->pGestureRect, 60);    // 60 degree ??
+
+       elm_gesture_layer_attach(pNormalView->pGestureRect,
+                                                        pNormalView->pMainEventRect);
+
+       evas_object_show(pNormalView->pMainEventRect);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object
+       *_vp_play_normal_view_create_top_control_layout(Evas_Object * pParent)
+{
+       if (!pParent) {
+               VideoLogError("Parent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       Eina_Bool bRet = EINA_FALSE;
+
+       pObj = elm_layout_add(pParent);
+       if (!pObj) {
+               VideoLogError("elm_layout_add object is NULL");
+               return NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_NORMAL_TOP_CONTROL_EDJ);
+       free(path);
+       bRet =
+               elm_layout_file_set(pObj, edj_path,
+                                                       VP_PLAY_EDJ_GROUP_NORMAL_TOP_CONTROL);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail");
+       }
+
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_normal_view_create_control_layout(Evas_Object
+                                                                                                                          *pParent)
+{
+       if (!pParent) {
+               VideoLogError("Parent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       Eina_Bool bRet = EINA_FALSE;
+
+       pObj = elm_layout_add(pParent);
+       if (!pObj) {
+               VideoLogError("elm_layout_add object is NULL");
+               return NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_NORMAL_CONTROL_EDJ);
+       free(path);
+       bRet =
+               elm_layout_file_set(pObj, edj_path,
+                                                       VP_PLAY_EDJ_GROUP_NORMAL_CONTROL);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail");
+       }
+
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_normal_view_create_function_layout(Evas_Object
+                                                                                                                               *pParent)
+{
+       if (!pParent) {
+               VideoLogError("Parent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       Eina_Bool bRet = EINA_FALSE;
+
+       pObj = elm_layout_add(pParent);
+       if (!pObj) {
+               VideoLogError("elm_layout_add object is NULL");
+               return NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_NORMAL_FUNCTION_EDJ_PATH);
+       free(path);
+       bRet =
+               elm_layout_file_set(pObj, edj_path,
+                                                       VP_PLAY_EDJ_GROUP_NORMAL_FUNCTION);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail");
+       }
+
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void _vp_normal_view_top_layout_del_cb(void *data, Evas * e,
+                                                                                         Evas_Object * obj,
+                                                                                         void *event_info)
+{
+       if (!data) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) data;
+       pNormalView->pTopControlLayout = NULL;
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_create_top_control(NormalView *
+                                                                                                       pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+
+       VideoLogInfo("create top control");
+
+       pNormalView->pTopControlLayout =
+               _vp_play_normal_view_create_top_control_layout(pNormalView->
+                                                                                                          pMainLayout);
+       if (!pNormalView->pTopControlLayout) {
+               VideoLogError("pNormalView->pTopControlLayout is NULL");
+               return FALSE;
+       }
+       evas_object_event_callback_add(pNormalView->pTopControlLayout,
+                                                                  EVAS_CALLBACK_DEL,
+                                                                  _vp_normal_view_top_layout_del_cb,
+                                                                  (void *) pNormalView);
+
+       elm_object_part_content_set(pNormalView->pMainLayout,
+                                                               VP_PLAY_SWALLOW_NORMAL_TOP_CONTROL,
+                                                               pNormalView->pTopControlLayout);
+
+       _vp_play_normal_view_on_capture_mode(pNormalView);
+       _vp_play_normal_view_set_sound_path_state(pNormalView);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void _vp_play_normal_view_control_layout_del_cb(void *data,
+                                                                                                          Evas * e,
+                                                                                                          Evas_Object * obj,
+                                                                                                          void *event_info)
+{
+       if (!data) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) data;
+       if (pNormalView->pControlLayout) {
+               evas_object_event_callback_del(pNormalView->pControlLayout,
+                                                                          EVAS_CALLBACK_DEL,
+                                                                          _vp_play_normal_view_control_layout_del_cb);
+               pNormalView->pControlLayout = NULL;
+               pNormalView->pResumeBtn = NULL;
+               pNormalView->pPauseBtn = NULL;
+               pNormalView->pPlayFocusBtn = NULL;
+               pNormalView->pPrevBtn = NULL;
+               pNormalView->pNextBtn = NULL;
+               pNormalView->pVolumeBtn = NULL;
+               pNormalView->pScreenSizeBtn = NULL;
+       }
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_create_main_control(NormalView *
+                                                                                                        pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+
+       Evas_Object *pParent = NULL;
+
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_RESROUCE_EDJ_PATH);
+       free(path);
+       pNormalView->pControlLayout =
+               _vp_play_normal_view_create_control_layout(pNormalView->
+                                                                                                  pMainLayout);
+       if (!pNormalView->pControlLayout) {
+               VideoLogError("pNormalView->pControlLayout is NULL");
+               return FALSE;
+       }
+
+       elm_object_focus_custom_chain_append(pNormalView->pMainLayout,
+                                                                                pNormalView->pControlLayout,
+                                                                                NULL);
+
+       elm_object_part_content_set(pNormalView->pMainLayout,
+                                                               VP_PLAY_SWALLOW_NORMAL_CONTROL,
+                                                               pNormalView->pControlLayout);
+       evas_object_event_callback_add(pNormalView->pControlLayout,
+                                                                  EVAS_CALLBACK_DEL,
+                                                                  _vp_play_normal_view_control_layout_del_cb,
+                                                                  (void *) pNormalView);
+
+       pParent = pNormalView->pControlLayout;
+
+       pNormalView->pResumeBtn =
+               vp_button_create(pParent, "custom/circle_1/default",
+                                                VP_PLAY_STRING_COM_PLAY,
+                                                (Evas_Smart_Cb)
+                                                __vp_normal_control_btn_clicked_cb,
+                                                (Evas_Smart_Cb) __vp_normal_control_btn_press_cb,
+                                                (Evas_Smart_Cb)
+                                                __vp_normal_control_btn_unpress_cb,
+                                                (void *) pNormalView);
+       if (!pNormalView->pResumeBtn) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+
+       pNormalView->pPauseBtn =
+               vp_button_create(pParent, "custom/circle_1_focus/default",
+                                                VP_PLAY_STRING_COM_PAUSE,
+                                                (Evas_Smart_Cb)
+                                                __vp_normal_control_btn_clicked_cb,
+                                                (Evas_Smart_Cb) __vp_normal_control_btn_press_cb,
+                                                (Evas_Smart_Cb)
+                                                __vp_normal_control_btn_unpress_cb,
+                                                (void *) pNormalView);
+       if (!pNormalView->pPauseBtn) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+
+       pNormalView->pPlayFocusBtn = vp_button_create(pParent, "focus", NULL,
+                                                                                                 (Evas_Smart_Cb)
+                                                                                                 __vp_normal_control_btn_clicked_cb,
+                                                                                                 (Evas_Smart_Cb)
+                                                                                                 __vp_normal_control_btn_press_cb,
+                                                                                                 (Evas_Smart_Cb)
+                                                                                                 __vp_normal_control_btn_unpress_cb,
+                                                                                                 (void *) pNormalView);
+       if (!pNormalView->pPlayFocusBtn) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+
+       pNormalView->pPrevBtn =
+               vp_button_create(pParent, "custom/circle_2/default",
+                                                VP_PLAY_STRING_COM_PREVIOUS,
+                                                (Evas_Smart_Cb)
+                                                __vp_normal_control_btn_clicked_cb,
+                                                (Evas_Smart_Cb) __vp_normal_control_btn_press_cb,
+                                                (Evas_Smart_Cb)
+                                                __vp_normal_control_btn_unpress_cb,
+                                                (void *) pNormalView);
+       if (!pNormalView->pPrevBtn) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+
+       pNormalView->pNextBtn =
+               vp_button_create(pParent, "custom/circle_3/default",
+                                                VP_PLAY_STRING_COM_NEXT,
+                                                (Evas_Smart_Cb)
+                                                __vp_normal_control_btn_clicked_cb,
+                                                (Evas_Smart_Cb) __vp_normal_control_btn_press_cb,
+                                                (Evas_Smart_Cb)
+                                                __vp_normal_control_btn_unpress_cb,
+                                                (void *) pNormalView);
+       if (!pNormalView->pNextBtn) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+
+       pNormalView->pScreenSizeBtn =
+               vp_button_create(pParent, "custom/flat_56_56/default",
+                                                VP_PLAY_STRING_COM_FULL,
+                                                (Evas_Smart_Cb)
+                                                __vp_normal_function_btn_clicked_cb,
+                                                (Evas_Smart_Cb) __vp_normal_control_btn_press_cb,
+                                                (Evas_Smart_Cb)
+                                                __vp_normal_control_btn_unpress_cb,
+                                                (void *) pNormalView);
+       evas_object_color_set(pNormalView->pScreenSizeBtn, 0, 166, 191, 255);
+       if (!pNormalView->pScreenSizeBtn) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+
+
+       pNormalView->pLockBtn =
+               vp_button_create(pNormalView->pMainLayout,
+                                                "custom/flat_46_46/default", NULL,
+                                                (Evas_Smart_Cb)
+                                                __vp_normal_function_btn_clicked_cb,
+                                                (Evas_Smart_Cb) __vp_normal_control_btn_press_cb,
+                                                (Evas_Smart_Cb)
+                                                __vp_normal_control_btn_unpress_cb,
+                                                (void *) pNormalView);
+       if (!pNormalView->pLockBtn) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+
+       Evas_Object *pIcon = NULL;
+
+       pIcon =
+               vp_button_create_icon(pNormalView->pResumeBtn, edj_path,
+                                                         VP_PLAY_NORMAL_RES_RESUME);
+       elm_object_part_content_set(pNormalView->pResumeBtn,
+                                                               VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       pIcon =
+               vp_button_create_icon(pNormalView->pPauseBtn, edj_path,
+                                                         VP_PLAY_NORMAL_RES_PAUSE);
+       elm_object_part_content_set(pNormalView->pPauseBtn,
+                                                               VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       if (pNormalView->nDisplayMode == VP_MM_PLAYER_DISPLAY_FULL_SCREEN) {
+               pIcon =
+                       vp_button_create_icon(pNormalView->pScreenSizeBtn, edj_path,
+                                                                 VP_PLAY_NORMAL_RES_SCREEN_2_MODE);
+               elm_object_part_content_set(pNormalView->pScreenSizeBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+               pIcon =
+                       vp_button_create_icon(pNormalView->pScreenSizeBtn, edj_path,
+                                                                 VP_PLAY_NORMAL_RES_SCREEN_2_MODE);
+               elm_object_part_content_set(pNormalView->pScreenSizeBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+                                                                       pIcon);
+
+       } else if (pNormalView->nDisplayMode ==
+                          VP_MM_PLAYER_DISPLAY_ORIGIN_SIZE) {
+               pIcon =
+                       vp_button_create_icon(pNormalView->pScreenSizeBtn, edj_path,
+                                                                 VP_PLAY_NORMAL_RES_SCREEN_1_MODE);
+               elm_object_part_content_set(pNormalView->pScreenSizeBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+               pIcon =
+                       vp_button_create_icon(pNormalView->pScreenSizeBtn, edj_path,
+                                                                 VP_PLAY_NORMAL_RES_SCREEN_1_MODE);
+               elm_object_part_content_set(pNormalView->pScreenSizeBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+                                                                       pIcon);
+       } else if (pNormalView->nDisplayMode ==
+                          VP_MM_PLAYER_DISPLAY_ORIGIN_OR_LETTER) {
+               pIcon =
+                       vp_button_create_icon(pNormalView->pScreenSizeBtn, edj_path,
+                                                                 VP_PLAY_NORMAL_RES_SCREEN_3_MODE);
+               elm_object_part_content_set(pNormalView->pScreenSizeBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       } else {
+               pIcon =
+                       vp_button_create_icon(pNormalView->pScreenSizeBtn, edj_path,
+                                                                 VP_PLAY_NORMAL_RES_SCREEN_1_MODE);
+               elm_object_part_content_set(pNormalView->pScreenSizeBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       }
+
+
+       if (pNormalView->pResumeBtn) {
+               elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_PLAY,
+                                                                       pNormalView->pResumeBtn);
+
+               elm_object_focus_custom_chain_append(pNormalView->pMainLayout,
+                                                                                        pNormalView->pResumeBtn,
+                                                                                        NULL);
+       }
+
+       if (pNormalView->pPlayFocusBtn) {
+               elm_object_part_content_set(pParent,
+                                                                       VP_PLAY_SWALLOW_NORMAL_PLAY_FOCUS,
+                                                                       pNormalView->pPlayFocusBtn);
+               elm_object_focus_custom_chain_append(pNormalView->pMainLayout,
+                                                                                        pNormalView->pPlayFocusBtn,
+                                                                                        NULL);
+       }
+
+       if (pNormalView->pPrevBtn) {
+               elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_REW,
+                                                                       pNormalView->pPrevBtn);
+               elm_object_focus_custom_chain_append(pNormalView->pMainLayout,
+                                                                                        pNormalView->pPrevBtn, NULL);
+       }
+
+       if (pNormalView->pNextBtn) {
+               elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_FF,
+                                                                       pNormalView->pNextBtn);
+               elm_object_focus_custom_chain_append(pNormalView->pMainLayout,
+                                                                                        pNormalView->pNextBtn, NULL);
+       }
+
+       if (pNormalView->pScreenSizeBtn) {
+               elm_object_part_content_set(pParent,
+                                                                       VP_PLAY_SWALLOW_NORMAL_SCREENSIZE,
+                                                                       pNormalView->pScreenSizeBtn);
+               elm_object_focus_custom_chain_append(pNormalView->pMainLayout,
+                                                                                        pNormalView->pScreenSizeBtn,
+                                                                                        NULL);
+       }
+
+       vp_play_util_focus_next_object_set(pNormalView->pVolumeBtn,
+                                                                          pNormalView->pPrevBtn,
+                                                                          ELM_FOCUS_RIGHT);
+       vp_play_util_focus_next_object_set(pNormalView->pPrevBtn,
+                                                                          pNormalView->pPlayFocusBtn,
+                                                                          ELM_FOCUS_RIGHT);
+       vp_play_util_focus_next_object_set(pNormalView->pPlayFocusBtn,
+                                                                          pNormalView->pNextBtn,
+                                                                          ELM_FOCUS_RIGHT);
+       vp_play_util_focus_next_object_set(pNormalView->pNextBtn,
+                                                                          pNormalView->pScreenSizeBtn,
+                                                                          ELM_FOCUS_RIGHT);
+
+       _vp_play_normal_view_set_rotate_lock_state(pNormalView);
+       _vp_play_normal_view_set_volume_lock_state(pNormalView);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void _vp_normal_view_function_layout_del_cb(void *data, Evas * e,
+                                                                                                  Evas_Object * obj,
+                                                                                                  void *event_info)
+{
+       if (!data) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) data;
+       pNormalView->pTopControlLayout = NULL;
+       pNormalView->pBookmarkBtn = NULL;
+       pNormalView->pMultiWinBtn = NULL;
+       pNormalView->pRepeatBtn = NULL;
+       pNormalView->pTrimBtn = NULL;
+       pNormalView->pSoundAliveBtn = NULL;
+       pNormalView->pShareBtn = NULL;
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_create_function_control(NormalView *
+                                                                                                                pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+
+       pNormalView->pFunctionLayout =
+               _vp_play_normal_view_create_function_layout(pNormalView->
+                                                                                                       pMainLayout);
+       if (!pNormalView->pFunctionLayout) {
+               VideoLogError("pNormalView->pFunctionLayout is NULL");
+               return FALSE;
+       }
+       evas_object_event_callback_add(pNormalView->pFunctionLayout,
+                                                                  EVAS_CALLBACK_DEL,
+                                                                  _vp_normal_view_function_layout_del_cb,
+                                                                  (void *) pNormalView);
+       elm_object_part_content_set(pNormalView->pControlLayout,
+                                                               VP_PLAY_SWALLOW_NORMAL_FUNCTION,
+                                                               pNormalView->pFunctionLayout);
+       elm_object_focus_custom_chain_append(pNormalView->pMainLayout,
+                                                                                pNormalView->pFunctionLayout,
+                                                                                NULL);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_create_progressbar(NormalView *
+                                                                                                       pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+
+       Evas_Object *pParent = NULL;
+
+       pParent = pNormalView->pControlLayout;
+
+       pNormalView->pProgressbar =
+               vp_play_progressbar_create(pParent, VIDEO_PROGRESSBAR_TYPE_NORMAL);
+       if (!pNormalView->pProgressbar) {
+               VideoLogError("pProgressbar create fail");
+               return FALSE;
+       }
+
+       pNormalView->pProgressEvent =
+               vp_play_progressbar_get_object(pNormalView->pProgressbar);
+       if (!pNormalView->pProgressEvent) {
+               VideoLogError("vp_play_progressbar_get_object fail");
+               return FALSE;
+       }
+
+       elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_PROGRESS,
+                                                               pNormalView->pProgressEvent);
+
+       evas_object_event_callback_add(pNormalView->pProgressEvent,
+                                                                  EVAS_CALLBACK_MOUSE_DOWN,
+                                                                  __vp_normal_progress_mouse_down_cb,
+                                                                  (void *) pNormalView);
+
+       evas_object_event_callback_add(pNormalView->pProgressEvent,
+                                                                  EVAS_CALLBACK_MOUSE_UP,
+                                                                  __vp_normal_progress_mouse_up_cb,
+                                                                  (void *) pNormalView);
+
+       evas_object_event_callback_add(pNormalView->pProgressEvent,
+                                                                  EVAS_CALLBACK_MOUSE_MOVE,
+                                                                  __vp_normal_progress_mouse_move_cb,
+                                                                  (void *) pNormalView);
+
+       evas_object_event_callback_add(pNormalView->pProgressEvent,
+                                                                  EVAS_CALLBACK_DEL,
+                                                                  __vp_normal_progress_del_cb,
+                                                                  (void *) pNormalView);
+
+       Evas_Object *pProgressFocus =
+               vp_play_progressbar_get_focus_object(pNormalView->pProgressbar);
+
+       evas_object_event_callback_add(pProgressFocus, EVAS_CALLBACK_KEY_DOWN,
+                                                                  __vp_normal_focus_key_down_cb,
+                                                                  (void *) pNormalView);
+       evas_object_event_callback_add(pProgressFocus, EVAS_CALLBACK_KEY_UP,
+                                                                  __vp_normal_focus_key_up_cb,
+                                                                  (void *) pNormalView);
+
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_create_subtitle(NormalView * pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+
+       Evas_Object *pParent = NULL;
+       Evas_Object *pObj = NULL;
+
+#ifdef SUBTITLE_K_FEATURE
+       pParent = pNormalView->pMainLayout;
+       VideoLogError("1");
+#else
+       pParent = pNormalView->pMainLayout;
+       VideoLogError("2");
+#endif
+
+
+       pNormalView->pSubtitle =
+               vp_play_subtitle_create(pParent, VP_SUBTITLE_TYPE_NORMAL);
+       if (!pNormalView->pSubtitle) {
+               VideoLogError("pSubtitle create fail");
+               return FALSE;
+       }
+
+       pObj = vp_play_subtitle_get_object(pNormalView->pSubtitle);
+       if (!pObj) {
+               VideoLogError("vp_play_subtitle_get_object fail");
+               return FALSE;
+       }
+
+       vp_play_subtitle_realize(pNormalView->pSubtitle);
+       char *szFont = NULL;
+       int nSize = 0;
+
+#ifdef SUBTITLE_K_FEATURE
+       int nAlignmentKey = VP_SUBTITLE_ALIGNMENT_CENTER;
+       vp_subtitle_alignment_t nAlignment = VP_SUBTITLE_ALIGNMENT_CENTER;
+#else
+       video_subtitle_color_t nFontColor = VP_SUBTITLE_COLOR_BLACK;
+       video_subtitle_color_t nBGColor = VP_SUBTITLE_COLOR_BLACK;
+#endif
+
+       vp_play_preference_get_subtitle_size_key(&nSize);
+       vp_play_preference_get_subtitle_font_name_key(&szFont);
+       vp_play_subtitle_set_size(pNormalView->pSubtitle, nSize);
+       vp_play_subtitle_set_size_zoom(pNormalView->pSubtitle, 1.0);
+       vp_play_subtitle_set_font(pNormalView->pSubtitle, szFont);
+
+       VP_FREE(szFont);
+#ifndef SUBTITLE_K_FEATURE
+       int nFontColorKey = VP_SUBTITLE_COLOR_BLACK;
+       int nBGColorKey = VP_SUBTITLE_COLOR_BLACK;
+       vp_play_preference_get_subtitle_font_color_key(&nFontColorKey);
+       vp_play_preference_get_subtitle_bg_color_key(&nBGColorKey);
+
+       if (nFontColorKey == VIDEO_SUBTITLE_COLOR_BLACK) {
+               nFontColor = VP_SUBTITLE_COLOR_BLACK;
+       } else if (nFontColorKey == VIDEO_SUBTITLE_COLOR_BLUE) {
+               nFontColor = VP_SUBTITLE_COLOR_BLUE;
+       } else if (nFontColorKey == VIDEO_SUBTITLE_COLOR_GREEN) {
+               nFontColor = VP_SUBTITLE_COLOR_GREEN;
+       } else if (nFontColorKey == VIDEO_SUBTITLE_COLOR_WHITE) {
+               nFontColor = VP_SUBTITLE_COLOR_WHITE;
+       }
+
+       if (nBGColorKey == VIDEO_SUBTITLE_COLOR_BLACK) {
+               nBGColor = VP_SUBTITLE_COLOR_BLACK;
+       } else if (nBGColorKey == VIDEO_SUBTITLE_COLOR_WHITE) {
+               nBGColor = VP_SUBTITLE_COLOR_WHITE;
+       } else if (nBGColorKey == VIDEO_SUBTITLE_COLOR_NONE) {
+               nBGColor = VP_SUBTITLE_COLOR_NONE;
+       }
+       vp_play_subtitle_set_color(pNormalView->pSubtitle, nFontColor);
+       vp_play_subtitle_set_bg_color(pNormalView->pSubtitle, nBGColor);
+
+       elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_SUBTITLE,
+                                                               pObj);
+
+#else
+       vp_play_preference_get_subtitle_alignment_key(&nAlignmentKey);
+
+       char *szColorHex = NULL;
+       char *szColorBGHex = NULL;
+       vp_play_preference_get_subtitle_font_color_hex_key(&szColorHex);
+       if (!szColorHex) {
+               VideoLogError("szColorHex is NULL");
+       }
+
+       vp_play_preference_get_subtitle_bg_color_hex_key(&szColorBGHex);
+       if (!szColorBGHex) {
+               VideoLogError("szColorBGHex is NULL");
+       }
+
+
+       if (nAlignmentKey == VIDEO_SUBTITLE_ALIGNMENT_LEFT) {
+               nAlignment = VP_SUBTITLE_ALIGNMENT_LEFT;
+       } else if (nAlignmentKey == VIDEO_SUBTITLE_ALIGNMENT_CENTER) {
+               nAlignment = VP_SUBTITLE_ALIGNMENT_CENTER;
+       } else if (nAlignmentKey == VIDEO_SUBTITLE_ALIGNMENT_RIGHT) {
+               nAlignment = VP_SUBTITLE_ALIGNMENT_RIGHT;
+       }
+
+       vp_play_subtitle_set_color(pNormalView->pSubtitle, szColorHex);
+       vp_play_subtitle_set_bg_color(pNormalView->pSubtitle, szColorBGHex);
+
+       vp_play_subtitle_set_alignment(pNormalView->pSubtitle, nAlignment);
+       elm_object_part_content_set(pParent, VP_PLAY_SWALLOW_NORMAL_SUBTITLE,
+                                                               pObj);
+       evas_object_show(pObj);
+#endif
+
+       return TRUE;
+}
+
+#ifdef _PERF_TEST_
+static Evas_Object *_vp_play_normal_view_create_conformant(Evas_Object *
+                                                                                                                  pParent)
+{
+       if (!pParent) {
+               VideoLogError("Parent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_conformant_add(pParent);
+       if (!pObj) {
+               VideoLogError("elm_conformant_add object is NULL");
+               return NULL;
+       }
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       elm_win_conformant_set(pParent, EINA_TRUE);
+       elm_win_resize_object_add(pParent, pObj);
+
+       elm_object_signal_emit(pObj, "elm,state,indicator,overlap", "");
+       evas_object_data_set(pObj, "overlap", (void *) EINA_TRUE);
+
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+static Evas_Object *_vp_play_normal_view_create_layout(Evas_Object *
+                                                                                                          pParent)
+{
+       if (!pParent) {
+               VideoLogError("Parent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       Eina_Bool bRet = EINA_FALSE;
+
+       pObj = elm_layout_add(pParent);
+       if (!pObj) {
+               VideoLogError("elm_layout_add object is NULL");
+               return NULL;
+       }
+
+       bRet = elm_layout_theme_set(pObj, VP_PLAY_CUSTOM_LAYOUT_KLASS,
+                                                               VP_PLAY_CUSTOM_LAYOUT_GROUP,
+                                                               VP_PLAY_CUSTOM_LAYOUT_STYLE);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_theme_set fail");
+       }
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       elm_object_content_set(pParent, pObj);
+
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+static Evas_Object *_vp_play_normal_view_create_naviframe(Evas_Object *
+                                                                                                                 pParent)
+{
+       if (!pParent) {
+               VideoLogError("Parent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       pObj = elm_naviframe_add(pParent);
+       if (!pObj) {
+               VideoLogError("elm_naviframe_add object is NULL");
+               return NULL;
+       }
+
+       eext_object_event_callback_add(pObj, EEXT_CALLBACK_BACK,
+                                                                  eext_naviframe_back_cb, NULL);
+       eext_object_event_callback_add(pObj, EEXT_CALLBACK_MORE,
+                                                                  eext_naviframe_more_cb, NULL);
+
+       elm_object_part_content_set(pParent, "elm.swallow.content", pObj);
+       elm_object_focus_set(pObj, EINA_TRUE);
+
+       elm_naviframe_prev_btn_auto_pushed_set(pObj, EINA_FALSE);
+
+       evas_object_show(pObj);
+
+       return pObj;
+}
+#endif
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void _vp_play_normal_view_del_cb(void *data, Evas * e,
+                                                                               Evas_Object * obj,
+                                                                               void *event_info)
+{
+       if (!data) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) data;
+       if (pNormalView->pMainLayout) {
+               evas_object_event_callback_del(pNormalView->pMainLayout,
+                                                                          EVAS_CALLBACK_DEL,
+                                                                          _vp_play_normal_view_del_cb);
+               elm_object_focus_custom_chain_unset(pNormalView->pMainLayout);
+               pNormalView->pMainLayout = NULL;
+               pNormalView->pAllsharBtn = NULL;
+       }
+}
+
+/**
+ *
+ * @param pNormalView
+ * @return
+ */
+static bool _vp_play_normal_view_init_layout(NormalView * pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+#ifdef _PERF_TEST_
+       if (pNormalView->pMainLayout) {
+               VideoLogError("Already exists MainLayout: %p",
+                                         pNormalView->pMainLayout);
+               return TRUE;
+       }
+//////////
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+
+       pPlayView->pConformant =
+               _vp_play_normal_view_create_conformant(pPlayView->pWin);
+       if (!pPlayView->pConformant) {
+               VideoLogError("pConformant is null");
+               return FALSE;
+       }
+
+       pPlayView->pMainLayout =
+               _vp_play_normal_view_create_layout(pPlayView->pConformant);
+       if (!pPlayView->pMainLayout) {
+               VideoLogError("pMainLayout is null");
+               return FALSE;
+       }
+       pPlayView->pNaviframe =
+               _vp_play_normal_view_create_naviframe(pPlayView->pMainLayout);
+       if (!pPlayView->pNaviframe) {
+               VideoLogError("pNaviframe is null");
+               return FALSE;
+       }
+
+       pNormalView->pNaviFrame = pPlayView->pNaviframe;
+       pNormalView->bDestroyNavi = FALSE;
+       pNormalView->nXwinID = elm_win_xwindow_get(pPlayView->pWin);
+
+//////////
+#endif
+
+       if (!_vp_play_normal_view_create_gesture_layout(pNormalView)) {
+               VideoLogError
+                       ("_vp_play_normal_view_create_gesture_layout is fail");
+               return FALSE;
+       }
+
+       pNormalView->pMainLayout =
+               _vp_play_normal_view_create_main_layout(pNormalView->pNaviFrame);
+       if (!pNormalView->pMainLayout) {
+               VideoLogError("pLayout create fail");
+               return FALSE;
+       }
+
+       evas_object_event_callback_add(pNormalView->pMainLayout,
+                                                                  EVAS_CALLBACK_DEL,
+                                                                  _vp_play_normal_view_del_cb,
+                                                                  (void *) pNormalView);
+       evas_object_event_callback_add(pNormalView->pMainLayout,
+                                                                  EVAS_CALLBACK_RESIZE,
+                                                                  __vp_normal_main_layout_resize_cb,
+                                                                  (void *) pNormalView);
+       elm_access_highlight_set(pNormalView->pMainLayout);
+
+       pNormalView->pNaviItem =
+               elm_naviframe_item_push(pNormalView->pNaviFrame, NULL, NULL, NULL,
+                                                               pNormalView->pMainLayout,
+                                                               "playview/1line");
+
+       Evas_Object *pLeftbtn = elm_button_add(pNormalView->pNaviFrame);
+       elm_object_style_set(pLeftbtn, "back");
+       evas_object_smart_callback_add(pLeftbtn, "clicked",
+                                                                  __vp_normal_naviframe_back_btn_cb,
+                                                                  (void *) pNormalView);
+       elm_object_item_part_content_set(pNormalView->pNaviItem,
+                                                                        "title_left_btn", pLeftbtn);
+       evas_object_show(pLeftbtn);
+
+       elm_naviframe_item_pop_cb_set(pNormalView->pNaviItem,
+                                                                 __vp_normal_naviframe_pop_cb,
+                                                                 (void *) pNormalView);
+
+       if (!pNormalView->pNaviItem) {
+               VideoLogError("elm_naviframe_item_push fail");
+               return FALSE;
+       }
+
+       elm_object_signal_callback_add(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_SHOW_FINISH, "*",
+                                                                  __vp_normal_show_finish_cb,
+                                                                  (void *) pNormalView);
+       elm_object_signal_callback_add(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_HIDE_FINISH, "*",
+                                                                  __vp_normal_hide_finish_cb,
+                                                                  (void *) pNormalView);
+
+       if (!_vp_play_normal_view_create_top_control(pNormalView)) {
+               VideoLogError("_vp_play_normal_view_create_top_control fail");
+               return FALSE;
+       }
+
+       if (!_vp_play_normal_view_create_main_control(pNormalView)) {
+               VideoLogError("_vp_play_normal_view_create_main_control fail");
+               return FALSE;
+       }
+
+       if (!_vp_play_normal_view_create_function_control(pNormalView)) {
+               VideoLogError("_vp_play_normal_view_create_function_control fail");
+               return FALSE;
+       }
+
+       if (!_vp_play_normal_view_create_progressbar(pNormalView)) {
+               VideoLogError("_vp_play_normal_view_create_progressbar fail");
+               return FALSE;
+       }
+
+       if (!_vp_play_normal_view_create_subtitle(pNormalView)) {
+               VideoLogError("_vp_play_normal_view_create_subtitle fail");
+               return FALSE;
+       }
+
+       if (!_vp_play_normal_view_create_loading_ani(pNormalView)) {
+               VideoLogError("_vp_play_normal_view_create_loading_ani fail");
+               return FALSE;
+       }
+       return TRUE;
+}
+
+/**
+ *
+ * @param pNormalView
+ */
+static void _vp_play_normal_view_destroy_handle(NormalView * pNormalView)
+{
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return;
+       }
+       VideoLogError("_vp_play_normal_view_destroy Start");
+       vp_language_list_destroy();
+       if (pNormalView->pMainLayout) {
+               elm_object_focus_custom_chain_unset(pNormalView->pMainLayout);
+       }
+
+       if (pNormalView->pPlayerHandle) {
+               vp_mm_player_destroy(pNormalView->pPlayerHandle);
+               pNormalView->pPlayerHandle = NULL;
+       }
+
+       if (pNormalView->pVolumeHandle) {
+               vp_play_volume_destroy(pNormalView->pVolumeHandle);
+               pNormalView->pVolumeHandle = NULL;
+       }
+
+       if (pNormalView->pVolumePopupHandle) {
+               vp_play_volume_popup_destroy(pNormalView->pVolumePopupHandle);
+               pNormalView->pVolumePopupHandle = NULL;
+       }
+
+       if (pNormalView->pBrightnessHandle) {
+               vp_play_brightness_destroy(pNormalView->pBrightnessHandle);
+               pNormalView->pBrightnessHandle = NULL;
+       }
+
+       VP_EVAS_PIPE_DEL(pNormalView->pPreparePipe);
+       VP_EVAS_PIPE_DEL(pNormalView->pSeekPipe);
+
+       VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pLockScreenTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pProgressTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pExitWaitTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pMomentTimer);
+
+       if (pNormalView->pProgressEvent) {
+               evas_object_event_callback_del(pNormalView->pProgressEvent,
+                                                                          EVAS_CALLBACK_MOUSE_DOWN,
+                                                                          __vp_normal_progress_mouse_down_cb);
+
+               evas_object_event_callback_del(pNormalView->pProgressEvent,
+                                                                          EVAS_CALLBACK_MOUSE_UP,
+                                                                          __vp_normal_progress_mouse_up_cb);
+
+               evas_object_event_callback_del(pNormalView->pProgressEvent,
+                                                                          EVAS_CALLBACK_MOUSE_MOVE,
+                                                                          __vp_normal_progress_mouse_move_cb);
+               pNormalView->pProgressEvent = NULL;
+       }
+#ifdef K_FEATURE_MICROSEEK
+       VP_EVAS_DEL(pNormalView->pMicroSeekTextLayout);
+       VP_EVAS_DEL(pNormalView->pMicroSeekImageLayout);
+#endif
+#ifdef FLICK_JUMP
+       VP_EVAS_DEL(pNormalView->pFlickJumpSeek);
+#endif
+
+       vp_audio_track_destroy(pNormalView->pAudioTrackHandle);
+       pNormalView->pAudioTrackHandle = NULL;
+
+       vp_share_destroy(pNormalView->pShareHandle);
+       pNormalView->pShareHandle = NULL;
+
+       vp_sound_alive_destroy(pNormalView->pSAHandle);
+       pNormalView->pSAHandle = NULL;
+
+       vp_subtitle_destroy(pNormalView->pSubtitlePopup);
+       pNormalView->pSubtitlePopup = NULL;
+
+       vp_subtitle_sync_popup_destroy(pNormalView->pSubtitleSyncPopup);
+       pNormalView->pSubtitleSyncPopup = NULL;
+
+       vp_subtitle_select_destroy(pNormalView->pSubtitleSelectPopup);
+       pNormalView->pSubtitleSelectPopup = NULL;
+
+       vp_subtitle_font_destroy(pNormalView->pSubtitleFontPopup);
+       pNormalView->pSubtitleFontPopup = NULL;
+
+       vp_subtitle_size_destroy(pNormalView->pSubtitleSizePopup);
+       pNormalView->pSubtitleSizePopup = NULL;
+
+       vp_subtitle_color_destroy(pNormalView->pSubtitleFontColorPopup);
+       pNormalView->pSubtitleFontColorPopup = NULL;
+#ifndef SUBTITLE_K_FEATURE
+       vp_subtitle_bg_color_destroy(pNormalView->pSubtitleBGColorPopup);
+       pNormalView->pSubtitleBGColorPopup = NULL;
+#else
+       vp_subtitle_color_destroy(pNormalView->pSubtitleBGColorPopup);
+       pNormalView->pSubtitleBGColorPopup = NULL;
+#endif
+       vp_subtitle_edge_destroy(pNormalView->pSubtitleEdgePopup);
+       pNormalView->pSubtitleEdgePopup = NULL;
+
+       VP_EVAS_TIMER_DEL(pNormalView->pSubtitleTimer);
+
+       VP_EVAS_TIMER_DEL(pNormalView->pScreenShotTimer);
+       VP_EVAS_DEL(pNormalView->pScreenShot);
+
+       vp_repeat_destroy(pNormalView->pRepeatHandle);
+       pNormalView->pRepeatHandle = NULL;
+
+       vp_play_loading_ani_destroy(pNormalView->pLoadingAni);
+
+       vp_sound_path_destroy(pNormalView->pSoundPathHandle);
+       pNormalView->pSoundPathHandle = NULL;
+
+       vp_setting_destroy(pNormalView->pSettingHandle);
+       pNormalView->pSettingHandle = NULL;
+
+       vp_capture_popup_destroy(pNormalView->pCapturePopup);
+       pNormalView->pCapturePopup = NULL;
+
+       vp_play_speed_popup_destroy(pNormalView->pPlaySpeedPopup);
+       pNormalView->pPlaySpeedPopup = NULL;
+
+       vp_detail_destroy(pNormalView->pDetailHandle);
+       pNormalView->pDetailHandle = NULL;
+
+       vp_zoom_guide_destroy(pNormalView->pZoomGuide);
+       pNormalView->pZoomGuide = NULL;
+
+       VP_EVAS_JOB_DEL(pNormalView->pVolumeJob);
+       VP_EVAS_JOB_DEL(pNormalView->pBrightnessJob);
+
+       if (pNormalView->pMediaKey) {
+               vp_media_key_destroy(pNormalView->pMediaKey);
+               pNormalView->pMediaKey = NULL;
+       }
+       if (pNormalView->pSubtitle) {
+               vp_play_subtitle_destroy(pNormalView->pSubtitle);
+               pNormalView->pSubtitle = NULL;
+       }
+
+       if (pNormalView->pBookmarkHandle) {
+               vp_play_bookmark_destroy(pNormalView->pBookmarkHandle);
+               pNormalView->pBookmarkHandle = NULL;
+       }
+
+       if (pNormalView->pProgressbar) {
+               vp_play_progressbar_destroy(pNormalView->pProgressbar);
+               pNormalView->pProgressbar = NULL;
+       }
+
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+       VP_EVAS_IDLER_DEL(pNormalView->pControlIdler);
+       VP_EVAS_IDLER_DEL(pNormalView->pMultiWinIdler);
+
+       VP_EVAS_DEL(pNormalView->pImageBufferObj);
+
+       VP_EVAS_DEL(pNormalView->pSoundPathBtn);
+       VP_EVAS_DEL(pNormalView->pLockBtn);
+
+       VP_EVAS_DEL(pNormalView->pPopup);
+       VP_EVAS_DEL(pNormalView->pSpeedBoxCtrl);
+       VP_EVAS_DEL(pNormalView->pNextBtn);
+       VP_EVAS_DEL(pNormalView->pPrevBtn);
+       VP_EVAS_DEL(pNormalView->pPauseBtn);
+       VP_EVAS_DEL(pNormalView->pResumeBtn);
+       VP_EVAS_DEL(pNormalView->pPlayFocusBtn);
+
+       VP_EVAS_DEL(pNormalView->pRotateBtn);
+       VP_EVAS_DEL(pNormalView->pVolumeBtn);
+       VP_EVAS_DEL(pNormalView->pScreenSizeBtn);
+       VP_EVAS_DEL(pNormalView->pBookmarkBtn);
+       VP_EVAS_DEL(pNormalView->pMultiWinBtn);
+       VP_EVAS_DEL(pNormalView->pRepeatBtn);
+       VP_EVAS_DEL(pNormalView->pTrimBtn);
+       VP_EVAS_DEL(pNormalView->pSoundAliveBtn);
+       VP_EVAS_DEL(pNormalView->pShareBtn);
+
+       VP_EVAS_DEL(pNormalView->pCtxPopup);
+
+       VP_EVAS_DEL(pNormalView->pBackBtn);
+       VP_EVAS_DEL(pNormalView->pMoreBtn);
+       VP_EVAS_DEL(pNormalView->pCaptureRewBtn);
+       VP_EVAS_DEL(pNormalView->pCaptureBtn);
+       VP_EVAS_DEL(pNormalView->pCaptureFFBtn);
+
+       VP_EVAS_DEL(pNormalView->pMainEventRect);
+       VP_EVAS_DEL(pNormalView->pGestureRect);
+
+       VP_EVAS_DEL(pNormalView->pFunctionLayout);
+       VP_EVAS_DEL(pNormalView->pTopControlLayout);
+       VP_EVAS_DEL(pNormalView->pControlLayout);
+       VP_EVAS_DEL(pNormalView->pNaviRightBtn);
+       VP_EVAS_DEL(pNormalView->pNaviLeftBtn);
+#ifdef _NATIVE_BUFFER_SYNC
+       VP_EVAS_DEL(pNormalView->pVideoSink);
+#endif
+       VP_EVAS_DEL(pNormalView->pMainLayout);
+
+       VP_FREE(pNormalView->szMediaURL);
+       VP_FREE(pNormalView->szSubtitleURL);
+       VP_FREE(pNormalView->szScreenMirrorMacAddr);
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+       VP_FREE(pNormalView->pSelectedSubtitleLanguage);
+#endif
+       VP_FREE(pNormalView);
+       VideoLogError("_vp_play_normal_view_destroy End");
+}
+
+/**
+ *
+ * @param data
+ * @param pipeData
+ * @param nbyte
+ */
+static void _vp_play_normal_view_prepare_pipe_cb(void *data,
+                                                                                                void *pipeData,
+                                                                                                unsigned int nbyte)
+{
+       if (!data) {
+               VideoLogError("data is NULL");
+               return;
+       }
+       VideoLogInfo("");
+
+       NormalView *pNormalView = (NormalView *) data;
+       bool bLCDOffStatus = FALSE;
+
+       vp_mm_player_set_rate(pNormalView->pPlayerHandle,
+                                                 (float) pNormalView->fPlaySpeed);
+
+       vp_play_config_get_lcd_off_state(&bLCDOffStatus);
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (!pPlayView) {
+               VideoLogError("pPlayView handle is NULL");
+               return;
+       }
+
+       if (!pPlayView->pWin) {
+               VideoLogError("pPlayView->pWin handle is NULL");
+               return;
+       }
+
+       if (bLCDOffStatus && (pNormalView->bVideoOnlyMode == FALSE)) {
+               VideoLogError("Invalid LCD Status");
+
+               pPlayView->pFunc->vp_play_func_exit(pPlayView);
+               return;
+       }
+
+       int nDuration = 0;
+       if (!vp_mm_player_get_duration(pNormalView->pPlayerHandle, &nDuration)) {
+               VideoLogError("vp_mm_player_get_duration is fail");
+       }
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB
+               && nDuration == 0) {
+               pNormalView->bHLSMode = TRUE;
+       } else {
+               pNormalView->bHLSMode = FALSE;
+       }
+
+       if (pPlayView->bAVRCP) {
+               const char *navi_title =
+                       elm_object_item_text_get(pNormalView->pNaviItem);
+               vp_avrcp_noti_track(navi_title, "Unknown", "Unknown", "Unknown",
+                                                       nDuration);
+       }
+
+       if (pNormalView->bHLSMode == FALSE) {
+               pNormalView->nDuration = nDuration;
+               vp_play_progressbar_set_duration(pNormalView->pProgressbar,
+                                                                                nDuration);
+       }
+
+       if (vp_mm_player_is_closed_caption_exist(pNormalView->pPlayerHandle)) {
+               pNormalView->bIsExistSubtitle = TRUE;
+       }
+
+       if (pNormalView->bIsExistSubtitle) {
+               _vp_play_normal_view_set_subtitle_font_config(pNormalView);
+       }
+
+       vp_play_progressbar_set_position(pNormalView->pProgressbar,
+                                                                        pNormalView->nStartPosition);
+       _vp_play_normal_view_check_audio_only(pNormalView);
+
+       if (pNormalView->nStartPosition > 0) {
+               pNormalView->bSeekComplete = FALSE;
+               if (vp_mm_player_set_position
+                       (pNormalView->pPlayerHandle,
+                        pNormalView->nStartPosition) == FALSE) {
+                       VideoLogWarning("vp_mm_player_set_position error");
+                       return;
+               }
+       } else {
+               if (pPlayView->bAVRCP) {
+                       vp_avrcp_noti_track_position(0);
+               }
+       }
+
+       pNormalView->bIsRealize = TRUE;
+       pNormalView->bSeekComplete = TRUE;
+#if 1
+       if (vp_play_util_check_streaming(pNormalView->szMediaURL)) {
+               if (pNormalView->bBufferingComplete == FALSE) {
+                       VideoLogWarning("Skip for buffering state");
+                       return;
+               }
+       }
+#endif
+       if (pNormalView->pLoadingAni) {
+               _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+               vp_play_loading_ani_destroy(pNormalView->pLoadingAni);
+               pNormalView->pLoadingAni = NULL;
+       }
+
+       bool bXwincheck = TRUE;
+       if (vp_play_util_is_Xwindow_focused(pNormalView->nXwinID) == FALSE) {
+               VideoLogWarning
+                       ("CASE : Not a splite view and Not focused state in mainwindow[%p]",
+                        pPlayView->pWin);
+               bXwincheck = FALSE;
+       }
+
+       if (pNormalView->nStartPosition <= 0) {
+               if (pNormalView->bManualPause || bXwincheck == FALSE
+                       || _vp_play_normal_view_check_during_call(pNormalView)) {
+                       vp_mm_player_set_visible(pNormalView->pPlayerHandle, TRUE);
+                       vp_mm_player_pause(pNormalView->pPlayerHandle);
+               } else {
+                       vp_mm_player_play(pNormalView->pPlayerHandle);
+               }
+       }
+
+       if (!vp_mm_player_set_subtitle_position
+               (pNormalView->pPlayerHandle,
+                pNormalView->fSubtitleSyncValue * 1000)) {
+               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);
+
+}
+
+/**
+ *
+ * @param pNormalView
+ * @param pPlayView
+ * @param path
+ */
+void vp_check_is_live_streming(NormalView *pNormalView, PlayView * pPlayView, char *path)
+{
+       /* Supported streaming protocols */
+       char streamingProtocols[VP_NORMAL_STREAMING_PROTOCOLS_MAX][VP_NORMAL_MAX_STR_LEN] = {
+                       "http://",
+                       "rtsp://"
+       };
+
+       int ctr;
+
+       pNormalView->isLiveStreaming = false;
+       pPlayView->isLiveStreaming = false;
+
+       for (ctr = 0; ctr < VP_NORMAL_STREAMING_PROTOCOLS_MAX; ctr++) {
+               if (!strncmp(streamingProtocols[ctr], path, strlen(streamingProtocols[ctr]))) {
+                       pNormalView->isLiveStreaming = true;
+                       pPlayView->isLiveStreaming = true;
+                       break;
+               }
+       }
+}
+
+/**
+ *
+ * @param pPlayView
+ * @param nLaunchingType
+ * @return
+ */
+normal_view_handle vp_play_normal_view_create(PlayView * pPlayView,
+                                                                                         video_play_launching_type_t
+                                                                                         nLaunchingType)
+{
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return NULL;
+       }
+
+       NormalView *pNormalView = NULL;
+
+       pNormalView = calloc(1, sizeof(NormalView));
+
+       if (!pNormalView) {
+               VideoLogError("pNormalView alloc fail");
+               return NULL;
+       }
+
+       int nScreenMode = VP_MM_PLAYER_DISPLAY_LETTER_BOX;
+       vp_play_preference_get_screen_mode_key(&nScreenMode);
+       if ((nScreenMode != VP_MM_PLAYER_DISPLAY_LETTER_BOX)
+               && (nScreenMode != VP_MM_PLAYER_DISPLAY_FULL_SCREEN)) {
+               nScreenMode = VP_MM_PLAYER_DISPLAY_LETTER_BOX;
+               vp_play_preference_set_screen_mode_key
+                       (VP_MM_PLAYER_DISPLAY_LETTER_BOX);
+       }
+       pNormalView->nDisplayMode = nScreenMode;
+
+       pNormalView->pPlayView = pPlayView;
+       pNormalView->pNaviFrame = pPlayView->pNaviframe;
+       pNormalView->nXwinID = elm_win_xwindow_get(pPlayView->pWin);
+       pNormalView->nLaunchingType = nLaunchingType;
+       pNormalView->nStartPosition = 0;
+       pNormalView->nRepeatMode = VIDEO_PLAY_REPEAT_NONE;
+       pNormalView->bManualPause = FALSE;
+       pNormalView->nWaitPos = -1;
+       pNormalView->fPlaySpeed = pPlayView->fPlaySpeed;
+       pNormalView->fSubtitleSyncValue = pPlayView->fSubtitleSyncValue;
+       curr_Handle = pNormalView;
+       elm_object_focus_allow_set(pNormalView->pNaviFrame, EINA_TRUE);
+       elm_object_tree_focus_allow_set(pNormalView->pNaviFrame, EINA_TRUE);
+       elm_object_focus_set(pNormalView->pNaviFrame, EINA_TRUE);
+
+       // create prepare_cb pipe
+       VP_EVAS_PIPE_DEL(pNormalView->pPreparePipe);
+       pNormalView->pPreparePipe =
+               ecore_pipe_add((Ecore_Pipe_Cb)
+                                          _vp_play_normal_view_prepare_pipe_cb,
+                                          (void *) pNormalView);
+
+       VP_EVAS_PIPE_DEL(pNormalView->pSeekPipe);
+       pNormalView->pSeekPipe =
+               ecore_pipe_add((Ecore_Pipe_Cb) __vp_play_normal_view_seek_pipe_cb,
+                                          (void *) pNormalView);
+#ifndef _PERF_TEST_
+       if (!_vp_play_normal_view_init_layout(pNormalView)) {
+               VideoLogError("_vp_play_normal_view_init_layout is fail");
+               return NULL;
+       }
+#endif
+       bool bMultiPlay = TRUE;
+       vp_play_preference_get_multi_play_status(&bMultiPlay);
+       if (bMultiPlay) {
+               vp_play_preference_set_multi_play_status(FALSE);
+       }
+
+       return (normal_view_handle) pNormalView;
+}
+
+/**
+ *
+ * @param pPlayView
+ * @param pViewHandle
+ */
+void vp_play_normal_view_key_create(PlayView * pPlayView,
+                                                                       normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+       pNormalView->pMediaKey =
+               vp_media_key_create(pPlayView->pWin,
+                                                       __vp_normal_media_key_event_cb);
+       vp_media_key_set_user_data(pNormalView->pMediaKey,
+                                                          (void *) pNormalView);
+       vp_media_key_realize(pNormalView->pMediaKey);
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_view_destroy(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       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);
+       elm_object_focus_set(pNormalView->pNaviFrame, EINA_FALSE);
+
+       pNormalView->bDestroyNavi = TRUE;
+
+       elm_naviframe_item_pop(pNormalView->pNaviFrame);
+
+       _vp_play_normal_view_destroy_handle(pNormalView);
+       curr_Handle = NULL;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_realize(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return FALSE;
+       }
+
+       if (!pNormalView->pLoadingAni) {
+               if (!_vp_play_normal_view_create_loading_ani(pNormalView)) {
+                       VideoLogWarning
+                               ("_vp_play_normal_view_create_loading_ani fail");
+               }
+       }
+
+       /* There is no repeat setting for these modes */
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+               pNormalView->nRepeatMode = VIDEO_PLAY_REPEAT_NONE;
+       } else if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+               if (pPlayView->bStopAfterRepeat == TRUE) {
+                       pNormalView->nRepeatMode = VIDEO_PLAY_REPEAT_ALL_STOP;
+               } else {
+                       pNormalView->nRepeatMode = VIDEO_PLAY_REPEAT_NONE;
+               }
+       } else {
+               int nVal = 0;
+               vp_play_preference_get_repeat_mode_key(&nVal);
+               pNormalView->nRepeatMode = (video_play_repeat_mode_t) nVal;
+       }
+
+       int nScreenMode = 0;
+       vp_play_preference_get_screen_mode_key(&nScreenMode);
+       pNormalView->nDisplayMode = (vp_mm_player_display_mode_t) nScreenMode;
+
+       pNormalView->bSeekComplete = TRUE;
+       pNormalView->bIsActive = TRUE;
+       VideoLogInfo("vp_play_normal_view_realize");
+
+       if (pNormalView->pMediaItemList) {
+               vp_media_contents_free_video_items(pNormalView->pMediaItemList);
+               pNormalView->pMediaItemList = NULL;
+       }
+
+       video_play_sort_type_t nType = VIDEO_SORT_BY_NONE;
+       int nSortVal = 0;
+       vp_play_config_get_sort_type_key(&nSortVal);
+       nType = (video_play_sort_type_t) nSortVal;
+
+       _vp_play_normal_view_set_volume_state(pNormalView);
+
+       vp_check_is_live_streming(pNormalView, pPlayView, pNormalView->szMediaURL);
+
+       if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_GALLERY
+               || pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MYFILE) {
+               char *szFolder =
+                       vp_play_util_get_folder_from_path(pNormalView->szMediaURL);
+               vp_media_contents_get_video_items_to_folder
+                       (VIDEO_SORT_BY_DATE_MOST_RECENT, szFolder,
+                        &(pNormalView->pMediaItemList));
+               VP_FREE(szFolder);
+       } else if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+       } else {
+               if (pPlayView->nListType == VIDEO_PLAY_LIST_TYPE_FOLDER) {
+                       char *szFolder =
+                               vp_play_util_get_folder_from_path(pNormalView->szMediaURL);
+                       vp_media_contents_get_video_items_to_folder(nType, szFolder,
+                                                                                                               &(pNormalView->
+                                                                                                                 pMediaItemList));
+                       VP_FREE(szFolder);
+               } else {
+                       vp_media_contents_get_video_items(nType,
+                                                                                         &(pNormalView->
+                                                                                               pMediaItemList));
+               }
+       }
+#ifdef _PERF_TEST_
+       if (!_vp_play_normal_view_play_start(pNormalView, TRUE)) {
+               VideoLogError("_vp_play_normal_view_play_start is Fail");
+               return FALSE;
+       }
+
+       _vp_play_normal_view_init_layout(pNormalView);
+       _vp_play_normal_view_hide_layout(pNormalView, TRUE);
+#else
+       _vp_play_normal_view_hide_layout(pNormalView, TRUE);
+
+       if (!_vp_play_normal_view_play_start(pNormalView, TRUE)) {
+               VideoLogError("_vp_play_normal_view_play_start is Fail");
+               return FALSE;
+       }
+#endif
+       _vp_play_normal_view_set_rotate_lock_state(pNormalView);
+       _vp_play_normal_view_set_volume_lock_state(pNormalView);
+
+       vp_play_preference_set_allow_dock_connect_key(FALSE);
+
+       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                  VP_NORMAL_SIGNAL_VIDEO_ON, "*");
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_unrealize(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+       if (pNormalView->pNaviItem) {
+               elm_object_item_text_set(pNormalView->pNaviItem, "");
+       }
+       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                  VP_NORMAL_SIGNAL_VIDEO_OFF, "*");
+
+       _vp_play_normal_view_set_played_time(pNormalView);
+
+       pNormalView->bIsActive = FALSE;
+       pNormalView->bIsExistSubtitle = FALSE;
+       VP_FREE(pNormalView->szSubtitleURL);
+       VideoLogInfo("vp_play_normal_view_unrealize");
+
+       if (pNormalView->pMediaItemList) {
+               vp_media_contents_free_video_items(pNormalView->pMediaItemList);
+               pNormalView->pMediaItemList = NULL;
+       }
+
+       if (pNormalView->pDetailHandle) {
+               vp_detail_destroy(pNormalView->pDetailHandle);
+               pNormalView->pDetailHandle = NULL;
+       }
+       vp_sound_unset_earjack_connection_changed_cb();
+       vp_play_preference_set_allow_dock_connect_key(TRUE);
+
+       vp_device_set_screen_off(FALSE);
+       vp_play_util_set_unlock_power_key();
+       vp_device_set_frame_rate(60);
+
+       VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pSubtitleTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pProgressTimer);
+       VP_EVAS_TIMER_DEL(pNormalView->pLockScreenTimer);
+#ifdef _NATIVE_BUFFER_SYNC
+       VP_EVAS_DEL(pNormalView->pVideoSink);
+#endif
+
+       if (pNormalView->pPlayerHandle && !pNormalView->bAudioOnly) {   //check here
+               vp_mm_player_destroy(pNormalView->pPlayerHandle);
+               pNormalView->pPlayerHandle = NULL;
+       }
+
+       pNormalView->bIsRealize = FALSE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bIsRealize
+ * @return
+ */
+bool vp_play_normal_view_is_realize(normal_view_handle pViewHandle,
+                                                                       bool * bIsRealize)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       *bIsRealize = pNormalView->bIsRealize;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_pause(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       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 && pPlayView->win_minicon) {
+               vp_minicontroller_update_control(pPlayView);
+       }
+       if (pPlayView && pPlayView->win_lockmini) {
+               vp_lockscreenmini_update_control(pPlayView);
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_resume_or_pause(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("[ERR] No Exist pUserData.");
+               return FALSE;
+       }
+
+       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)) {
+               VideoLogWarning("vp_mm_player_get_state is fail");
+       }
+
+       switch (nState) {
+       case VP_MM_PLAYER_STATE_NONE:
+       case VP_MM_PLAYER_STATE_IDLE:
+       case VP_MM_PLAYER_STATE_READY:
+       case VP_MM_PLAYER_STATE_PAUSED:
+               _vp_play_normal_view_all_close_popup(pNormalView);
+               if (!_vp_play_normal_view_check_during_call(pNormalView))
+                       vp_mm_player_play(pNormalView->pPlayerHandle);
+               break;
+       case VP_MM_PLAYER_STATE_PLAYING:
+               vp_mm_player_pause(pNormalView->pPlayerHandle);
+               break;
+       case VP_MM_PLAYER_STATE_STOP:
+               break;
+       }
+
+       if (pPlayView && pPlayView->win_minicon) {
+               vp_minicontroller_update_control(pPlayView);
+       }
+       if (pPlayView && pPlayView->win_lockmini) {
+               vp_lockscreenmini_update_control(pPlayView);
+       }
+       _vp_play_normal_view_set_play_state(pNormalView);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_next_play(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       _vp_play_normal_view_on_next_play(pNormalView, TRUE);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_prev_play(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       _vp_play_normal_view_on_prev_play(pNormalView, TRUE, FALSE);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szMediaURL
+ * @return
+ */
+bool vp_play_normal_view_set_url(normal_view_handle pViewHandle,
+                                                                const char *szMediaURL)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       if (!szMediaURL) {
+               VideoLogError("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       VP_FREE(pNormalView->szMediaURL);
+       VP_STRDUP(pNormalView->szMediaURL, szMediaURL);
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_stop_player(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+       if (!(vp_mm_player_stop(pNormalView->pPlayerHandle))) {
+               VideoLogError("player_stop failed");
+               return FALSE;
+       }
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bVideoOnly
+ * @return
+ */
+bool vp_play_normal_view_set_video_only(normal_view_handle pViewHandle,
+                                                                               bool bVideoOnly)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return FALSE;
+       }
+
+       pNormalView->bVideoOnlyMode = bVideoOnly;
+
+       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");
+       }
+
+       if (nState != VP_MM_PLAYER_STATE_NONE
+               && nState != VP_MM_PLAYER_STATE_IDLE) {
+               vp_play_subtitle_set_text(pNormalView->pSubtitle, "");
+       }
+
+       if (bVideoOnly == TRUE) {
+               if (pNormalView->pImageBufferObj) {
+                       elm_object_part_content_unset(pNormalView->pMainLayout,
+                                                                                 VP_PLAY_SWALLOW_NORMAL_IMAGE_BUFFER);
+                       VP_EVAS_DEL(pNormalView->pImageBufferObj);
+               }
+
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_NO_CONTNES_SHOW, "*");
+
+               VP_EVAS_DISABLE_SET(pNormalView->pSoundPathBtn, EINA_TRUE);
+
+               if (pNormalView->pRotateBtn) {
+                       _vp_play_normal_view_set_rotate_lock_state(pNormalView);
+                       _vp_play_normal_view_set_volume_lock_state(pNormalView);
+               }
+
+               VP_EVAS_DISABLE_SET(pNormalView->pScreenSizeBtn, EINA_TRUE);
+               VP_EVAS_DISABLE_SET(pNormalView->pBookmarkBtn, EINA_TRUE);
+               VP_EVAS_DISABLE_SET(pNormalView->pMultiWinBtn, EINA_TRUE);
+               VP_EVAS_DISABLE_SET(pNormalView->pRepeatBtn, EINA_TRUE);
+               VP_EVAS_DISABLE_SET(pNormalView->pTrimBtn, EINA_TRUE);
+               VP_EVAS_DISABLE_SET(pNormalView->pShareBtn, EINA_TRUE);
+       } else {
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_NO_CONTNES_HIDE, "*");
+
+               VP_FREE(pNormalView->szScreenMirrorMacAddr);
+               if (pNormalView->pRotateBtn) {
+                       _vp_play_normal_view_set_rotate_lock_state(pNormalView);
+                       _vp_play_normal_view_set_volume_lock_state(pNormalView);
+               }
+               VP_EVAS_DISABLE_SET(pNormalView->pScreenSizeBtn, EINA_FALSE);
+               VP_EVAS_DISABLE_SET(pNormalView->pRepeatBtn, EINA_FALSE);
+               if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_EMAIL) {
+                       char *szMediaID = NULL;
+                       bool bReturn = FALSE;
+                       bReturn =
+                               vp_media_contents_get_video_id(pNormalView->szMediaURL,
+                                                                                          &szMediaID);
+
+                       if (szMediaID && bReturn) {
+                               VP_EVAS_DISABLE_SET(pNormalView->pTrimBtn, EINA_FALSE);
+                       } else {
+                               VP_EVAS_DISABLE_SET(pNormalView->pTrimBtn, EINA_TRUE);
+                       }
+                       VP_FREE(szMediaID);
+               } else {
+                       VP_EVAS_DISABLE_SET(pNormalView->pTrimBtn, EINA_FALSE);
+               }
+               VP_EVAS_DISABLE_SET(pNormalView->pSoundAliveBtn, EINA_FALSE);
+
+               if (pNormalView->nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+                       if (vp_play_util_check_streaming(pNormalView->szMediaURL) ==
+                               TRUE) {
+                               VP_EVAS_DISABLE_SET(pNormalView->pShareBtn, EINA_TRUE);
+                       } else {
+                               VP_EVAS_DISABLE_SET(pNormalView->pShareBtn, EINA_FALSE);
+                       }
+               } else {
+                       VP_EVAS_DISABLE_SET(pNormalView->pShareBtn, EINA_FALSE);
+               }
+
+               VP_EVAS_DISABLE_SET(pNormalView->pBookmarkBtn, EINA_FALSE);
+               VP_EVAS_DISABLE_SET(pNormalView->pMultiWinBtn, EINA_FALSE);
+
+               vp_play_progressbar_set_opacity(pNormalView->pProgressbar, FALSE);
+       }
+
+       _vp_play_normal_view_on_capture_mode(pNormalView);
+       _vp_play_normal_view_set_play_state(pNormalView);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nStartPosition
+ * @return
+ */
+bool vp_play_normal_view_set_start_position(normal_view_handle pViewHandle,
+                                                                                       int nStartPosition)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       if (nStartPosition < 0) {
+               VideoLogError("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       pNormalView->nStartPosition = nStartPosition;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nCurPos
+ * @return
+ */
+bool vp_play_normal_view_get_last_position(normal_view_handle pViewHandle,
+                                                                                  int *nCurPos)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       int nPosition = 0;
+
+       if (pNormalView->bHLSMode) {
+               *nCurPos = 0;
+               return TRUE;
+       }
+
+       if (!vp_mm_player_get_position(pNormalView->pPlayerHandle, &nPosition)) {
+               VideoLogError("vp_mm_player_get_position is fail");
+               return FALSE;
+       }
+
+       pNormalView->nCurPosition = nPosition;
+
+       *nCurPos = pNormalView->nCurPosition;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szSubtitle
+ * @return
+ */
+bool vp_play_normal_view_set_subtitle(normal_view_handle pViewHandle,
+                                                                         char *szSubtitle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       VP_FREE(pNormalView->szSubtitleURL);
+
+       if (vp_file_exists(szSubtitle)) {
+               VP_STRDUP(pNormalView->szSubtitleURL, szSubtitle);
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szSubtitle
+ * @return
+ */
+bool vp_play_normal_view_get_subtitle(normal_view_handle pViewHandle,
+                                                                         char **szSubtitle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       if (!vp_mm_player_get_subtitle_url
+               (pNormalView->pPlayerHandle, szSubtitle)) {
+               VideoLogError("vp_mm_player_get_subtitle_url is fail");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nDuration
+ * @return
+ */
+bool vp_play_normal_view_get_video_duration(normal_view_handle pViewHandle,
+                                                                                       int *nDuration)
+{
+       if (!pViewHandle || !nDuration) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+       *nDuration = pNormalView->nDuration;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nAudioTrack
+ * @return
+ */
+bool vp_play_normal_view_get_audio_track(normal_view_handle pViewHandle,
+                                                                                int *nAudioTrack)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       *nAudioTrack = pNormalView->nDefaultAudioTrackIndex;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nAudioTrack
+ * @return
+ */
+bool vp_play_normal_view_set_audio_track(normal_view_handle pViewHandle,
+                                                                                int nAudioTrack)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       pNormalView->nDefaultAudioTrackIndex = nAudioTrack;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bManualPause
+ * @return
+ */
+bool vp_play_normal_view_set_manual_pause(normal_view_handle pViewHandle,
+                                                                                 bool bManualPause)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       pNormalView->bManualPause = bManualPause;
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bManualPause
+ * @return
+ */
+bool vp_play_normal_view_get_manual_pause(normal_view_handle pViewHandle,
+                                                                                 bool * bManualPause)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       *bManualPause = pNormalView->bManualPause;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_check_detail_view(normal_view_handle pViewHandle)
+{
+
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       if (pNormalView->pDetailHandle) {
+               vp_detail_destroy(pNormalView->pDetailHandle);
+               pNormalView->pDetailHandle = NULL;
+       }
+
+       return;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bPause
+ * @return
+ */
+bool vp_play_normal_view_get_pause_status(normal_view_handle pViewHandle,
+                                                                                 bool * bPause)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+       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");
+       }
+
+
+       if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+               *bPause = FALSE;
+       } else {
+               *bPause = TRUE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nSoundAlive
+ * @return
+ */
+bool vp_play_normal_view_get_sound_filter(normal_view_handle pViewHandle,
+                                                                                 video_sound_alive_t *
+                                                                                 nSoundAlive)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       *nSoundAlive = pNormalView->nSoundAlive;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nSoundAlive
+ * @return
+ */
+bool vp_play_normal_view_set_sound_filter(normal_view_handle pViewHandle,
+                                                                                 video_sound_alive_t nSoundAlive)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       pNormalView->nSoundAlive = nSoundAlive;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nRotate
+ * @param bLayoutHide
+ * @return
+ */
+bool vp_play_normal_view_set_rotate(normal_view_handle pViewHandle,
+                                                                       video_play_rotate_t nRotate,
+                                                                       bool bLayoutHide)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return FALSE;
+       }
+
+       if (nRotate == VIDEO_PLAY_ROTATE_NONE) {
+               vp_mm_player_set_video_rotate(pNormalView->pPlayerHandle,
+                                                                         VP_MM_PLAYER_ROTATE_0);
+       } else if (nRotate == VIDEO_PLAY_ROTATE_90) {
+               vp_mm_player_set_video_rotate(pNormalView->pPlayerHandle,
+                                                                         VP_MM_PLAYER_ROTATE_90);
+       } else if (nRotate == VIDEO_PLAY_ROTATE_180) {
+               vp_mm_player_set_video_rotate(pNormalView->pPlayerHandle,
+                                                                         VP_MM_PLAYER_ROTATE_180);
+       } else if (nRotate == VIDEO_PLAY_ROTATE_270) {
+               vp_mm_player_set_video_rotate(pNormalView->pPlayerHandle,
+                                                                         VP_MM_PLAYER_ROTATE_270);
+       }
+
+       int nAngle = elm_win_rotation_get(pPlayView->pWin);
+       video_play_rotate_t nCurRot = VIDEO_PLAY_ROTATE_NONE;
+
+       switch (nAngle) {
+       case 0:
+               nCurRot = VIDEO_PLAY_ROTATE_NONE;
+               break;
+       case 90:
+               nCurRot = VIDEO_PLAY_ROTATE_90;
+               break;
+       case 180:
+               nCurRot = VIDEO_PLAY_ROTATE_180;
+               break;
+       case 270:
+               nCurRot = VIDEO_PLAY_ROTATE_270;
+               break;
+       }
+
+       if (nRotate != nCurRot) {
+               if (nRotate == VIDEO_PLAY_ROTATE_NONE) {
+                       elm_win_wm_rotation_preferred_rotation_set(pPlayView->pWin, 0);
+               } else if (nRotate == VIDEO_PLAY_ROTATE_90) {
+                       elm_win_wm_rotation_preferred_rotation_set(pPlayView->pWin,
+                                                                                                          90);
+               } else if (nRotate == VIDEO_PLAY_ROTATE_180) {
+                       elm_win_wm_rotation_preferred_rotation_set(pPlayView->pWin,
+                                                                                                          180);
+               } else if (nRotate == VIDEO_PLAY_ROTATE_270) {
+                       elm_win_wm_rotation_preferred_rotation_set(pPlayView->pWin,
+                                                                                                          270);
+               }
+       }
+
+       if (pNormalView->nRotate != nRotate) {
+               if (pNormalView->pBookmarkHandle) {
+                       bool bIsReailze = FALSE;
+                       vp_play_bookmark_is_realize(pNormalView->pBookmarkHandle,
+                                                                               &bIsReailze);
+
+                       if (bIsReailze) {
+                               _vp_play_normal_view_on_bookmark_mode(pNormalView, FALSE);
+                               vp_play_bookmark_unrealize(pNormalView->pBookmarkHandle);
+                       }
+               }
+       }
+
+       if (pNormalView->pVolumeHandle) {
+               bool bIsRealize = FALSE;
+
+               if (!vp_play_volume_is_realize
+                       (pNormalView->pVolumeHandle, &bIsRealize)) {
+                       VideoLogWarning("vp_play_volume_is_realize is fail");
+               }
+
+               if (bIsRealize) {
+                       if (!vp_play_volume_unrealize(pNormalView->pVolumeHandle)) {
+                               VideoLogWarning("vp_play_volume_unrealize is fail");
+                       }
+               }
+       }
+
+       if (pNormalView->pVolumePopupHandle) {
+               bool bIsRealize = FALSE;
+
+               if (!vp_play_volume_popup_is_realize
+                       (pNormalView->pVolumePopupHandle, &bIsRealize)) {
+                       VideoLogWarning("vp_play_volume_popup_is_realize is fail");
+               }
+
+               if (bIsRealize) {
+                       if (!vp_play_volume_popup_unrealize
+                               (pNormalView->pVolumePopupHandle)) {
+                               VideoLogWarning("vp_play_volume_popup_unrealize is fail");
+                       }
+               }
+       }
+
+       if (pNormalView->pBrightnessHandle) {
+               bool bIsRealize = FALSE;
+
+               if (!vp_play_brightness_is_realize
+                       (pNormalView->pBrightnessHandle, &bIsRealize)) {
+                       VideoLogWarning("vp_play_volume_is_realize is fail");
+               }
+               if (bIsRealize) {
+                       if (!vp_play_brightness_unrealize
+                               (pNormalView->pBrightnessHandle)) {
+                               VideoLogWarning("vp_play_brightness_unrealize is fail");
+                       }
+               }
+       }
+
+       _vp_play_normal_view_set_rotate_lock_state(pNormalView);
+       bool bLandscape = vp_play_util_get_landscape_check(nRotate);
+
+       if (bLandscape) {
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_NO_EFFECT_LANDSCAPE_SHOW,
+                                                          "*");
+#ifdef SUBTITLE_K_FEATURE
+               elm_object_signal_emit(vp_play_subtitle_get_object
+                                                          (pNormalView->pSubtitle),
+                                                          VP_SUBTITLE_SIGNAL_MAIN_LANDSCAPE_SHOW,
+                                                          "*");
+               evas_object_move(vp_play_subtitle_get_object
+                                                (pNormalView->pSubtitle),
+                                                VP_SUBTITLE_LANDSCAPE_POSX,
+                                                VP_SUBTITLE_LANDSCAPE_POSY);
+               pNormalView->nInitSubtitleX = VP_SUBTITLE_LANDSCAPE_POSX;
+               pNormalView->nInitSubtitleY = VP_SUBTITLE_LANDSCAPE_POSY;
+#endif
+       } else {
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_NO_EFFECT_PORTRAIT_SHOW,
+                                                          "*");
+#ifdef SUBTITLE_K_FEATURE
+               elm_object_signal_emit(vp_play_subtitle_get_object
+                                                          (pNormalView->pSubtitle),
+                                                          VP_SUBTITLE_SIGNAL_MAIN_PORTRAIT_SHOW, "*");
+               evas_object_move(vp_play_subtitle_get_object
+                                                (pNormalView->pSubtitle),
+                                                VP_SUBTITLE_PORTRAIT_POSX,
+                                                VP_SUBTITLE_PORTRAIT_POSY);
+               pNormalView->nInitSubtitleX = VP_SUBTITLE_PORTRAIT_POSX;
+               pNormalView->nInitSubtitleY = VP_SUBTITLE_PORTRAIT_POSY;
+#endif
+       }
+
+#ifndef SUBTITLE_K_FEATURE
+       if (pNormalView->nDisplayMode != VP_MM_PLAYER_DISPLAY_FULL_SCREEN) {
+               if (nRotate == VIDEO_PLAY_ROTATE_NONE
+                       || nRotate == VIDEO_PLAY_ROTATE_180) {
+                       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_SUBTITLE_PORTRAIT,
+                                                                  "*");
+               } else {
+                       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                                  VP_NORMAL_SIGNAL_MAIN_SUBTITLE_HIDE,
+                                                                  "*");
+               }
+       } else {
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_MAIN_SUBTITLE_HIDE, "*");
+       }
+#endif
+
+       if (bLayoutHide) {
+               _vp_play_normal_view_hide_layout(pNormalView, TRUE);
+       }
+
+       VP_EVAS_TIMER_DEL(pNormalView->pSpeedTimer);
+       elm_object_signal_emit(pNormalView->pMainLayout,
+                                                  VP_NORMAL_SIGNAL_MAIN_SPEED_HIDE, "*");
+       pNormalView->nRotate = nRotate;
+
+#ifdef FLICK_JUMP
+       __vp_normal_flickjump_layout_position(pNormalView);
+#endif
+
+       if (pNormalView->pCtxPopup) {
+               PlayView *pPlayView = pNormalView->pPlayView;
+
+               if (!pPlayView) {
+                       VideoLogError("pPlayView is NULL");
+                       return FALSE;
+               }
+
+               int nW = 0;
+               int nH = 0;
+
+               Evas_Coord_Rectangle rect = { 0, };
+               elm_win_screen_size_get(pPlayView->pWin, &rect.x, &rect.y, &rect.w,
+                                                               &rect.h);
+               if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_NONE) {
+                       nW = rect.w / 2;
+                       nH = rect.h;
+               } else if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_90) {
+                       nW = rect.h / 2;
+                       nH = rect.w;
+               } else if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_180) {
+                       nW = rect.w / 2;
+                       nH = rect.h;
+               } else if (pNormalView->nRotate == VIDEO_PLAY_ROTATE_270) {
+                       nW = rect.h / 2;
+                       nH = rect.w;
+               }
+
+               evas_object_move(pNormalView->pCtxPopup, nW, nH);
+
+               evas_object_show(pNormalView->pCtxPopup);
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nLaunchingType
+ * @return
+ */
+bool vp_play_normal_view_set_launching_mode(normal_view_handle pViewHandle,
+                                                                                       video_play_launching_type_t
+                                                                                       nLaunchingType)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       pNormalView->nLaunchingType = nLaunchingType;
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_update(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       VideoLogWarning(" == NORMAL VIEW UPDATE ==");
+
+       if (pNormalView->pVolumeHandle) {
+               bool bIsRealize = FALSE;
+               if (!vp_play_volume_is_realize
+                       (pNormalView->pVolumeHandle, &bIsRealize)) {
+                       VideoLogWarning("vp_play_volume_is_realize is fail");
+               }
+
+               if (bIsRealize) {
+                       /*update volume popup */
+                       if (!vp_play_normal_view_volume_update(pNormalView)) {
+                               VideoLogWarning
+                                       ("vp_play_normal_view_volume_update is fail");
+                       }
+               }
+       }
+
+       if (pNormalView->pVolumePopupHandle) {
+               bool bIsRealize = FALSE;
+
+               if (!vp_play_volume_popup_is_realize
+                       (pNormalView->pVolumePopupHandle, &bIsRealize)) {
+                       VideoLogWarning("vp_play_volume_popup_is_realize is fail");
+               }
+
+               if (bIsRealize) {
+                       if (!vp_play_volume_popup_unrealize
+                               (pNormalView->pVolumePopupHandle)) {
+                               VideoLogWarning("vp_play_volume_popup_unrealize is fail");
+                       }
+               }
+       }
+
+       if (pNormalView->pBrightnessHandle) {
+               bool bIsRealize = FALSE;
+
+               if (!vp_play_brightness_is_realize
+                       (pNormalView->pBrightnessHandle, &bIsRealize)) {
+                       VideoLogWarning("vp_play_volume_is_realize is fail");
+               }
+               if (bIsRealize) {
+                       if (!vp_play_brightness_unrealize
+                               (pNormalView->pBrightnessHandle)) {
+                               VideoLogWarning("vp_play_brightness_unrealize is fail");
+                       }
+               }
+       }
+
+       bool bLock = FALSE;
+       vp_play_normal_view_get_lock_screen(pNormalView, &bLock);
+       if (bLock) {
+               vp_play_normal_view_set_lock_screen(pNormalView, bLock);
+       }
+
+       _vp_play_normal_view_set_sound_path_state(pNormalView);
+
+       VideoLogWarning("share popup==%d,%d", pNormalView->bSharePanelFocusIn,
+                                       pNormalView->bSharePanelPause);
+       if (pNormalView->bSharePanelFocusIn && pNormalView->bSharePanelPause) {
+               VideoLogWarning("pNormalView->bManualPause == FALSE");
+               pNormalView->bSharePanelPause = FALSE;
+               pNormalView->bSharepopup = FALSE;
+
+               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");
+               }
+               if (!_vp_play_normal_view_check_during_call(pNormalView)) {
+                       if (nState != VP_MM_PLAYER_STATE_PLAYING) {
+                               if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+                                       VideoLogError("Unable to play");
+                               }
+                               _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;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_set_share_panel_state(normal_view_handle
+                                                                                          pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+       pNormalView->bSharepopup = FALSE;
+       pNormalView->bSharePanelFocusIn = TRUE;
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+       pPlayView->bIsSharePopup = FALSE;
+       if (pPlayView->bIsPlayBeforeShare) {
+               vp_play_normal_view_resume_or_pause(pPlayView->pNormalView);
+               pPlayView->bIsPlayBeforeShare = FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_on_more_menu(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+       VideoLogInfo("bIsPopupShow=%d,bIsSubtitleShow=%d",
+                                pNormalView->bIsPopupShow, pNormalView->bIsSubtitleShow);
+
+       if (pNormalView->pDetailHandle != NULL) {
+               VideoLogError("Detail View exists");
+               return NULL;
+       }
+
+       if (pNormalView->bIsPopupShow || pNormalView->bIsSubtitleShow) {
+               if (pNormalView->pCtxPopup) {
+                       elm_ctxpopup_dismiss(pNormalView->pCtxPopup);
+               }
+               return TRUE;
+       }
+
+       if (pNormalView->pCtxPopup) {
+               elm_ctxpopup_dismiss(pNormalView->pCtxPopup);
+
+               if (!vp_play_volume_unrealize(pNormalView->pVolumeHandle)) {
+                       VideoLogWarning("vp_play_volume_unrealize is fail");
+               }
+       } else {
+               __vp_normal_more_btn_clicked_cb((void *) pNormalView,
+                                                                               pNormalView->pMoreBtn, NULL);
+       }
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_volume_increase(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       if (pNormalView->pCtxPopup) {
+               elm_ctxpopup_dismiss(pNormalView->pCtxPopup);
+       }
+
+       _vp_play_normal_view_on_volume_popup(pNormalView, FALSE);
+
+       int nCurVal = 0;
+
+       vp_play_volume_increase_value(pNormalView->pVolumeHandle);
+       nCurVal = vp_play_volume_get_value(pNormalView->pVolumeHandle);
+
+       _vp_play_normal_view_set_volume_state(pNormalView);
+
+       pNormalView->nLastVolume = nCurVal;
+
+       _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_volume_decrease(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       if (pNormalView->pCtxPopup) {
+               elm_ctxpopup_dismiss(pNormalView->pCtxPopup);
+       }
+
+       _vp_play_normal_view_on_volume_popup(pNormalView, FALSE);
+
+       int nCurVal = 0;
+
+       vp_play_volume_decrease_value(pNormalView->pVolumeHandle);
+       nCurVal = vp_play_volume_get_value(pNormalView->pVolumeHandle);
+
+       _vp_play_normal_view_set_volume_state(pNormalView);
+
+       pNormalView->nLastVolume = nCurVal;
+
+       _vp_play_normal_view_create_layout_hide_timer(pNormalView);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_volume_mute(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       _vp_play_normal_view_on_volume_popup(pNormalView, FALSE);
+
+       int nMuteVal =
+               vp_play_volume_get_mute_value(pNormalView->pVolumeHandle);
+       if (nMuteVal > 0) {
+               pNormalView->nLastVolume = nMuteVal;
+               vp_play_volume_set_value(pNormalView->pVolumeHandle,
+                                                                pNormalView->nLastVolume);
+       } else {
+               vp_play_volume_set_mute_value(pNormalView->pVolumeHandle);
+               pNormalView->nLastVolume = 0;
+               vp_play_volume_set_value(pNormalView->pVolumeHandle, 0);
+       }
+       _vp_play_normal_view_set_volume_state(pNormalView);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_volume_update(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       if (!pNormalView->pVolumeHandle) {
+               return TRUE;
+       }
+
+       vp_play_volume_update_value(pNormalView->pVolumeHandle);
+       _vp_play_normal_view_set_volume_state(pNormalView);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bLock
+ * @return
+ */
+bool vp_play_normal_view_set_lock_screen(normal_view_handle pViewHandle,
+                                                                                bool bLock)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       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);
+
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_RESROUCE_EDJ_PATH);
+       free(path);
+       elm_object_part_content_unset(pNormalView->pMainLayout,
+                                                                 VP_PLAY_SWALLOW_NORMAL_LOCKSCREEN);
+       VP_EVAS_DEL(pNormalView->pLockBtn);
+       PlayView *pPlayView = pNormalView->pPlayView;
+       Evas_Object *pParent = NULL;
+       if (!pNormalView->pSoundPathBtn) {
+               pParent = pNormalView->pMainLayout;
+
+       } else if (pNormalView->pFunctionLayout) {
+
+               pParent = pNormalView->pFunctionLayout;
+
+       } else {
+
+               pParent = pNormalView->pMainLayout;
+       }
+       if (!pPlayView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+       if (bLock) {
+               VideoLogWarning("================ LOCK HOME KEY ==============");
+               vp_play_util_key_grab(pPlayView->pWin, VP_HOME_KEY);
+
+               _vp_play_normal_view_all_close_popup(pNormalView);
+
+               VP_EVAS_TIMER_DEL(pNormalView->pHideTimer);
+               VP_EVAS_TIMER_DEL(pNormalView->pHideFinishTimer);
+
+               _vp_play_normal_view_hide_layout(pNormalView, TRUE);
+               vp_play_volume_unset_mouse_callbacks(pNormalView->pVolumeHandle,
+                                                                                        pNormalView->pPlayView->pWin);
+
+               pNormalView->pLockScreenTimer =
+                       ecore_timer_add(VP_NORMAL_HIDE_SCREEN_LOCK_TIMER_INTERVAL,
+                                                       __vp_normal_lockscreen_timer_cb,
+                                                       (void *) pNormalView);
+
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_LOCKSCREEN_SHOW, "*");
+
+               pNormalView->pLockBtn =
+                       vp_button_create(pParent, "custom/flat_46_46/default", NULL,
+                                                        (Evas_Smart_Cb)
+                                                        __vp_normal_function_btn_clicked_cb,
+                                                        (Evas_Smart_Cb)
+                                                        __vp_normal_control_btn_press_cb,
+                                                        (Evas_Smart_Cb)
+                                                        __vp_normal_control_btn_unpress_cb,
+                                                        (void *) pNormalView);
+               if (!pNormalView->pLockBtn) {
+                       VideoLogError("elm_button_add is fail");
+                       return FALSE;
+               }
+
+
+               Evas_Object *pIcon = NULL;
+
+               pIcon =
+                       vp_button_create_icon(pNormalView->pLockBtn, edj_path,
+                                                                 VP_PLAY_NORMAL_RES_LOCK);
+               elm_object_part_content_set(pNormalView->pLockBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+               pIcon =
+                       vp_button_create_icon(pNormalView->pLockBtn, edj_path,
+                                                                 VP_PLAY_NORMAL_RES_LOCK_PRESS);
+               elm_object_part_content_set(pNormalView->pLockBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_PRESS_ICON,
+                                                                       pIcon);
+
+               pIcon =
+                       vp_button_create_icon(pNormalView->pLockBtn, edj_path,
+                                                                 VP_PLAY_NORMAL_RES_LOCK);
+               elm_object_part_content_set(pNormalView->pLockBtn,
+                                                                       VP_PLAY_SWALLOW_BUTTON_DIM_ICON,
+                                                                       pIcon);
+
+               elm_object_part_content_set(pNormalView->pMainLayout,
+                                                                       VP_PLAY_SWALLOW_NORMAL_LOCKSCREEN,
+                                                                       pNormalView->pLockBtn);
+
+               evas_object_show(pNormalView->pLockBtn);
+
+               if (pNormalView->bManualPause == FALSE) {
+                       if (!vp_mm_player_play(pNormalView->pPlayerHandle)) {
+                               VideoLogWarning("Start Fail");
+                       }
+                       _vp_play_normal_view_set_play_state(pNormalView);
+                       _vp_play_normal_view_on_capture_mode(pNormalView);
+               }
+       } else {
+               VideoLogWarning("================ UNLOCK HOME KEY ==============");
+               vp_play_util_key_ungrab(pPlayView->pWin, VP_HOME_KEY);
+
+               elm_object_signal_emit(pNormalView->pMainLayout,
+                                                          VP_NORMAL_SIGNAL_LOCKSCREEN_HIDE, "*");
+               vp_play_volume_set_mouse_callbacks(pNormalView->pVolumeHandle,
+                                                                                  pNormalView->pPlayView->pWin);
+               vp_play_util_key_grab(pPlayView->pWin, VP_VOLUME_UP_KEY);
+               vp_play_util_key_grab(pPlayView->pWin, VP_VOLUME_DOWN_KEY);
+               vp_play_util_key_grab(pPlayView->pWin, VP_VOLUME_MUTE);
+
+               _vp_play_normal_view_show_layout(pNormalView);
+       }
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bLock
+ * @return
+ */
+bool vp_play_normal_view_get_lock_screen(normal_view_handle pViewHandle,
+                                                                                bool * bLock)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return FALSE;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       *bLock = pNormalView->bLockScreen;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_view_hide_sound_popup(normal_view_handle pViewHandle)
+{
+
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       if (pNormalView->bIsPopupShow) {
+
+               VP_EVAS_DEL(pNormalView->pPopup);
+               pNormalView->bIsPopupShow = FALSE;
+       }
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_view_web_type_disconnect(normal_view_handle
+                                                                                        pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       if (!pNormalView->pPlayView) {
+               VideoLogError("pNormalView->pPlayView is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+
+       if (pPlayView->nStartPosition <= 0) {
+               int nPosition = 0;
+               if (!vp_mm_player_get_position
+                       (pNormalView->pPlayerHandle, &nPosition)) {
+                       VideoLogError("vp_mm_player_get_position is fail");
+               }
+               if (nPosition > 0) {
+                       pNormalView->nStartPosition = nPosition;
+               }
+       } else {
+               pNormalView->nStartPosition = pPlayView->nStartPosition;
+       }
+
+       vp_mm_player_destroy(pNormalView->pPlayerHandle);
+       pNormalView->pPlayerHandle = NULL;
+
+       VideoLogInfo("pNormalView->nStartPosition : [%d]",
+                                pNormalView->nStartPosition);
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_view_web_type_reconnect(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       if (!pNormalView->pPlayView) {
+               VideoLogError("pNormalView->pPlayView is NULL");
+               return;
+       }
+
+       if (pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_WEB) {
+               VideoLogInfo("Not WEB type");
+               return;
+       }
+
+       if (pNormalView->pPlayerHandle) {
+               vp_mm_player_destroy(pNormalView->pPlayerHandle);
+               pNormalView->pPlayerHandle = NULL;
+       }
+
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (pPlayView->nStartPosition > 0) {
+               pNormalView->nStartPosition = pPlayView->nStartPosition;
+       }
+
+       VideoLogInfo("pNormalView->nStartPosition : [%d]",
+                                pNormalView->nStartPosition);
+       _vp_play_normal_view_play_start(pNormalView, FALSE);
+}
+
+//For mini controller
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+int vp_controller_normal_view_get_played_state(normal_view_handle
+                                                                                          pViewHandle)
+{
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+       vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+       if (!pNormalView) {
+               VideoLogError("pViewHandle is NULL");
+               return nState;
+       }
+       if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) {
+               VideoLogWarning("vp_mm_player_get_state is fail");
+       }
+       VideoLogError("state is %d", nState);
+
+       return (int) nState;
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_normal_view_db_change(normal_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+       PlayView *pPlayView = pNormalView->pPlayView;
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+
+       if (pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_WEB &&
+               pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_PREVIEW &&
+               pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_MESSAGE &&
+               pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_EMAIL &&
+               pNormalView->nLaunchingType != VIDEO_PLAY_TYPE_MULTI_PATH) {
+
+               char *pVideoId = NULL;
+               vp_media_contents_get_video_id(pNormalView->szMediaURL, &pVideoId);
+
+               VideoSecureLogInfo("change == %d, %s, %s",
+                                                  pNormalView->nLaunchingType,
+                                                  pNormalView->szMediaURL, pVideoId);
+               if (!vp_file_exists(pNormalView->szMediaURL) || !pVideoId) {
+                       VideoLogError("current file is deleted");
+                       _vp_play_normal_view_release_service_share(pNormalView->
+                                                                                                          pPlayView);
+                       VP_FREE(pVideoId);
+                       if (!pPlayView->pFunc) {
+                               VideoLogError("pPlayView pFunc is NULL");
+                               return;
+                       }
+
+                       if (!pPlayView->pFunc->vp_play_func_exit) {
+                               VideoLogError("pPlayView exit Func 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");
+                       }
+                       if (nState == VP_MM_PLAYER_STATE_PAUSED) {
+                               vp_device_set_screen_off(FALSE);
+                               vp_device_display_lcd_unlock();
+
+                               pPlayView->pFunc->vp_play_func_exit(pPlayView);
+                       }
+
+                       PlayView *pPlayView = pNormalView->pPlayView;
+                       if (pNormalView->bAudioOnly == TRUE) {
+                               pNormalView->bAudioOnly = FALSE;
+                               if (pPlayView) {
+                                       pPlayView->bAudioOnly = FALSE;
+
+                                       vp_play_normal_view_on_controller_button_press
+                                               (pPlayView->pNormalView, CONTROLLER_PAUSE_BUTTON);
+                                       if (pPlayView->win_minicon) {
+                                               vp_minicontroller_destroy(pPlayView);
+                                       }
+                                       if (pPlayView->win_lockmini) {
+                                               vp_lockscreenmini_destroy(pPlayView);
+                                       }
+                               }
+
+                       }
+               }
+               VP_FREE(pVideoId);
+       }
+}
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+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;
+
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return -1;
+       }
+
+       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;
+}
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+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;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_reset_audio_only(normal_view_handle * pViewHandle)
+{
+
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+
+       pNormalView->bAudioOnly = FALSE;
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_normal_view_handle_language_change(normal_view_handle * pViewHandle)
+{
+       NormalView *pNormalView = (NormalView *) pViewHandle;
+
+       if (!pNormalView) {
+               VideoLogError("pNormalView is NULL");
+               return FALSE;
+       }
+
+       VP_EVAS_DEL(pNormalView->pCtxPopup);
+
+       if (pNormalView->nDisplayMode == VP_MM_PLAYER_DISPLAY_LETTER_BOX) {
+               elm_object_text_set(pNormalView->pScreenSizeBtn,
+                               VP_PLAY_STRING_COM_FULL);
+       } else {
+               elm_object_text_set(pNormalView->pScreenSizeBtn,
+                               VP_PLAY_STRING_COM_KEEP_RATIO);
+       }
+
+       return TRUE;
+}
diff --git a/playview/src/vp-play-view.c b/playview/src/vp-play-view.c
new file mode 100755 (executable)
index 0000000..505156e
--- /dev/null
@@ -0,0 +1,3058 @@
+/*
+ * Copyright (c) 2020 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 <media_key.h>
+#include <sound_manager.h>
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-view.h"
+#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-ug.h"
+
+#include "vp-play-util.h"
+#include "vp-play-config.h"
+#include "vp-play-preference.h"
+#include "vp-hollic.h"
+#include "vp-sound.h"
+#include "vp-sensor.h"
+#include "vp-mm-player.h"
+
+#ifdef ENABLE_DRM_FEATURE
+#include "vp-drm.h"
+#endif
+#include "vp-multi-path.h"
+#include "vp-media-contents.h"
+
+/* check temp */
+#include "vp-play-log.h"
+#include "vp-util.h"
+#include "vp-avrcp.h"
+
+
+#define VP_PLAY_VIEW_VOLUME_TIMER              1.0
+#define VP_PLAY_VIEW_VOLUME_SPEED_TIMER                0.05
+#define VP_PLAY_VIEW_DB_UPDATE_TIMER           1.0
+
+static bool _vp_play_view_create_mode(PlayView * pPlayView);
+static bool _vp_play_view_destroy_mode(PlayView * pPlayView);
+
+static void _vp_play_view_destroy_handle(PlayView * pPlayView);
+static void _vp_play_view_create_volume_timer(PlayView * pPlayView);
+
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_play_view_volume_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pUserData;
+       if (pPlayView->bVolumeIncrease) {
+               vp_play_normal_view_volume_increase(pPlayView->pNormalView);
+       } else {
+               vp_play_normal_view_volume_decrease(pPlayView->pNormalView);
+       }
+
+       VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+
+       pPlayView->pVolumeTimer =
+               ecore_timer_add(VP_PLAY_VIEW_VOLUME_SPEED_TIMER,
+                                               __vp_play_view_volume_timer_cb,
+                                               (void *) pPlayView);
+
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_play_view_hw_key_long_press_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pUserData;
+       pPlayView->pHwKeyLongPressTimer = NULL;
+
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_play_view_media_long_press_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pUserData;
+
+       VP_EVAS_TIMER_DEL(pPlayView->pMediaLongPressTimer);
+
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_play_view_media_key_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pUserData;
+
+       if (pPlayView->nMediaKeyPressCount == 1) {
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       vp_play_normal_view_resume_or_pause(pPlayView->pNormalView);
+               }
+
+       } else if (pPlayView->nMediaKeyPressCount == 2) {
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       vp_play_normal_view_next_play(pPlayView->pNormalView);
+               }
+       } else if (pPlayView->nMediaKeyPressCount == 3) {
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       vp_play_normal_view_prev_play(pPlayView->pNormalView);
+               }
+       }
+       pPlayView->nMediaKeyPressCount = 0;
+
+       VP_EVAS_TIMER_DEL(pPlayView->pMediaKeyTimer);
+
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuf
+ * @param nByte
+ */
+static void __vp_play_view_noti_pipe_cb(void *pUserData, void *pBuf,
+                                                                               int nByte)
+{
+       if (!pUserData) {
+               VideoLogError("PlayView handle is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = (PlayView *) pUserData;
+
+       if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+               vp_play_normal_view_hide_sound_popup(pPlayView->pNormalView);
+               vp_play_normal_view_update(pPlayView->pNormalView);
+       }
+}
+
+/**
+ *
+ * @param nRoute
+ * @param bAvailable
+ * @param pUserData
+ */
+static void __vp_play_sound_route_change_cb(int nRoute, bool bAvailable,
+                                                                                       void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("PlayView handle is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = (PlayView *) pUserData;
+
+       if (pPlayView->pNotiPipe) {
+               ecore_pipe_write(pPlayView->pNotiPipe, pUserData,
+                                                sizeof(PlayView));
+       }
+}
+
+/**
+ *
+ * @param nType
+ * @param nVolume
+ * @param pUserData
+ */
+static void __vp_play_sound_volume_change_cb(int nType, int nVolume,
+                                                                                        void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("PlayView handle is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = (PlayView *) pUserData;
+
+       if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+               vp_play_normal_view_volume_update(pPlayView->pNormalView);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_rotate_changed_cb(void *pUserData,
+                                                                               Evas_Object * pObj,
+                                                                               void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("PlayView handle is NULL");
+               return;
+       }
+       PlayView *pPlayView = (PlayView *) pUserData;
+
+       int nAngle = elm_win_rotation_get((Evas_Object *) pObj);
+       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;
+       }
+
+       VideoLogWarning("CHANGE ROTATE : %d", nRotate);
+
+       if (pPlayView->nRotate != nRotate) {
+               vp_play_view_set_rotate(pPlayView, nRotate);
+       }
+       if (pPlayView->win_minicon) {
+               vp_minicontroller_rotate(pPlayView, nAngle);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_play_view_realize_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("PlayView handle is NULL");
+               return;
+       }
+
+       vp_util_lock_cpu();
+
+       PlayView *pPlayView = (PlayView *) pUserData;
+
+
+       /* send event to parent */
+       if (pPlayView->pCallback == NULL) {
+               VideoLogError("PlayView Callback is NULL");
+               return;
+       }
+
+       if (pPlayView->pCallback->pRealizeCb == NULL) {
+               VideoLogError("PlayView Realize Callback is NULL");
+               return;
+       }
+
+       pPlayView->pCallback->pRealizeCb(pPlayView->pUserData);
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_play_view_destroy_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("PlayView handle is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = (PlayView *) pUserData;
+
+       /* send event to parent */
+       if (!pPlayView->pCallback) {
+               VideoLogError("PlayView Callback is NULL");
+               return;
+       }
+
+       if (!pPlayView->pCallback->pDestroyCb) {
+               VideoLogError("PlayView Realize Callback is NULL");
+               return;
+       }
+
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pKeyEventDown);
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pKeyEventUp);
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pFocusIn);
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pFocusOut);
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pVisiblility);
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pClientMessage);
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pDeleteRequest);
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pPropertyHandler);
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pMouseInHandler);
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pMouseOutHandler);
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pPalmHoldEventHandler);
+
+       pPlayView->pCallback->pDestroyCb(pPlayView->pUserData);
+
+       elm_exit();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param nType
+ * @param pEvent
+ * @return
+ */
+static Eina_Bool __vp_play_view_event_key_down_cb(void *pUserData,
+                                                                                                 int nType, void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("PlayView handle is NULL");
+               return EINA_FALSE;
+       }
+
+       if (!pEvent) {
+               VideoLogError("pEvent handle is NULL");
+               return EINA_FALSE;
+       }
+
+
+       PlayView *pPlayView = (PlayView *) pUserData;
+       Ecore_Event_Key *pKeyEvent = (Ecore_Event_Key *) pEvent;
+
+       /* default operation */
+       VideoLogWarning("HW EVENT KEY DOWN:%s", pKeyEvent->keyname);
+
+       if (!strcmp(pKeyEvent->keyname, VP_END_KEY)) {
+               VideoLogWarning("Back(End) key");
+       } else if (!strcmp(pKeyEvent->keyname, VP_MENU_KEY)) {
+               VideoLogWarning("Menu key");
+       } else if (!strcmp(pKeyEvent->keyname, VP_HOME_KEY)) {
+               VideoLogWarning("HOME_KEY");
+
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       bool bLock = FALSE;
+                       pPlayView->bManualAppPause = TRUE;
+                       vp_play_normal_view_get_lock_screen(pPlayView->pNormalView,
+                                                                                               &bLock);
+                       if (bLock) {
+                               vp_play_normal_view_set_lock_screen(pPlayView->pNormalView,
+                                                                                                       bLock);
+                       }
+                       if (vp_play_normal_view_is_audio_only(pPlayView)) {
+                               VideoLogDebug("Lock the screen");
+                               vp_play_util_set_unlock_power_key();
+                       }
+               }
+       } else if (!strcmp(pKeyEvent->keyname, VP_MEDIA_KEY)) {
+               VP_EVAS_TIMER_DEL(pPlayView->pMediaLongPressTimer);
+               pPlayView->pMediaLongPressTimer =
+                       ecore_timer_add(0.5, __vp_play_view_media_long_press_timer_cb,
+                                                       (void *) pPlayView);
+       } else if (!strcmp(pKeyEvent->keyname, VP_VOLUME_DOWN_KEY)) {
+               VideoLogWarning("VOLUME DOWN");
+               VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       vp_normalview_popup_style_e nPopupState =
+                               vp_play_normal_view_get_popup_show_state(pPlayView->
+                                                                                                                pNormalView);
+                       if (nPopupState == VP_PLAY_NORMAL_VIEW_POPUP_NONE
+                               || nPopupState == VP_PLAY_NORMAL_VIEW_CTX_POPUP) {
+                               vp_play_normal_view_volume_decrease(pPlayView->
+                                                                                                       pNormalView);
+                               pPlayView->bVolumeIncrease = FALSE;
+                               _vp_play_view_create_volume_timer(pPlayView);
+                       }
+               }
+       } else if (!strcmp(pKeyEvent->keyname, "Down")) {
+               VideoLogWarning("KEY DOWN");
+               VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       vp_normalview_popup_style_e nPopupState =
+                               vp_play_normal_view_get_popup_show_state(pPlayView->
+                                                                                                                pNormalView);
+                       if (nPopupState == VP_PLAY_NORMAL_VIEW_POPUP_NONE) {
+                               if (vp_play_normal_view_get_main_layout_focus_state
+                                       (pPlayView->pNormalView) == FALSE) {
+                                       vp_play_normal_view_volume_decrease(pPlayView->
+                                                                                                               pNormalView);
+                                       pPlayView->bVolumeIncrease = FALSE;
+                                       _vp_play_view_create_volume_timer(pPlayView);
+                               }
+                       }
+               }
+       } else if (!strcmp(pKeyEvent->keyname, VP_VOLUME_UP_KEY)) {
+               VideoLogWarning("VOLUME UP");
+               VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       vp_normalview_popup_style_e nPopupState =
+                               vp_play_normal_view_get_popup_show_state(pPlayView->
+                                                                                                                pNormalView);
+                       if (nPopupState == VP_PLAY_NORMAL_VIEW_POPUP_NONE
+                               || nPopupState == VP_PLAY_NORMAL_VIEW_CTX_POPUP) {
+                               vp_play_normal_view_volume_increase(pPlayView->
+                                                                                                       pNormalView);
+                               pPlayView->bVolumeIncrease = TRUE;
+                               _vp_play_view_create_volume_timer(pPlayView);
+                       }
+               }
+       } else if (!strcmp(pKeyEvent->keyname, "Up")) {
+               VideoLogWarning("KEY UP");
+               VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       vp_normalview_popup_style_e nPopupState =
+                               vp_play_normal_view_get_popup_show_state(pPlayView->
+                                                                                                                pNormalView);
+                       if (nPopupState == VP_PLAY_NORMAL_VIEW_POPUP_NONE) {
+                               if (vp_play_normal_view_get_main_layout_focus_state
+                                       (pPlayView->pNormalView) == FALSE) {
+                                       vp_play_normal_view_volume_increase(pPlayView->
+                                                                                                               pNormalView);
+                                       pPlayView->bVolumeIncrease = TRUE;
+                                       _vp_play_view_create_volume_timer(pPlayView);
+                               }
+                       }
+               }
+       } else if (!strcmp(pKeyEvent->keyname, VP_VOLUME_MUTE)) {
+               VideoLogWarning("VOLUME MUTE");
+               VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       vp_play_normal_view_volume_mute(pPlayView->pNormalView);
+                       pPlayView->bVolumeIncrease = TRUE;
+                       _vp_play_view_create_volume_timer(pPlayView);
+               }
+
+       } else if (!strcmp(pKeyEvent->keyname, VP_POWER_KEY)
+                          || !strcmp(pKeyEvent->keyname, VP_SCREENSAVER_KEY)) {
+               VideoLogWarning("POWER KEY or SCREENSAVER KEY");
+
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       VP_EVAS_TIMER_DEL(pPlayView->pHwKeyLongPressTimer);
+                       pPlayView->pHwKeyLongPressTimer =
+                               ecore_timer_add(0.5,
+                                                               __vp_play_view_hw_key_long_press_timer_cb,
+                                                               (void *) pPlayView);
+
+                       vp_play_normal_check_detail_view(pPlayView->pNormalView);
+                       bool bPause = FALSE;
+                       vp_play_normal_view_get_pause_status(pPlayView->pNormalView,
+                                                                                                &bPause);
+                       if (bPause && !vp_play_normal_view_is_audio_only(pPlayView)) {
+                               vp_play_util_set_lock_power_key();
+                       } else {
+                               if (vp_play_normal_view_is_audio_only(pPlayView)) {
+                                       VideoLogDebug("Lock the screen");
+                                       vp_play_util_set_unlock_power_key();
+                               }
+                               VideoLogDebug("Lock feature disabled");
+                       }
+
+                       vp_mm_player_state_t nState =
+                               vp_play_normal_view_get_player_state(pPlayView);
+                       if (nState == VP_MM_PLAYER_STATE_PLAYING
+                               && pPlayView->win_lockmini)
+                               vp_lockscreenmini_show(pPlayView);
+
+                       return EINA_TRUE;
+               }
+       } else if (!strcmp(pKeyEvent->keyname, VP_KEY_CANCLE)
+                          || !strcmp(pKeyEvent->keyname, "Esc")) {
+               VideoLogWarning("CANCLE KEY");
+               VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+       } else if (!strcmp(pKeyEvent->keyname, VP_PLAY_KEY)
+                          || !strcmp(pKeyEvent->keyname, VP_PAUSE_KEY)) {
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       vp_play_normal_view_resume_or_pause(pPlayView->pNormalView);
+               }
+       } else if (!strcmp(pKeyEvent->keyname, VP_PLAY_NEXT_SONG_KEY)) {
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       vp_play_normal_view_next_play(pPlayView->pNormalView);
+               }
+       } else if (!strcmp(pKeyEvent->keyname, VP_PLAY_PREV_SONG_KEY)) {
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       vp_play_normal_view_prev_play(pPlayView->pNormalView);
+               }
+       } else if (!strcmp(pKeyEvent->keyname, VP_FORWARD_KEY)) {
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       vp_normalview_popup_style_e nPopupState =
+                               vp_play_normal_view_get_popup_show_state(pPlayView->
+                                                                                                                pNormalView);
+                       if (nPopupState == VP_PLAY_NORMAL_VIEW_POPUP_NONE
+                               || nPopupState == VP_PLAY_NORMAL_VIEW_CTX_POPUP) {
+                               if (vp_play_normal_view_get_main_layout_focus_state
+                                       (pPlayView->pNormalView) == FALSE) {
+                                       if (vp_play_normal_view_get_main_layout_show_state
+                                               (pPlayView->pNormalView) == FALSE) {
+                                               vp_play_normal_view_show_main_layout(pPlayView->
+                                                                                                                        pNormalView);
+                                       }
+                                       if (pPlayView->bKeySpeed == FALSE) {
+                                               vp_play_normal_view_ff_rew_keyboard_longpress_event_cb
+                                                       (pPlayView->pNormalView, FALSE, TRUE);
+                                               pPlayView->bKeySpeed = TRUE;
+                                       }
+                               }
+                       }
+               }
+       } else if (!strcmp(pKeyEvent->keyname, VP_REWIND_KEY)) {
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       vp_normalview_popup_style_e nPopupState =
+                               vp_play_normal_view_get_popup_show_state(pPlayView->
+                                                                                                                pNormalView);
+                       if (nPopupState == VP_PLAY_NORMAL_VIEW_POPUP_NONE
+                               || nPopupState == VP_PLAY_NORMAL_VIEW_CTX_POPUP) {
+                               if (vp_play_normal_view_get_main_layout_focus_state
+                                       (pPlayView->pNormalView) == FALSE) {
+                                       if (vp_play_normal_view_get_main_layout_show_state
+                                               (pPlayView->pNormalView) == FALSE) {
+                                               vp_play_normal_view_show_main_layout(pPlayView->
+                                                                                                                        pNormalView);
+                                       }
+                                       if (pPlayView->bKeySpeed == FALSE) {
+                                               vp_play_normal_view_ff_rew_keyboard_longpress_event_cb
+                                                       (pPlayView->pNormalView, FALSE, FALSE);
+                                               pPlayView->bKeySpeed = TRUE;
+                                       }
+                               }
+                       }
+               }
+       } else if (!strcmp(pKeyEvent->keyname, "Tab")) {
+               VideoLogInfo("Tab Press Down");
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       bool bMainShowState =
+                               vp_play_normal_view_get_main_layout_show_state(pPlayView->
+                                                                                                                          pNormalView);
+                       if (bMainShowState) {
+                               VideoLogInfo("main focus in");
+                               vp_play_normal_view_set_main_layout_focus_in(pPlayView->
+                                                                                                                        pNormalView);
+                       }
+               }
+       } else if (!strcmp(pKeyEvent->keyname, "Return")) {
+               VideoLogInfo("Return Press Down");
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       bool bMainFocusState =
+                               vp_play_normal_view_get_main_layout_focus_state(pPlayView->
+                                                                                                                               pNormalView);
+                       if (bMainFocusState == FALSE) {
+                               vp_normalview_popup_style_e nPopupState =
+                                       vp_play_normal_view_get_popup_show_state(pPlayView->
+                                                                                                                        pNormalView);
+                               if (nPopupState == VP_PLAY_NORMAL_VIEW_POPUP_NONE) {
+                                       vp_play_normal_view_set_resume_or_pause(pPlayView->
+                                                                                                                       pNormalView);
+                               }
+                       }
+               }
+       } else if (!strcmp(pKeyEvent->keyname, "space")) {
+               VideoLogInfo("space Press Down");
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       vp_normalview_popup_style_e nPopupState =
+                               vp_play_normal_view_get_popup_show_state(pPlayView->
+                                                                                                                pNormalView);
+                       if (nPopupState == VP_PLAY_NORMAL_VIEW_POPUP_NONE) {
+                               vp_play_normal_view_set_resume_or_pause(pPlayView->
+                                                                                                               pNormalView);
+                       }
+               }
+       }
+       //For normal view hide control layout
+       if (!strcmp(pKeyEvent->keyname, "Tab")
+               || !strcmp(pKeyEvent->keyname, "Right")
+               || !strcmp(pKeyEvent->keyname, "Left")
+               || !strcmp(pKeyEvent->keyname, "Up")
+               || !strcmp(pKeyEvent->keyname, "Down")) {
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       vp_play_normal_view_create_main_layout_hide_timer(pPlayView->
+                                                                                                                         pNormalView);
+               }
+       }
+       /* send event to parent */
+       if (pPlayView->pCallback == NULL) {
+               VideoLogError("PlayView Callback is NULL");
+               return EINA_FALSE;
+       }
+
+       if (pPlayView->pCallback->pEventKeyDown == NULL) {
+               VideoLogError("PlayView pEventKeyDown Callback is NULL");
+               return EINA_FALSE;
+       }
+
+       pPlayView->pCallback->pEventKeyDown(pPlayView->pUserData, nType,
+                                                                               pEvent);
+
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param nType
+ * @param pEvent
+ * @return
+ */
+static Eina_Bool __vp_play_view_event_key_up_cb(void *pUserData, int nType,
+                                                                                               void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("PlayView handle is NULL");
+               return EINA_FALSE;
+       }
+
+       if (!pEvent) {
+               VideoLogError("pEvent handle is NULL");
+               return EINA_FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pUserData;
+       Ecore_Event_Key *pKeyEvent = (Ecore_Event_Key *) pEvent;
+
+       /* default operation */
+       VideoLogWarning("HW EVENT KEY UP:%s", pKeyEvent->keyname);
+
+       if (!strcmp(pKeyEvent->keyname, VP_END_KEY)) {
+               VideoLogWarning("Back(End) key");
+       } else if (!strcmp(pKeyEvent->keyname, VP_MENU_KEY)
+                          || !strcmp(pKeyEvent->keyname, "Menu")) {
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       vp_play_normal_view_on_more_menu(pPlayView->pNormalView);
+               }
+       } else if (!strcmp(pKeyEvent->keyname, VP_HOME_KEY)) {
+               VideoLogWarning("HOME_KEY");
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       bool bLock = FALSE;
+                       vp_play_normal_view_get_lock_screen(pPlayView->pNormalView,
+                                                                                               &bLock);
+                       if (!bLock && !pPlayView->bAudioOnly) {
+                               if (!vp_play_normal_view_pause(pPlayView->pNormalView)) {
+                                       VideoLogError("vp_play_normal_view_pause fail");
+                               }
+                               if (!vp_play_normal_view_update(pPlayView->pNormalView)) {
+                                       VideoLogError("vp_play_normal_view_update fail");
+                               }
+                       }
+               }
+       } else if (!strcmp(pKeyEvent->keyname, VP_VOLUME_DOWN_KEY)
+                          || !strcmp(pKeyEvent->keyname, "Down")) {
+               VideoLogWarning("VOLUME DOWN");
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+               }
+       } else if (!strcmp(pKeyEvent->keyname, VP_VOLUME_UP_KEY)
+                          || !strcmp(pKeyEvent->keyname, "Up")) {
+               VideoLogWarning("VOLUME UP");
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+               }
+       } else if (!strcmp(pKeyEvent->keyname, VP_VOLUME_MUTE)) {
+               VideoLogWarning("VOLUME MUTE");
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+               }
+       } else if (!strcmp(pKeyEvent->keyname, VP_MEDIA_KEY)) {
+               if (pPlayView->nMediaKeyPressCount > 3) {
+                       VideoLogWarning("pressed more than 3times");
+                       return EINA_FALSE;
+               }
+
+               if (pPlayView->pMediaLongPressTimer) {
+                       VP_EVAS_TIMER_DEL(pPlayView->pMediaKeyTimer);
+                       pPlayView->pMediaKeyTimer =
+                               ecore_timer_add(0.5, __vp_play_view_media_key_timer_cb,
+                                                               (void *) pPlayView);
+                       pPlayView->nMediaKeyPressCount++;
+               } else {
+                       VP_EVAS_TIMER_DEL(pPlayView->pMediaLongPressTimer);
+                       pPlayView->nMediaKeyPressCount = 0;
+               }
+       } else if (!strcmp(pKeyEvent->keyname, VP_POWER_KEY)
+                          || !strcmp(pKeyEvent->keyname, VP_SCREENSAVER_KEY)) {
+               VideoLogWarning("POWER KEY");
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       if (pPlayView->pHwKeyLongPressTimer) {
+                               VideoLogWarning("HW Key: It is click event!");
+                               VP_EVAS_TIMER_DEL(pPlayView->pHwKeyLongPressTimer);
+                               bool bLock = FALSE;
+                               vp_play_normal_view_get_lock_screen(pPlayView->pNormalView,
+                                                                                                       &bLock);
+                               bLock = !bLock;
+                               vp_play_normal_view_set_lock_screen(pPlayView->pNormalView,
+                                                                                                       bLock);
+                       }
+
+                       bool bPause = FALSE;
+                       vp_play_normal_view_get_pause_status(pPlayView->pNormalView,
+                                                                                                &bPause);
+                       if (bPause || vp_play_normal_view_is_audio_only(pPlayView)) {
+                               vp_play_util_set_unlock_power_key();
+                       }
+               }
+       } else if (!strcmp(pKeyEvent->keyname, VP_KEY_CANCLE)
+                          || !strcmp(pKeyEvent->keyname, "Esc")) {
+               VideoLogWarning("CANCLE KEY");
+
+               VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+       } else if (!strcmp(pKeyEvent->keyname, VP_FORWARD_KEY)) {
+               VideoLogWarning("Right");
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       if (pPlayView->bKeySpeed == TRUE) {
+                               vp_play_normal_view_ff_rew_keyboard_longpress_event_cb
+                                       (pPlayView->pNormalView, TRUE, TRUE);
+                               pPlayView->bKeySpeed = FALSE;
+                       }
+               }
+       } else if (!strcmp(pKeyEvent->keyname, VP_REWIND_KEY)) {
+               VideoLogWarning("Left");
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       if (pPlayView->bKeySpeed == TRUE) {
+                               vp_play_normal_view_ff_rew_keyboard_longpress_event_cb
+                                       (pPlayView->pNormalView, TRUE, FALSE);
+                               pPlayView->bKeySpeed = FALSE;
+                       }
+               }
+       }
+
+       /* send event to parent */
+       if (pPlayView->pCallback == NULL) {
+               VideoLogWarning("PlayView Callback is NULL");
+               return EINA_FALSE;
+       }
+
+       if (pPlayView->pCallback->pEventKeyUp == NULL) {
+               VideoLogWarning("PlayView pEventKeyUp Callback is NULL");
+               return EINA_FALSE;
+       }
+
+       pPlayView->pCallback->pEventKeyUp(pPlayView->pUserData, nType, pEvent);
+
+       return EINA_FALSE;
+}
+
+#ifdef OLD_SENSOR_API
+static void __vp_play_view_sensor_event_cb(vp_sensor_type_t nType,
+                                                                                  unsigned long long timestamp,
+                                                                                  void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = (PlayView *) pUserData;
+
+       if (nType != VP_SENSOR_TYPE_FACEDOWN) {
+               VideoLogWarning("Invalid sensor type");
+               return;
+       }
+
+       video_sound_device_type_t nSoundDevType = VP_SOUND_DEVICE_NONE;
+       vp_sound_get_active_device(&nSoundDevType);
+
+       if (nSoundDevType == VP_SOUND_DEVICE_EARJACK
+               || nSoundDevType == VP_SOUND_DEVICE_BLUETOOTH) {
+               VideoLogWarning
+                       ("Earjack or Bluetooth is connected. ignore sensor event");
+               return;
+
+       }
+
+       if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+               if (!vp_play_normal_view_pause(pPlayView->pNormalView)) {
+                       VideoLogError("vp_play_normal_view_realize fail");
+               }
+               if (!vp_play_normal_view_set_manual_pause
+                       (pPlayView->pNormalView, TRUE)) {
+                       VideoLogError("vp_play_normal_view_set_manual_pause fail");
+               }
+       }
+}
+#endif
+
+/**
+ *
+ * @param key
+ * @param pUserData
+ */
+static void __vp_play_view_rotate_lock_key_changed_cb(system_settings_key_e
+                                                                                                         key, void *pUserData)
+{
+
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = (PlayView *) pUserData;
+       bool bLockState = FALSE;
+
+       if (!vp_play_config_get_rotate_lock_status(&bLockState)) {
+               VideoLogError("vp_play_config_get_rotate_lock_status is fail");
+               return;
+       }
+       vp_normal_rotate_icon_timer_cb(pUserData);
+       if (bLockState == FALSE) {
+               elm_win_wm_rotation_preferred_rotation_set(pPlayView->pWin, 0);
+       } else {
+               elm_win_wm_rotation_preferred_rotation_set(pPlayView->pWin, -1);
+       }
+}
+
+/**
+ *
+ * @param key
+ * @param pUserData
+ */
+static void __vp_play_view_lock_state_key_changed_cb(system_settings_key_e
+                                                                                                        key, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = (PlayView *) pUserData;
+       int lock_state = SYSTEM_SETTINGS_LOCK_STATE_UNLOCK;
+
+       if (key == SYSTEM_SETTINGS_KEY_LOCK_STATE) {
+               system_settings_get_value_int(key, &lock_state);
+
+               if (vp_play_normal_view_is_audio_only(pPlayView)) {
+                       vp_mm_player_state_t nState =
+                               vp_play_normal_view_get_player_state(pPlayView);
+
+                       if (lock_state == SYSTEM_SETTINGS_LOCK_STATE_LOCK) {
+                               VideoLogInfo("Screen locked in Audio only mode");
+                               if (nState == VP_MM_PLAYER_STATE_PLAYING)
+                                       vp_lockscreenmini_show(pPlayView);
+                               else
+                                       vp_lockscreenmini_hide(pPlayView);
+                       }
+
+                       if (lock_state == SYSTEM_SETTINGS_LOCK_STATE_UNLOCK) {
+                               VideoLogInfo("Screen unlocked in Audio only mode");
+                               if (nState == VP_MM_PLAYER_STATE_PLAYING)
+                                       vp_lockscreenmini_hide(pPlayView);
+                       }
+               }
+       }
+}
+
+/**
+ *
+ * @param state
+ * @param ap
+ * @param user_data
+ */
+static void
+__vp_play_view_wifi_key_changed_cb(wifi_manager_connection_state_e state,
+                                                                  wifi_manager_ap_h ap, void *user_data)
+{
+       VideoLogError("not supported");
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvasObject
+ * @param pEvent
+ */
+static void __vp_play_view_delete_request_cb(void *pUserData,
+                                                                                        Evas_Object * pEvasObject,
+                                                                                        void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       evas_object_smart_callback_del(pEvasObject, "delete,request",
+                                                                  __vp_play_view_delete_request_cb);
+
+       PlayView *pPlayView = (PlayView *) pUserData;
+       VideoLogError("== delete request call ==");
+
+       _vp_play_view_destroy_handle(pPlayView);
+
+       elm_exit();
+}
+
+/* internal functions */
+/**
+ *
+ * @param pViewHandle
+ * @param nMode
+ * @param szMediaURL
+ * @param nStartPos
+ * @param bManualPause
+ */
+static void __vp_play_view_func_change_mode(void *pViewHandle,
+                                                                                       video_play_mode_t nMode,
+                                                                                       const char *szMediaURL,
+                                                                                       int nStartPos,
+                                                                                       bool bManualPause)
+{
+       if (!pViewHandle) {
+               VideoLogError("pViewHandle is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       if (nMode == pPlayView->nPlayMode) {
+               VideoLogWarning("Skip for Same mode");
+               return;
+       }
+
+       if (pPlayView->bViewChange) {
+               VideoLogWarning("Skip for Same mode");
+               return;
+       }
+       VideoLogWarning(">> Change mode");
+
+       pPlayView->bViewChange = TRUE;
+
+       VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+
+       VP_FREE(pPlayView->szMediaURL);
+       VP_STRDUP(pPlayView->szMediaURL, szMediaURL);
+
+       /* destroy old view */
+       bool bIsTempRealize = pPlayView->bRealized;
+       vp_play_view_unrealize(pPlayView);
+
+       if (nStartPos >= 0) {
+               pPlayView->nStartPosition = nStartPos;
+       }
+
+       pPlayView->bStartPause = bManualPause;
+
+       _vp_play_view_destroy_mode(pPlayView);
+
+       VideoLogInfo("previous model = %d,current view = %d",
+                                pPlayView->nPlayMode, nMode);
+
+       pPlayView->nPlayMode = nMode;
+
+       bool bLockState = FALSE;
+       if (!vp_play_config_get_rotate_lock_status(&bLockState)) {
+               VideoLogError("vp_play_config_get_rotate_lock_status is fail");
+               return;
+       }
+
+       if (bLockState == FALSE) {
+               // if auto rotation is locked. set player window as orientation 0
+               elm_win_rotation_with_resize_set(pPlayView->pWin,
+                                                                                APP_DEVICE_ORIENTATION_0);
+               vp_play_view_set_rotate(pPlayView, VIDEO_PLAY_ROTATE_NONE);
+       }
+
+       /* create new view */
+       if (!_vp_play_view_create_mode(pPlayView)) {
+               VideoLogWarning("_vp_play_view_create_mode fail");
+               return;
+       }
+
+       if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+               if (!vp_play_normal_view_set_url
+                       (pPlayView->pNormalView, pPlayView->szMediaURL)) {
+                       VideoLogError("vp_play_normal_view_set_url fail");
+                       return;
+               }
+               if (!vp_play_normal_view_set_sound_filter
+                       (pPlayView->pNormalView, pPlayView->nSoundAlive)) {
+                       VideoLogError
+                               ("vp_play_normal_view_set_sound_filter handle is null");
+                       return;
+               }
+
+               if (!vp_play_normal_view_set_manual_pause
+                       (pPlayView->pNormalView, pPlayView->bStartPause)) {
+                       VideoLogError("vp_play_normal_view_set_manual_pause fail");
+                       return;
+               }
+
+               if (!vp_play_normal_view_set_rotate
+                       (pPlayView->pNormalView, pPlayView->nRotate, FALSE)) {
+                       VideoLogError("vp_play_normal_view_set_rotate fail");
+                       return;
+               }
+       }
+
+       if (bIsTempRealize) {
+               vp_play_view_realize(pPlayView);
+       }
+
+       pPlayView->bViewChange = FALSE;
+       VideoLogWarning("== Complete View Change ==");
+
+}
+
+/**
+ *
+ * @param pViewHandle
+ */
+static void __vp_play_view_func_exit(void *pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("play view handle is NULL");
+               return;
+       }
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       pPlayView->bManualAppPause = TRUE;
+
+       /* launching videos
+          Scenario 1 : Videos - Play - MultiWin - Idle - Change to PlayView(Maximize) - back => Launch Videos.
+        */
+       if (pPlayView->bRelaunchCaller && pPlayView->bActivate == TRUE) {
+
+               vp_play_app_launch_videos(pPlayView->pWin, TRUE,
+                                                                 (void *) pPlayView);
+       }
+       __vp_play_view_destroy_cb((void *) pPlayView);
+}
+
+
+#ifdef NOT_USED
+static void __vp_play_view_sensor_popup_close_cb(int nType, bool bPause,
+                                                                                                void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = (PlayView *) pUserData;
+
+       vp_play_sensor_popup_destroy(pPlayView->pSensorPopup);
+       pPlayView->pSensorPopup = NULL;
+}
+#endif
+
+
+/* internal functions */
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_play_view_init_config(PlayView * pPlayView)
+{
+       if (!pPlayView) {
+               VideoLogError("play view handle is NULL");
+               return;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_CUSTOM_THEME);
+       free(path);
+       elm_theme_extension_add(NULL, edj_path);
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_play_view_deinit_config(PlayView * pPlayView)
+{
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_CUSTOM_THEME);
+       free(path);
+
+       elm_theme_extension_del(NULL, edj_path);
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_play_view_create_volume_timer(PlayView * pPlayView)
+{
+       if (!pPlayView) {
+               VideoLogError("play view handle is NULL");
+               return;
+       }
+
+       VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+
+       pPlayView->pVolumeTimer = ecore_timer_add(VP_PLAY_VIEW_VOLUME_TIMER,
+                                                                                         __vp_play_view_volume_timer_cb,
+                                                                                         (void *) pPlayView);
+
+}
+
+/**
+ *
+ * @param pParent
+ * @param pName
+ * @return
+ */
+static Evas_Object *_vp_play_view_create_window(Evas_Object * pParent,
+                                                                                               const char *pName)
+{
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_win_add(pParent, pName, ELM_WIN_BASIC);
+       if (pObj == NULL) {
+               VideoLogError("elm_win_add object is NULL");
+               return NULL;
+       }
+
+       elm_win_title_set(pObj, pName);
+       evas_object_smart_callback_add(pObj, "delete,request",
+                                                                  __vp_play_view_delete_request_cb, NULL);
+
+       elm_win_indicator_mode_set(pObj, ELM_WIN_INDICATOR_SHOW);
+       elm_win_indicator_opacity_set(pObj, ELM_WIN_INDICATOR_TRANSPARENT);
+
+       if (elm_win_wm_rotation_supported_get(pObj)) {
+               const int rots[4] = { 0, 90, 180, 270 };
+               elm_win_wm_rotation_available_rotations_set(pObj, rots, 4);
+       }
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_view_create_render_rect(Evas_Object * pParent)
+{
+       if (!pParent) {
+               VideoLogError("Parent is NULL");
+               return NULL;
+       }
+
+       Evas *pEvas = evas_object_evas_get(pParent);
+       Evas_Object *pObj = evas_object_rectangle_add(pEvas);
+       if (pObj == NULL) {
+               VideoLogError("render_rect object is NULL");
+               return NULL;
+       }
+
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_color_set(pObj, 0, 0, 0, 0);
+       evas_object_render_op_set(pObj, EVAS_RENDER_COPY);
+       evas_object_show(pObj);
+       elm_win_resize_object_add(pParent, pObj);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_view_create_conformant(Evas_Object * pParent)
+{
+       if (!pParent) {
+               VideoLogError("Parent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_conformant_add(pParent);
+       if (pObj == NULL) {
+               VideoLogError("elm_conformant_add object is NULL");
+               return NULL;
+       }
+
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       elm_win_conformant_set(pParent, EINA_TRUE);
+       elm_win_resize_object_add(pParent, pObj);
+
+       elm_object_signal_emit(pObj, "elm,state,indicator,overlap", "");
+       evas_object_data_set(pObj, "overlap", (void *) EINA_TRUE);
+
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_view_create_layout(Evas_Object * pParent)
+{
+       if (!pParent) {
+               VideoLogError("Parent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       Eina_Bool bRet = EINA_FALSE;
+
+       pObj = elm_layout_add(pParent);
+       if (!pObj) {
+               VideoLogError("elm_layout_add object is NULL");
+               return NULL;
+       }
+
+       bRet = elm_layout_theme_set(pObj, VP_PLAY_CUSTOM_LAYOUT_KLASS,
+                                                               VP_PLAY_CUSTOM_LAYOUT_GROUP,
+                                                               VP_PLAY_CUSTOM_LAYOUT_STYLE);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_theme_set fail");
+       }
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       elm_object_content_set(pParent, pObj);
+
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_view_create_naviframe(Evas_Object * pParent)
+{
+       if (!pParent) {
+               VideoLogError("Parent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       pObj = elm_naviframe_add(pParent);
+       if (!pObj) {
+               VideoLogError("elm_naviframe_add object is NULL");
+               return NULL;
+       }
+
+       eext_object_event_callback_add(pObj, EEXT_CALLBACK_BACK,
+                                                                  eext_naviframe_back_cb, NULL);
+       eext_object_event_callback_add(pObj, EEXT_CALLBACK_MORE,
+                                                                  eext_naviframe_more_cb, NULL);
+
+       elm_object_part_content_set(pParent, "elm.swallow.content", pObj);
+       elm_object_focus_set(pObj, EINA_TRUE);
+
+       elm_naviframe_prev_btn_auto_pushed_set(pObj, EINA_FALSE);
+
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+static bool _vp_play_view_init_layout(PlayView * pPlayView)
+{
+       if (!pPlayView) {
+               VideoLogError("play view handle is NULL");
+               return FALSE;
+       }
+       VideoLogWarning(">> Play view : Init layout");
+
+       pPlayView->pWin =
+               _vp_play_view_create_window(pPlayView->pParent,
+                                                                       VP_PLAY_MAIN_WINDOW_NAME);
+       if (pPlayView->pWin == NULL) {
+               VideoLogError("pWin is null");
+               return FALSE;
+       }
+
+       evas_object_smart_callback_add(pPlayView->pWin, "wm,rotation,changed",
+                                                                  __vp_play_rotate_changed_cb, pPlayView);
+
+       pPlayView->pRenderRect =
+               _vp_play_view_create_render_rect(pPlayView->pWin);
+       if (pPlayView->pRenderRect == NULL) {
+               VideoLogError("pRenderRect is null");
+               return FALSE;
+       }
+#ifdef _PERF_TEST_
+       if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+               // Move to : NormalView / Realize.
+       } else
+#endif
+       {
+               pPlayView->pConformant =
+                       _vp_play_view_create_conformant(pPlayView->pWin);
+               if (pPlayView->pConformant == NULL) {
+                       VideoLogError("pConformant is null");
+                       return FALSE;
+               }
+
+               pPlayView->pMainLayout =
+                       _vp_play_view_create_layout(pPlayView->pConformant);
+               if (pPlayView->pMainLayout == NULL) {
+                       VideoLogError("pMainLayout is null");
+                       return FALSE;
+               }
+               pPlayView->pNaviframe =
+                       _vp_play_view_create_naviframe(pPlayView->pMainLayout);
+               if (pPlayView->pNaviframe == NULL) {
+                       VideoLogError("pNaviframe is null");
+                       return FALSE;
+               }
+       }
+
+       /*rotation check */
+       VideoLogInfo("<< Play view : Checking 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;
+       }
+
+       if (pPlayView->nRotate != nRotate) {
+               vp_play_view_set_rotate(pPlayView, nRotate);
+       }
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+static bool _vp_play_view_create_mode(PlayView * pPlayView)
+{
+       if (!pPlayView) {
+               VideoLogError("play view handle is NULL");
+               return FALSE;
+       }
+
+       if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+               pPlayView->pNormalView =
+                       vp_play_normal_view_create(pPlayView,
+                                                                          pPlayView->nLaunchingType);
+               if (pPlayView->pNormalView == NULL) {
+                       VideoLogError("vp_play_normal_view_create handle is null");
+                       return FALSE;
+               }
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+static bool _vp_play_view_destroy_mode(PlayView * pPlayView)
+{
+       if (!pPlayView) {
+               VideoLogError("play view handle is NULL");
+               return FALSE;
+       }
+
+       if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+               if (!vp_play_normal_view_unrealize(pPlayView->pNormalView)) {
+                       VideoLogError("vp_play_normal_view_unrealize fail");
+                       return FALSE;
+               }
+
+               vp_play_util_key_ungrab(pPlayView->pWin, VP_VOLUME_UP_KEY);
+               vp_play_util_key_ungrab(pPlayView->pWin, VP_VOLUME_DOWN_KEY);
+               vp_play_util_key_ungrab(pPlayView->pWin, VP_VOLUME_MUTE);
+
+               vp_play_normal_view_destroy(pPlayView->pNormalView);
+               pPlayView->pNormalView = NULL;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_play_view_create_callback(PlayView * pPlayView)
+{
+       if (!pPlayView) {
+               VideoLogError("play view handle is NULL");
+               return;
+       }
+
+
+       pPlayView->pCallback =
+               (PlayViewCbFunc *) calloc(1, sizeof(PlayViewCbFunc));
+       if (pPlayView->pCallback == NULL) {
+               VideoLogError("playview Callback alloc fail");
+               return;
+       }
+
+       pPlayView->pCallback->pRealizeCb = NULL;
+       pPlayView->pCallback->pDestroyCb = NULL;
+       pPlayView->pCallback->pEventKeyDown = NULL;
+       pPlayView->pCallback->pEventKeyUp = NULL;
+
+       return;
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_play_view_destroy_callback(PlayView * pPlayView)
+{
+       if (!pPlayView) {
+               VideoLogError("play view handle is NULL");
+               return;
+       }
+
+       if (!pPlayView->pCallback) {
+               VideoLogError("play view Callback is NULL");
+               return;
+       }
+
+       pPlayView->pCallback->pRealizeCb = NULL;
+       pPlayView->pCallback->pDestroyCb = NULL;
+       pPlayView->pCallback->pEventKeyDown = NULL;
+       pPlayView->pCallback->pEventKeyUp = NULL;
+
+       VP_FREE(pPlayView->pCallback);
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_play_view_create_func(PlayView * pPlayView)
+{
+       if (!pPlayView) {
+               VideoLogError("play view handle is NULL");
+               return;
+       }
+
+
+       pPlayView->pFunc = (PlayViewFunc *) calloc(1, sizeof(PlayViewFunc));
+       if (pPlayView->pFunc == NULL) {
+               VideoLogError("playview func alloc fail");
+               return;
+       }
+
+       pPlayView->pFunc->vp_play_func_change_mode =
+               __vp_play_view_func_change_mode;
+       pPlayView->pFunc->vp_play_func_exit = __vp_play_view_func_exit;
+
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_play_view_destroy_func(PlayView * pPlayView)
+{
+       if (!pPlayView) {
+               VideoLogError("play view handle is NULL");
+               return;
+       }
+
+       if (!pPlayView->pFunc) {
+               VideoLogError("play view func is NULL");
+               return;
+       }
+
+       pPlayView->pFunc->vp_play_func_change_mode = NULL;
+       pPlayView->pFunc->vp_play_func_exit = NULL;
+
+       VP_FREE(pPlayView->pFunc);
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _vp_play_view_destroy_handle(PlayView * pPlayView)
+{
+       if (!pPlayView) {
+               VideoLogError("play view handle is NULL");
+               return;
+       }
+
+       _vp_play_view_destroy_callback(pPlayView);
+       _vp_play_view_destroy_func(pPlayView);
+#ifdef OLD_SENSOR_API
+       vp_sensor_destroy(pPlayView->pSensorHandle);
+       pPlayView->pSensorHandle = NULL;
+
+       vp_play_sensor_popup_destroy(pPlayView->pSensorPopup);
+       pPlayView->pSensorPopup = NULL;
+#endif
+
+       VP_EVAS_TIMER_DEL(pPlayView->pDbUpdateTimer);
+       VP_EVAS_TIMER_DEL(pPlayView->pSbeamTimer);
+       VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+       VP_EVAS_TIMER_DEL(pPlayView->pHwKeyLongPressTimer);
+       VP_EVAS_TIMER_DEL(pPlayView->pMediaKeyTimer);
+       VP_EVAS_TIMER_DEL(pPlayView->pMediaLongPressTimer);
+       VP_EVAS_IDLER_DEL(pPlayView->pHideIdler);
+
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pKeyEventDown);
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pKeyEventUp);
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pFocusIn);
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pFocusOut);
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pVisiblility);
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pClientMessage);
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pDeleteRequest);
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pPropertyHandler);
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pMouseInHandler);
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pMouseOutHandler);
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pPalmHoldEventHandler);
+       VP_EVAS_EVENT_HANDLER_DEL(pPlayView->pCallerWinEventHandler);
+
+       VP_EVAS_PIPE_DEL(pPlayView->pNotiPipe);
+
+       if (pPlayView->pNormalView) {
+               vp_play_normal_view_destroy(pPlayView->pNormalView);
+               pPlayView->pNormalView = NULL;
+       }
+
+       VP_EVAS_DEL(pPlayView->pMainLayout);
+       VP_EVAS_DEL(pPlayView->pNaviframe);
+       VP_EVAS_DEL(pPlayView->pConformant);
+       VP_EVAS_DEL(pPlayView->pRenderRect);
+       VP_EVAS_DEL(pPlayView->pBackground);
+       VP_EVAS_DEL(pPlayView->pWin);
+
+       VP_FREE(pPlayView->szSubtitleURL);
+       VP_FREE(pPlayView->szMediaURL);
+       VP_FREE(pPlayView->szDeviceID);
+       VP_FREE(pPlayView->szAutoPlay);
+       VP_FREE(pPlayView->szDMRID);
+       VP_FREE(pPlayView->szCookie);
+       VP_FREE(pPlayView->szProxy);
+
+       _vp_play_view_deinit_config(pPlayView);
+
+       free(pPlayView);
+       pPlayView = NULL;
+}
+
+/**
+ *
+ * @param type
+ * @param pUserData
+ */
+static void _vp_play_view_net_status_changed_cb(connection_type_e type,
+                                                                                               void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       PlayView *pPlayView = (PlayView *) pUserData;
+       int net_status = type;
+
+       VideoSecureLogInfo("Changed : NETWORK_STATUS(%d)", net_status);
+
+       if (pPlayView->nLaunchingType != VIDEO_PLAY_TYPE_WEB) {
+               return;
+       }
+
+       if (vp_play_util_rtsp_url_check((const char *) pPlayView->szMediaURL)
+               == FALSE) {
+               VideoLogWarning
+                       ("Not a RTSP/RTP url. skip wifi key changed signal");
+               return;
+       } else {
+               VideoLogWarning("RTSP/RTP url");
+       }
+       /*
+          Network change info
+          WIFI(2) -> OFF(0) -> CELLULAR(1)
+          CELLULAR(1) -> WIFI(2)
+        */
+       if (net_status == CONNECTION_TYPE_DISCONNECTED) {
+               VideoSecureLogInfo("network off");
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       VideoLogInfo("normal view disconnect");
+                       vp_play_normal_view_web_type_disconnect(pPlayView->
+                                                                                                       pNormalView);
+               }
+       } else if (net_status == CONNECTION_TYPE_CELLULAR) {
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       VideoLogInfo("normal view reconnection");
+                       vp_play_normal_view_web_type_reconnect(pPlayView->pNormalView);
+               }
+       } else if (net_status == CONNECTION_TYPE_WIFI) {
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       VideoLogInfo("normal view reconnection");
+                       vp_play_normal_view_web_type_reconnect(pPlayView->pNormalView);
+               }
+       }
+}
+
+/**
+ *
+ * @param bCover_state
+ * @param pUserData
+ */
+static void __vp_play_view_holl_ic_changed_cb(bool bCover_state,
+                                                                                         void *pUserData)
+{
+       // bCover_state : TRUE(Cover Opened), bCover_state : FALSE(Cover closed)
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = (PlayView *) pUserData;
+       if (pPlayView->bActivate == FALSE) {
+               return;
+       }
+       VideoLogWarning("bCover_state : %d", bCover_state);
+
+       if (bCover_state == FALSE) {
+               if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+                       if (!vp_play_normal_view_pause(pPlayView->pNormalView)) {
+                               VideoLogError("vp_play_normal_view_realize fail");
+                       }
+                       if (!vp_play_normal_view_set_manual_pause
+                               (pPlayView->pNormalView, TRUE)) {
+                               VideoLogError("vp_play_normal_view_set_manual_pause fail");
+                       }
+               }
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void _vp_play_view_ignore_callbacks(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       PlayView *pPlayView = (PlayView *) pUserData;
+       if (pPlayView->connection) {
+               if (connection_unset_type_changed_cb(pPlayView->connection) !=
+                       CONNECTION_ERROR_NONE) {
+                       VideoLogError("failed to unregister network status callback");
+               }
+
+               if (connection_destroy(pPlayView->connection) !=
+                       CONNECTION_ERROR_NONE) {
+                       VideoLogError("failed to destroy connection handle");
+               }
+               pPlayView->connection = NULL;
+       }
+       vp_play_config_ignore_rotate_state_key_changed_cb();
+       vp_play_config_ignore_battery_charge_state_key_changed_cb();
+       if (pPlayView->bWifi) {
+               vp_play_config_ignore_wifi_state_key_changed_cb();
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_play_view_db_update_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return ECORE_CALLBACK_CANCEL;
+       }
+       PlayView *pPlayView = (PlayView *) pUserData;
+       pPlayView->pDbUpdateTimer = NULL;
+
+       if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+               vp_play_normal_view_db_change(pPlayView->pNormalView);
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_playview_media_update_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       PlayView *pPlayView = (PlayView *) pUserData;
+
+       VP_EVAS_TIMER_DEL(pPlayView->pDbUpdateTimer);
+       pPlayView->pDbUpdateTimer =
+               ecore_timer_add(VP_PLAY_VIEW_DB_UPDATE_TIMER,
+                                               __vp_play_view_db_update_timer_cb,
+                                               (void *) pUserData);
+}
+
+/**
+ *
+ * @param pParent
+ * @param nParentXID
+ * @param nMode
+ * @param nLaunchingType
+ * @return
+ */
+play_view_handle vp_play_view_create(Evas_Object * pParent,
+                                                                        Ecore_X_Window nParentXID,
+                                                                        video_play_mode_t nMode,
+                                                                        video_play_launching_type_t
+                                                                        nLaunchingType)
+{
+       if (!pParent) {
+               VideoLogWarning("pParent handle is NULL");
+       }
+
+       VideoLogWarning("");
+
+       PlayView *pPlayView = NULL;
+
+       pPlayView = calloc(1, sizeof(PlayView));
+       if (!pPlayView) {
+               VideoLogError("PlayView alloc fail");
+               return NULL;
+       }
+
+       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();
+
+       /* set custom theme */
+       _vp_play_view_init_config(pPlayView);
+
+       /* create callback */
+       _vp_play_view_create_callback(pPlayView);
+
+       /* create internal function */
+       _vp_play_view_create_func(pPlayView);
+
+       if (!_vp_play_view_init_layout(pPlayView)) {
+               VideoLogError("_vp_play_view_init_layout is fail");
+               _vp_play_view_destroy_handle(pPlayView);
+               return NULL;
+       }
+
+       pPlayView->fPlaySpeed = 1.0;
+       pPlayView->bActivate = TRUE;
+
+
+       if (!_vp_play_view_create_mode(pPlayView)) {
+               VideoLogError("_vp_play_view_handle_create is fail");
+               _vp_play_view_destroy_handle(pPlayView);
+               return NULL;
+       }
+
+       pPlayView->pKeyEventDown =
+               ecore_event_handler_add(ECORE_EVENT_KEY_DOWN,
+                                                               (void *) __vp_play_view_event_key_down_cb,
+                                                               (void *) pPlayView);
+       pPlayView->pKeyEventUp =
+               ecore_event_handler_add(ECORE_EVENT_KEY_UP,
+                                                               (void *) __vp_play_view_event_key_up_cb,
+                                                               (void *) pPlayView);
+
+       pPlayView->pNotiPipe =
+               ecore_pipe_add((Ecore_Pipe_Cb) __vp_play_view_noti_pipe_cb,
+                                          (void *) pPlayView);
+#ifdef OLD_SENSOR_API
+       pPlayView->pSensorHandle =
+               vp_sensor_create(__vp_play_view_sensor_event_cb);
+       if (pPlayView->pSensorHandle) {
+               vp_sensor_set_user_data(pPlayView->pSensorHandle,
+                                                               (void *) pPlayView);
+       }
+#endif
+
+       pPlayView->bAVRCP = vp_avrcp_initialize(pPlayView);
+       pPlayView->bWifi = vp_play_wifi_initialize();
+
+       bool bWifiConnect = FALSE;
+       vp_play_config_get_wifi_direct_connect_status(&bWifiConnect);
+
+       vp_media_contents_set_update_cb(__vp_playview_media_update_cb,
+                                                                       (void *) pPlayView);
+
+       return pPlayView;
+}
+
+#ifdef _PERF_TEST_
+void vp_play_view_reset(play_view_handle pViewHandle, int nMode)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       if (nMode != pPlayView->nPlayMode) {
+               VideoLogError("Another mode(%d), reset playview", nMode);
+               vp_play_view_destroy(pViewHandle);
+       }
+}
+#endif
+
+/**
+ *
+ * @param pViewHandle
+ */
+void vp_play_view_destroy(play_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return;
+       }
+
+       VideoLogWarning("");
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       vp_play_config_set_multi_play_status(FALSE);
+
+       pPlayView->bDestroy = TRUE;
+
+       vp_media_contents_unset_update_cb();
+
+       vp_play_view_unrealize(pPlayView);
+
+       if (pPlayView->pMultiPathList) {
+               vp_multi_path_clear_item(pPlayView->pMultiPathList);
+               g_list_free(pPlayView->pMultiPathList);
+               pPlayView->pMultiPathList = NULL;
+       }
+
+       _vp_play_view_destroy_handle(pPlayView);
+
+       VideoLogInfo("<< Play View : Destroy");
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_view_live_stream_realize(play_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE;
+       nState =
+               vp_controller_normal_view_get_played_state(pPlayView->pNormalView);
+       if (nState == VP_MM_PLAYER_STATE_IDLE) {
+               return TRUE;
+       }
+       int nDuration = 0;
+       if (vp_play_normal_view_get_video_duration
+               (pPlayView->pNormalView, &nDuration)) {
+               pPlayView->nDuration = nDuration;
+       }
+       VideoLogInfo(">> Play View : %d", pPlayView->nDuration);
+       if (pPlayView->nDuration == 0) {
+               vp_play_normal_view_play_start(pPlayView->pNormalView);
+               return TRUE;
+       } else {
+               if (pPlayView->bIsPlayBeforeShare
+                       && pPlayView->bIsSharePopup == FALSE) {
+                       vp_play_normal_view_set_resume_or_pause(pPlayView->
+                                                                                                       pNormalView);
+                       return TRUE;
+               } else if (pPlayView->bAudioOnly && pPlayView->bIsSharePopup
+                                  && nState == VP_MM_PLAYER_STATE_PLAYING) {
+                       vp_play_normal_view_set_resume_or_pause(pPlayView->
+                                                                                                       pNormalView);
+               }
+       }
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_view_realize(play_view_handle pViewHandle)
+{
+       int error = SOUND_MANAGER_ERROR_NONE;
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       VideoLogInfo(">> Play View : Realize");
+
+       if (vp_play_normal_view_is_audio_only(pPlayView)) {
+               int nCurPos;
+               vp_mm_player_state_t nState =
+                       vp_play_normal_view_get_player_state(pPlayView);
+
+               vp_play_normal_view_get_last_position(pPlayView->pNormalView,
+                                                                                         &nCurPos);
+               pPlayView->nStartPosition = nCurPos;
+
+               if (nState == VP_MM_PLAYER_STATE_PLAYING) {
+                       return TRUE;
+               }
+       }
+
+       pPlayView->bActivate = TRUE;
+       pPlayView->bVisible = TRUE;
+       pPlayView->telinit = vp_play_telephony_initialize((void *) pPlayView);
+
+       vp_play_normal_view_key_create(pPlayView, pPlayView->pNormalView);
+
+       if (!vp_play_normal_view_is_audio_only(pPlayView)) {
+               vp_sound_init_session(pViewHandle);
+               sound_stream_focus_state_e state_for_playback;
+               sound_stream_focus_state_e state_for_recording;
+               int ret = -1;
+
+               ret =
+                       sound_manager_get_focus_state(pPlayView->stream_info,
+                                                                                 &state_for_playback,
+                                                                                 &state_for_recording);
+               if (ret != SOUND_MANAGER_ERROR_NONE) {
+                       VideoLogError("failed to get focus state error[%x]", ret);
+               }
+               if (state_for_playback == SOUND_STREAM_FOCUS_STATE_RELEASED) {
+                       error =
+                               sound_manager_acquire_focus(pPlayView->stream_info,
+                                                                                       SOUND_STREAM_FOCUS_FOR_PLAYBACK,
+                                                                                       SOUND_BEHAVIOR_NONE, NULL);
+                       if (error != SOUND_MANAGER_ERROR_NONE) {
+                               VideoLogError("failed to acquire focus [%x]", error);
+                       }
+                       sound_manager_get_focus_reacquisition(pPlayView->stream_info,
+                                                                                                 &pPlayView->
+                                                                                                 reacquire_state);
+                       if (pPlayView->reacquire_state == EINA_FALSE)
+                               sound_manager_set_focus_reacquisition(pPlayView->
+                                                                                                         stream_info,
+                                                                                                         EINA_TRUE);
+               }
+       }
+       if (pPlayView->bRealized == TRUE) {
+               VideoLogWarning("Already Realize state");
+       }
+
+       /*unregister callbacks */
+       _vp_play_view_ignore_callbacks(pPlayView);
+
+       if (pPlayView->pHollICHandle) {
+               vp_hollic_destroy_handle(pPlayView->pHollICHandle);
+               pPlayView->pHollICHandle = NULL;
+       }
+       pPlayView->pHollICHandle =
+               vp_hollic_create_handle(__vp_play_view_holl_ic_changed_cb,
+                                                               (void *) pPlayView);
+#ifdef OLD_SENSOR_API
+       vp_sensor_realize(pPlayView->pSensorHandle);
+#endif
+
+       vp_sound_set_route_change_cb(__vp_play_sound_route_change_cb,
+                                                                (void *) pPlayView);
+       vp_sound_set_volume_change_cb(__vp_play_sound_volume_change_cb,
+                                                                 (void *) pPlayView);
+       if (!pPlayView->connection) {
+               int ret = connection_create(&pPlayView->connection);
+               if (ret != CONNECTION_ERROR_NONE || !pPlayView->connection) {
+                       VideoLogWarning("Fail to create connection handle [%d]\n",
+                                                       ret);
+               }
+
+               if (pPlayView->connection) {
+                       ret = connection_set_type_changed_cb(pPlayView->connection,
+                                                                                                _vp_play_view_net_status_changed_cb,
+                                                                                                (void *) pPlayView);
+                       if (ret != CONNECTION_ERROR_NONE) {
+                               VideoLogWarning
+                                       ("Fail to register network status callback [%d]\n",
+                                        ret);
+                       }
+               }
+       }
+       vp_play_config_set_rotate_state_key_changed_cb
+               (__vp_play_view_rotate_lock_key_changed_cb, (void *) pPlayView);
+       vp_play_config_set_lock_state_key_changed_cb
+               (__vp_play_view_lock_state_key_changed_cb, (void *) pPlayView);
+
+       if (pPlayView->bWifi) {
+               vp_play_config_set_wifi_state_key_changed_cb
+                       (__vp_play_view_wifi_key_changed_cb, (void *) pPlayView);
+       }
+
+       if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+               vp_play_util_key_grab(pPlayView->pWin, VP_VOLUME_UP_KEY);
+               vp_play_util_key_grab(pPlayView->pWin, VP_VOLUME_DOWN_KEY);
+               vp_play_util_key_grab(pPlayView->pWin, VP_VOLUME_MUTE);
+
+               vp_play_util_key_grab(pPlayView->pWin, VP_PLAYPAUSE_KEY);
+               vp_play_util_key_grab(pPlayView->pWin, VP_PLAY_NEXT_SONG_KEY);
+               vp_play_util_key_grab(pPlayView->pWin, VP_PLAY_PREV_SONG_KEY);
+
+               vp_play_util_key_grab(pPlayView->pWin, VP_POWER_KEY);
+
+               bool bVideoOnly = FALSE;
+               VideoLogWarning("video output: internal display");
+               vp_play_preference_set_allow_dock_connect_key(FALSE);
+
+               if (pPlayView->szDMRID) {
+                       if (!vp_play_normal_view_set_manual_pause
+                               ((normal_view_handle) pPlayView->pNormalView, TRUE)) {
+                               VideoLogError
+                                       ("vp_play_normal_view_set_start_position fail");
+                               return FALSE;
+                       }
+                       if (!vp_play_normal_view_set_video_only
+                               (pPlayView->pNormalView, TRUE)) {
+                               VideoLogError("vp_play_normal_view_set_video_only fail");
+                               return FALSE;
+                       }
+               } else {
+                       if (!vp_play_normal_view_set_video_only
+                               (pPlayView->pNormalView, bVideoOnly)) {
+                               VideoLogError("vp_play_normal_view_set_video_only fail");
+                               return FALSE;
+                       }
+               }
+
+               if (!vp_play_normal_view_set_start_position
+                       ((normal_view_handle) pPlayView->pNormalView,
+                        pPlayView->nStartPosition)) {
+                       VideoLogError("vp_play_normal_view_set_start_position fail");
+                       return FALSE;
+               }
+
+               if (!vp_play_normal_view_set_audio_track
+                       ((normal_view_handle) pPlayView->pNormalView,
+                        pPlayView->nAudioIndex)) {
+                       VideoLogError("vp_play_normal_view_set_audio_track fail");
+                       return FALSE;
+               }
+
+               if (!vp_play_normal_view_set_subtitle
+                       ((normal_view_handle) pPlayView->pNormalView,
+                        pPlayView->szSubtitleURL)) {
+                       VideoLogInfo("vp_play_normal_view_set_subtitle fail");
+               }
+
+               if (!vp_play_normal_view_realize
+                       ((normal_view_handle) pPlayView->pNormalView)) {
+                       VideoLogError("vp_play_normal_view_realize fail");
+                       vp_play_view_unrealize(pPlayView);
+                       return FALSE;
+               }
+       }
+
+       pPlayView->bRealized = TRUE;
+
+       __vp_play_view_realize_cb((void *) pPlayView);
+
+       VideoLogWarning("<< Play View : Realize");
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_view_unrealize(play_view_handle pViewHandle)
+{
+       int error = SOUND_MANAGER_ERROR_NONE;
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       pPlayView->bActivate = FALSE;
+
+       if (pPlayView->bRealized == FALSE) {
+               VideoLogInfo("Already unrealized : playview");
+               return TRUE;
+       }
+       if (vp_play_normal_view_is_audio_only(pPlayView)) {
+               VideoLogInfo("In audio only mode!!!!");
+               return TRUE;
+       }
+
+       if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+               vp_play_preference_set_allow_dock_connect_key(TRUE);
+
+               VP_EVAS_TIMER_DEL(pPlayView->pVolumeTimer);
+               VP_EVAS_TIMER_DEL(pPlayView->pHwKeyLongPressTimer);
+               VP_EVAS_TIMER_DEL(pPlayView->pMediaKeyTimer);
+               VP_EVAS_TIMER_DEL(pPlayView->pMediaLongPressTimer);
+
+               vp_play_util_key_ungrab(pPlayView->pWin, VP_POWER_KEY);
+
+               vp_play_util_key_ungrab(pPlayView->pWin, VP_PLAYPAUSE_KEY);
+               vp_play_util_key_ungrab(pPlayView->pWin, VP_PLAY_NEXT_SONG_KEY);
+               vp_play_util_key_ungrab(pPlayView->pWin, VP_PLAY_PREV_SONG_KEY);
+
+               vp_play_util_key_ungrab(pPlayView->pWin, VP_VOLUME_UP_KEY);
+               vp_play_util_key_ungrab(pPlayView->pWin, VP_VOLUME_DOWN_KEY);
+               vp_play_util_key_ungrab(pPlayView->pWin, VP_VOLUME_MUTE);
+               vp_play_util_key_ungrab(pPlayView->pWin, VP_HOME_KEY);
+
+               sound_stream_focus_state_e state_for_playback;
+               sound_stream_focus_state_e state_for_recording;
+               int ret = -1;
+               ret =
+                       sound_manager_get_focus_state(pPlayView->stream_info,
+                                                                                 &state_for_playback,
+                                                                                 &state_for_recording);
+               if (ret != SOUND_MANAGER_ERROR_NONE) {
+                       VideoLogError("failed to get focus state error[%x]", ret);
+               }
+               if (state_for_playback != SOUND_STREAM_FOCUS_STATE_RELEASED) {
+                       error =
+                               sound_manager_release_focus(pPlayView->stream_info,
+                                                                                       SOUND_STREAM_FOCUS_FOR_PLAYBACK,
+                                                                                       SOUND_BEHAVIOR_NONE, NULL);
+                       if (error != SOUND_MANAGER_ERROR_NONE) {
+                               VideoLogError("failed to release focus error[%x]", error);
+                       }
+               }
+
+               error = sound_manager_remove_device_state_changed_cb(pPlayView->device_state_id);
+               if (error != SOUND_MANAGER_ERROR_NONE) {
+                       VideoLogError("Cannot remove device state changed callback");
+               }
+
+               media_key_release();
+               int nDuration = 0;
+               if (vp_play_normal_view_get_video_duration
+                       (pPlayView->pNormalView, &nDuration)) {
+                       pPlayView->nDuration = nDuration;
+               }
+               if (pPlayView->nDuration == 0) {
+                       if (!vp_play_normal_view_stop_player(pPlayView->pNormalView)) {
+                               VideoLogWarning("stop failed");
+                       }
+               }
+       }
+
+       if (pPlayView->bDestroy == FALSE) {
+               VideoLogWarning("Skip for screen mirroring mode");
+               //return TRUE;
+       }
+
+       pPlayView->bRealized = FALSE;
+       vp_hollic_destroy_handle(pPlayView->pHollICHandle);
+       pPlayView->pHollICHandle = NULL;
+#ifdef OLD_SENSOR_API
+       vp_sensor_unrealize(pPlayView->pSensorHandle);
+#endif
+
+
+       vp_sound_deinit_session(pPlayView);
+
+       if (pPlayView->bAVRCP) {
+               vp_avrcp_noti_player_state(VP_MM_PLAYER_STATE_STOP);
+               vp_avrcp_deinitialize();
+               pPlayView->bAVRCP = FALSE;
+       }
+
+       _vp_play_view_ignore_callbacks(pPlayView);
+
+       if (pPlayView->bWifi) {
+               vp_play_wifi_deinitialize();
+               pPlayView->bWifi = FALSE;
+       }
+       if (pPlayView->telinit) {
+               vp_play_telephony_deinitialize();
+       }
+
+       if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+               int nCurPos = 0;
+               int nAudioIndex = 0;
+               video_sound_alive_t nSoundAlive = VIDEO_SA_NONE;
+
+               if (vp_play_normal_view_get_last_position
+                       (pPlayView->pNormalView, &nCurPos)) {
+                       pPlayView->nStartPosition = nCurPos;
+               }
+
+               if (vp_play_normal_view_get_sound_filter
+                       (pPlayView->pNormalView, &nSoundAlive)) {
+                       pPlayView->nSoundAlive = nSoundAlive;
+               }
+
+               if (vp_play_normal_view_get_audio_track
+                       (pPlayView->pNormalView, &nAudioIndex)) {
+                       pPlayView->nAudioIndex = nAudioIndex;
+               }
+
+               VP_FREE(pPlayView->szSubtitleURL);
+               vp_play_normal_view_get_subtitle(pPlayView->pNormalView, &pPlayView->szSubtitleURL);
+
+               VideoLogInfo("vp_play_normal_view_unrealize START");
+               if (!pPlayView->bIsSharePopup) {
+                       if (!vp_play_normal_view_unrealize(pPlayView->pNormalView)) {
+                               VideoLogError("vp_play_normal_view_unrealize fail");
+                       }
+               }
+       }
+
+       VideoLogWarning("<< ----------");
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bRealized
+ * @return
+ */
+bool vp_play_view_is_realize(play_view_handle pViewHandle,
+                                                        bool * bRealized)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+       bool bRealize = FALSE;
+
+       if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+               if (!vp_play_normal_view_is_realize
+                       (pPlayView->pNormalView, &bRealize)) {
+                       VideoLogError("vp_play_normal_view_is_realize is fail");
+                       return FALSE;
+               }
+       }
+
+       *bRealized = bRealize;
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_play_view_set_user_data(play_view_handle pViewHandle,
+                                                               void *pUserData)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       pPlayView->pUserData = pUserData;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szMediaURL
+ * @return
+ */
+bool vp_play_view_set_url(play_view_handle pViewHandle,
+                                                 const char *szMediaURL)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+       if (!szMediaURL) {
+               VideoLogError("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       VP_FREE(pPlayView->szMediaURL);
+       char *szConvert =
+               vp_play_util_remove_prefix_to_url((char *) szMediaURL);
+       if (szConvert) {
+               VP_STRDUP(pPlayView->szMediaURL, szConvert);
+       } else {
+               VP_STRDUP(pPlayView->szMediaURL, szMediaURL);
+       }
+       VP_FREE(szConvert);
+
+       char *szPreviewURL = NULL;
+       vp_play_config_get_preview_url_videos(&szPreviewURL);
+       if (szPreviewURL) {
+               if (strcmp(szPreviewURL, szMediaURL) == 0) {
+                       int nAudioTrack = 0;
+                       vp_play_preference_get_preview_audio_track(&nAudioTrack);
+                       pPlayView->nAudioIndex = nAudioTrack;
+               }
+       }
+       VP_FREE(szPreviewURL);
+
+       if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+               if (!vp_play_normal_view_set_url
+                       (pPlayView->pNormalView, pPlayView->szMediaURL)) {
+                       VideoLogError("vp_play_normal_view_set_url fail");
+                       return FALSE;
+               }
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szMediaURL
+ * @return
+ */
+bool vp_play_view_get_url(play_view_handle pViewHandle, char **szMediaURL)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+       if (!szMediaURL) {
+               VideoLogError("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       VP_STRDUP(*szMediaURL, pPlayView->szMediaURL);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bVisible
+ * @return
+ */
+bool vp_play_view_get_visible_status(play_view_handle pViewHandle,
+                                                                        bool * bVisible)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       *bVisible = pPlayView->bVisible;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szURL
+ * @param szTitle
+ * @param szSubTitle
+ * @param nPosition
+ * @param nDuration
+ * @param bIsSameAP
+ * @return
+ */
+bool vp_play_view_add_multi_path(play_view_handle pViewHandle,
+                                                                const char *szURL,
+                                                                char *szTitle,
+                                                                char *szSubTitle,
+                                                                int nPosition,
+                                                                int nDuration, bool bIsSameAP)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+
+       if (!szURL) {
+               VideoLogError("szURL is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       VideoSecureLogInfo
+               ("URL[%s],SubTitle[%s],Pos[%d], Duration[%d], Title[%s], SameAP[%d]",
+                szURL, szSubTitle, nPosition, nDuration, szTitle,
+                (int) bIsSameAP);
+
+       if (!vp_multi_path_add_item
+               (&(pPlayView->pMultiPathList), szURL, szTitle, szSubTitle,
+                nPosition, nDuration, bIsSameAP)) {
+               VideoLogError("vp_multi_path_add_item is fail");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szDeviceID
+ * @return
+ */
+bool vp_play_view_set_device_id(play_view_handle pViewHandle,
+                                                               const char *szDeviceID)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+       if (!szDeviceID) {
+               VideoLogError("szDeviceID is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       VP_FREE(pPlayView->szDeviceID);
+       VP_STRDUP(pPlayView->szDeviceID, szDeviceID);
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param autoplay
+ * @return
+ */
+bool vp_play_view_set_auto_play_setting(play_view_handle pViewHandle,
+                                                                               const char *autoplay)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+       if (!autoplay) {
+               VideoLogError("autoplay is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+       VP_FREE(pPlayView->szAutoPlay);
+       VP_STRDUP(pPlayView->szAutoPlay, autoplay);
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szDMRID
+ * @return
+ */
+bool vp_play_view_set_dmr_id(play_view_handle pViewHandle,
+                                                        const char *szDMRID)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+       if (!szDMRID) {
+               VideoLogError("szDMRID is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       VP_FREE(pPlayView->szDMRID);
+       VP_STRDUP(pPlayView->szDMRID, szDMRID);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szMediaTitle
+ * @return
+ */
+bool vp_play_view_set_media_title(play_view_handle pViewHandle,
+                                                                 const char *szMediaTitle)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+       if (!szMediaTitle) {
+               VideoLogError("szMediaTitle is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       VP_FREE(pPlayView->szMediaTitle);
+       VP_STRDUP(pPlayView->szMediaTitle, szMediaTitle);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nPosition
+ * @return
+ */
+bool vp_play_view_set_start_position(play_view_handle pViewHandle,
+                                                                        int nPosition)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       pPlayView->nStartPosition = nPosition;
+
+       if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+               if (!vp_play_normal_view_set_start_position
+                       (pPlayView->pNormalView, nPosition)) {
+                       VideoLogError("vp_play_normal_view_set_url fail");
+                       return FALSE;
+               }
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nRotate
+ * @return
+ */
+bool vp_play_view_set_rotate(play_view_handle pViewHandle,
+                                                        video_play_rotate_t nRotate)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+               if (!vp_play_normal_view_set_rotate
+                       (pPlayView->pNormalView, nRotate, TRUE)) {
+                       VideoLogError("vp_play_normal_view_set_rotate fail");
+                       return FALSE;
+               }
+       }
+
+       pPlayView->nRotate = nRotate;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bPopupMode
+ * @return
+ */
+bool vp_play_view_get_popup_mode(play_view_handle pViewHandle,
+                                                                bool * bPopupMode)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+
+       *bPopupMode = FALSE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bRelaunch
+ * @return
+ */
+bool vp_play_view_set_relaunch_caller(play_view_handle pViewHandle,
+                                                                         bool bRelaunch)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       pPlayView->bRelaunchCaller = bRelaunch;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nLaunchingType
+ * @return
+ */
+bool vp_play_view_set_launching_mode(play_view_handle pViewHandle,
+                                                                        video_play_launching_type_t
+                                                                        nLaunchingType)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       pPlayView->nLaunchingType = nLaunchingType;
+       if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+               if (!vp_play_normal_view_set_launching_mode
+                       (pPlayView->pNormalView, nLaunchingType)) {
+                       VideoLogError
+                               ("vp_play_normal_view_set_launching_mode is fail");
+                       return FALSE;
+               }
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nListType
+ * @return
+ */
+bool vp_play_view_set_list_mode(play_view_handle pViewHandle,
+                                                               video_play_list_type_t nListType)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       pPlayView->nListType = nListType;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szCookie
+ * @return
+ */
+bool vp_play_view_set_cookie(play_view_handle pViewHandle,
+                                                        const char *szCookie)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       VP_FREE(pPlayView->szCookie);
+
+       VP_STRDUP(pPlayView->szCookie, szCookie);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param szProxy
+ * @return
+ */
+bool vp_play_view_set_proxy(play_view_handle pViewHandle,
+                                                       const char *szProxy)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       VP_FREE(pPlayView->szProxy);
+
+       VP_STRDUP(pPlayView->szProxy, szProxy);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bStoreDownload
+ * @return
+ */
+bool vp_play_view_set_store_download_mode(play_view_handle pViewHandle,
+                                                                                 bool bStoreDownload)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       pPlayView->bStoreDownload = bStoreDownload;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param bStopAfterRepeat
+ * @return
+ */
+bool vp_play_view_set_stop_after_repeat_mode(play_view_handle pViewHandle,
+                                                                                        bool bStopAfterRepeat)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       pPlayView->bStopAfterRepeat = bStopAfterRepeat;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param dStoreDL_FileSize
+ * @return
+ */
+bool vp_play_view_set_store_download_filesize(play_view_handle pViewHandle,
+                                                                                         double dStoreDL_FileSize)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       pPlayView->dStoreDL_FileSize = dStoreDL_FileSize;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param pStoreOrderId
+ * @param pStoreServerId
+ * @param pStoreAppId
+ * @param pStoreMvId
+ * @return
+ */
+bool vp_play_view_set_store_order_info(play_view_handle pViewHandle,
+                                                                          char *pStoreOrderId,
+                                                                          char *pStoreServerId,
+                                                                          char *pStoreAppId, char *pStoreMvId)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+
+       if (!pStoreOrderId) {
+               VideoLogError("pStoreOrderId is NULL");
+               return FALSE;
+       }
+
+       if (!pStoreServerId) {
+               VideoLogError("pStoreServerId is NULL");
+               return FALSE;
+       }
+
+       if (!pStoreAppId) {
+               VideoLogError("pStoreAppId is NULL");
+               return FALSE;
+       }
+
+       if (!pStoreMvId) {
+               VideoLogError("pStoreMvId is NULL");
+               return FALSE;
+       }
+
+       VideoSecureLogInfo
+               ("pStoreOrderId : [%s], pStoreServerId : [%s], pStoreAppId : [%s], pStoreMvId : [%s]",
+                pStoreOrderId, pStoreServerId, pStoreAppId, pStoreMvId);
+
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       VP_FREE(pPlayView->pStoreOrderId);
+       VP_STRDUP(pPlayView->pStoreOrderId, pStoreOrderId);
+
+       VP_FREE(pPlayView->pStoreServerId);
+       VP_STRDUP(pPlayView->pStoreServerId, pStoreServerId);
+
+       VP_FREE(pPlayView->pStoreAppId);
+       VP_STRDUP(pPlayView->pStoreAppId, pStoreAppId);
+
+       VP_FREE(pPlayView->pStoreMvId);
+       VP_STRDUP(pPlayView->pStoreMvId, pStoreMvId);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+bool vp_play_view_update(play_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+       if (pPlayView->nPlayMode == VIDEO_PLAY_MODE_NORMAL_VIEW) {
+               vp_play_normal_view_update(pPlayView->pNormalView);
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nCbType
+ * @param pFunc
+ * @return
+ */
+bool vp_play_view_set_callback(play_view_handle pViewHandle,
+                                                          video_play_callback_type_t nCbType,
+                                                          void *pFunc)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       if (pPlayView->pCallback == NULL) {
+               VideoLogError("PlayView Callback is NULL");
+               return FALSE;
+       }
+
+       if (nCbType == VIDEO_PLAY_CB_TYPE_REALIZE) {
+               pPlayView->pCallback->pRealizeCb = pFunc;
+       } else if (nCbType == VIDEO_PLAY_CB_TYPE_DESTORY) {
+               pPlayView->pCallback->pDestroyCb = pFunc;
+       } else if (nCbType == VIDEO_PLAY_CB_TYPE_EVENT_KEY_DOWN) {
+               pPlayView->pCallback->pEventKeyDown = pFunc;
+       } else if (nCbType == VIDEO_PLAY_CB_TYPE_EVENT_KEY_UP) {
+               pPlayView->pCallback->pEventKeyUp = pFunc;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nCbType
+ * @return
+ */
+bool vp_play_view_unset_callback(play_view_handle pViewHandle,
+                                                                video_play_callback_type_t nCbType)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       if (!pPlayView->pCallback) {
+               VideoLogError("PlayView Callback is NULL");
+               return FALSE;
+       }
+
+       if (nCbType == VIDEO_PLAY_CB_TYPE_REALIZE) {
+               pPlayView->pCallback->pRealizeCb = NULL;
+       } else if (nCbType == VIDEO_PLAY_CB_TYPE_DESTORY) {
+               pPlayView->pCallback->pDestroyCb = NULL;
+       } else if (nCbType == VIDEO_PLAY_CB_TYPE_EVENT_KEY_DOWN) {
+               pPlayView->pCallback->pEventKeyDown = NULL;
+       } else if (nCbType == VIDEO_PLAY_CB_TYPE_EVENT_KEY_UP) {
+               pPlayView->pCallback->pEventKeyUp = NULL;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @return
+ */
+Evas_Object *vp_play_view_get_main_window(play_view_handle pViewHandle)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       return pPlayView->pWin;
+}
+
+/**
+ *
+ * @param pViewHandle
+ * @param nLaunchingType
+ * @return
+ */
+bool vp_play_view_change_style_minimode_to_fullmode(play_view_handle
+                                                                                                       pViewHandle,
+                                                                                                       video_play_launching_type_t
+                                                                                                       nLaunchingType)
+{
+       if (!pViewHandle) {
+               VideoLogError("PlayView handle is NULL");
+               return FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pViewHandle;
+
+       pPlayView->nLaunchingType = nLaunchingType;
+       if (nLaunchingType == VIDEO_PLAY_TYPE_MESSAGE
+               || nLaunchingType == VIDEO_PLAY_TYPE_EMAIL) {
+               //change multi mode to mini mode
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayViewHandle
+ * @return
+ */
+bool vp_play_view_reset_audio_only(play_view_handle * pPlayViewHandle)
+{
+       PlayView *pPlayView = (PlayView *) pPlayViewHandle;
+       vp_play_normal_view_reset_audio_only(pPlayView->pNormalView);
+       return TRUE;
+}
+
+/**
+ *
+ * @param pPlayViewHandle
+ * @return
+ */
+bool vp_play_view_handle_language_change(play_view_handle * pPlayViewHandle)
+{
+       PlayView *pPlayView = (PlayView *) pPlayViewHandle;
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return FALSE;
+       }
+
+       return vp_play_normal_view_handle_language_change(pPlayView->pNormalView);
+}
+
+
diff --git a/playview/src/widget/include/vp-play-bookmark.h b/playview/src/widget/include/vp-play-bookmark.h
new file mode 100755 (executable)
index 0000000..d47ba20
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+typedef void *bookmark_handle;
+
+typedef void (*BookmarkCaptureStartCbFunc) (void *pUserData);
+typedef void (*BookmarkItemSelectCbFunc) (int nPos, const char *szPath,
+                                                                                 void *pUserData);
+
+
+bookmark_handle vp_play_bookmark_create(Evas_Object * pParent);
+void vp_play_bookmark_destroy(bookmark_handle pWidgetHandle);
+bool vp_play_bookmark_realize(bookmark_handle pWidgetHandle);
+bool vp_play_bookmark_unrealize(bookmark_handle pWidgetHandle);
+bool vp_play_bookmark_is_realize(bookmark_handle pWidgetHandle,
+                                                                bool * bIsRealize);
+Evas_Object *vp_play_bookmark_get_object(bookmark_handle pWidgetHandle);
+bool vp_play_bookmark_set_capture_callback(bookmark_handle pWidgetHandle,
+                                                                                  BookmarkCaptureStartCbFunc
+                                                                                  func);
+bool vp_play_bookmark_set_item_select_callback(bookmark_handle
+                                                                                          pWidgetHandle,
+                                                                                          BookmarkItemSelectCbFunc
+                                                                                          func);
+bool vp_play_bookmark_set_user_param(bookmark_handle pWidgetHandle,
+                                                                        void *pUserData);
+bool vp_play_bookmark_set_media_url(bookmark_handle pWidgetHandle,
+                                                                       const char *szMediaURL);
+bool vp_play_bookmark_set_edit_mode(bookmark_handle pWidgetHandle,
+                                                                       bool bEditMode);
+bool vp_play_bookmark_get_edit_mode(bookmark_handle pWidgetHandle,
+                                                                       bool * bEditMode);
+bool vp_play_bookmark_get_pressed_status(bookmark_handle pWidgetHandle,
+                                                                                bool * bPressed);
+
+bool vp_play_bookmark_get_item_count(bookmark_handle pWidgetHandle,
+                                                                        int *nCount);
diff --git a/playview/src/widget/include/vp-play-brightness-popup.h b/playview/src/widget/include/vp-play-brightness-popup.h
new file mode 100755 (executable)
index 0000000..7abb7d4
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+typedef void *brightness_handle;
+
+brightness_handle vp_play_brightness_create(Evas_Object * pParent);
+void vp_play_brightness_destroy(brightness_handle pBrightnessHandle);
+bool vp_play_brightness_realize(brightness_handle pBrightnessHandlee);
+bool vp_play_brightness_unrealize(brightness_handle pBrightnessHandlee);
+bool vp_play_brightness_set_landscape_mode(brightness_handle
+                                                                                  pBrightnessHandle,
+                                                                                  bool bLandscape);
+bool vp_play_brightness_is_realize(brightness_handle pBrightnessHandle,
+                                                                  bool * bIsRealize);
+bool vp_play_brightness_set_value(brightness_handle pBrightnessHandle,
+                                                                 int nCurVal);
+bool vp_play_brightness_get_value(int *nCurVal);
+bool vp_play_brightness_get_max_value(int *nMaxVal);
+bool vp_play_brightness_get_min_value(int *nMinVal);
diff --git a/playview/src/widget/include/vp-play-button.h b/playview/src/widget/include/vp-play-button.h
new file mode 100755 (executable)
index 0000000..07b96b4
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+Evas_Object *vp_button_create(Evas_Object * pParent, const char *pStyle,
+                                                         const char *pTxt, Evas_Smart_Cb pClickFunc,
+                                                         Evas_Smart_Cb pPressFunc,
+                                                         Evas_Smart_Cb pUnpressFunc, void *pUserData);
+Evas_Object *vp_button_create_icon(Evas_Object * pParent,
+                                                                  const char *pEdjPath,
+                                                                  const char *pGroupName);
+Evas_Object *vp_button_create_image(Evas_Object * pParent,
+                                                                       const char *pEdjPath,
+                                                                       const char *pGroupName);
+Evas_Object *vp_navirame_button_create(Evas_Object * pParent,
+                                                                          const char *pStyle,
+                                                                          const char *pEdjPath,
+                                                                          const char *pGroupName,
+                                                                          Evas_Smart_Cb pClickFunc,
+                                                                          void *pUserData);
diff --git a/playview/src/widget/include/vp-play-loading-ani.h b/playview/src/widget/include/vp-play-loading-ani.h
new file mode 100755 (executable)
index 0000000..a777c0e
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+typedef enum {
+       VIDEO_LOADING_SIZE_SMALL = 0x00,
+       VIDEO_LOADING_SIZE_MIDUM,
+       VIDEO_LOADING_SIZE_LARGE,
+       VIDEO_LOADING_SIZE_XLARGE,
+} video_loading_size_t;
+
+Evas_Object *vp_play_loading_ani_create(Evas_Object * pParent,
+                                                                               video_loading_size_t nSize);
+void vp_play_loading_ani_destroy(Evas_Object * pProgress);
diff --git a/playview/src/widget/include/vp-play-lockscreenmc.h b/playview/src/widget/include/vp-play-lockscreenmc.h
new file mode 100755 (executable)
index 0000000..c421c4f
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2020 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 "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 vp_lockscreenmini_hide(PlayView * pPlayView);
+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);
+
+#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 100755 (executable)
index 0000000..c10c006
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2020 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_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, int angle);
+int _vp_is_current_focus_available();
+#endif                                                 /* VP_PLAY_MINICONTROLLER_H_ */
diff --git a/playview/src/widget/include/vp-play-more.h b/playview/src/widget/include/vp-play-more.h
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/playview/src/widget/include/vp-play-popup.h b/playview/src/widget/include/vp-play-popup.h
new file mode 100755 (executable)
index 0000000..87ec4f7
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+#include <efl_extension.h>
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+typedef void (*PopupCloseCbFunc) (int nType, bool bPause, void *pUserData);
+
+typedef enum {
+       POPUP_STYLE_DEFAULT_NO_CANCEL_BTN = 0x00,
+       POPUP_STYLE_DEFAULT_WITH_CANCEL_BTN,
+       POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN,
+       POPUP_STYLE_MENU_LIST_WITH_CANCEL_BTN,
+       POPUP_STYLE_EXPAND_NO_CANCEL_BTN,
+       POPUP_STYLE_EXPAND_WITH_CANCEL_BTN,
+       POPUP_STYLE_PROGRESS_WITH_NO_CANCEL_BTN,
+       POPUP_STYLE_FULLSCREEN_NO_CANCEL_BTN,
+       POPUP_STYLE_FULLSCREEN_NO_TITLE_NO_CANCEL_BTN
+} video_popup_style_t;
+
+typedef enum {
+       VIDEOS_POPUP_NONE = 0x00,
+       VIDEO_POPUP_DEFAULT,
+       VIDEO_POPUP_2_TEXT,
+       VIDEO_POPUP_2_TEXT_1_ICON,
+       VIDEO_POPUP_LOADING_LIST,
+       VIDEOS_POPUP_MAX
+} video_list_popup_style_t;
+
+Evas_Object *vp_popup_create(Evas_Object * pParent,
+                                                        video_popup_style_t nStyle, char *szTitle,
+                                                        char *szContent, double dTimeOut,
+                                                        Evas_Smart_Cb pTimeoutFunc,
+                                                        Eext_Event_Cb pCancelKeyCb,
+                                                        Evas_Object_Event_Cb pCancelMouseCb,
+                                                        void *pUserData);
+Evas_Object *vp_two_button_popup_create(Evas_Object * pParent,
+                                                                               char *szTitle, char *szContent,
+                                                                               char *pLeftButtonText,
+                                                                               Evas_Smart_Cb leftButtonCb,
+                                                                               char *pRightButtonText,
+                                                                               Evas_Smart_Cb rightButtonCb,
+                                                                               const void *pUserData);
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+Evas_Object *vp_title_two_button_popup_create(Evas_Object * pParent,
+                                                                                         char *szTitle,
+                                                                                         char *szContent,
+                                                                                         char *pLeftButtonText,
+                                                                                         Evas_Smart_Cb leftButtonCb,
+                                                                                         char *pRightButtonText,
+                                                                                         Evas_Smart_Cb rightButtonCb,
+                                                                                         const void *pUserData);
+#endif
+bool vp_popup_check_landspace_by_win(Evas_Object * pWin);
+void vp_popup_set_popup_min_size(Evas_Object * pWin, Evas_Object * pBox,
+                                                                int nListCount,
+                                                                video_list_popup_style_t eStyle);
diff --git a/playview/src/widget/include/vp-play-progressbar.h b/playview/src/widget/include/vp-play-progressbar.h
new file mode 100755 (executable)
index 0000000..48fef9d
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+typedef void *progressbar_handle;
+
+
+typedef enum {
+       VIDEO_PROGRESSBAR_TYPE_NORMAL = 0x00,
+       VIDEO_PROGRESSBAR_TYPE_TRIM,
+} video_progressbar_type_t;
+
+progressbar_handle vp_play_progressbar_create(Evas_Object * pParent,
+                                                                                         video_progressbar_type_t
+                                                                                         nType);
+void vp_play_progressbar_destroy(progressbar_handle pWidgetHandle);
+bool vp_play_progressbar_realize(progressbar_handle pWidgetHandle);
+bool vp_play_progressbar_unrealize(progressbar_handle pWidgetHandle);
+Evas_Object *vp_play_progressbar_get_object(progressbar_handle
+                                                                                       pWidgetHandle);
+bool vp_play_progressbar_set_duration(progressbar_handle pWidgetHandle,
+                                                                         int nDuration);
+bool vp_play_progressbar_set_position(progressbar_handle pWidgetHandle,
+                                                                         int nPosition);
+bool vp_play_progressbar_set_buffering_position(progressbar_handle
+                                                                                               pWidgetHandle,
+                                                                                               int nBufferinPosition);
+bool vp_play_progressbar_set_landscape_mode(progressbar_handle
+                                                                                       pWidgetHandle,
+                                                                                       bool bLandscape);
+bool vp_play_progressbar_set_opacity(progressbar_handle pWidgetHandle,
+                                                                        bool bDefault);
+Evas_Object *vp_play_progressbar_get_focus_object(progressbar_handle
+                                                                                                 pWidgetHandle);
diff --git a/playview/src/widget/include/vp-play-subtitle.h b/playview/src/widget/include/vp-play-subtitle.h
new file mode 100755 (executable)
index 0000000..7446b08
--- /dev/null
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+typedef void *subtitle_handle;
+
+typedef enum {
+       VP_SUBTITLE_SMALL = 0x00,
+       VP_SUBTITLE_MEDIUM,
+       VP_SUBTITLE_LARGE,
+} video_subtitle_size_t;
+
+typedef enum {
+       VP_SUBTITLE_COLOR_WHITE = 0x00,
+       VP_SUBTITLE_COLOR_BLACK,
+       VP_SUBTITLE_COLOR_RED,
+       VP_SUBTITLE_COLOR_GREEN,
+       VP_SUBTITLE_COLOR_BLUE,
+       VP_SUBTITLE_COLOR_YELLOW,
+       VP_SUBTITLE_COLOR_MAGENTA,
+       VP_SUBTITLE_COLOR_CYAN,
+       VP_SUBTITLE_COLOR_CUSTOM,
+       VP_SUBTITLE_COLOR_NONE
+} video_subtitle_color_t;
+
+typedef enum {
+       VP_SUBTITLE_ALIGNMENT_LEFT = 0x00,
+       VP_SUBTITLE_ALIGNMENT_CENTER,
+       VP_SUBTITLE_ALIGNMENT_RIGHT
+} vp_subtitle_alignment_t;
+
+typedef enum {
+       VP_SUBTITLE_TYPE_NORMAL = 0x00,
+       VP_SUBTITLE_TYPE_MULTI
+} vp_subtitle_type_t;
+
+typedef struct _SubtitleWidget {
+       Evas_Object *pParent;
+       Evas_Object *pLayout;
+       Evas_Object *pTextBlock;
+       char *szFontName;
+       char *szText;
+       video_subtitle_size_t nSize;
+       int nEdge;
+       float fZoom;
+
+#ifdef SUBTITLE_K_FEATURE
+       vp_subtitle_alignment_t nAlignment;
+#endif
+
+#ifndef SUBTITLE_K_FEATURE
+       video_subtitle_color_t nFontColor;
+       video_subtitle_color_t nBGColor;
+#else
+       char *pFontColorHex;
+       char *pBGColorHex;
+       char *pCaptionWinColorHex;
+#endif
+       bool bIsRealize;
+       bool bShowCaptionWin;
+} Subtitle;
+
+subtitle_handle vp_play_subtitle_create(Evas_Object * pParent,
+                                                                               vp_subtitle_type_t nType);
+void vp_play_subtitle_destroy(subtitle_handle pWidgetHandle);
+bool vp_play_subtitle_realize(subtitle_handle pWidgetHandle);
+bool vp_play_subtitle_unrealize(subtitle_handle pWidgetHandle);
+bool vp_play_subtitle_is_realize(subtitle_handle pWidgetHandle,
+                                                                bool * bIsRealize);
+Evas_Object *vp_play_subtitle_get_object(subtitle_handle pWidgetHandle);
+bool vp_play_subtitle_set_font(subtitle_handle pWidgetHandle,
+                                                          char *szFontName);
+bool vp_play_subtitle_get_font(subtitle_handle pWidgetHandle,
+                                                          char **szFontName);
+bool vp_play_subtitle_set_size(subtitle_handle pWidgetHandle,
+                                                          video_subtitle_size_t nSize);
+bool vp_play_subtitle_get_size(subtitle_handle pWidgetHandle,
+                                                          video_subtitle_size_t * nSize);
+bool vp_play_subtitle_set_size_zoom(subtitle_handle pWidgetHandle,
+                                                                       float fZoom);
+bool vp_play_subtitle_get_size_zoom(subtitle_handle pWidgetHandle,
+                                                                       float *fZoom);
+void vp_play_subtitle_text_update(Subtitle * pSubtitle, const char *szTxt);
+#ifndef SUBTITLE_K_FEATURE
+bool vp_play_subtitle_set_color(subtitle_handle pWidgetHandle,
+                                                               video_subtitle_color_t nColor);
+bool vp_play_subtitle_get_color(subtitle_handle pWidgetHandle,
+                                                               video_subtitle_color_t * nColor);
+bool vp_play_subtitle_set_bg_color(subtitle_handle pWidgetHandle,
+                                                                  video_subtitle_color_t nColor);
+bool vp_play_subtitle_get_bg_color(subtitle_handle pWidgetHandle,
+                                                                  video_subtitle_color_t * nColor);
+#else
+bool vp_play_subtitle_get_color(subtitle_handle pWidgetHandle,
+                                                               char **pColorHex);
+bool vp_play_subtitle_set_color(subtitle_handle pWidgetHandle,
+                                                               char *pColorHex);
+bool vp_play_subtitle_get_bg_color(subtitle_handle pWidgetHandle,
+                                                                  char **pColorHex);
+bool vp_play_subtitle_set_bg_color(subtitle_handle pWidgetHandle,
+                                                                  char *pColorHex);
+#endif
+bool vp_play_subtitle_set_text(subtitle_handle pWidgetHandle,
+                                                          const char *szText);
+bool vp_play_subtitle_get_text(subtitle_handle pWidgetHandle,
+                                                          char **szText);
+
+#ifdef SUBTITLE_K_FEATURE
+bool vp_play_subtitle_set_alignment(subtitle_handle pWidgetHandle,
+                                                                       vp_subtitle_alignment_t nAlignment);
+bool vp_play_subtitle_get_alignment(subtitle_handle pWidgetHandle,
+                                                                       vp_subtitle_alignment_t * nAlignment);
+bool vp_play_subtitle_set_caption_win_color(subtitle_handle pWidgetHandle,
+                                                                                       bool bShowCaption);
+bool vp_play_subtitle_get_geometry(subtitle_handle pWidgetHandle,
+                                                                  bool bLandscape, Evas_Coord * x,
+                                                                  Evas_Coord * y, Evas_Coord * w,
+                                                                  Evas_Coord * h);
+#endif
+
+bool vp_play_subtitle_set_edge(subtitle_handle pWidgetHandle, int nEdge);
+bool vp_play_subtitle_get_edge(subtitle_handle pWidgetHandle, int *nEdge);
+
+bool vp_play_subtitle_get_size_formatted(subtitle_handle pWidgetHandle,
+                                                                                Evas_Coord * ww, Evas_Coord * hh);
diff --git a/playview/src/widget/include/vp-play-volume-popup.h b/playview/src/widget/include/vp-play-volume-popup.h
new file mode 100755 (executable)
index 0000000..1f8758a
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+typedef void *volume_popup_handle;
+
+volume_popup_handle vp_play_volume_popup_create(Evas_Object * pParent);
+void vp_play_volume_popup_destroy(volume_popup_handle pVolumeHandle);
+bool vp_play_volume_popup_realize(volume_popup_handle pVolumeHandle);
+bool vp_play_volume_popup_unrealize(volume_popup_handle pVolumeHandle);
+bool vp_play_volume_popup_set_landscape_mode(volume_popup_handle
+                                                                                        pVolumeHandle,
+                                                                                        bool bLandscape);
+bool vp_play_volume_popup_is_realize(volume_popup_handle pVolumeHandle,
+                                                                        bool * bIsRealize);
+bool vp_play_volume_popup_set_value(volume_popup_handle pVolumeHandle,
+                                                                       int nCurVal);
+bool vp_play_volume_popup_get_value(int *nCurVal);
+bool vp_play_volume_popup_get_max_value(int *nMaxVal);
+bool vp_play_volume_popup_is_mute(volume_popup_handle pVolumeHandle,
+                                                                 bool * bIsMute);
diff --git a/playview/src/widget/include/vp-play-volume.h b/playview/src/widget/include/vp-play-volume.h
new file mode 100755 (executable)
index 0000000..5faf5dd
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#pragma once
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+typedef void *volume_handle;
+
+typedef void (*NormalVolumeChangeCbFunc) (int nValue, void *pUserData);
+
+volume_handle vp_play_volume_create(Evas_Object * pParent,
+                                                                       void *pPlayerHandle,
+                                                                       NormalVolumeChangeCbFunc pFunc);
+void vp_play_volume_destroy(volume_handle pVolumeHandle);
+bool vp_play_volume_realize(volume_handle pVolumeHandle,
+                                                       Evas_Object * pWin);
+bool vp_play_volume_unrealize(volume_handle pVolumeHandle);
+bool vp_play_volume_set_landscape_mode(volume_handle pVolumeHandle,
+                                                                          bool bLandscape,
+                                                                          Evas_Object * pWin);
+bool vp_play_volume_set_user_data(volume_handle pVolumeHandle,
+                                                                 void *pUserData);
+bool vp_play_volume_is_realize(volume_handle pVolumeHandle,
+                                                          bool * bIsRealize);
+bool vp_play_volume_increase_value(volume_handle pVolumeHandle);
+bool vp_play_volume_decrease_value(volume_handle pVolumeHandle);
+bool vp_play_volume_update_value(volume_handle pVolumeHandle);
+bool vp_play_volume_is_mute(volume_handle pVolumeHandle, bool * bIsMute);
+int vp_play_volume_get_max_value(volume_handle pVolumeHandle);
+int vp_play_volume_get_value(volume_handle pVolumeHandle);
+bool vp_play_volume_set_value(volume_handle pVolumeHandle, int nVolumeVal);
+bool vp_play_volume_set_mute_value(volume_handle pVolumeHandle);
+int vp_play_volume_get_mute_value(volume_handle pVolumeHandle);
+bool vp_play_volume_set_focus_in(volume_handle pVolumeHandle);
+bool vp_play_volume_set_mouse_callbacks(volume_handle pVolumeHandle,
+                                                                               Evas_Object * pWin);
+bool vp_play_volume_unset_mouse_callbacks(volume_handle pVolumeHandle,
+                                                                                 Evas_Object * pWin);
diff --git a/playview/src/widget/vp-play-bookmark.c b/playview/src/widget/vp-play-bookmark.c
new file mode 100755 (executable)
index 0000000..13c1b6a
--- /dev/null
@@ -0,0 +1,1419 @@
+/*
+ * Copyright (c) 2020 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 <glib.h>
+
+#include "vp-play-string-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-bookmark.h"
+
+#include "vp-play-button.h"
+
+#include "vp-media-contents.h"
+
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+#define VP_BOOKMARK_ITEM_WIDTH         (152 * elm_config_scale_get())
+#define VP_BOOKMARK_ITEM_HEIGHT                (132 * elm_config_scale_get())
+
+#define VP_BOOKMARK_THUMB_WIDTH                (146 * elm_config_scale_get())
+#define VP_BOOKMARK_THUMB_HEIGHT       (88 * elm_config_scale_get())
+
+
+#define VP_BOOKMARK_GENGRID_DATA_KEY           "vp.bookmark.gengrid"
+#define VP_BOOKMARK_GENGRID_ITEM_DATA_KEY      "vp.bookmark.gengrid.item"
+
+#define VP_BOOKMARK_PLAY_TIME_LENGTH   9
+#define VP_BOOKMARK_PLAY_TIME_FORMAT   "02u:%02u:%02u"
+#define VP_BOOKMARK_PLAY_TIME_ARGS(t) \
+       (t) / (60 * 60), \
+       ((t) / 60) % 60, \
+       (t) % 60
+
+typedef struct _BookmarkItem {
+       Elm_Object_Item *pElmItem;
+       char *szFilePath;
+       int nPos;
+} BookmarkItem;
+
+typedef struct _BookmarkWidget {
+       Evas_Object *pParent;
+       Evas_Object *pLayout;
+       Evas_Object *pAddButton;
+       Evas_Object *pGengrid;
+
+       Elm_Object_Item *pLastItem;
+       Elm_Gengrid_Item_Class *pItemClass;
+
+       char *szMediaURL;
+       char *szMediaID;
+
+       bool bIsRealize;
+       bool bEditMode;
+       bool bPressed;
+       GList *pItemList;
+
+       BookmarkCaptureStartCbFunc pCaptureCb;
+       BookmarkItemSelectCbFunc pSelectCb;
+
+       void *pUserData;
+} BookmarkWidget;
+
+static void _vp_play_bookmark_destory_handle(BookmarkWidget *
+                                                                                        pBookmarkWidget);
+static void _vp_play_bookmark_gengrid_item_update(BookmarkWidget *
+                                                                                                 pBookmarkWidget);
+static void _vp_play_bookmark_gengrid_item_clear(BookmarkWidget *
+                                                                                                pBookmarkWidget);
+/* callbackk functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_delete_btn_clicked_cb(void *pUserData,
+                                                                                                        Evas_Object * pObj,
+                                                                                                        void *pEvent)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return;
+       }
+       VideoLogError("clicked");
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_delete_btn_press_cb(void *pUserData,
+                                                                                                  Evas_Object * pObj,
+                                                                                                  void *pEvent)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return;
+       }
+       VideoLogError("press");
+
+       Evas_Object *pIcon = NULL;
+       pIcon = elm_object_part_content_get(pObj, VP_PLAY_SWALLOW_BUTTON_ICON);
+       if (pIcon) {
+               evas_object_del(pIcon);
+               pIcon = NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_RESROUCE_EDJ_PATH);
+       free(path);
+       pIcon =
+               vp_button_create_icon(pObj, edj_path,
+                                                         VP_PLAY_BOOKMARK_RES_DEL_PRESS);
+       elm_object_part_content_set(pObj, VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       BookmarkWidget *pBookmarkWidget =
+               (BookmarkWidget *) evas_object_data_get(pObj,
+                                                                                               VP_BOOKMARK_GENGRID_ITEM_DATA_KEY);
+       if (pBookmarkWidget == NULL) {
+               VideoLogError("pBookmarkWidget is NULL");
+               return;
+       }
+
+       BookmarkItem *pBookmarkItem = (BookmarkItem *) pUserData;
+
+       if (pBookmarkWidget->bEditMode == FALSE) {
+               return;
+       }
+
+       if (!vp_media_contents_bookmark_delete
+               (pBookmarkWidget->szMediaID, pBookmarkItem->nPos)) {
+               VideoLogError("vp_media_contents_bookmark_delete is fail");
+               return;
+       }
+
+       pBookmarkWidget->pItemList =
+               g_list_remove(pBookmarkWidget->pItemList, (void *) pBookmarkItem);
+
+       VP_EVAS_ITEM_DEL(pBookmarkItem->pElmItem);
+
+       VP_FREE(pBookmarkItem->szFilePath);
+       VP_FREE(pBookmarkItem);
+
+       pBookmarkItem = NULL;
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_delete_btn_unpress_cb(void *pUserData,
+                                                                                                        Evas_Object * pObj,
+                                                                                                        void *pEvent)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return;
+       }
+       VideoLogError("unpress");
+
+       Evas_Object *pIcon = NULL;
+       pIcon = elm_object_part_content_get(pObj, VP_PLAY_SWALLOW_BUTTON_ICON);
+       if (pIcon) {
+               evas_object_del(pIcon);
+               pIcon = NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_RESROUCE_EDJ_PATH);
+       free(path);
+       pIcon =
+               vp_button_create_icon(pObj, edj_path, VP_PLAY_BOOKMARK_RES_DEL);
+       elm_object_part_content_set(pObj, VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__vp_play_bookmark_gengrid_icon_get_cb(const void
+                                                                                                                  *pUserData,
+                                                                                                                  Evas_Object *
+                                                                                                                  pObj, const char
+                                                                                                                  *pPart)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       if (pPart == NULL) {
+               VideoLogError("pPart is NULL");
+               return NULL;
+       }
+
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return NULL;
+       }
+
+       BookmarkItem *pBookmarkItem = (BookmarkItem *) pUserData;
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_BOOKMARK_ITEM_EDJ_PATH);
+       free(path);
+       if (!strcmp(pPart, "elm.swallow.icon")) {
+               Evas_Object *layout = NULL;
+               Evas_Object *bg = NULL;
+               char buf[VP_BOOKMARK_PLAY_TIME_LENGTH] = { 0, };
+
+               layout = elm_layout_add(pObj);
+               bg = elm_bg_add(pObj);
+
+               if (bg == NULL || layout == NULL) {
+                       VideoLogError("evas object is NULL");
+                       return NULL;
+               }
+               elm_layout_file_set(layout, edj_path,
+                                                       VP_PLAY_EDJ_GROUP_BOOKMARK_ITEM);
+               elm_bg_load_size_set(bg, VP_BOOKMARK_THUMB_WIDTH,
+                                                        VP_BOOKMARK_THUMB_HEIGHT);
+               elm_bg_file_set(bg, pBookmarkItem->szFilePath, NULL);
+               evas_object_size_hint_max_set(bg, VP_BOOKMARK_THUMB_WIDTH,
+                                                                         VP_BOOKMARK_THUMB_HEIGHT);
+
+               evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND,
+                                                                                EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(bg, EVAS_HINT_FILL,
+                                                                               EVAS_HINT_FILL);
+
+               elm_object_part_content_set(layout,
+                                                                       VP_PLAY_SWALLOW_BOOKMARK_ITEM_ICON,
+                                                                       bg);
+
+               snprintf(buf, VP_BOOKMARK_PLAY_TIME_LENGTH,
+                                "%" VP_BOOKMARK_PLAY_TIME_FORMAT,
+                                VP_BOOKMARK_PLAY_TIME_ARGS(pBookmarkItem->nPos / 1000));
+
+               elm_object_part_text_set(layout,
+                                                                VP_PLAY_SWALLOW_BOOKMARK_ITEM_TXT, buf);
+
+               evas_object_show(bg);
+               evas_object_show(layout);
+
+               return layout;
+
+       } else if (!strcmp(pPart, "elm.swallow.end")) {
+               BookmarkWidget *pBookmarkWidget =
+                       (BookmarkWidget *) evas_object_data_get(pObj,
+                                                                                                       VP_BOOKMARK_GENGRID_DATA_KEY);
+               if (pBookmarkWidget == NULL) {
+                       VideoLogError("pBookmarkWidget is NULL");
+                       return NULL;
+               }
+               if (pBookmarkWidget->bEditMode == FALSE) {
+                       return NULL;
+               }
+
+               Evas_Object *layout = NULL;
+               Evas_Object *pIcon = NULL;
+               Evas_Object *pBtn = NULL;
+
+               layout = elm_layout_add(pObj);
+               elm_layout_file_set(layout, edj_path,
+                                                       VP_PLAY_EDJ_GROUP_BOOKMARK_ITEM_END);
+               pBtn =
+                       vp_button_create(layout, "custom/icon_48_48", NULL,
+                                                        (Evas_Smart_Cb)
+                                                        __vp_play_bookmark_delete_btn_clicked_cb,
+                                                        (Evas_Smart_Cb)
+                                                        __vp_play_bookmark_delete_btn_press_cb,
+                                                        (Evas_Smart_Cb)
+                                                        __vp_play_bookmark_delete_btn_unpress_cb,
+                                                        (void *) pBookmarkItem);
+
+               evas_object_data_set(pBtn, VP_BOOKMARK_GENGRID_ITEM_DATA_KEY,
+                                                        (void *) pBookmarkWidget);
+               char edje_path[1024] = { 0 };
+
+               char *pPath = app_get_resource_path();
+               snprintf(edje_path, 1024, "%s%s/%s", pPath, "edje",
+                                VP_PLAY_RESROUCE_EDJ_PATH);
+               free(pPath);
+
+               pIcon =
+                       vp_button_create_icon(pBtn, edje_path,
+                                                                 VP_PLAY_BOOKMARK_RES_DEL);
+               elm_object_part_content_set(pBtn, VP_PLAY_SWALLOW_BUTTON_ICON,
+                                                                       pIcon);
+
+               elm_object_part_content_set(layout,
+                                                                       VP_PLAY_SWALLOW_BOOKMARK_ITEM_DEL,
+                                                                       pBtn);
+
+               evas_object_show(pBtn);
+               evas_object_show(layout);
+
+               return layout;
+       }
+       return NULL;
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_longpress_cb(void *pUserData,
+                                                                                       Evas_Object * pObj,
+                                                                                       void *pEvent)
+{
+       VideoLogInfo("");
+
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pUserData;
+
+       if (pBookmarkWidget->bEditMode == EINA_TRUE) {
+               pBookmarkWidget->bEditMode = EINA_FALSE;
+               pBookmarkWidget->bPressed = FALSE;
+
+       } else {
+               pBookmarkWidget->bEditMode = EINA_TRUE;
+       }
+
+       _vp_play_bookmark_gengrid_item_update(pBookmarkWidget);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_scroll_cb(void *pUserData,
+                                                                                Evas_Object * pObj, void *pEvent)
+{
+       return;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_change_cb(void *pUserData,
+                                                                                Evas_Object * pObj, void *pEvent)
+{
+       if (pUserData == NULL) {
+               VideoLogError("bookmark data is NULL");
+               return;
+       }
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pUserData;
+
+       if (pBookmarkWidget->pLastItem == NULL) {
+               return;
+       }
+
+       elm_gengrid_item_bring_in(pBookmarkWidget->pLastItem,
+                                                         ELM_GENGRID_ITEM_SCROLLTO_MIDDLE);
+       pBookmarkWidget->pLastItem = NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_pressed_cb(void *pUserData,
+                                                                                 Evas_Object * pObj, void *pEvent)
+{
+       if (pUserData == NULL) {
+               VideoLogError("bookmark data is NULL");
+               return;
+       }
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pUserData;
+
+       pBookmarkWidget->bPressed = TRUE;
+
+       if (pBookmarkWidget->pSelectCb) {
+               pBookmarkWidget->pSelectCb(-1, NULL, pBookmarkWidget->pUserData);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_released_cb(void *pUserData,
+                                                                                  Evas_Object * pObj,
+                                                                                  void *pEvent)
+{
+       if (pUserData == NULL) {
+               VideoLogError("bookmark data is NULL");
+               return;
+       }
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pUserData;
+
+       pBookmarkWidget->bPressed = FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_item_select_cb(void *pUserData,
+                                                                                         Evas_Object * pObj,
+                                                                                         void *pEvent)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (pEvent == NULL) {
+               VideoLogError("pEvent is NULL");
+               return;
+       }
+
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pUserData;
+       BookmarkItem *pBookmarkItem = NULL;
+       pBookmarkItem =
+               (BookmarkItem *) elm_object_item_data_get((Elm_Object_Item *)
+                                                                                                 pEvent);
+       if (pBookmarkItem == NULL) {
+               VideoLogError("pBookmarkItem is NULL");
+               return;
+       }
+       elm_gengrid_item_selected_set(pBookmarkItem->pElmItem, EINA_FALSE);
+
+       if (pBookmarkWidget->bEditMode) {
+               pBookmarkWidget->bEditMode = FALSE;
+               pBookmarkWidget->bPressed = FALSE;
+               _vp_play_bookmark_gengrid_item_update(pBookmarkWidget);
+               VideoLogError("+++");
+               return;
+       } else {
+               if (pBookmarkWidget->pSelectCb) {
+                       pBookmarkWidget->pSelectCb(pBookmarkItem->nPos,
+                                                                          pBookmarkItem->szFilePath,
+                                                                          pBookmarkWidget->pUserData);
+               }
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_btn_clicked_cb(void *pUserData,
+                                                                                         Evas_Object * pObj,
+                                                                                         void *pEvent)
+{
+       if (pUserData == NULL) {
+               VideoLogError("bookmark data is NULL");
+               return;
+       }
+
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pUserData;
+
+       if (pBookmarkWidget->bEditMode) {
+               pBookmarkWidget->bEditMode = FALSE;
+               pBookmarkWidget->bPressed = FALSE;
+               _vp_play_bookmark_gengrid_item_update(pBookmarkWidget);
+       }
+
+       if (pBookmarkWidget->pAddButton == pObj) {
+               if (pBookmarkWidget->pCaptureCb) {
+                       pBookmarkWidget->pCaptureCb(pBookmarkWidget->pUserData);
+               }
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_btn_press_cb(void *pUserData,
+                                                                                       Evas_Object * pObj,
+                                                                                       void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       if (!pObj) {
+               VideoLogError("pObj is NULL");
+               return;
+       }
+
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pUserData;
+       if (pBookmarkWidget->pAddButton == pObj) {
+               Evas_Object *pIcon = NULL;
+               pIcon =
+                       elm_object_part_content_get(pBookmarkWidget->pAddButton,
+                                                                               VP_PLAY_SWALLOW_BUTTON_ICON);
+               if (pIcon) {
+                       evas_object_del(pIcon);
+                       pIcon = NULL;
+               }
+               char edj_path[1024] = { 0 };
+
+               char *path = app_get_resource_path();
+               snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                                VP_PLAY_RESROUCE_EDJ_PATH);
+               free(path);
+
+               pIcon =
+                       vp_button_create_icon(pBookmarkWidget->pAddButton,
+                                                                 edj_path,
+                                                                 VP_PLAY_BOOKMARK_RES_ADD_PRESS);
+               elm_object_part_content_set(pBookmarkWidget->pAddButton,
+                                                                       VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_play_bookmark_btn_unpress_cb(void *pUserData,
+                                                                                         Evas_Object * pObj,
+                                                                                         void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       if (!pObj) {
+               VideoLogError("pObj is NULL");
+               return;
+       }
+
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pUserData;
+       if (pBookmarkWidget->pAddButton == pObj) {
+               Evas_Object *pIcon = NULL;
+               pIcon =
+                       elm_object_part_content_get(pBookmarkWidget->pAddButton,
+                                                                               VP_PLAY_SWALLOW_BUTTON_ICON);
+               if (pIcon) {
+                       evas_object_del(pIcon);
+                       pIcon = NULL;
+               }
+               char edj_path[1024] = { 0 };
+
+               char *path = app_get_resource_path();
+               snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                                VP_PLAY_RESROUCE_EDJ_PATH);
+               free(path);
+
+               pIcon =
+                       vp_button_create_icon(pBookmarkWidget->pAddButton,
+                                                                 edj_path, VP_PLAY_BOOKMARK_RES_ADD);
+               elm_object_part_content_set(pBookmarkWidget->pAddButton,
+                                                                       VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+       }
+}
+
+/* internal functions */
+/**
+ *
+ * @param pBookmarkWidget
+ */
+static void _vp_play_bookmark_destory_handle(BookmarkWidget *
+                                                                                        pBookmarkWidget)
+{
+       if (pBookmarkWidget == NULL) {
+               VideoLogError("pBookmarkWidget is NULL");
+               return;
+       }
+
+       _vp_play_bookmark_gengrid_item_clear(pBookmarkWidget);
+
+       if (pBookmarkWidget->pItemClass) {
+               elm_gengrid_item_class_free(pBookmarkWidget->pItemClass);
+               pBookmarkWidget->pItemClass = NULL;
+       }
+
+       VP_EVAS_DEL(pBookmarkWidget->pGengrid);
+       VP_EVAS_DEL(pBookmarkWidget->pAddButton);
+       VP_EVAS_DEL(pBookmarkWidget->pLayout);
+
+       VP_FREE(pBookmarkWidget->szMediaID);
+       VP_FREE(pBookmarkWidget->szMediaURL);
+
+       VP_FREE(pBookmarkWidget);
+}
+
+/**
+ *
+ * @param pList
+ * @param nPosition
+ * @param nPos
+ * @return
+ */
+static Elm_Object_Item *_vp_play_bookmark_find_before_item(GList * pList,
+                                                                                                                  int nPosition,
+                                                                                                                  int *nPos)
+{
+       if (pList == NULL) {
+               VideoLogError("pBookmarkItem list is NULL");
+               return NULL;
+       }
+
+       int nCnt = 0;
+       int idx = 0;
+
+       nCnt = g_list_length(pList);
+       for (idx = 0; idx < nCnt; idx++) {
+               BookmarkItem *pBookmarkItem = NULL;
+               pBookmarkItem = (BookmarkItem *) g_list_nth_data(pList, idx);
+               if (pBookmarkItem) {
+                       if (pBookmarkItem->nPos > nPosition) {
+                               VideoLogError("Item : %d , nPosition : %d",
+                                                         pBookmarkItem->nPos, nPosition);
+                               *nPos = idx + 1;
+                               return pBookmarkItem->pElmItem;
+                       }
+               }
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pItem1
+ * @param pItem2
+ * @return
+ */
+static gint __vp_play_bookmark_compare_cb(BookmarkItem * pItem1,
+                                                                                 BookmarkItem * pItem2)
+{
+       if (pItem1 == NULL) {
+               VideoLogError("pItem1 is NULL");
+               return 0;
+       }
+
+       if (pItem2 == NULL) {
+               VideoLogError("pItem2 is NULL");
+               return 0;
+       }
+
+       if (pItem1->nPos > pItem2->nPos) {
+               return 1;
+       } else {
+               return 0;
+       }
+}
+
+/**
+ *
+ * @param pBookmarkWidget
+ * @param pItem
+ */
+static void _vp_play_bookmark_gengrid_item_append(BookmarkWidget *
+                                                                                                 pBookmarkWidget,
+                                                                                                 BookmarkItem * pItem)
+{
+       if (pBookmarkWidget == NULL) {
+               VideoLogError("pBookmarkWidget is NULL");
+               return;
+       }
+
+       if (pItem == NULL) {
+               VideoLogError("pBookmarkWidget is NULL");
+               return;
+       }
+       if (pBookmarkWidget->pItemClass == NULL) {
+               pBookmarkWidget->pItemClass = elm_gengrid_item_class_new();
+               if (pBookmarkWidget->pItemClass == NULL) {
+                       VideoLogError("gengrid item class alloc fail");
+                       return;
+               }
+       }
+
+       pBookmarkWidget->pItemClass->item_style = "bookmark";
+       pBookmarkWidget->pItemClass->func.text_get = NULL;
+       pBookmarkWidget->pItemClass->func.content_get =
+               (void *) __vp_play_bookmark_gengrid_icon_get_cb;
+       pBookmarkWidget->pItemClass->func.state_get = NULL;
+       pBookmarkWidget->pItemClass->func.del = NULL;
+
+       Elm_Object_Item *pBeforeItem = NULL;
+       int nPos = 0;
+       pBeforeItem =
+               _vp_play_bookmark_find_before_item(pBookmarkWidget->pItemList,
+                                                                                  pItem->nPos, &nPos);
+
+       if (pBeforeItem) {
+               pItem->pElmItem =
+                       elm_gengrid_item_insert_before(pBookmarkWidget->pGengrid,
+                                                                                  pBookmarkWidget->pItemClass,
+                                                                                  (void *) pItem, pBeforeItem,
+                                                                                  __vp_play_bookmark_item_select_cb,
+                                                                                  (void *) pBookmarkWidget);
+       } else {
+               pItem->pElmItem =
+                       elm_gengrid_item_append(pBookmarkWidget->pGengrid,
+                                                                       pBookmarkWidget->pItemClass,
+                                                                       (void *) pItem,
+                                                                       __vp_play_bookmark_item_select_cb,
+                                                                       (void *) pBookmarkWidget);
+       }
+
+       pBookmarkWidget->pLastItem = pItem->pElmItem;
+
+       pBookmarkWidget->pItemList =
+               g_list_insert_sorted(pBookmarkWidget->pItemList, pItem,
+                                                        (GCompareFunc)
+                                                        __vp_play_bookmark_compare_cb);
+}
+
+/**
+ *
+ * @param pBookmarkWidget
+ */
+static void _vp_play_bookmark_gengrid_item_update(BookmarkWidget *
+                                                                                                 pBookmarkWidget)
+{
+       if (pBookmarkWidget == NULL) {
+               VideoLogError("pBookmarkWidget is NULL");
+               return;
+       }
+
+       if (pBookmarkWidget->pItemList == NULL) {
+               VideoLogError("pItemList is NULL");
+               return;
+       }
+
+       int nCount = 0;
+       int i = 0;
+
+       nCount = g_list_length(pBookmarkWidget->pItemList);
+       for (i = 0; i < nCount; i++) {
+               BookmarkItem *pBookmarkItem = NULL;
+               pBookmarkItem =
+                       (BookmarkItem *) g_list_nth_data(pBookmarkWidget->pItemList,
+                                                                                        i);
+               if (pBookmarkItem) {
+                       if (pBookmarkItem->pElmItem) {
+                               elm_gengrid_item_update(pBookmarkItem->pElmItem);
+                               elm_gengrid_item_selected_set(pBookmarkItem->pElmItem,
+                                                                                         EINA_FALSE);
+                       }
+               }
+       }
+}
+
+/**
+ *
+ * @param pBookmarkWidget
+ */
+static void _vp_play_bookmark_gengrid_item_clear(BookmarkWidget *
+                                                                                                pBookmarkWidget)
+{
+       if (pBookmarkWidget == NULL) {
+               VideoLogError("pBookmarkWidget is NULL");
+               return;
+       }
+
+       if (pBookmarkWidget->pItemList == NULL) {
+               VideoLogError("pItemList is NULL");
+               return;
+       }
+
+       int nCount = 0;
+       int i = 0;
+
+       nCount = g_list_length(pBookmarkWidget->pItemList);
+       for (i = 0; i < nCount; i++) {
+               BookmarkItem *pBookmarkItem = NULL;
+
+               pBookmarkItem =
+                       (BookmarkItem *) g_list_nth_data(pBookmarkWidget->pItemList,
+                                                                                        i);
+               if (pBookmarkItem) {
+                       VP_FREE(pBookmarkItem->szFilePath);
+                       VP_FREE(pBookmarkItem);
+               }
+       }
+
+       g_list_free(pBookmarkWidget->pItemList);
+       pBookmarkWidget->pItemList = NULL;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_bookmark_create_layout(Evas_Object * pParent)
+{
+       if (!pParent) {
+               VideoLogError("Parent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       Eina_Bool bRet = EINA_FALSE;
+
+       pObj = elm_layout_add(pParent);
+       if (pObj == NULL) {
+               VideoLogError("elm_layout_add object is NULL");
+               return NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_BOOKMARK_EDJ_PATH);
+       free(path);
+       bRet = elm_layout_file_set(pObj, edj_path, VP_PLAY_EDJ_GROUP_BOOKMARK);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail");
+               return NULL;
+       }
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_bookmark_create_gengrid(Evas_Object * pParent)
+{
+       if (!pParent) {
+               VideoLogError("Parent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_gengrid_add(pParent);
+       if (pObj == NULL) {
+               VideoLogError("elm_gengrid_add object is NULL");
+               return NULL;
+       }
+
+       elm_gengrid_item_size_set(pObj, VP_BOOKMARK_ITEM_WIDTH,
+                                                         VP_BOOKMARK_ITEM_HEIGHT);
+
+       elm_gengrid_align_set(pObj, 0.0, 0.0);
+       elm_gengrid_horizontal_set(pObj, EINA_TRUE);
+       elm_gengrid_multi_select_set(pObj, EINA_TRUE);
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void _vp_play_bookmark_layout_del_cb(void *data, Evas * e,
+                                                                                       Evas_Object * obj,
+                                                                                       void *event_info)
+{
+       if (data == NULL) {
+               VideoLogError("pBookmarkWidget is NULL");
+               return;
+       }
+
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) data;
+       pBookmarkWidget->pLayout = NULL;
+       pBookmarkWidget->pAddButton = NULL;
+       pBookmarkWidget->pGengrid = NULL;
+}
+
+/**
+ *
+ * @param pBookmarkWidget
+ * @return
+ */
+static bool _vp_play_bookmark_init_layout(BookmarkWidget * pBookmarkWidget)
+{
+       if (pBookmarkWidget == NULL) {
+               VideoLogError("pBookmarkWidget is NULL");
+               return FALSE;
+       }
+
+       Evas_Object *pParent = pBookmarkWidget->pParent;
+
+       pBookmarkWidget->pLayout = _vp_play_bookmark_create_layout(pParent);
+       if (pBookmarkWidget->pLayout == NULL) {
+               VideoLogError("_vp_play_bookmark_create_layout is fail");
+               return FALSE;
+       }
+       evas_object_event_callback_add(pBookmarkWidget->pLayout,
+                                                                  EVAS_CALLBACK_DEL,
+                                                                  _vp_play_bookmark_layout_del_cb,
+                                                                  (void *) pBookmarkWidget);
+
+       pBookmarkWidget->pGengrid =
+               _vp_play_bookmark_create_gengrid(pBookmarkWidget->pLayout);
+       if (pBookmarkWidget->pGengrid == NULL) {
+               VideoLogError("_vp_play_bookmark_create_gengrid is fail");
+               return FALSE;
+       }
+
+       evas_object_data_set(pBookmarkWidget->pGengrid,
+                                                VP_BOOKMARK_GENGRID_DATA_KEY,
+                                                (void *) pBookmarkWidget);
+
+       pBookmarkWidget->pAddButton =
+               vp_button_create(pParent, "custom/icon_44_44", NULL,
+                                                (Evas_Smart_Cb)
+                                                __vp_play_bookmark_btn_clicked_cb,
+                                                (Evas_Smart_Cb) __vp_play_bookmark_btn_press_cb,
+                                                (Evas_Smart_Cb)
+                                                __vp_play_bookmark_btn_unpress_cb,
+                                                (void *) pBookmarkWidget);
+       if (!pBookmarkWidget->pAddButton) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_RESROUCE_EDJ_PATH);
+       free(path);
+
+       Evas_Object *pIcon = NULL;
+       pIcon =
+               vp_button_create_icon(pBookmarkWidget->pAddButton,
+                                                         edj_path, VP_PLAY_BOOKMARK_RES_ADD);
+       elm_object_part_content_set(pBookmarkWidget->pAddButton,
+                                                               VP_PLAY_SWALLOW_BUTTON_ICON, pIcon);
+
+       elm_object_part_content_set(pBookmarkWidget->pLayout,
+                                                               VP_PLAY_SWALLOW_BOOKMARK_ADD_BUTTON,
+                                                               pBookmarkWidget->pAddButton);
+       elm_object_part_content_set(pBookmarkWidget->pLayout,
+                                                               VP_PLAY_SWALLOW_BOOKMARK_LIST,
+                                                               pBookmarkWidget->pGengrid);
+
+       evas_object_smart_callback_add(pBookmarkWidget->pGengrid,
+                                                                  "longpressed",
+                                                                  __vp_play_bookmark_longpress_cb,
+                                                                  (void *) pBookmarkWidget);
+       evas_object_smart_callback_add(pBookmarkWidget->pGengrid, "scroll",
+                                                                  __vp_play_bookmark_scroll_cb,
+                                                                  (void *) pBookmarkWidget);
+       evas_object_smart_callback_add(pBookmarkWidget->pGengrid, "changed",
+                                                                  __vp_play_bookmark_change_cb,
+                                                                  (void *) pBookmarkWidget);
+       evas_object_smart_callback_add(pBookmarkWidget->pGengrid, "pressed",
+                                                                  __vp_play_bookmark_pressed_cb,
+                                                                  (void *) pBookmarkWidget);
+       evas_object_smart_callback_add(pBookmarkWidget->pGengrid, "released",
+                                                                  __vp_play_bookmark_released_cb,
+                                                                  (void *) pBookmarkWidget);
+
+       return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @return
+ */
+bookmark_handle vp_play_bookmark_create(Evas_Object * pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       BookmarkWidget *pBookmarkWidget = NULL;
+
+       pBookmarkWidget = calloc(1, sizeof(BookmarkWidget));
+
+       if (pBookmarkWidget == NULL) {
+               VideoLogError("pBookmarkWidget alloc fail");
+               return NULL;
+       }
+
+       pBookmarkWidget->pParent = pParent;
+       pBookmarkWidget->bIsRealize = FALSE;
+       pBookmarkWidget->bEditMode = FALSE;
+       pBookmarkWidget->bPressed = FALSE;
+
+       if (!_vp_play_bookmark_init_layout(pBookmarkWidget)) {
+               VideoLogError("_vp_play_bookmark_init_layout is fail");
+               VP_FREE(pBookmarkWidget);
+               return NULL;
+       }
+
+       return (bookmark_handle) pBookmarkWidget;
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ */
+void vp_play_bookmark_destroy(bookmark_handle pWidgetHandle)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return;
+       }
+
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+       _vp_play_bookmark_destory_handle(pBookmarkWidget);
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+bool vp_play_bookmark_realize(bookmark_handle pWidgetHandle)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+       if (pBookmarkWidget->szMediaURL == NULL) {
+               VideoLogError("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       if (pBookmarkWidget->szMediaID == NULL) {
+               VideoLogError("szMediaID is NULL");
+               return FALSE;
+       }
+
+       /* load gengrid items */
+       GList *pList = NULL;
+       int nCnt = 0;
+       int idx = 0;
+       if (!vp_media_contents_bookmark_list_get
+               (pBookmarkWidget->szMediaID, &pList)) {
+               VideoLogError("vp_media_contents_bookmark_list_get is Fail");
+               return FALSE;
+       }
+
+       nCnt = g_list_length(pList);
+       for (idx = 0; idx < nCnt; idx++) {
+               void *pItem = NULL;
+               pItem = g_list_nth_data(pList, idx);
+               VideoLogWarning("Item : %p", pItem);
+               if (pItem) {
+                       char *szPath = NULL;
+                       int nPos = 0;
+                       if (!vp_media_contents_bookmark_get_item_info
+                               (pItem, &szPath, &nPos)) {
+                               VideoLogWarning
+                                       ("vp_media_contents_bookmark_get_item_info is Fail");
+                               continue;
+                       }
+
+                       BookmarkItem *pBookmarkItem = NULL;
+                       pBookmarkItem = calloc(1, sizeof(BookmarkItem));
+                       if (pBookmarkItem == NULL) {
+                               VideoLogWarning("pBookmarkItem alloc fail");
+                               VP_FREE(szPath);
+                               continue;
+                       }
+                       pBookmarkItem->pElmItem = NULL;
+                       pBookmarkItem->nPos = nPos;
+                       VP_STRDUP(pBookmarkItem->szFilePath, szPath);
+                       VP_FREE(szPath);
+
+                       _vp_play_bookmark_gengrid_item_append(pBookmarkWidget,
+                                                                                                 pBookmarkItem);
+               }
+       }
+
+       if (!vp_media_contents_bookmark_list_clear(pList)) {
+               VideoLogWarning("vp_media_contents_bookmark_list_clear is fail");
+       }
+
+       pList = NULL;
+
+       evas_object_show(pBookmarkWidget->pLayout);
+
+       pBookmarkWidget->bIsRealize = TRUE;
+       pBookmarkWidget->bEditMode = FALSE;
+       pBookmarkWidget->bPressed = FALSE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+bool vp_play_bookmark_unrealize(bookmark_handle pWidgetHandle)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+       _vp_play_bookmark_gengrid_item_clear(pBookmarkWidget);
+       if (pBookmarkWidget->pGengrid) {
+               elm_gengrid_clear(pBookmarkWidget->pGengrid);
+       }
+
+       evas_object_hide(pBookmarkWidget->pLayout);
+
+       pBookmarkWidget->bIsRealize = FALSE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param bIsRealize
+ * @return
+ */
+bool vp_play_bookmark_is_realize(bookmark_handle pWidgetHandle,
+                                                                bool * bIsRealize)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+       *bIsRealize = pBookmarkWidget->bIsRealize;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+Evas_Object *vp_play_bookmark_get_object(bookmark_handle pWidgetHandle)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return NULL;
+       }
+
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+       return pBookmarkWidget->pLayout;
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param func
+ * @return
+ */
+bool vp_play_bookmark_set_capture_callback(bookmark_handle pWidgetHandle,
+                                                                                  BookmarkCaptureStartCbFunc func)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+       pBookmarkWidget->pCaptureCb = func;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param func
+ * @return
+ */
+bool vp_play_bookmark_set_item_select_callback(bookmark_handle
+                                                                                          pWidgetHandle,
+                                                                                          BookmarkItemSelectCbFunc
+                                                                                          func)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+       pBookmarkWidget->pSelectCb = func;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_play_bookmark_set_user_param(bookmark_handle pWidgetHandle,
+                                                                        void *pUserData)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+       pBookmarkWidget->pUserData = pUserData;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param szMediaURL
+ * @return
+ */
+bool vp_play_bookmark_set_media_url(bookmark_handle pWidgetHandle,
+                                                                       const char *szMediaURL)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       if (szMediaURL == NULL) {
+               VideoLogError("szMediaURL is NULL");
+               return FALSE;
+       }
+       VideoLogError("IN");
+
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+       VP_STRDUP(pBookmarkWidget->szMediaURL, szMediaURL);
+
+       if (!vp_media_contents_get_video_id
+               (szMediaURL, &(pBookmarkWidget->szMediaID))) {
+               VideoLogError("vp_media_contents_get_video_id is fail");
+               return FALSE;
+       }
+       VideoLogError("OUT");
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param bEditMode
+ * @return
+ */
+bool vp_play_bookmark_set_edit_mode(bookmark_handle pWidgetHandle,
+                                                                       bool bEditMode)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+       pBookmarkWidget->bEditMode = bEditMode;
+
+       _vp_play_bookmark_gengrid_item_update(pBookmarkWidget);
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param bEditMode
+ * @return
+ */
+bool vp_play_bookmark_get_edit_mode(bookmark_handle pWidgetHandle,
+                                                                       bool * bEditMode)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+       *bEditMode = pBookmarkWidget->bEditMode;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param bPressed
+ * @return
+ */
+bool vp_play_bookmark_get_pressed_status(bookmark_handle pWidgetHandle,
+                                                                                bool * bPressed)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+       *bPressed = pBookmarkWidget->bPressed;
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nCount
+ * @return
+ */
+bool vp_play_bookmark_get_item_count(bookmark_handle pWidgetHandle,
+                                                                        int *nCount)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       BookmarkWidget *pBookmarkWidget = (BookmarkWidget *) pWidgetHandle;
+
+       if (pBookmarkWidget->pItemList == NULL) {
+               *nCount = 0;
+       } else {
+               *nCount = g_list_length(pBookmarkWidget->pItemList);
+       }
+
+       return TRUE;
+}
diff --git a/playview/src/widget/vp-play-brightness-popup.c b/playview/src/widget/vp-play-brightness-popup.c
new file mode 100755 (executable)
index 0000000..06a0810
--- /dev/null
@@ -0,0 +1,829 @@
+/*
+ * Copyright (c) 2020 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 <pthread.h>
+
+#include "vp-play-string-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-brightness-popup.h"
+
+#include "vp-device.h"
+#include "vp-play-util.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+#define VP_BRIGHTNESS_HIDE_LAYOUT_TIMER_INTERVAL       5.0
+
+#define VP_BRIGHTNESS_PORTRAIT_POS_X   275
+#define VP_BRIGHTNESS_PORTRAIT_POS_Y   150
+#define VP_BRIGHTNESS_PORTRAIT_HEIGHT  572
+
+#define VP_BRIGHTNESS_LANDSCAPE_POS_X  450
+#define VP_BRIGHTNESS_LANDSCAPE_POS_Y  60
+#define VP_BRIGHTNESS_LANDSCAPE_HEIGHT 440
+
+
+#define VP_BRIGHTNESS_TEXT_MAX_LEN     4
+
+#define VP_BRIGHTNESS_BRIGHTNESS_UNIT  10
+
+#define VP_BRIGHTNESS_ICON_NUM         12
+
+typedef struct _BrightnessWidget {
+       Evas_Object *pParent;
+       Evas_Object *pLayout;
+       Evas_Object *pIcon;
+
+       Ecore_Timer *pHideTimer;
+       Ecore_Timer *pDeviceTimer;
+
+       bool bLandscape;
+       bool bIsRealize;
+       bool bMouseDown;
+
+       int nMaxVal;
+       int nMinVal;
+       int nCurVal;
+
+       int nBrightnessUnit;
+} BrightnessWidget;
+
+static void _vp_play_brightness_destory_handle(BrightnessWidget *
+                                                                                          pBrightnessWidget);
+static double _vp_play_brightness_get_mouse_pos_ratio(Evas_Object * pObj,
+                                                                                                         bool bLandscape,
+                                                                                                         int nCurY);
+static void _vp_play_brightness_set_value(BrightnessWidget *
+                                                                                 pBrightnessWidget, int nValue);
+static void _vp_play_brightness_create_timer(BrightnessWidget *
+                                                                                        pBrightnessWidget);
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_brightness_mouse_down_cb(void *pUserData, Evas * e,
+                                                                                 Evas_Object * pObj, void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       BrightnessWidget *pBrightnessWidget = (BrightnessWidget *) pUserData;
+
+       if (pBrightnessWidget->bIsRealize == FALSE) {
+               return;
+       }
+
+       Evas_Event_Mouse_Down *pMouseDownEvent =
+               (Evas_Event_Mouse_Down *) pEvent;
+
+       double dRatio =
+               _vp_play_brightness_get_mouse_pos_ratio(pBrightnessWidget->pLayout,
+                                                                                               pBrightnessWidget->bLandscape,
+                                                                                               pMouseDownEvent->canvas.y);
+
+       int nCurVal =
+               pBrightnessWidget->nMaxVal - (dRatio * pBrightnessWidget->nMaxVal);
+
+       _vp_play_brightness_set_value(pBrightnessWidget, nCurVal);
+
+       VP_EVAS_TIMER_DEL(pBrightnessWidget->pHideTimer);
+
+       pBrightnessWidget->bMouseDown = TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_brightness_mouse_up_cb(void *pUserData, Evas * e,
+                                                                               Evas_Object * pObj, void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       BrightnessWidget *pBrightnessWidget = (BrightnessWidget *) pUserData;
+
+       Evas_Event_Mouse_Up *pMouseUpEvent = (Evas_Event_Mouse_Up *) pEvent;
+
+       if (pBrightnessWidget->bIsRealize == FALSE) {
+               return;
+       }
+
+       double dRatio =
+               _vp_play_brightness_get_mouse_pos_ratio(pBrightnessWidget->pLayout,
+                                                                                               pBrightnessWidget->bLandscape,
+                                                                                               pMouseUpEvent->canvas.y);
+
+       int nCurVal =
+               pBrightnessWidget->nMaxVal - (dRatio * pBrightnessWidget->nMaxVal);
+
+       _vp_play_brightness_set_value(pBrightnessWidget, nCurVal);
+       _vp_play_brightness_create_timer(pBrightnessWidget);
+
+       pBrightnessWidget->bMouseDown = FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_brightness_mouse_move_cb(void *pUserData, Evas * e,
+                                                                                 Evas_Object * pObj, void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       BrightnessWidget *pBrightnessWidget = (BrightnessWidget *) pUserData;
+
+       Evas_Event_Mouse_Move *pMouseMoveEvent =
+               (Evas_Event_Mouse_Move *) pEvent;
+
+       if (pBrightnessWidget->bIsRealize == FALSE
+               || pBrightnessWidget->bMouseDown == FALSE) {
+               return;
+       }
+
+       double dRatio =
+               _vp_play_brightness_get_mouse_pos_ratio(pBrightnessWidget->pLayout,
+                                                                                               pBrightnessWidget->bLandscape,
+                                                                                               pMouseMoveEvent->
+                                                                                               cur.canvas.y);
+
+       int nCurVal =
+               pBrightnessWidget->nMaxVal - (dRatio * pBrightnessWidget->nMaxVal);
+
+       if (nCurVal != pBrightnessWidget->nCurVal) {
+               _vp_play_brightness_set_value(pBrightnessWidget, nCurVal);
+       }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_brightness_hide_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+
+       BrightnessWidget *pBrightnessWidget = (BrightnessWidget *) pUserData;
+
+       VP_EVAS_TIMER_DEL(pBrightnessWidget->pHideTimer);
+
+       if (!vp_play_brightness_unrealize
+               ((brightness_handle) pBrightnessWidget)) {
+               VideoLogWarning("vp_play_brightness_unrealize is fail");
+       }
+
+       return EINA_FALSE;
+}
+
+/* internal functions */
+/**
+ *
+ * @param pBrightnessWidget
+ */
+static void _vp_play_brightness_destory_handle(BrightnessWidget *
+                                                                                          pBrightnessWidget)
+{
+       if (pBrightnessWidget == NULL) {
+               VideoLogError("pBrightnessWidget is NULL");
+               return;
+       }
+
+       VP_EVAS_TIMER_DEL(pBrightnessWidget->pHideTimer);
+       VP_EVAS_TIMER_DEL(pBrightnessWidget->pDeviceTimer);
+       VP_EVAS_DEL(pBrightnessWidget->pLayout);
+
+       VP_FREE(pBrightnessWidget);
+}
+
+/**
+ *
+ * @param pObj
+ * @param bLandscape
+ * @param nCurY
+ * @return
+ */
+static double _vp_play_brightness_get_mouse_pos_ratio(Evas_Object * pObj,
+                                                                                                         bool bLandscape,
+                                                                                                         int nCurY)
+{
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return 0.0;
+       }
+
+       int nHeight = 0;
+       int nCurrent = 0;
+       double dRatio = 0.0;
+
+       evas_object_geometry_get(pObj, NULL, NULL, NULL, &nHeight);
+
+       if (bLandscape) {
+               nHeight = VP_BRIGHTNESS_LANDSCAPE_HEIGHT;
+               nCurrent = nCurY - VP_BRIGHTNESS_LANDSCAPE_POS_Y;
+       } else {
+               nHeight = VP_BRIGHTNESS_PORTRAIT_HEIGHT;
+               nCurrent = nCurY - VP_BRIGHTNESS_PORTRAIT_POS_Y;
+       }
+
+       if (nCurrent < 0) {
+               nCurrent = 0;
+       } else if (nCurrent > nHeight) {
+               nCurrent = nHeight;
+       }
+
+       dRatio = (double) nCurrent / nHeight;
+
+       return dRatio;
+}
+
+
+/**
+ *
+ * @param pBrightnessWidget
+ */
+static void _vp_play_brightness_set_widget_position(BrightnessWidget *
+                                                                                                       pBrightnessWidget)
+{
+       if (pBrightnessWidget == NULL) {
+               VideoLogError("pBrightnessWidget is NULL");
+               return;
+       }
+
+       bool bLandscape = pBrightnessWidget->bLandscape;
+       int nWidth = 0;
+       int nHeight = 0;
+
+       elm_win_screen_size_get(pBrightnessWidget->pParent, NULL, NULL,
+                                                       &nWidth, &nHeight);
+
+       if (bLandscape) {
+               evas_object_move(pBrightnessWidget->pLayout,
+                                                nHeight -
+                                                VP_BRIGHTNESS_LANDSCAPE_POS_X * VP_SCALE,
+                                                VP_BRIGHTNESS_LANDSCAPE_POS_Y * VP_SCALE);
+       } else {
+               evas_object_move(pBrightnessWidget->pLayout,
+                                                nWidth - VP_BRIGHTNESS_PORTRAIT_POS_X * VP_SCALE,
+                                                VP_BRIGHTNESS_PORTRAIT_POS_Y * VP_SCALE);
+       }
+}
+
+/**
+ *
+ * @param pBrightnessWidget
+ * @param nValueRatio
+ */
+static void _vp_play_brightness_update_icon(BrightnessWidget *
+                                                                                       pBrightnessWidget,
+                                                                                       double nValueRatio)
+{
+       if (pBrightnessWidget == NULL) {
+               VideoLogError("pBrightnessWidget is NULL");
+               return;
+       }
+
+       if (pBrightnessWidget->pIcon == NULL) {
+               VideoLogError("pBrightnessWidget->pIcon is NULL");
+               return;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_RESROUCE_EDJ_PATH);
+       free(path);
+       gchar *popup_path = NULL;
+       int req = 0;
+       if (pBrightnessWidget->nCurVal == pBrightnessWidget->nMaxVal) {
+               req = VP_BRIGHTNESS_ICON_NUM - 1;
+       } else if (pBrightnessWidget->nCurVal > pBrightnessWidget->nMinVal) {
+               req = (int) (nValueRatio * (VP_BRIGHTNESS_ICON_NUM - 2) + 1);
+       }
+       popup_path = g_strdup_printf(VP_PLAY_BRIGHTNESS_POPUP_ICON_PATH, req);
+       elm_image_file_set(pBrightnessWidget->pIcon, edj_path, popup_path);
+       g_free(popup_path);
+}
+
+/**
+ *
+ * @param pBrightnessWidget
+ */
+static void _vp_play_brightness_update_value(BrightnessWidget *
+                                                                                        pBrightnessWidget)
+{
+       if (pBrightnessWidget == NULL) {
+               VideoLogError("pBrightnessWidget is NULL");
+               return;
+       }
+
+       double nValueRatio = 0.0;
+       char szPlayingTime[VP_BRIGHTNESS_TEXT_MAX_LEN] = { 0, };
+
+       snprintf(szPlayingTime, VP_BRIGHTNESS_TEXT_MAX_LEN, "%d",
+                        pBrightnessWidget->nCurVal);
+
+       nValueRatio =
+               ((double) pBrightnessWidget->nCurVal /
+                (double) (pBrightnessWidget->nMaxVal -
+                                  pBrightnessWidget->nMinVal));
+
+       if (!edje_object_part_drag_value_set
+               (_EDJ(pBrightnessWidget->pLayout),
+                VP_PLAY_SWALLOW_BRIGHTNESS_POPUP_DRAG_RECT, 0.0, nValueRatio)) {
+               VideoLogWarning("Drag value set fail : %lf", nValueRatio);
+       }
+
+       elm_object_part_text_set(pBrightnessWidget->pLayout,
+                                                        VP_PLAY_SWALLOW_BRIGHTNESS_POPUP_VALUE_LABEL,
+                                                        szPlayingTime);
+       /*update brightness icon */
+       _vp_play_brightness_update_icon(pBrightnessWidget, nValueRatio);
+}
+
+/**
+ *
+ * @param pBrightnessWidget
+ */
+static void _vp_play_brightness_create_timer(BrightnessWidget *
+                                                                                        pBrightnessWidget)
+{
+       if (pBrightnessWidget == NULL) {
+               VideoLogError("pBrightnessWidgetis NULL");
+               return;
+       }
+
+       VP_EVAS_TIMER_DEL(pBrightnessWidget->pHideTimer);
+
+       pBrightnessWidget->pHideTimer =
+               ecore_timer_add(VP_BRIGHTNESS_HIDE_LAYOUT_TIMER_INTERVAL,
+                                               __vp_brightness_hide_timer_cb,
+                                               (void *) pBrightnessWidget);
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_brightness_popup_device_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+
+       BrightnessWidget *pBrightnessWidget = (BrightnessWidget *) pUserData;
+
+       if (pBrightnessWidget->pDeviceTimer) {
+               VP_EVAS_TIMER_DEL(pBrightnessWidget->pDeviceTimer);
+       }
+       if (!vp_device_set_brightness(pBrightnessWidget->nCurVal)) {
+               VideoLogError("vp_device_set_brightness");
+       }
+
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pBrightnessWidget
+ * @param nValue
+ */
+static void _vp_play_brightness_set_value(BrightnessWidget *
+                                                                                 pBrightnessWidget, int nValue)
+{
+       if (pBrightnessWidget == NULL) {
+               VideoLogError("pBrightnessWidget is NULL");
+               return;
+       }
+
+       pBrightnessWidget->nCurVal = nValue;
+
+       _vp_play_brightness_update_value(pBrightnessWidget);
+
+       evas_object_show(pBrightnessWidget->pLayout);
+
+       if (pBrightnessWidget->pDeviceTimer == NULL) {
+               pBrightnessWidget->pDeviceTimer = ecore_timer_add(0.1,
+                                                                                                                 __vp_brightness_popup_device_timer_cb,
+                                                                                                                 (void *)
+                                                                                                                 pBrightnessWidget);
+       }
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_brightness_create_layout(Evas_Object *
+                                                                                                         pParent)
+{
+       if (!pParent) {
+               VideoLogError("Parent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       Eina_Bool bRet = EINA_FALSE;
+
+       pObj = elm_layout_add(pParent);
+       if (pObj == NULL) {
+               VideoLogError("elm_layout_add object is NULL");
+               return NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_BRIGHTNESS_POPUP_EDJ_PATH);
+       free(path);
+       bRet =
+               elm_layout_file_set(pObj, edj_path,
+                                                       VP_PLAY_EDJ_GROUP_BRIGHTNESS_POPUP);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail");
+               return NULL;
+       }
+
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_brightness_create_icon(Evas_Object * pParent)
+{
+       if (!pParent) {
+               VideoLogError("Parent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pIcon = elm_image_add(pParent);
+       evas_object_size_hint_weight_set(pIcon, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pIcon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_object_part_content_set(pParent,
+                                                               VP_PLAY_SWALLOW_BRIGHTNESS_POPUP_ICON,
+                                                               pIcon);
+       evas_object_show(pIcon);
+
+       return pIcon;
+}
+
+/**
+ *
+ * @param pBrightnessWidget
+ * @return
+ */
+static bool _vp_play_brightness_init_layout(BrightnessWidget *
+                                                                                       pBrightnessWidget)
+{
+       if (pBrightnessWidget == NULL) {
+               VideoLogError("pBrightnessWidget is NULL");
+               return FALSE;
+       }
+
+       Evas_Object *pParent = pBrightnessWidget->pParent;
+
+       pBrightnessWidget->pLayout =
+               _vp_play_brightness_create_layout(pParent);
+       if (pBrightnessWidget->pLayout == NULL) {
+               VideoLogError("_vp_play_brightness_create_layout is fail");
+               return FALSE;
+       }
+
+       pBrightnessWidget->pIcon =
+               _vp_play_brightness_create_icon(pBrightnessWidget->pLayout);
+       if (pBrightnessWidget->pIcon == NULL) {
+               VideoLogError("_vp_play_brightness_create_icon is fail");
+               return FALSE;
+       }
+
+       evas_object_event_callback_add(pBrightnessWidget->pLayout,
+                                                                  EVAS_CALLBACK_MOUSE_DOWN,
+                                                                  __vp_brightness_mouse_down_cb,
+                                                                  (void *) pBrightnessWidget);
+
+       evas_object_event_callback_add(pBrightnessWidget->pLayout,
+                                                                  EVAS_CALLBACK_MOUSE_UP,
+                                                                  __vp_brightness_mouse_up_cb,
+                                                                  (void *) pBrightnessWidget);
+
+       evas_object_event_callback_add(pBrightnessWidget->pLayout,
+                                                                  EVAS_CALLBACK_MOUSE_MOVE,
+                                                                  __vp_brightness_mouse_move_cb,
+                                                                  (void *) pBrightnessWidget);
+
+       return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @return
+ */
+brightness_handle vp_play_brightness_create(Evas_Object * pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       BrightnessWidget *pBrightnessWidget = NULL;
+
+       pBrightnessWidget = calloc(1, sizeof(BrightnessWidget));
+
+       if (pBrightnessWidget == NULL) {
+               VideoLogError("pBrightnessWidget alloc fail");
+               return NULL;
+       }
+
+       pBrightnessWidget->pParent = pParent;
+       pBrightnessWidget->bLandscape = FALSE;
+
+       if (!_vp_play_brightness_init_layout(pBrightnessWidget)) {
+               VideoLogError("_vp_play_brightness_init_layout is fail");
+               _vp_play_brightness_destory_handle(pBrightnessWidget);
+               return NULL;
+       }
+
+       if (!vp_device_get_max_brightness(&(pBrightnessWidget->nMaxVal))) {
+               VideoLogError("vp_device_get_max_brightness fail");
+               _vp_play_brightness_destory_handle(pBrightnessWidget);
+               return NULL;
+       }
+
+       if (!vp_device_get_min_brightness(&(pBrightnessWidget->nMinVal))) {
+               VideoLogError("vp_device_get_min_brightness fail");
+               _vp_play_brightness_destory_handle(pBrightnessWidget);
+               return NULL;
+       }
+
+       pBrightnessWidget->nBrightnessUnit =
+               pBrightnessWidget->nMaxVal / VP_BRIGHTNESS_BRIGHTNESS_UNIT;
+
+       if (!vp_device_get_brightness(&(pBrightnessWidget->nCurVal))) {
+               VideoLogError("vp_device_get_brightness fail");
+               _vp_play_brightness_destory_handle(pBrightnessWidget);
+               return NULL;
+       }
+
+       _vp_play_brightness_update_value(pBrightnessWidget);
+
+       return (brightness_handle) pBrightnessWidget;
+}
+
+/**
+ *
+ * @param pBrightnessHandle
+ */
+void vp_play_brightness_destroy(brightness_handle pBrightnessHandle)
+{
+       if (pBrightnessHandle == NULL) {
+               VideoLogError("pBrightnessHandle is NULL");
+               return;
+       }
+
+       BrightnessWidget *pBrightnessWidget =
+               (BrightnessWidget *) pBrightnessHandle;
+
+       _vp_play_brightness_destory_handle(pBrightnessWidget);
+}
+
+/**
+ *
+ * @param pBrightnessHandle
+ * @return
+ */
+bool vp_play_brightness_realize(brightness_handle pBrightnessHandle)
+{
+       if (pBrightnessHandle == NULL) {
+               VideoLogError("pBrightnessHandle is NULL");
+               return FALSE;
+       }
+
+       BrightnessWidget *pBrightnessWidget =
+               (BrightnessWidget *) pBrightnessHandle;
+
+       pBrightnessWidget->bIsRealize = TRUE;
+
+       _vp_play_brightness_set_widget_position(pBrightnessWidget);
+
+       _vp_play_brightness_set_value(pBrightnessWidget,
+                                                                 pBrightnessWidget->nCurVal);
+
+       evas_object_show(pBrightnessWidget->pLayout);
+
+       _vp_play_brightness_create_timer(pBrightnessWidget);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pBrightnessHandle
+ * @return
+ */
+bool vp_play_brightness_unrealize(brightness_handle pBrightnessHandle)
+{
+       if (pBrightnessHandle == NULL) {
+               VideoLogError("pBrightnessHandle is NULL");
+               return FALSE;
+       }
+
+       BrightnessWidget *pBrightnessWidget =
+               (BrightnessWidget *) pBrightnessHandle;
+
+       pBrightnessWidget->bIsRealize = FALSE;
+
+       evas_object_hide(pBrightnessWidget->pLayout);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pBrightnessHandle
+ * @param bLandscape
+ * @return
+ */
+bool vp_play_brightness_set_landscape_mode(brightness_handle
+                                                                                  pBrightnessHandle,
+                                                                                  bool bLandscape)
+{
+       if (pBrightnessHandle == NULL) {
+               VideoLogError("pBrightnessHandle is NULL");
+               return FALSE;
+       }
+
+       BrightnessWidget *pBrightnessWidget =
+               (BrightnessWidget *) pBrightnessHandle;
+
+       pBrightnessWidget->bLandscape = bLandscape;
+
+       _vp_play_brightness_set_widget_position(pBrightnessWidget);
+
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pBrightnessHandle
+ * @param bIsRealize
+ * @return
+ */
+bool vp_play_brightness_is_realize(brightness_handle pBrightnessHandle,
+                                                                  bool * bIsRealize)
+{
+       if (pBrightnessHandle == NULL) {
+               VideoLogError("pBrightnessHandle is NULL");
+               return FALSE;
+       }
+
+       BrightnessWidget *pBrightnessWidget =
+               (BrightnessWidget *) pBrightnessHandle;
+
+       *bIsRealize = pBrightnessWidget->bIsRealize;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pBrightnessHandle
+ * @param nCurVal
+ * @return
+ */
+bool vp_play_brightness_set_value(brightness_handle pBrightnessHandle,
+                                                                 int nCurVal)
+{
+       if (pBrightnessHandle == NULL) {
+               VideoLogError("pBrightnessHandle is NULL");
+               return FALSE;
+       }
+
+       BrightnessWidget *pBrightnessWidget =
+               (BrightnessWidget *) pBrightnessHandle;
+
+       _vp_play_brightness_create_timer(pBrightnessWidget);
+
+       pBrightnessWidget->nCurVal = nCurVal;
+
+       if (pBrightnessWidget->nCurVal < pBrightnessWidget->nMinVal) {
+               pBrightnessWidget->nCurVal = pBrightnessWidget->nMinVal;
+               return TRUE;
+       }
+
+       if (pBrightnessWidget->nCurVal > pBrightnessWidget->nMaxVal) {
+               pBrightnessWidget->nCurVal = pBrightnessWidget->nMaxVal;
+               return TRUE;
+       }
+
+       _vp_play_brightness_set_value(pBrightnessWidget,
+                                                                 pBrightnessWidget->nCurVal);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nCurVal
+ * @return
+ */
+bool vp_play_brightness_get_value(int *nCurVal)
+{
+
+       int nVal = 0;
+
+       if (!vp_device_get_brightness(&nVal)) {
+               VideoLogError("vp_device_get_brightness fail");
+               return FALSE;
+       }
+
+       *nCurVal = nVal;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nMaxVal
+ * @return
+ */
+bool vp_play_brightness_get_max_value(int *nMaxVal)
+{
+       int nVal = 0;
+
+       if (!vp_device_get_max_brightness(&(nVal))) {
+               VideoLogError("vp_device_get_brightness fail");
+               return FALSE;
+       }
+
+       *nMaxVal = nVal;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nMinVal
+ * @return
+ */
+bool vp_play_brightness_get_min_value(int *nMinVal)
+{
+       int nVal = 0;
+
+       if (!vp_device_get_min_brightness(&(nVal))) {
+               VideoLogError("vp_device_get_min_brightness fail");
+               return FALSE;
+       }
+
+       *nMinVal = nVal;
+
+       return TRUE;
+}
diff --git a/playview/src/widget/vp-play-button.c b/playview/src/widget/vp-play-button.c
new file mode 100755 (executable)
index 0000000..305d525
--- /dev/null
@@ -0,0 +1,171 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-button.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+/**
+ *
+ * @param pParent
+ * @param pStyle
+ * @param pTxt
+ * @param pClickFunc
+ * @param pPressFunc
+ * @param pUnpressFunc
+ * @param pUserData
+ * @return
+ */
+Evas_Object *vp_button_create(Evas_Object * pParent, const char *pStyle,
+                                                         const char *pTxt, Evas_Smart_Cb pClickFunc,
+                                                         Evas_Smart_Cb pPressFunc,
+                                                         Evas_Smart_Cb pUnpressFunc, void *pUserData)
+{
+       if (!pParent) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_button_add(pParent);
+
+       if (!pObj) {
+               VideoLogError("pObj is NULL");
+               return NULL;
+       }
+
+       if (pStyle) {
+               elm_object_style_set(pObj, pStyle);
+       }
+
+       if (pTxt) {
+               elm_object_text_set(pObj, pTxt);
+       }
+
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       evas_object_smart_callback_add(pObj, "clicked", pClickFunc, pUserData);
+       evas_object_smart_callback_add(pObj, "pressed", pPressFunc, pUserData);
+       evas_object_smart_callback_add(pObj, "unpressed", pUnpressFunc,
+                                                                  pUserData);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pEdjPath
+ * @param pGroupName
+ * @return
+ */
+Evas_Object *vp_button_create_icon(Evas_Object * pParent,
+                                                                  const char *pEdjPath,
+                                                                  const char *pGroupName)
+{
+       if (!pParent) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_icon_add(pParent);
+       if (!elm_image_file_set(pObj, pEdjPath, pGroupName)) {
+               VideoLogError("elm_image_file_set is fail");
+               return NULL;
+       }
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pObj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       return pObj;
+}
+
+
+/**
+ *
+ * @param pParent
+ * @param pEdjPath
+ * @param pGroupName
+ * @return
+ */
+Evas_Object *vp_button_create_image(Evas_Object * pParent,
+                                                                       const char *pEdjPath,
+                                                                       const char *pGroupName)
+{
+       if (!pParent) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_image_add(pParent);
+       if (!elm_image_file_set(pObj, pEdjPath, pGroupName)) {
+               VideoLogError("elm_image_file_set is fail");
+               return NULL;
+       }
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pStyle
+ * @param pEdjPath
+ * @param pGroupName
+ * @param pClickFunc
+ * @param pUserData
+ * @return
+ */
+Evas_Object *vp_navirame_button_create(Evas_Object * pParent,
+                                                                          const char *pStyle,
+                                                                          const char *pEdjPath,
+                                                                          const char *pGroupName,
+                                                                          Evas_Smart_Cb pClickFunc,
+                                                                          void *pUserData)
+{
+       if (!pParent) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pImage = NULL;
+       Evas_Object *btn = elm_button_add(pParent);
+       if (!btn) {
+               return NULL;
+       }
+
+       if (pStyle) {
+               elm_object_style_set(btn, pStyle);
+       } else {
+               elm_object_style_set(btn, "naviframe/title_icon");
+       }
+
+       pImage = elm_image_add(pParent);
+       elm_image_file_set(pImage, pEdjPath, pGroupName);
+       evas_object_size_hint_aspect_set(pImage, EVAS_ASPECT_CONTROL_BOTH, 1,
+                                                                        1);
+       elm_image_resizable_set(pImage, EINA_TRUE, EINA_TRUE);
+       elm_object_part_content_set(btn, "icon", pImage);
+
+       evas_object_smart_callback_add(btn, "clicked", pClickFunc, pUserData);
+       evas_object_show(btn);
+       return btn;
+}
diff --git a/playview/src/widget/vp-play-loading-ani.c b/playview/src/widget/vp-play-loading-ani.c
new file mode 100755 (executable)
index 0000000..8ec0579
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-macro-define.h"
+
+#include "vp-play-loading-ani.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+/**
+ *
+ * @param pParent
+ * @param nSize
+ * @return
+ */
+Evas_Object *vp_play_loading_ani_create(Evas_Object * pParent,
+                                                                               video_loading_size_t nSize)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *progressbar = NULL;
+       progressbar = elm_progressbar_add(pParent);
+       if (nSize == VIDEO_LOADING_SIZE_SMALL) {
+               elm_object_style_set(progressbar, "process_small");
+       } else if (nSize == VIDEO_LOADING_SIZE_MIDUM) {
+               elm_object_style_set(progressbar, "process_medium");
+       } else if (nSize == VIDEO_LOADING_SIZE_LARGE) {
+               elm_object_style_set(progressbar, "process_large");
+       } else {
+               elm_object_style_set(progressbar, "process_Xlarge");
+       }
+       evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, 0.5);
+       evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_show(progressbar);
+       elm_progressbar_pulse(progressbar, EINA_TRUE);
+
+       return progressbar;
+
+}
+
+/**
+ *
+ * @param pProgress
+ */
+void vp_play_loading_ani_destroy(Evas_Object * pProgress)
+{
+       if (pProgress == NULL) {
+               VideoLogError("pProgress is NULL");
+               return;
+       }
+
+       VP_EVAS_DEL(pProgress);
+}
diff --git a/playview/src/widget/vp-play-lockscreenmc.c b/playview/src/widget/vp-play-lockscreenmc.c
new file mode 100755 (executable)
index 0000000..2bfe6c7
--- /dev/null
@@ -0,0 +1,766 @@
+/*
+ * Copyright (c) 2020 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 <sys/time.h>
+#include <minicontrol-provider.h>
+#include <minicontrol-type.h>
+#include <device/display.h>
+#include <system_settings.h>
+
+
+#include "vp-play-string-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-lockscreenmc.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 "Ecore.h"
+
+int LOCKSCREEN_MINI_CONTROLLER_WIDTH;
+#define LOCKSCREEN_MINI_CONTROLLER_HEIGHT (93)
+
+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 Eina_Bool _vp_lockscreenmini_hide_video_mini_controller(void
+                                                                                                                          *pUserData);
+
+
+/**
+ *
+ * @param parent
+ * @param file
+ * @param group
+ * @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;
+}
+
+/**
+ *
+ * @param event_type
+ * @param event_arg
+ */
+static void _lockscreen_cb(minicontrol_viewer_event_e event_type,
+                                                  bundle * event_arg)
+{
+       /*Need to handle events */
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+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);
+
+
+       return;
+}
+
+
+/**
+ *
+ * @param 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;
+}
+
+/**
+ *
+ * @param pPlayView
+ * @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_update_winmini_size(pPlayView);
+
+       vp_lockscreenmini_show(pPlayView);
+       return 0;
+}
+
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+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;
+       }
+
+       pPlayView->b_lockmini_show = TRUE;
+       vp_lockscreenmini_update(pPlayView);
+
+       evas_object_show(pPlayView->win_lockmini);
+       return 0;
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+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;
+       }
+
+       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) {
+               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");
+       }
+}
+
+/**
+ *
+ * @param data
+ * @return
+ */
+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);
+
+       if (pPlayView)
+               pPlayView->lockmini_button_timer = NULL;
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+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);
+       }
+}
+
+/**
+ *
+ * @param 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;
+       }
+
+       _vp_lockscreenmini_update_playpause_btn(pPlayView);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+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;
+       }
+       int lock_state = SYSTEM_SETTINGS_LOCK_STATE_UNLOCK;
+       system_settings_get_value_int(SYSTEM_SETTINGS_KEY_LOCK_STATE,
+                                                                 &lock_state);
+
+       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);
+
+               system_settings_get_value_int(SYSTEM_SETTINGS_KEY_LOCK_STATE,
+                                                                         &lock_state);
+               if (lock_state == SYSTEM_SETTINGS_LOCK_STATE_LOCK) {
+                       VP_EVAS_TIMER_DEL(pPlayView->lockmini_idle_timer);
+                       pPlayView->lockmini_idle_timer =
+                               ecore_timer_add((2 * 60),
+                                                               _vp_lockscreenmini_hide_video_mini_controller,
+                                                               pPlayView);
+               }
+
+       } 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);
+               VP_EVAS_TIMER_DEL(pPlayView->lockmini_idle_timer);
+       }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_lockscreenmini_ff_btn_pressed_cb(void *data,
+                                                                                                Evas_Object * obj,
+                                                                                                void *event_info)
+{
+       VideoLogDebug("ff button pressed");
+       time(&press_time);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+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;
+       }
+
+       elm_object_signal_emit(pPlayView->lockmini_layout,
+                                                  "signal.button.unpressed", "ff_btn");
+}
+
+/**
+ * .
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_lockscreenmini_ff_btn_clicked_cb(void *data,
+                                                                                                Evas_Object * obj,
+                                                                                                void *event_info)
+{
+       VideoLogDebug("ff 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_FF_BUTTON);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_lockscreenmini_rew_btn_pressed_cb(void *data,
+                                                                                                 Evas_Object * obj,
+                                                                                                 void *event_info)
+{
+       VideoLogDebug("rew button pressed");
+       time(&press_time);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+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;
+       }
+
+       elm_object_signal_emit(pPlayView->lockmini_layout,
+                                                  "signal.button.unpressed", "rew_btn");
+
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+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*/
+
+/**
+ *
+ * @param pPlayView
+ * @param landscape
+ */
+static void
+_vp_lockscreenmini_update_layout(PlayView * pPlayView, bool landscape)
+{
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+
+       bool isLiveStreaming = pPlayView->isLiveStreaming;
+
+       VP_EVAS_TIMER_DEL(pPlayView->lockmini_button_timer);
+
+       if (pPlayView->lockmini_layout) {
+               evas_object_del(pPlayView->lockmini_layout);
+       }
+
+       if (isLiveStreaming) {
+               pPlayView->lockmini_layout =
+                               _load_edj(pPlayView->win_lockmini, LOCKSCREENMINI_EDJ_NAME,
+                                               "video-lockscreenmini-live-streaming");
+       } else {
+               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->lockmini_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->lockmini_layout,
+                                                               "albumart_image", pPlayView->lsicon_icon);
+       elm_object_focus_custom_chain_append(pPlayView->lockmini_layout,
+                                                                                pPlayView->lsicon_icon, NULL);
+       elm_object_focus_allow_set(pPlayView->lsicon_icon, EINA_TRUE);
+
+       /*-------> REW button ------->*/
+       if (!isLiveStreaming) {
+               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 ------->*/
+       if (!isLiveStreaming) {
+               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);
+}
+
+/**
+ *
+ * @param 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 *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%s</font></color_class></font_size></style></align>";
+
+       if (markup_title) {
+               if (strlen(markup_title) + 3 <= 35) {
+                       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), "elm.text",
+                                                         markup_title);
+       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);
+       }
+
+       elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_ALWAYS);
+       elm_label_slide_go(label);
+
+       VP_FREE(title);
+       VP_FREE(markup_title);
+       VP_FREE(title_shadow);
+       evas_object_show(label);
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool _vp_lockscreenmini_hide_video_mini_controller(void
+                                                                                                                          *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+
+       PlayView *pPlayView = (PlayView *) pUserData;
+       vp_lockscreenmini_hide(pPlayView);
+       pPlayView->lockmini_idle_timer = NULL;
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+void vp_lockscreenmini_update(PlayView * pPlayView)
+{
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+       if (!pPlayView->win_lockmini) {
+               VideoLogError("pPlayView->win_lockmini is NULL");
+               return;
+       }
+
+       /*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);
+
+}
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+int vp_lockscreenmini_hide(PlayView * pPlayView)
+{
+       if (!pPlayView || !pPlayView->win_lockmini)
+               return -1;
+
+       evas_object_hide(pPlayView->win_lockmini);
+       pPlayView->b_lockmini_show = FALSE;
+
+       VP_EVAS_TIMER_DEL(pPlayView->lockmini_button_timer);
+
+       return 0;
+}
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+int vp_lockscreenmini_destroy(PlayView * pPlayView)
+{
+       VideoLogDebug("lockscreenmini view destroy!!");
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return -1;
+       }
+
+       VP_EVAS_TIMER_DEL(pPlayView->lockmini_button_timer);
+       VP_EVAS_TIMER_DEL(pPlayView->lockmini_idle_timer);
+       pPlayView->lockmini_visible = false;
+
+       if (pPlayView->lockmini_layout != NULL) {
+               evas_object_hide(pPlayView->lockmini_layout);
+               evas_object_del(pPlayView->lockmini_layout);
+               pPlayView->lockmini_layout = NULL;
+               pPlayView->b_lockmini_show = FALSE;
+       }
+       if (pPlayView->win_lockmini != NULL) {
+               evas_object_hide(pPlayView->win_lockmini);
+               evas_object_del(pPlayView->win_lockmini);
+               pPlayView->win_lockmini = NULL;
+       }
+
+       return 0;
+}
diff --git a/playview/src/widget/vp-play-minicontroller.c b/playview/src/widget/vp-play-minicontroller.c
new file mode 100755 (executable)
index 0000000..753829e
--- /dev/null
@@ -0,0 +1,1031 @@
+/*
+ * Copyright (c) 2020 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 <sound_manager.h>
+#include <sys/time.h>
+#include <minicontrol-provider.h>
+#include <minicontrol-type.h>
+
+#include "mp-video-value-define.h"
+#include "vp-play-string-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-minicontroller.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"
+
+#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);
+
+PlayView *app_data;
+
+/**
+ *
+ * @param pPlayView
+ * @param angle
+ * @return
+ */
+static bool
+_vp_minicontroller_landscape_is(PlayView * pPlayView, int 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 == 90 || angle == 270) {
+               landscape = true;
+       } else {
+               landscape = false;
+       }
+       return landscape;
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void
+_vp_minicontroller_action_show_player_view(PlayView * pPlayView)
+{
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+       } else {
+               VideoLogDebug("Showing controller.");
+               minicontrol_send_event(pPlayView->win_minicon,
+                                                          MINICONTROL_EVENT_REQUEST_HIDE, NULL);
+       }
+       vp_play_util_app_resume();
+
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param emission
+ * @param source
+ */
+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")) {
+                       VideoLogDebug("close button clicked!!");
+                       elm_exit();
+               } else if (!g_strcmp0(emission, "albumart_clicked")) {
+                       VideoLogDebug("albumart clicked!!");
+                       _vp_minicontroller_action_show_player_view(pPlayView);
+                       return;
+               }
+       }
+
+}
+
+/**
+ *
+ * @param parent
+ * @param file
+ * @param group
+ * @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;
+}
+
+/**
+ *
+ * @param event_type
+ * @param event_arg
+ */
+static void _quick_panel_cb(minicontrol_viewer_event_e event_type,
+                                                       bundle * event_arg)
+{
+       VideoLogDebug("Handling events for Minicontroller!!");
+       if (event_type ==
+               (minicontrol_viewer_event_e) MINICONTROL_EVENT_REQUEST_HIDE) {
+               VideoLogDebug("Request to close Video Player");
+       }
+       if (event_type ==
+               (minicontrol_viewer_event_e) MINICONTROL_VIEWER_EVENT_REPORT_ANGLE) {
+               char *value = NULL;
+               int angle = 0;
+               bundle_get_str(event_arg, "angle", &value);
+               if (value && strlen(value) > 0) {
+                       angle = atoi(value);
+                       VideoLogDebug("Angle is : %d", angle);
+               }
+               vp_minicontroller_rotate(app_data, angle);
+       } else if (event_type == MINICONTROL_EVENT_REQUEST_HIDE) {
+               VideoLogDebug("Closing.");
+               elm_exit();
+       }
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+static void _load_minicontroller(PlayView * pPlayView)
+{
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+       app_data = pPlayView;
+       Evas_Object *win = NULL;
+       win =
+               minicontrol_create_window("videoplayer-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);
+       bool landscape = _vp_minicontroller_landscape_is(pPlayView, nAngle);
+       VideoLogDebug("Current Orientation Landscape: %d", landscape);
+       _vp_minicontroller_update_layout(pPlayView, landscape);
+
+
+       return;
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+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;
+}
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+int vp_minicontroller_create(PlayView * pPlayView)
+{
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return -1;
+       }
+
+       if (!(pPlayView->minicontroller_layout && pPlayView->win_minicon)) {
+
+               _load_minicontroller(pPlayView);
+               if (pPlayView->minicontroller_layout == NULL) {
+                       VideoLogError("ERROR");
+                       return -1;
+               }
+
+       }
+
+       vp_minicontroller_update_winmini_size(pPlayView);
+
+       vp_minicontroller_show(pPlayView);
+       _vp_minicontroller_title_set(pPlayView);
+
+       return 0;
+}
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+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;
+       }
+
+       pPlayView->b_minicontroller_show = TRUE;
+       vp_minicontroller_update(pPlayView, true);
+       evas_object_show(pPlayView->win_minicon);
+       return 0;
+
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+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;
+       }
+
+       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");
+       }
+
+}
+
+/**
+ *
+ * @param data
+ * @return
+ */
+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);
+
+       if (pPlayView)
+               pPlayView->minicon_button_timer = NULL;
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pPlayView
+ */
+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);
+       }
+}
+
+/**
+ *
+ * @param 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;
+       }
+
+       _vp_minicontroller_update_playpause_btn(pPlayView);
+}
+
+/**
+ *
+ * @return
+ */
+int _vp_is_current_focus_available()
+{
+       sound_stream_focus_change_reason_e changed_by =
+               SOUND_STREAM_FOCUS_CHANGED_BY_MEDIA;
+       int ret = 0;
+       int rec_flag = 0;
+       int playback_flag = 0;
+       char *additional_info = NULL;
+
+       ret =
+               sound_manager_get_current_recording_focus(&changed_by, &rec_flag,
+                                                                                                 &additional_info);
+       if (ret != SOUND_MANAGER_ERROR_NONE) {
+               VideoLogError("Cannot determine current recording focus");
+       }
+
+       if (!g_strcmp0(additional_info, "video_recorder")) {
+               VideoLogError
+                       ("Video Recorder Timer is active. Cannot resume Video Player");
+               return -1;
+       }
+
+       VideoLogInfo("Recorder state changed by : %d", changed_by);
+       if (changed_by == SOUND_STREAM_FOCUS_CHANGED_BY_VOICE_RECOGNITION) {
+               VideoLogError("Cannot resume Video Player. Speak Mode is on");
+               vp_play_util_status_noti_show(VP_PLAY_STRING_UNABLE_TO_PLAY);
+               return -1;
+       }
+
+       if (additional_info) {
+               free(additional_info);
+               additional_info = NULL;
+       }
+
+       changed_by = SOUND_STREAM_FOCUS_CHANGED_BY_MEDIA;
+       ret =
+               sound_manager_get_current_playback_focus(&changed_by,
+                                                                                                &playback_flag,
+                                                                                                &additional_info);
+       if (ret != SOUND_MANAGER_ERROR_NONE) {
+               VideoLogError("Cannot determine current playback focus");
+       }
+
+       VideoLogInfo("Playback state changed by : %d", changed_by);
+       if (changed_by == SOUND_STREAM_FOCUS_CHANGED_BY_CALL
+               || changed_by == SOUND_STREAM_FOCUS_CHANGED_BY_RINGTONE
+               || changed_by == SOUND_STREAM_FOCUS_CHANGED_BY_VOIP) {
+               VideoLogError("Cannot resume Video Player due to call");
+               return -1;
+       }
+
+       return 0;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+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 {
+               if (_vp_is_current_focus_available() != 0) {
+                       VideoLogError
+                               ("Some other application has the focus currently... Returning...");
+                       vp_play_util_status_noti_show(VP_PLAY_STRING_UNABLE_TO_PLAY);
+                       return;
+               }
+
+               elm_object_signal_emit(pPlayView->minicontroller_layout,
+                                                          "set_pause", "c_source");
+               vp_play_normal_view_on_controller_button_press(pPlayView->
+                                                                                                          pNormalView,
+                                                                                                          CONTROLLER_PLAY_BUTTON);
+       }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_minicontroller_ff_btn_pressed_cb(void *data,
+                                                                                                Evas_Object * obj,
+                                                                                                void *event_info)
+{
+       VideoLogDebug("ff button pressed");
+       time(&press_time);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+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;
+       }
+
+       elm_object_signal_emit(pPlayView->minicontroller_layout,
+                                                  "ff_btn_unpressed", "c_source");
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_minicontroller_ff_btn_clicked_cb(void *data,
+                                                                                                Evas_Object * obj,
+                                                                                                void *event_info)
+{
+       VideoLogDebug("ff button clicked");
+       PlayView *pPlayView = (PlayView *) data;
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+
+       if (_vp_is_current_focus_available() != 0) {
+               VideoLogError
+                       ("Some other application has the focus currently... Changing to paused state...");
+               stay_pause = true;
+       }
+
+       vp_play_normal_view_on_controller_button_press(pPlayView->pNormalView,
+                                                                                                  CONTROLLER_FF_BUTTON);
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void
+_vp_minicontroller_ff_btn_del_cb(void *data, Evas * e, Evas_Object * obj,
+                                                                void *event_info)
+{
+       /* Forward button remove cb */
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_minicontroller_rew_btn_pressed_cb(void *data,
+                                                                                                 Evas_Object * obj,
+                                                                                                 void *event_info)
+{
+       VideoLogDebug("rew button pressed");
+       time(&press_time);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+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;
+       }
+
+       elm_object_signal_emit(pPlayView->minicontroller_layout,
+                                                  "rew_btn_unpressed", "c_source");
+
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void _vp_minicontroller_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;
+       }
+
+       if (_vp_is_current_focus_available() != 0) {
+               VideoLogError
+                       ("Some other application has the focus currently... Changing to paused state...");
+               stay_pause = true;
+       }
+
+       vp_play_normal_view_on_controller_button_press(pPlayView->pNormalView,
+                                                                                                  CONTROLLER_REW_BUTTON);
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void
+_vp_minicontroller_rew_btn_del_cb(void *data, Evas * e, Evas_Object * obj,
+                                                                 void *event_info)
+{
+       /* Rewind button remove cb */
+}
+
+/*end of focused UI callbacks*/
+
+/**
+ *
+ * @param pPlayView
+ * @param landscape
+ */
+static void
+_vp_minicontroller_update_layout(PlayView * pPlayView, bool landscape)
+{
+       if (!pPlayView) {
+               VideoLogError("pPlayView is NULL");
+               return;
+       }
+       bool isLiveStreaming = pPlayView->isLiveStreaming;
+       VideoLogDebug("isLiveStreaming is %d", isLiveStreaming);
+
+       VP_EVAS_TIMER_DEL(pPlayView->minicon_button_timer);
+
+       if (pPlayView->minicontroller_layout) {
+               evas_object_del(pPlayView->minicontroller_layout);
+               pPlayView->minicontroller_layout = NULL;
+       }
+
+       if (isLiveStreaming) {
+               if (landscape) {
+                       VideoLogDebug("angle: 90 or 270");
+                       pPlayView->minicontroller_layout =
+                                       _load_edj(pPlayView->win_minicon, MINICON_EDJ_NAME,
+                                                       "video-minicontroller-live-streaming-ld");
+               } else {
+                       VideoLogDebug("angle: 0");
+                       pPlayView->minicontroller_layout =
+                                       _load_edj(pPlayView->win_minicon, MINICON_EDJ_NAME,
+                                                       "video-minicontroller-live-streaming");
+               }
+       } else {
+               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 ------->*/
+       if (!isLiveStreaming) {
+               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 ------->*/
+       if (!isLiveStreaming) {
+               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);
+
+}
+
+/**
+ *
+ * @param 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;
+
+       char *markup_title =
+               elm_entry_utf8_to_markup(vp_play_util_get_title_from_path
+                                                                (pPlayView->szMediaURL));
+       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)) {
+               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);
+       evas_object_show(label);
+
+}
+
+/**
+ *
+ * @param pPlayView
+ * @param with_title
+ */
+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;
+       }
+       //_vp_minicontroller_update_btn(pPlayView);
+       VideoLogDebug("Updating thumbnail!!!!!!!!!!!!!!");
+       char *thumbnail_path = NULL;
+       vp_media_contents_get_video_thumbnail_path(pPlayView->szMediaURL,
+                                                                                          &thumbnail_path);
+
+       if (thumbnail_path == NULL) {
+               VideoLogInfo
+                       ("Cannot generate thumbnail for video file. Switching to default path.");
+               char edj_path[1024] = { 0 };
+
+               char *path = app_get_resource_path();
+               snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                                VIDEO_PLAYER_IMAGE_NAME_EDJ);
+               free(path);
+               elm_image_file_set(pPlayView->minicon_icon, edj_path,
+                                                  VP_PLAY_NORMAL_AUDIO_ONLY_IMG);
+               evas_object_color_set(pPlayView->minicon_icon, 0, 0, 0, 255);
+       } else {
+               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);
+}
+
+/**
+ *
+ * @param pPlayView
+ * @return
+ */
+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");
+       }
+
+       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_button_timer);
+
+       pPlayView->minicon_visible = false;
+
+       return 0;
+}
+
+/**
+ *
+ * @param pPlayView
+ * @param angle
+ */
+void vp_minicontroller_rotate(PlayView * pPlayView, int 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) {
+               VideoLogDebug("Landscape mode enabled");
+               signal = "sig_set_landscape_mode";
+               w = MINI_CONTROLLER_WIDTH_LANDSCAPE;
+               landscape = true;
+       } else {
+               VideoLogDebug("Portrait mode enabled");
+               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);
+}
diff --git a/playview/src/widget/vp-play-more.c b/playview/src/widget/vp-play-more.c
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/playview/src/widget/vp-play-popup.c b/playview/src/widget/vp-play-popup.c
new file mode 100755 (executable)
index 0000000..8946786
--- /dev/null
@@ -0,0 +1,289 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-value-define.h"
+
+#include "vp-play-popup.h"
+#include "vp-play-macro-define.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+/**
+ *
+ * @param pParent
+ * @param nStyle
+ * @param szTitle
+ * @param szContent
+ * @param dTimeOut
+ * @param pTimeoutFunc
+ * @param pCancelKeyCb
+ * @param pCancelMouseCb
+ * @param pUserData
+ * @return
+ */
+Evas_Object *vp_popup_create(Evas_Object * pParent,
+                                                        video_popup_style_t nStyle, char *szTitle,
+                                                        char *szContent, double dTimeOut,
+                                                        Evas_Smart_Cb pTimeoutFunc,
+                                                        Eext_Event_Cb pCancelKeyCb,
+                                                        Evas_Object_Event_Cb pCancelMouseCb,
+                                                        void *pUserData)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+       Evas_Object *pObj = NULL;
+
+       pObj = elm_popup_add(pParent);
+
+       if (pObj == NULL) {
+               VideoLogError("elm_popup_add is fail");
+               return NULL;
+       }
+
+
+       if (nStyle == POPUP_STYLE_FULLSCREEN_NO_CANCEL_BTN) {
+               elm_layout_theme_set(pObj, "popup", "fullsrceen", "default");
+       }
+
+       if (nStyle == POPUP_STYLE_FULLSCREEN_NO_TITLE_NO_CANCEL_BTN) {
+               elm_layout_theme_set(pObj, "popup", "fullsrceen/notitle",
+                                                        "default");
+       }
+
+       evas_object_size_hint_weight_set(pObj, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+
+       if (szTitle) {
+               elm_object_part_text_set(pObj, "title,text", szTitle);
+       }
+
+       if (szContent) {
+               elm_object_text_set(pObj, szContent);
+       }
+
+       if (dTimeOut > 0.0) {
+               elm_popup_timeout_set(pObj, dTimeOut);
+               if (pTimeoutFunc) {
+                       evas_object_smart_callback_add(pObj, "timeout", pTimeoutFunc,
+                                                                                  (void *) pUserData);
+               }
+       }
+
+       if (pCancelKeyCb) {
+               eext_object_event_callback_add(pObj, EEXT_CALLBACK_BACK,
+                                                                          pCancelKeyCb, (void *) pUserData);
+       }
+
+       if (nStyle == POPUP_STYLE_DEFAULT_NO_CANCEL_BTN
+               || nStyle == POPUP_STYLE_MENU_LIST_NO_CANCEL_BTN
+               || nStyle == POPUP_STYLE_EXPAND_NO_CANCEL_BTN
+               || nStyle == POPUP_STYLE_PROGRESS_WITH_NO_CANCEL_BTN)
+               evas_object_smart_callback_add(pObj, "block,clicked",
+                                                                          pCancelKeyCb, (void *) pUserData);
+
+       if (pCancelMouseCb) {
+               evas_object_event_callback_add(pObj, EVAS_CALLBACK_MOUSE_UP,
+                                                                          pCancelMouseCb, (void *) pUserData);
+       }
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pParent
+ * @param szTitle
+ * @param szContent
+ * @param pLeftButtonText
+ * @param leftButtonCb
+ * @param pRightButtonText
+ * @param rightButtonCb
+ * @param pUserData
+ * @return
+ */
+Evas_Object *vp_two_button_popup_create(Evas_Object * pParent,
+                                                                               char *szTitle,
+                                                                               char *szContent,
+                                                                               char *pLeftButtonText,
+                                                                               Evas_Smart_Cb leftButtonCb,
+                                                                               char *pRightButtonText,
+                                                                               Evas_Smart_Cb rightButtonCb,
+                                                                               const void *pUserData)
+{
+       Evas_Object *pPopup = NULL;
+       Evas_Object *pBtn1 = NULL;
+       Evas_Object *pBtn2 = NULL;
+
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       pPopup = elm_popup_add(pParent);
+
+       if (pPopup == NULL) {
+               VideoLogError("elm_popup_add is fail");
+               return NULL;
+       }
+
+       if (szTitle) {
+               elm_object_part_text_set(pPopup, "title,text", szTitle);
+       }
+
+       evas_object_size_hint_weight_set(pPopup, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       if (szContent) {
+               elm_object_part_text_set(pPopup, "default", szContent);
+       }
+
+       pBtn1 = elm_button_add(pPopup);
+       elm_object_style_set(pBtn1, "popup");
+       elm_object_text_set(pBtn1, pLeftButtonText);
+       elm_object_part_content_set(pPopup, "button1", pBtn1);
+       if (leftButtonCb)
+               evas_object_smart_callback_add(pBtn1, "clicked", leftButtonCb,
+                                                                          (const void *) pUserData);
+
+       pBtn2 = elm_button_add(pPopup);
+       elm_object_style_set(pBtn2, "popup");
+       elm_object_text_set(pBtn2, pRightButtonText);
+       elm_object_part_content_set(pPopup, "button2", pBtn2);
+
+       if (rightButtonCb)
+               evas_object_smart_callback_add(pBtn2, "clicked", rightButtonCb,
+                                                                          (const void *) pUserData);
+
+       evas_object_show(pPopup);
+
+       return pPopup;
+}
+
+#ifdef _SUBTITLE_MULTI_LANGUAGE
+/**
+ *
+ * @param pParent
+ * @param szTitle
+ * @param szContent
+ * @param pLeftButtonText
+ * @param leftButtonCb
+ * @param pRightButtonText
+ * @param rightButtonCb
+ * @param pUserData
+ * @return
+ */
+Evas_Object *vp_title_two_button_popup_create(Evas_Object * pParent,
+                                                                                         char *szTitle,
+                                                                                         char *szContent,
+                                                                                         char *pLeftButtonText,
+                                                                                         Evas_Smart_Cb leftButtonCb,
+                                                                                         char *pRightButtonText,
+                                                                                         Evas_Smart_Cb rightButtonCb,
+                                                                                         const void *pUserData)
+{
+       Evas_Object *pPopup = NULL;
+       pPopup =
+               vp_two_button_popup_create(pParent, NULL, szContent,
+                                                                  pLeftButtonText, leftButtonCb,
+                                                                  pRightButtonText, rightButtonCb,
+                                                                  pUserData);
+       if (szTitle && pPopup) {
+               elm_object_part_text_set(pPopup, "title,text", szTitle);
+       }
+
+       return pPopup;
+}
+#endif
+/**
+ *
+ * @param pWin
+ * @return
+ */
+bool vp_popup_check_landspace_by_win(Evas_Object * pWin)
+{
+       if (!pWin) {
+               VideoLogError("win is NULL.");
+               return FALSE;
+       }
+       bool bLandSpace = FALSE;
+       int bROtation = elm_win_rotation_get(pWin);
+       if (bROtation == 90 || bROtation == 270) {
+               bLandSpace = TRUE;
+       }
+       return bLandSpace;
+}
+
+/**
+ *
+ * @param pWin
+ * @param pBox
+ * @param nListCount
+ * @param eStyle
+ */
+void vp_popup_set_popup_min_size(Evas_Object * pWin, Evas_Object * pBox,
+                                                                int nListCount,
+                                                                video_list_popup_style_t eStyle)
+{
+       if (!pWin) {
+               VideoLogError("win is NULL.");
+               return;
+       }
+       if (pBox) {
+               int nMinHeight = 0;
+               switch (eStyle) {
+               case VIDEO_POPUP_DEFAULT:
+                       if (vp_popup_check_landspace_by_win(pWin)) {
+                               nMinHeight = VP_POPUP_LIST_HEIGHT_L(nListCount);
+                       } else {
+                               nMinHeight = VP_POPUP_LIST_HEIGHT(nListCount);
+                       }
+                       break;
+               case VIDEO_POPUP_2_TEXT:
+                       if (vp_popup_check_landspace_by_win(pWin)) {
+                               nMinHeight = VP_POPUP_LIST_2_TEXT_HEIGHT_L(nListCount);
+                       } else {
+                               nMinHeight = VP_POPUP_LIST_2_TEXT_HEIGHT(nListCount);
+                       }
+                       break;
+               case VIDEO_POPUP_2_TEXT_1_ICON:
+                       if (vp_popup_check_landspace_by_win(pWin)) {
+                               nMinHeight =
+                                       VP_POPUP_LIST_2_TEXT_1_ICON_HEIGHT_L(nListCount);
+                       } else {
+                               nMinHeight =
+                                       VP_POPUP_LIST_2_TEXT_1_ICON_HEIGHT(nListCount);
+                       }
+                       break;
+               case VIDEO_POPUP_LOADING_LIST:
+                       if (vp_popup_check_landspace_by_win(pWin)) {
+                               nMinHeight = VP_POPUP_LOADING_LIST_HEIGHT_L(nListCount);
+                       } else {
+                               nMinHeight = VP_POPUP_LOADING_LIST_HEIGHT(nListCount);
+                       }
+                       break;
+
+               default:
+                       VideoLogError("invalid style =%d.", eStyle);
+                       break;
+               }
+
+               evas_object_size_hint_min_set(pBox,
+                                                                         VP_POPUP_LIST_WIDTH * VP_SCALE,
+                                                                         nMinHeight * VP_SCALE);
+       }
+}
diff --git a/playview/src/widget/vp-play-progressbar.c b/playview/src/widget/vp-play-progressbar.c
new file mode 100755 (executable)
index 0000000..5eb7ce5
--- /dev/null
@@ -0,0 +1,590 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+#include "vp-play-button.h"
+
+#include "vp-play-progressbar.h"
+
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+typedef struct _ProgressWidget {
+       Evas_Object *pParent;
+       Evas_Object *pLayout;
+
+       Evas_Object *pFocusPoint;
+
+       Evas_Object *pStartLabel;
+       Evas_Object *pTotalLabel;
+
+       video_progressbar_type_t nType;
+
+       bool bEnableAdjustment;
+       bool bRealized;
+
+       int nDuration;
+       int nCurrentPos;
+       int nBufferingPos;
+} ProgressWidget;
+
+
+static void _vp_play_progressbar_destory_handle(ProgressWidget *
+                                                                                               pProgressWidget);
+
+
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_progressbar_key_focus_cb(void *pUserData,
+                                                                                          Evas_Object * pObj,
+                                                                                          void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       ProgressWidget *pProgressWidget = (ProgressWidget *) pUserData;
+       if (pProgressWidget->pLayout == NULL) {
+               VideoLogError("pProgressWidget->pLayout is NULL");
+               return;
+       }
+
+
+       elm_object_signal_emit(pProgressWidget->pLayout,
+                                                  VP_NORMAL_SIGNAL_PROGRESS_PRESS, "*");
+
+       VideoLogInfo("progress focus in");
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEventInfo
+ */
+static void __vp_play_progressbar_key_unfocus_cb(void *pUserData,
+                                                                                                Evas_Object * pObj,
+                                                                                                void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       ProgressWidget *pProgressWidget = (ProgressWidget *) pUserData;
+       if (pProgressWidget->pLayout == NULL) {
+               VideoLogError("pProgressWidget->pLayout is NULL");
+               return;
+       }
+
+       elm_object_signal_emit(pProgressWidget->pLayout,
+                                                  VP_NORMAL_SIGNAL_PROGRESS_UNPRESS, "*");
+
+       VideoLogInfo("progress focus out");
+}
+
+/* internal functions */
+/**
+ *
+ * @param pProgressWidget
+ */
+static void _vp_play_progressbar_value_update(ProgressWidget *
+                                                                                         pProgressWidget)
+{
+       if (pProgressWidget == NULL) {
+               VideoLogError("pProgressWidget is NULL");
+               return;
+       }
+       if (pProgressWidget->pLayout == NULL) {
+               VideoLogError("pProgressWidget->pLayout is NULL");
+               return;
+       }
+
+       double dPlayedRatio = 0.0;
+       double dBufferingRatio = 0.0;
+
+       char szPlayingTime[PROGRESSBAR_TIME_LENGTH] = { 0, };
+
+       snprintf(szPlayingTime, PROGRESSBAR_TIME_LENGTH,
+                        "%" PROGRESSBAR_TIME_FORMAT,
+                        PROGRESSBAR_TIME_ARGS(pProgressWidget->nCurrentPos / 1000));
+
+       dPlayedRatio =
+               ((double) pProgressWidget->nCurrentPos /
+                (double) pProgressWidget->nDuration);
+       dBufferingRatio =
+               ((double) pProgressWidget->nBufferingPos / (double) 100);
+
+       edje_object_part_drag_value_set(_EDJ(pProgressWidget->pLayout),
+                                                                       VP_PLAY_SWALLOW_PROGRESS_DRAG_RECT,
+                                                                       dPlayedRatio, 0.0);
+       edje_object_part_drag_value_set(_EDJ(pProgressWidget->pLayout),
+                                                                       "pv.progress.buffering",
+                                                                       dBufferingRatio, 0.0);
+
+       elm_object_part_text_set(pProgressWidget->pLayout,
+                                                        VP_PLAY_SWALLOW_PROGRESS_PLAYING_LABEL,
+                                                        szPlayingTime);
+
+}
+
+/**
+ *
+ * @param pProgressWidget
+ */
+static void _vp_play_progressbar_destory_handle(ProgressWidget *
+                                                                                               pProgressWidget)
+{
+       if (pProgressWidget == NULL) {
+               VideoLogError("pProgressWidget is NULL");
+               return;
+       }
+
+       vp_play_progressbar_unrealize((progressbar_handle) pProgressWidget);
+       if (pProgressWidget->pFocusPoint) {
+               evas_object_smart_callback_del(pProgressWidget->pFocusPoint,
+                                                                          "focused",
+                                                                          __vp_play_progressbar_key_focus_cb);
+               evas_object_smart_callback_del(pProgressWidget->pFocusPoint,
+                                                                          "unfocused",
+                                                                          __vp_play_progressbar_key_unfocus_cb);
+               VP_EVAS_DEL(pProgressWidget->pFocusPoint);
+       }
+
+       VP_EVAS_DEL(pProgressWidget->pStartLabel);
+       VP_EVAS_DEL(pProgressWidget->pTotalLabel);
+
+       VP_EVAS_DEL(pProgressWidget->pLayout);
+
+       VP_FREE(pProgressWidget);
+}
+
+/**
+ *
+ * @param pParent
+ * @param nType
+ * @return
+ */
+static Evas_Object *_vp_play_progressbar_create_layout(Evas_Object *
+                                                                                                          pParent,
+                                                                                                          video_progressbar_type_t
+                                                                                                          nType)
+{
+       if (!pParent) {
+               VideoLogError("Parent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       Eina_Bool bRet = EINA_FALSE;
+
+       pObj = elm_layout_add(pParent);
+       if (pObj == NULL) {
+               VideoLogError("elm_layout_add object is NULL");
+               return NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_PROGRESSBAR_EDJ_PATH);
+       free(path);
+       if (nType == VIDEO_PROGRESSBAR_TYPE_NORMAL) {
+               bRet =
+                       elm_layout_file_set(pObj, edj_path,
+                                                               VP_PLAY_EDJ_GROUP_PROGRESSBAR);
+               if (bRet != EINA_TRUE) {
+                       VideoLogError("elm_layout_file_set fail");
+                       return NULL;
+               }
+       } else if (nType == VIDEO_PROGRESSBAR_TYPE_TRIM) {
+       }
+
+       evas_object_show(pObj);
+
+       return pObj;
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObject
+ * @param pEventInfo
+ */
+static void _vp_play_progressbar_layout_del_cb(void *pUserData, Evas * e,
+                                                                                          Evas_Object * pObject,
+                                                                                          void *pEventInfo)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pProgressWidget is NULL");
+               return;
+       }
+
+       ProgressWidget *pProgressWidget = (ProgressWidget *) pUserData;
+
+       pProgressWidget->pLayout = NULL;
+       pProgressWidget->pFocusPoint = NULL;
+
+}
+
+/**
+ *
+ * @param pProgressWidget
+ * @return
+ */
+static bool _vp_play_progressbar_init_layout(ProgressWidget *
+                                                                                        pProgressWidget)
+{
+       if (pProgressWidget == NULL) {
+               VideoLogError("pProgressWidget is NULL");
+               return FALSE;
+       }
+
+       Evas_Object *pParent = pProgressWidget->pParent;
+
+       pProgressWidget->pLayout =
+               _vp_play_progressbar_create_layout(pParent,
+                                                                                  pProgressWidget->nType);
+       if (pProgressWidget->pLayout == NULL) {
+               VideoLogError("_vp_play_progressbar_create_layout is fail");
+               return FALSE;
+       }
+
+       evas_object_event_callback_add(pProgressWidget->pLayout,
+                                                                  EVAS_CALLBACK_DEL,
+                                                                  _vp_play_progressbar_layout_del_cb,
+                                                                  (void *) pProgressWidget);
+
+
+       pProgressWidget->pFocusPoint =
+               vp_button_create(pProgressWidget->pLayout, "focus", NULL, NULL,
+                                                NULL, NULL, (void *) pProgressWidget);
+       if (!pProgressWidget->pFocusPoint) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+
+       elm_object_focus_next_object_set(pProgressWidget->pFocusPoint,
+                                                                        pProgressWidget->pFocusPoint,
+                                                                        ELM_FOCUS_RIGHT);
+       elm_object_focus_next_object_set(pProgressWidget->pFocusPoint,
+                                                                        pProgressWidget->pFocusPoint,
+                                                                        ELM_FOCUS_LEFT);
+
+       evas_object_smart_callback_add(pProgressWidget->pFocusPoint,
+                                                                  "focused",
+                                                                  __vp_play_progressbar_key_focus_cb,
+                                                                  pProgressWidget);
+       evas_object_smart_callback_add(pProgressWidget->pFocusPoint,
+                                                                  "unfocused",
+                                                                  __vp_play_progressbar_key_unfocus_cb,
+                                                                  pProgressWidget);
+
+       elm_object_part_content_set(pProgressWidget->pLayout,
+                                                               "pv.progress.point.focus",
+                                                               pProgressWidget->pFocusPoint);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pParent
+ * @param nType
+ * @return
+ */
+progressbar_handle vp_play_progressbar_create(Evas_Object * pParent,
+                                                                                         video_progressbar_type_t
+                                                                                         nType)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       ProgressWidget *pProgressWidget = NULL;
+
+       pProgressWidget = calloc(1, sizeof(ProgressWidget));
+
+       if (pProgressWidget == NULL) {
+               VideoLogError("pProgressbar alloc fail");
+               return NULL;
+       }
+
+       pProgressWidget->pParent = pParent;
+       pProgressWidget->nType = nType;
+       pProgressWidget->bRealized = FALSE;
+
+       if (!_vp_play_progressbar_init_layout(pProgressWidget)) {
+               VideoLogError("_vp_play_progressbar_init_layout is fail");
+               VP_FREE(pProgressWidget);
+               return NULL;
+       }
+
+
+
+       return (progressbar_handle) pProgressWidget;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ */
+void vp_play_progressbar_destroy(progressbar_handle pWidgetHandle)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return;
+       }
+       ProgressWidget *pProgressWidget = (ProgressWidget *) pWidgetHandle;
+
+       _vp_play_progressbar_destory_handle(pProgressWidget);
+
+       return;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+bool vp_play_progressbar_realize(progressbar_handle pWidgetHandle)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       ProgressWidget *pProgressWidget = (ProgressWidget *) pWidgetHandle;
+       pProgressWidget->bRealized = TRUE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+bool vp_play_progressbar_unrealize(progressbar_handle pWidgetHandle)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       ProgressWidget *pProgressWidget = (ProgressWidget *) pWidgetHandle;
+       pProgressWidget->bRealized = FALSE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+Evas_Object *vp_play_progressbar_get_object(progressbar_handle
+                                                                                       pWidgetHandle)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return NULL;
+       }
+       ProgressWidget *pProgressWidget = (ProgressWidget *) pWidgetHandle;
+
+       return pProgressWidget->pLayout;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+Evas_Object *vp_play_progressbar_get_focus_object(progressbar_handle
+                                                                                                 pWidgetHandle)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return NULL;
+       }
+       ProgressWidget *pProgressWidget = (ProgressWidget *) pWidgetHandle;
+
+       return pProgressWidget->pFocusPoint;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nDuration
+ * @return
+ */
+bool vp_play_progressbar_set_duration(progressbar_handle pWidgetHandle,
+                                                                         int nDuration)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       ProgressWidget *pProgressWidget = (ProgressWidget *) pWidgetHandle;
+       if (pProgressWidget->pLayout == NULL) {
+               VideoLogError("pProgressWidget->pLayout is NULL");
+               return FALSE;
+       }
+
+       char szDurationTime[PROGRESSBAR_TIME_LENGTH] = { 0, };
+
+       pProgressWidget->nDuration = nDuration;
+
+       snprintf(szDurationTime, PROGRESSBAR_TIME_LENGTH,
+                        "%" PROGRESSBAR_TIME_FORMAT,
+                        PROGRESSBAR_TIME_ARGS(pProgressWidget->nDuration / 1000));
+
+       elm_object_part_text_set(pProgressWidget->pLayout,
+                                                        VP_PLAY_SWALLOW_PROGRESS_DURATION_LABEL,
+                                                        szDurationTime);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nPosition
+ * @return
+ */
+bool vp_play_progressbar_set_position(progressbar_handle pWidgetHandle,
+                                                                         int nPosition)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       ProgressWidget *pProgressWidget = (ProgressWidget *) pWidgetHandle;
+
+       pProgressWidget->nCurrentPos = nPosition;
+
+       _vp_play_progressbar_value_update(pProgressWidget);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nBufferinPosition
+ * @return
+ */
+bool vp_play_progressbar_set_buffering_position(progressbar_handle
+                                                                                               pWidgetHandle,
+                                                                                               int nBufferinPosition)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       ProgressWidget *pProgressWidget = (ProgressWidget *) pWidgetHandle;
+
+       pProgressWidget->nBufferingPos = nBufferinPosition;
+
+       _vp_play_progressbar_value_update(pProgressWidget);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param bLandscape
+ * @return
+ */
+bool vp_play_progressbar_set_landscape_mode(progressbar_handle
+                                                                                       pWidgetHandle, bool bLandscape)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       ProgressWidget *pProgressWidget = (ProgressWidget *) pWidgetHandle;
+       if (pProgressWidget->pLayout == NULL) {
+               VideoLogError("pProgressWidget->pLayout is NULL");
+               return FALSE;
+       }
+
+       if (bLandscape) {
+               elm_object_signal_emit(pProgressWidget->pLayout,
+                                                          VP_NORMAL_SIGNAL_PROGRESS_LANDSCAPE_MODE,
+                                                          "*");
+       } else {
+               elm_object_signal_emit(pProgressWidget->pLayout,
+                                                          VP_NORMAL_SIGNAL_PROGRESS_PORTRAIT_MODE,
+                                                          "*");
+       }
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param bOpacity
+ * @return
+ */
+bool vp_play_progressbar_set_opacity(progressbar_handle pWidgetHandle,
+                                                                        bool bOpacity)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       ProgressWidget *pProgressWidget = (ProgressWidget *) pWidgetHandle;
+
+       if (pProgressWidget->pLayout == NULL) {
+               VideoLogError("pProgressWidget->pLayout is NULL");
+               return FALSE;
+       }
+
+       if (bOpacity) {
+               elm_object_signal_emit(pProgressWidget->pLayout,
+                                                          VP_NORMAL_SIGNAL_PROGRESS_OPACITY_60, "*");
+       } else {
+               elm_object_signal_emit(pProgressWidget->pLayout,
+                                                          VP_NORMAL_SIGNAL_PROGRESS_OPACITY_DEFAULT,
+                                                          "*");
+       }
+
+       return TRUE;
+
+}
diff --git a/playview/src/widget/vp-play-subtitle.c b/playview/src/widget/vp-play-subtitle.c
new file mode 100755 (executable)
index 0000000..fdfa38f
--- /dev/null
@@ -0,0 +1,1082 @@
+/*
+ * Copyright (c) 2020 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 <glib.h>
+
+#include "vp-play-string-define.h"
+#include "vp-play-value-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-preference.h"
+#include "vp-play-subtitle.h"
+#include "vp-play-util.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#ifdef SUBTITLE_K_FEATURE
+#define VP_SUBTITLE_STRING_TXT_FORMAT "<font_size= %d><style=%s><font='%s' font_weight='%s' color=%s backing_color=%s backing=%s align=%s>%s</font></style></font_size>"
+#else
+#define VP_SUBTITLE_STRING_TXT_FORMAT "<font_size= %d><style=%s><font='%s' font_weight=%s color=%s backing_color=%s backing=%s>%s</font></style></font_size>"
+#endif
+
+#define VP_SUBTITLE_SET_CAPTION_WINDOW_COLOR_ID                3
+#define VP_SUBTITLE_PROTRAIT_W         720
+#define VP_SUBTITLE_PROTRAIT_H         990
+#define VP_SUBTITLE_LANDSCAPE_W                1280
+#define VP_SUBTITLE_LANDSCAPE_H                530
+
+#define VP_NORMAL_SUTITLE_TEXT_STYLE \
+       "DEFAULT='font=Tizen:style=Roman align=center valign=bottom wrap=word'"\
+       "br='\n'" \
+       "ps='ps'" \
+       "hilight='+ font=Tizen:style=Roman'" \
+       "b='+ font=Tizen:style=Roman'" \
+       "tab='\t'"
+
+void _vp_play_subtitle_destroy_handle(Subtitle * pSubtitle);
+/* callback functions */
+
+/* internal functions */
+/**
+ *
+ * @param pSubtitle
+ */
+void _vp_play_subtitle_destroy_handle(Subtitle * pSubtitle)
+{
+       if (pSubtitle == NULL) {
+               VideoLogError("pSubtitle is NULL");
+               return;
+       }
+
+       VP_EVAS_DEL(pSubtitle->pLayout);
+       VP_FREE(pSubtitle->szFontName);
+       VP_FREE(pSubtitle->szText);
+       VP_EVAS_DEL(pSubtitle->pTextBlock);
+#ifdef SUBTITLE_K_FEATURE
+       VP_FREE(pSubtitle->pFontColorHex);
+       VP_FREE(pSubtitle->pBGColorHex);
+       VP_FREE(pSubtitle->pCaptionWinColorHex);
+#endif
+       VP_FREE(pSubtitle);
+}
+
+/**
+ *
+ * @param pParent
+ * @param nType
+ * @return
+ */
+static Evas_Object *_vp_play_subtitle_create_layout(Evas_Object * pParent,
+                                                                                                       vp_subtitle_type_t
+                                                                                                       nType)
+{
+       if (!pParent) {
+               VideoLogError("Parent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       Eina_Bool bRet = EINA_FALSE;
+
+       pObj = elm_layout_add(pParent);
+       if (pObj == NULL) {
+               VideoLogError("elm_layout_add object is NULL");
+               return NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_SUBTITLE_EDJ_PATH);
+       free(path);
+       if (nType == VP_SUBTITLE_TYPE_NORMAL) {
+               bRet =
+                       elm_layout_file_set(pObj, edj_path,
+                                                               VP_PLAY_EDJ_GROUP_SUBTITLE_MULTI);
+       } else if (nType == VP_SUBTITLE_TYPE_MULTI) {
+               bRet =
+                       elm_layout_file_set(pObj, edj_path,
+                                                               VP_PLAY_EDJ_GROUP_SUBTITLE_MULTI);
+       }
+
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail");
+               return NULL;
+       }
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObject
+ * @param pEventInfo
+ */
+static void _vp_play_subtitle_layout_del_cb(void *pUserData, Evas * e,
+                                                                                       Evas_Object * pObject,
+                                                                                       void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogError("pSubtitle is NULL");
+               return;
+       }
+       Subtitle *pSubtitle = (Subtitle *) pUserData;
+       pSubtitle->pLayout = NULL;
+
+}
+
+/**
+ *
+ * @param pSubtitle
+ * @param nType
+ * @return
+ */
+static bool _vp_play_subtitle_init_layout(Subtitle * pSubtitle,
+                                                                                 vp_subtitle_type_t nType)
+{
+       if (pSubtitle == NULL) {
+               VideoLogError("pSubtitle is NULL");
+               return FALSE;
+       }
+
+       Evas_Object *pParent = pSubtitle->pParent;
+
+       pSubtitle->pLayout = _vp_play_subtitle_create_layout(pParent, nType);
+       if (pSubtitle->pLayout == NULL) {
+               VideoLogError("_vp_play_subtitle_create_layout is fail");
+               return FALSE;
+       }
+       pSubtitle->pTextBlock = NULL;
+
+       evas_object_event_callback_add(pSubtitle->pLayout, EVAS_CALLBACK_DEL,
+                                                                  _vp_play_subtitle_layout_del_cb,
+                                                                  (void *) pSubtitle);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pSubtitle
+ * @param szTxt
+ */
+void vp_play_subtitle_text_update(Subtitle * pSubtitle, const char *szTxt)
+{
+       if (!pSubtitle || !pSubtitle->pLayout) {
+               VideoLogError("pSubtitle is NULL");
+               return;
+       }
+
+       if (!szTxt || strlen(szTxt) == 0) {
+               VideoLogWarning
+                       ("Text is null or empty, need hide caption window.");
+               vp_play_subtitle_set_caption_win_color(pSubtitle, FALSE);
+       } else if (!pSubtitle->bShowCaptionWin) {
+               VideoLogWarning("Caption window is hidden, need show it again!");
+               vp_play_subtitle_set_caption_win_color(pSubtitle, TRUE);
+       }
+
+       char *szMarkup = elm_entry_markup_to_utf8(szTxt);
+       char *szOutput = elm_entry_utf8_to_markup(szMarkup);
+       char *szTxtFormat = NULL;
+       char *szColor = NULL;
+       char *szBGColor = NULL;
+       char *szBGColorOn = NULL;
+#ifdef SUBTITLE_K_FEATURE
+       char *szAlignment = NULL;
+#endif
+       char *szFontEdge = NULL;
+       char *szFontWeight = NULL;
+
+       int nSize = 0;
+       vp_play_preference_get_subtitle_size_key(&nSize);
+
+       if (nSize == VP_SUBTITLE_SMALL) {
+               nSize = VP_SUBTITLE_SIZE_SMALL_VALUE * pSubtitle->fZoom;
+       } else if (nSize == VP_SUBTITLE_LARGE) {
+               nSize = VP_SUBTITLE_SIZE_LARGE_VALUE * pSubtitle->fZoom;
+       } else {
+               nSize = VP_SUBTITLE_SIZE_MEDIUM_VALUE * pSubtitle->fZoom;
+       }
+
+       if (nSize < VP_SUBTITLE_SIZE_SMALL_VALUE) {
+               nSize = VP_SUBTITLE_SIZE_SMALL_VALUE;
+       }
+
+       if (nSize > VP_SUBTITLE_SIZE_LARGE_VALUE) {
+               nSize = VP_SUBTITLE_SIZE_LARGE_VALUE;
+       }
+#ifndef SUBTITLE_K_FEATURE
+       if (pSubtitle->nFontColor == VP_SUBTITLE_COLOR_BLACK) {
+               szColor = g_strdup_printf("#000000");
+       } else if (pSubtitle->nFontColor == VP_SUBTITLE_COLOR_BLUE) {
+               szColor = g_strdup_printf("#0000FF");
+       } else if (pSubtitle->nFontColor == VP_SUBTITLE_COLOR_GREEN) {
+               szColor = g_strdup_printf("#00FF00");
+       } else if (pSubtitle->nFontColor == VP_SUBTITLE_COLOR_WHITE) {
+               szColor = g_strdup_printf("#FFFFFF");
+       }
+
+       if (pSubtitle->nBGColor == VP_SUBTITLE_COLOR_NONE) {
+               szBGColorOn = g_strdup_printf("off");
+               szBGColor = g_strdup_printf("#000000");
+       } else if (pSubtitle->nBGColor == VP_SUBTITLE_COLOR_BLACK) {
+               szBGColorOn = g_strdup_printf("on");
+               szBGColor = g_strdup_printf("#000000");
+       } else if (pSubtitle->nBGColor == VP_SUBTITLE_COLOR_WHITE) {
+               szBGColorOn = g_strdup_printf("on");
+               szBGColor = g_strdup_printf("#FFFFFF");
+       }
+#else
+
+       VP_FREE(pSubtitle->pFontColorHex);
+       vp_play_preference_get_subtitle_font_color_hex_key(&
+                                                                                                          (pSubtitle->
+                                                                                                               pFontColorHex));
+
+       VideoLogInfo
+               ("pSubtitle->pFontColorHex %s, pSubtitle->pBGColorHex is %s",
+                pSubtitle->pFontColorHex, pSubtitle->pBGColorHex);
+       if (pSubtitle->pFontColorHex) {
+               szColor = strdup(pSubtitle->pFontColorHex);
+       } else {
+               szColor = g_strdup_printf("#ffffffff");
+       }
+
+       if (pSubtitle->pBGColorHex) {
+               szBGColorOn = g_strdup_printf("on");
+               szBGColor = strdup(pSubtitle->pBGColorHex);
+       } else {
+               szBGColorOn = g_strdup_printf("off");
+               szBGColor = g_strdup_printf("#00000000");
+       }
+
+       int nAlignment = 0;
+       vp_play_preference_get_subtitle_alignment_key(&nAlignment);
+       if (nAlignment == VP_SUBTITLE_ALIGNMENT_LEFT) {
+               szAlignment = g_strdup_printf("left");
+       } else if (nAlignment == VP_SUBTITLE_ALIGNMENT_CENTER) {
+               szAlignment = g_strdup_printf("center");
+       } else if (nAlignment == VP_SUBTITLE_ALIGNMENT_RIGHT) {
+               szAlignment = g_strdup_printf("right");
+       }
+#endif
+
+#ifdef SUBTITLE_K_FEATURE
+       szTxtFormat =
+               g_strdup_printf(VP_SUBTITLE_STRING_TXT_FORMAT, nSize, szFontEdge,
+                                               pSubtitle->szFontName, szFontWeight, szColor,
+                                               szBGColor, szBGColorOn, szAlignment, szOutput);
+#else
+       szTxtFormat =
+               g_strdup_printf(VP_SUBTITLE_STRING_TXT_FORMAT, nSize, szFontEdge,
+                                               pSubtitle->szFontName, szFontWeight, szColor,
+                                               szBGColor, szBGColorOn, szOutput);
+#endif
+
+       if (pSubtitle->pTextBlock) {
+               evas_object_textblock_text_markup_set(pSubtitle->pTextBlock,
+                                                                                         szTxtFormat);
+       } else {
+               elm_object_part_text_set(pSubtitle->pLayout,
+                                                                VP_PLAY_PART_SUBTITLE_TEXT, szTxtFormat);
+       }
+
+       VP_FREE(szFontEdge);
+       VP_FREE(szFontWeight);
+
+       VP_FREE(szBGColor);
+       VP_FREE(szBGColorOn);
+       VP_FREE(szColor);
+       VP_FREE(szTxtFormat);
+       VP_FREE(szOutput);
+       VP_FREE(szMarkup);
+#ifdef SUBTITLE_K_FEATURE
+       VP_FREE(szAlignment);
+#endif
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param nType
+ * @return
+ */
+subtitle_handle vp_play_subtitle_create(Evas_Object * pParent,
+                                                                               vp_subtitle_type_t nType)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       Subtitle *pSubtitle = NULL;
+
+       pSubtitle = calloc(1, sizeof(Subtitle));
+       if (pSubtitle == NULL) {
+               VideoLogError("pSubtitle alloc fail");
+               return NULL;
+       }
+
+       pSubtitle->pParent = pParent;
+       pSubtitle->fZoom = 1.0;
+       pSubtitle->szFontName = strdup("Tizen");
+
+       if (!_vp_play_subtitle_init_layout(pSubtitle, nType)) {
+               VideoLogError("_vp_play_subtitle_init_layout is fail");
+               _vp_play_subtitle_destroy_handle(pSubtitle);
+               return NULL;
+       }
+
+       return pSubtitle;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ */
+void vp_play_subtitle_destroy(subtitle_handle pWidgetHandle)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       vp_play_subtitle_unrealize((subtitle_handle) pSubtitle);
+
+       _vp_play_subtitle_destroy_handle(pSubtitle);
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+bool vp_play_subtitle_realize(subtitle_handle pWidgetHandle)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       pSubtitle->bIsRealize = TRUE;
+
+       if (pSubtitle->pLayout) {
+               evas_object_show(pSubtitle->pLayout);
+       }
+
+       vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+bool vp_play_subtitle_unrealize(subtitle_handle pWidgetHandle)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       pSubtitle->bIsRealize = FALSE;
+
+       if (pSubtitle->pLayout) {
+               evas_object_hide(pSubtitle->pLayout);
+       }
+
+       vp_play_subtitle_text_update(pSubtitle, NULL);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param bIsRealize
+ * @return
+ */
+bool vp_play_subtitle_is_realize(subtitle_handle pWidgetHandle,
+                                                                bool * bIsRealize)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       *bIsRealize = pSubtitle->bIsRealize;
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @return
+ */
+Evas_Object *vp_play_subtitle_get_object(subtitle_handle pWidgetHandle)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return NULL;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       return pSubtitle->pLayout;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param szFontName
+ * @return
+ */
+bool vp_play_subtitle_set_font(subtitle_handle pWidgetHandle,
+                                                          char *szFontName)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       if (szFontName == NULL) {
+               VideoLogError("szFontName is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       VP_FREE(pSubtitle->szFontName);
+       VP_STRDUP(pSubtitle->szFontName, szFontName);
+
+       if (pSubtitle->bIsRealize) {
+               vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+       }
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param szFontName
+ * @return
+ */
+bool vp_play_subtitle_get_font(subtitle_handle pWidgetHandle,
+                                                          char **szFontName)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       if (pSubtitle->szFontName == NULL) {
+               VideoLogError("szFontName is NULL");
+               return FALSE;
+       }
+
+       VP_STRDUP(*szFontName, pSubtitle->szFontName);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nEdge
+ * @return
+ */
+bool vp_play_subtitle_set_edge(subtitle_handle pWidgetHandle, int nEdge)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       pSubtitle->nEdge = nEdge;
+
+       if (pSubtitle->bIsRealize) {
+               vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nEdge
+ * @return
+ */
+bool vp_play_subtitle_get_edge(subtitle_handle pWidgetHandle, int *nEdge)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       *nEdge = pSubtitle->nEdge;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nSize
+ * @return
+ */
+bool vp_play_subtitle_set_size(subtitle_handle pWidgetHandle,
+                                                          video_subtitle_size_t nSize)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       pSubtitle->nSize = nSize;
+
+       if (pSubtitle->bIsRealize) {
+               vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+               vp_play_subtitle_set_caption_win_color(pSubtitle, TRUE);
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nSize
+ * @return
+ */
+bool vp_play_subtitle_get_size(subtitle_handle pWidgetHandle,
+                                                          video_subtitle_size_t * nSize)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       *nSize = pSubtitle->nSize;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param fZoom
+ * @return
+ */
+bool vp_play_subtitle_set_size_zoom(subtitle_handle pWidgetHandle,
+                                                                       float fZoom)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       if (fZoom > 1.0) {
+               fZoom = 1.0;
+       }
+       pSubtitle->fZoom = fZoom;
+
+       if (pSubtitle->bIsRealize) {
+               vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param fZoom
+ * @return
+ */
+bool vp_play_subtitle_get_size_zoom(subtitle_handle pWidgetHandle,
+                                                                       float *fZoom)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       *fZoom = pSubtitle->fZoom;
+
+       return TRUE;
+}
+
+#ifndef SUBTITLE_K_FEATURE
+/**
+ *
+ * @param pWidgetHandle
+ * @param nColor
+ * @return
+ */
+bool vp_play_subtitle_set_color(subtitle_handle pWidgetHandle,
+                                                               video_subtitle_color_t nColor)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       pSubtitle->nFontColor = nColor;
+
+       if (pSubtitle->bIsRealize) {
+               vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nColor
+ * @return
+ */
+bool vp_play_subtitle_get_color(subtitle_handle pWidgetHandle,
+                                                               video_subtitle_color_t * nColor)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       *nColor = pSubtitle->nFontColor;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nColor
+ * @return
+ */
+bool vp_play_subtitle_set_bg_color(subtitle_handle pWidgetHandle,
+                                                                  video_subtitle_color_t nColor)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       pSubtitle->nBGColor = nColor;
+
+       if (pSubtitle->bIsRealize) {
+               vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+       }
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nColor
+ * @return
+ */
+bool vp_play_subtitle_get_bg_color(subtitle_handle pWidgetHandle,
+                                                                  video_subtitle_color_t * nColor)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       *nColor = pSubtitle->nBGColor;
+
+       return TRUE;
+}
+#else
+/**
+ *
+ * @param pWidgetHandle
+ * @param pColorHex
+ * @return
+ */
+bool vp_play_subtitle_get_color(subtitle_handle pWidgetHandle,
+                                                               char **pColorHex)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       if (pSubtitle->pFontColorHex == NULL) {
+               VideoLogError("pFontColorHex is NULL");
+               return FALSE;
+       }
+
+       VP_STRDUP(*pColorHex, pSubtitle->pFontColorHex);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param pColorHex
+ * @return
+ */
+bool vp_play_subtitle_set_color(subtitle_handle pWidgetHandle,
+                                                               char *pColorHex)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       VP_FREE(pSubtitle->pFontColorHex);
+       pSubtitle->pFontColorHex = g_strdup(pColorHex);
+
+       if (pSubtitle->bIsRealize) {
+               vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param pColorHex
+ * @return
+ */
+bool vp_play_subtitle_get_bg_color(subtitle_handle pWidgetHandle,
+                                                                  char **pColorHex)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       if (pSubtitle->pBGColorHex == NULL) {
+               VideoLogError("pBGColorHex is NULL");
+               return FALSE;
+       }
+
+       VP_STRDUP(*pColorHex, pSubtitle->pBGColorHex);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param pColorHex
+ * @return
+ */
+bool vp_play_subtitle_set_bg_color(subtitle_handle pWidgetHandle,
+                                                                  char *pColorHex)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       VP_FREE(pSubtitle->pBGColorHex);
+       pSubtitle->pBGColorHex = g_strdup(pColorHex);
+
+       if (pSubtitle->bIsRealize) {
+               vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+       }
+
+       return TRUE;
+}
+#endif
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param szText
+ * @return
+ */
+bool vp_play_subtitle_set_text(subtitle_handle pWidgetHandle,
+                                                          const char *szText)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       VP_FREE(pSubtitle->szText);
+       VP_STRDUP(pSubtitle->szText, szText);
+
+       if (pSubtitle->bIsRealize) {
+               vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param szText
+ * @return
+ */
+bool vp_play_subtitle_get_text(subtitle_handle pWidgetHandle,
+                                                          char **szText)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+       VP_STRDUP(*szText, pSubtitle->szText);
+
+       return TRUE;
+}
+
+#ifdef SUBTITLE_K_FEATURE
+/**
+ *
+ * @param pWidgetHandle
+ * @param nAlignment
+ * @return
+ */
+bool vp_play_subtitle_set_alignment(subtitle_handle pWidgetHandle,
+                                                                       vp_subtitle_alignment_t nAlignment)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       pSubtitle->nAlignment = nAlignment;
+
+       if (pSubtitle->bIsRealize) {
+               vp_play_subtitle_text_update(pSubtitle, pSubtitle->szText);
+               vp_play_subtitle_set_caption_win_color(pSubtitle, TRUE);
+       }
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param nAlignment
+ * @return
+ */
+bool vp_play_subtitle_get_alignment(subtitle_handle pWidgetHandle,
+                                                                       vp_subtitle_alignment_t * nAlignment)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+
+       *nAlignment = pSubtitle->nAlignment;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param bShowCaption
+ * @return
+ */
+bool vp_play_subtitle_set_caption_win_color(subtitle_handle pWidgetHandle,
+                                                                                       bool bShowCaption)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+       pSubtitle->bShowCaptionWin = bShowCaption;
+       if (!bShowCaption) {
+               VideoLogWarning("Hide caption window!");
+               vp_play_util_set_object_color(_EDJ(pSubtitle->pLayout), 0, 0, 0,
+                                                                         0,
+                                                                         VP_SUBTITLE_SET_CAPTION_WINDOW_COLOR_ID);
+               return TRUE;
+       }
+
+       char *pText = NULL;
+       vp_play_subtitle_get_text(pSubtitle, &pText);
+
+       if (pText == NULL || strlen(pText) == 0) {
+               VideoLogWarning
+                       ("pText is NULL or length is zero, need hide caption window!");
+               pSubtitle->bShowCaptionWin = FALSE;
+               vp_play_util_set_object_color(_EDJ(pSubtitle->pLayout), 0, 0, 0,
+                                                                         0,
+                                                                         VP_SUBTITLE_SET_CAPTION_WINDOW_COLOR_ID);
+               if (pText) {
+                       VP_FREE(pText);
+               }
+               return FALSE;
+       }
+
+       char *pCaptionWinColorHex = NULL;
+       if (!vp_play_preference_get_subtitle_caption_win_color_hex_key
+               (&pCaptionWinColorHex)) {
+               VideoLogWarning
+                       ("vp_play_preference_get_subtitle_caption_win_color_hex_key failed");
+       }
+
+       int nAlignment = 0;
+       vp_play_preference_get_subtitle_alignment_key(&nAlignment);
+       if (pCaptionWinColorHex) {
+               int r = 0;
+               int g = 0;
+               int b = 0;
+               int a = 0;
+               vp_play_util_convert_hex_to_rgba(pCaptionWinColorHex, &r, &g, &b,
+                                                                                &a);
+               vp_play_util_set_object_color(elm_layout_edje_get
+                                                                         (pSubtitle->pLayout), r, g, b, a,
+                                                                         VP_SUBTITLE_SET_CAPTION_WINDOW_COLOR_ID);
+       }
+       VP_FREE(pText);
+       return TRUE;
+}
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param bLandscape
+ * @param x
+ * @param y
+ * @param w
+ * @param h
+ * @return
+ */
+bool vp_play_subtitle_get_geometry(subtitle_handle pWidgetHandle,
+                                                                  bool bLandscape, Evas_Coord * x,
+                                                                  Evas_Coord * y, Evas_Coord * w,
+                                                                  Evas_Coord * h)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+       if (pSubtitle->pLayout == NULL) {
+               VideoLogError("pLayout is NULL");
+               return FALSE;
+       }
+
+       evas_object_geometry_get(pSubtitle->pLayout, x, y, w, h);
+       VideoLogInfo("%d, %d, %d, %d", x, y, w, h);
+       int ww = VP_SUBTITLE_PROTRAIT_W;
+       int hh = VP_SUBTITLE_PROTRAIT_H;
+       if (bLandscape) {
+               ww = VP_SUBTITLE_LANDSCAPE_W;
+               hh = VP_SUBTITLE_LANDSCAPE_H;
+       }
+       *x = *x - ww / 2;
+       *w = ww;
+       *y = *y - hh / 2;
+       *h = hh;
+
+       return TRUE;
+}
+#endif
+
+/**
+ *
+ * @param pWidgetHandle
+ * @param ww
+ * @param hh
+ * @return
+ */
+bool vp_play_subtitle_get_size_formatted(subtitle_handle pWidgetHandle,
+                                                                                Evas_Coord * ww, Evas_Coord * hh)
+{
+       if (pWidgetHandle == NULL) {
+               VideoLogError("pWidgetHandle is NULL");
+               return FALSE;
+       }
+
+       Subtitle *pSubtitle = (Subtitle *) pWidgetHandle;
+       if (pSubtitle->pTextBlock == NULL) {
+               VideoLogError("pTextBlock is NULL");
+               return FALSE;
+       }
+
+       evas_object_textblock_size_formatted_get(pSubtitle->pTextBlock, ww,
+                                                                                        hh);
+
+       return TRUE;
+}
diff --git a/playview/src/widget/vp-play-volume-popup.c b/playview/src/widget/vp-play-volume-popup.c
new file mode 100755 (executable)
index 0000000..071b257
--- /dev/null
@@ -0,0 +1,741 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-string-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-volume-popup.h"
+
+#include "vp-sound.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+
+#define VP_VOLUME_POPUP_HIDE_LAYOUT_TIMER_INTERVAL     5.0
+
+#define VP_VOLUME_POPUP_PORTRAIT_POS_X         220
+#define VP_VOLUME_POPUP_PORTRAIT_POS_Y         150
+#define VP_VOLUME_POPUP_PORTRAIT_HEIGHT                572
+
+#define VP_VOLUME_POPUP_LANDSCAPE_POS_X                400
+#define VP_VOLUME_POPUP_LANDSCAPE_POS_Y                60
+#define VP_VOLUME_POPUP_LANDSCAPE_HEIGHT       440
+
+#define VP_VOLUME_POPUP_TEXT_MAX_LEN           3
+
+
+
+typedef struct _VolumePopupWidget {
+       Evas_Object *pParent;
+       Evas_Object *pLayout;
+       Ecore_Timer *pHideTimer;
+       Ecore_Timer *pDeviceTimer;
+
+       bool bLandscape;
+       bool bIsRealize;
+       bool bMouseDown;
+
+       int nMaxVal;
+       int nCurVal;
+} VolumePopupWidget;
+
+static void _vp_play_volume_popup_destory_handle(VolumePopupWidget *
+                                                                                                pVolumeWidget);
+static double _vp_play_volume_popup_get_mouse_pos_ratio(Evas_Object *
+                                                                                                               pObj,
+                                                                                                               bool bLandscape,
+                                                                                                               int nCurY);
+static void _vp_play_volume_popup_set_value(VolumePopupWidget *
+                                                                                       pVolumeWidget, int nValue);
+static void _vp_play_volume_popup_create_timer(VolumePopupWidget *
+                                                                                          pVolumeWidget);
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_volume_popup_mouse_down_cb(void *pUserData, Evas * e,
+                                                                                       Evas_Object * pObj,
+                                                                                       void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pUserData;
+
+       if (pVolumeWidget->bIsRealize == FALSE) {
+               return;
+       }
+
+       Evas_Event_Mouse_Down *pMouseDownEvent =
+               (Evas_Event_Mouse_Down *) pEvent;
+
+       double dRatio =
+               _vp_play_volume_popup_get_mouse_pos_ratio(pVolumeWidget->pLayout,
+                                                                                                 pVolumeWidget->bLandscape,
+                                                                                                 pMouseDownEvent->
+                                                                                                 canvas.y);
+
+       int nCurVal =
+               pVolumeWidget->nMaxVal - (dRatio * pVolumeWidget->nMaxVal);
+
+       _vp_play_volume_popup_set_value(pVolumeWidget, nCurVal);
+
+       VP_EVAS_TIMER_DEL(pVolumeWidget->pHideTimer);
+
+       pVolumeWidget->bMouseDown = TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_volume_popup_mouse_up_cb(void *pUserData, Evas * e,
+                                                                                 Evas_Object * pObj, void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pUserData;
+
+       Evas_Event_Mouse_Up *pMouseUpEvent = (Evas_Event_Mouse_Up *) pEvent;
+
+       if (pVolumeWidget->bIsRealize == FALSE) {
+               return;
+       }
+
+       double dRatio =
+               _vp_play_volume_popup_get_mouse_pos_ratio(pVolumeWidget->pLayout,
+                                                                                                 pVolumeWidget->bLandscape,
+                                                                                                 pMouseUpEvent->canvas.y);
+
+       int nCurVal =
+               pVolumeWidget->nMaxVal - (dRatio * pVolumeWidget->nMaxVal);
+
+       _vp_play_volume_popup_set_value(pVolumeWidget, nCurVal);
+       _vp_play_volume_popup_create_timer(pVolumeWidget);
+
+       pVolumeWidget->bMouseDown = FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_volume_popup_mouse_move_cb(void *pUserData, Evas * e,
+                                                                                       Evas_Object * pObj,
+                                                                                       void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pUserData;
+
+       Evas_Event_Mouse_Move *pMouseMoveEvent =
+               (Evas_Event_Mouse_Move *) pEvent;
+
+       if (pVolumeWidget->bIsRealize == FALSE
+               || pVolumeWidget->bMouseDown == FALSE) {
+               return;
+       }
+
+       double dRatio =
+               _vp_play_volume_popup_get_mouse_pos_ratio(pVolumeWidget->pLayout,
+                                                                                                 pVolumeWidget->bLandscape,
+                                                                                                 pMouseMoveEvent->
+                                                                                                 cur.canvas.y);
+
+       int nCurVal =
+               pVolumeWidget->nMaxVal - (dRatio * pVolumeWidget->nMaxVal);
+
+       if (nCurVal != pVolumeWidget->nCurVal) {
+               _vp_play_volume_popup_set_value(pVolumeWidget, nCurVal);
+       }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_volume_popup_hide_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+
+       VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pUserData;
+
+       VP_EVAS_TIMER_DEL(pVolumeWidget->pHideTimer);
+
+       if (!vp_play_volume_popup_unrealize
+               ((volume_popup_handle) pVolumeWidget)) {
+               VideoLogWarning("vp_play_volume_popup_unrealize is fail");
+       }
+
+       return EINA_FALSE;
+}
+
+/* internal functions */
+/**
+ *
+ * @param pVolumeWidget
+ */
+static void _vp_play_volume_popup_destory_handle(VolumePopupWidget *
+                                                                                                pVolumeWidget)
+{
+       if (pVolumeWidget == NULL) {
+               VideoLogError("pVolumeWidget is NULL");
+               return;
+       }
+
+       VP_EVAS_TIMER_DEL(pVolumeWidget->pHideTimer);
+       VP_EVAS_TIMER_DEL(pVolumeWidget->pDeviceTimer);
+
+       VP_EVAS_DEL(pVolumeWidget->pLayout);
+       VP_FREE(pVolumeWidget);
+}
+
+/**
+ *
+ * @param pObj
+ * @param bLandscape
+ * @param nCurY
+ * @return
+ */
+static double _vp_play_volume_popup_get_mouse_pos_ratio(Evas_Object *
+                                                                                                               pObj,
+                                                                                                               bool bLandscape,
+                                                                                                               int nCurY)
+{
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return 0.0;
+       }
+
+       int nHeight = 0;
+       int nCurrent = 0;
+       double dRatio = 0.0;
+
+       evas_object_geometry_get(pObj, NULL, NULL, NULL, &nHeight);
+
+       if (bLandscape) {
+               nHeight = VP_VOLUME_POPUP_LANDSCAPE_HEIGHT;
+               nCurrent = nCurY - VP_VOLUME_POPUP_LANDSCAPE_POS_Y;
+       } else {
+               nHeight = VP_VOLUME_POPUP_PORTRAIT_HEIGHT;
+               nCurrent = nCurY - VP_VOLUME_POPUP_PORTRAIT_POS_Y;
+       }
+
+       if (nCurrent < 0) {
+               nCurrent = 0;
+       } else if (nCurrent > nHeight) {
+               nCurrent = nHeight;
+       }
+
+       dRatio = (double) nCurrent / nHeight;
+
+       return dRatio;
+}
+
+/**
+ *
+ * @param pVolumeWidget
+ */
+static void _vp_play_volume_popup_set_widget_position(VolumePopupWidget *
+                                                                                                         pVolumeWidget)
+{
+       if (pVolumeWidget == NULL) {
+               VideoLogError("pVolumeWidget is NULL");
+               return;
+       }
+
+       bool bLandscape = pVolumeWidget->bLandscape;
+
+       if (bLandscape) {
+               evas_object_move(pVolumeWidget->pLayout,
+                                                VP_VOLUME_POPUP_LANDSCAPE_POS_X * VP_SCALE,
+                                                VP_VOLUME_POPUP_LANDSCAPE_POS_Y * VP_SCALE);
+       } else {
+               evas_object_move(pVolumeWidget->pLayout,
+                                                VP_VOLUME_POPUP_PORTRAIT_POS_X * VP_SCALE,
+                                                VP_VOLUME_POPUP_PORTRAIT_POS_Y * VP_SCALE);
+       }
+}
+
+/**
+ *
+ * @param pVolumeWidget
+ */
+static void _vp_play_volume_popup_update_value(VolumePopupWidget *
+                                                                                          pVolumeWidget)
+{
+       if (pVolumeWidget == NULL) {
+               VideoLogError("pVolumeWidget is NULL");
+               return;
+       }
+
+       double nVolumeRatio = 0.0;
+       char szPlayingTime[VP_VOLUME_POPUP_TEXT_MAX_LEN] = { 0, };
+
+       snprintf(szPlayingTime, VP_VOLUME_POPUP_TEXT_MAX_LEN, "%d",
+                        pVolumeWidget->nCurVal);
+
+       nVolumeRatio =
+               ((double) pVolumeWidget->nCurVal /
+                (double) pVolumeWidget->nMaxVal);
+
+       if (!edje_object_part_drag_value_set
+               (_EDJ(pVolumeWidget->pLayout),
+                VP_PLAY_SWALLOW_VOLUME_POPUP_DRAG_RECT, 0.0, nVolumeRatio)) {
+               VideoLogWarning("Drag value set fail : %lf", nVolumeRatio);
+       }
+
+       elm_object_part_text_set(pVolumeWidget->pLayout,
+                                                        VP_PLAY_SWALLOW_VOLUME_POPUP_VALUE_LABEL,
+                                                        szPlayingTime);
+
+       if (pVolumeWidget->nCurVal == 0) {
+               edje_object_signal_emit(_EDJ(pVolumeWidget->pLayout), "set,mute",
+                                                               "volume.popup.icon");
+       } else {
+               edje_object_signal_emit(_EDJ(pVolumeWidget->pLayout),
+                                                               "set,volume", "volume.popup.icon");
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_volume_popup_device_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+
+       VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pUserData;
+
+       if (pVolumeWidget->pDeviceTimer) {
+               VP_EVAS_TIMER_DEL(pVolumeWidget->pDeviceTimer);
+       }
+       if (!vp_sound_set_volume(pVolumeWidget->nCurVal)) {
+               VideoLogError("vp_sound_set_volume");
+               return EINA_FALSE;
+       }
+
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pVolumeWidget
+ * @param nValue
+ */
+static void _vp_play_volume_popup_set_value(VolumePopupWidget *
+                                                                                       pVolumeWidget, int nValue)
+{
+       if (pVolumeWidget == NULL) {
+               VideoLogError("pParent is NULL");
+               return;
+       }
+
+       pVolumeWidget->nCurVal = nValue;
+
+       _vp_play_volume_popup_update_value(pVolumeWidget);
+
+       if (pVolumeWidget->pDeviceTimer == NULL) {
+               pVolumeWidget->pDeviceTimer = ecore_timer_add(0.1,
+                                                                                                         __vp_volume_popup_device_timer_cb,
+                                                                                                         (void *)
+                                                                                                         pVolumeWidget);
+       }
+}
+
+/**
+ *
+ * @param pVolumeWidget
+ */
+static void _vp_play_volume_popup_create_timer(VolumePopupWidget *
+                                                                                          pVolumeWidget)
+{
+       if (pVolumeWidget == NULL) {
+               VideoLogError("pParent is NULL");
+               return;
+       }
+
+       VP_EVAS_TIMER_DEL(pVolumeWidget->pHideTimer);
+
+       pVolumeWidget->pHideTimer =
+               ecore_timer_add(VP_VOLUME_POPUP_HIDE_LAYOUT_TIMER_INTERVAL,
+                                               __vp_volume_popup_hide_timer_cb,
+                                               (void *) pVolumeWidget);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_volume_popup_create_layout(Evas_Object *
+                                                                                                               pParent)
+{
+       if (!pParent) {
+               VideoLogError("Parent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       Eina_Bool bRet = EINA_FALSE;
+
+       pObj = elm_layout_add(pParent);
+       if (pObj == NULL) {
+               VideoLogError("elm_layout_add object is NULL");
+               return NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_VOLUME_POPUP_EDJ_PATH);
+       free(path);
+       bRet =
+               elm_layout_file_set(pObj, edj_path,
+                                                       VP_PLAY_EDJ_GROUP_VOLUME_POPUP);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail");
+               return NULL;
+       }
+
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pVolumeWidget
+ * @return
+ */
+static bool _vp_play_volume_popup_init_layout(VolumePopupWidget *
+                                                                                         pVolumeWidget)
+{
+       if (pVolumeWidget == NULL) {
+               VideoLogError("pVolumeWidget is NULL");
+               return FALSE;
+       }
+
+       Evas_Object *pParent = pVolumeWidget->pParent;
+
+       pVolumeWidget->pLayout = _vp_play_volume_popup_create_layout(pParent);
+       if (pVolumeWidget->pLayout == NULL) {
+               VideoLogError("_vp_play_volume_create_layout is fail");
+               return FALSE;
+       }
+       evas_object_event_callback_add(pVolumeWidget->pLayout,
+                                                                  EVAS_CALLBACK_MOUSE_DOWN,
+                                                                  __vp_volume_popup_mouse_down_cb,
+                                                                  (void *) pVolumeWidget);
+
+       evas_object_event_callback_add(pVolumeWidget->pLayout,
+                                                                  EVAS_CALLBACK_MOUSE_UP,
+                                                                  __vp_volume_popup_mouse_up_cb,
+                                                                  (void *) pVolumeWidget);
+
+       evas_object_event_callback_add(pVolumeWidget->pLayout,
+                                                                  EVAS_CALLBACK_MOUSE_MOVE,
+                                                                  __vp_volume_popup_mouse_move_cb,
+                                                                  (void *) pVolumeWidget);
+
+       return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @return
+ */
+volume_popup_handle vp_play_volume_popup_create(Evas_Object * pParent)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       VolumePopupWidget *pVolumeWidget = NULL;
+
+       pVolumeWidget = calloc(1, sizeof(VolumePopupWidget));
+
+       if (pVolumeWidget == NULL) {
+               VideoLogError("pVolumeWidget alloc fail");
+               return NULL;
+       }
+
+       pVolumeWidget->pParent = pParent;
+       pVolumeWidget->bLandscape = FALSE;
+
+       if (!_vp_play_volume_popup_init_layout(pVolumeWidget)) {
+               VideoLogError("_vp_play_volume_init_layout is fail");
+               _vp_play_volume_popup_destory_handle(pVolumeWidget);
+               return NULL;
+       }
+
+       if (!vp_sound_get_max_volume(&(pVolumeWidget->nMaxVal))) {
+               VideoLogError("vp_sound_get_max_volume fail");
+               _vp_play_volume_popup_destory_handle(pVolumeWidget);
+               return NULL;
+       }
+
+       if (!vp_sound_get_volume(&(pVolumeWidget->nCurVal))) {
+               VideoLogError("vp_sound_get_volume fail");
+               _vp_play_volume_popup_destory_handle(pVolumeWidget);
+               return NULL;
+       }
+
+       _vp_play_volume_popup_update_value(pVolumeWidget);
+
+       return (volume_popup_handle) pVolumeWidget;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ */
+void vp_play_volume_popup_destroy(volume_popup_handle pVolumeHandle)
+{
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pParent is NULL");
+               return;
+       }
+
+       VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pVolumeHandle;
+
+       _vp_play_volume_popup_destory_handle(pVolumeWidget);
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+bool vp_play_volume_popup_realize(volume_popup_handle pVolumeHandle)
+{
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pParent is NULL");
+               return FALSE;
+       }
+
+       VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pVolumeHandle;
+
+       pVolumeWidget->bIsRealize = TRUE;
+
+       _vp_play_volume_popup_set_widget_position(pVolumeWidget);
+
+       _vp_play_volume_popup_set_value(pVolumeWidget, pVolumeWidget->nCurVal);
+
+       evas_object_show(pVolumeWidget->pLayout);
+       _vp_play_volume_popup_create_timer(pVolumeWidget);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+bool vp_play_volume_popup_unrealize(volume_popup_handle pVolumeHandle)
+{
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pParent is NULL");
+               return FALSE;
+       }
+
+       VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pVolumeHandle;
+
+       pVolumeWidget->bIsRealize = FALSE;
+
+       evas_object_hide(pVolumeWidget->pLayout);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param bLandscape
+ * @return
+ */
+bool vp_play_volume_popup_set_landscape_mode(volume_popup_handle
+                                                                                        pVolumeHandle,
+                                                                                        bool bLandscape)
+{
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pParent is NULL");
+               return FALSE;
+       }
+
+       VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pVolumeHandle;
+
+       pVolumeWidget->bLandscape = bLandscape;
+
+       _vp_play_volume_popup_set_widget_position(pVolumeWidget);
+
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param bIsRealize
+ * @return
+ */
+bool vp_play_volume_popup_is_realize(volume_popup_handle pVolumeHandle,
+                                                                        bool * bIsRealize)
+{
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pParent is NULL");
+               return FALSE;
+       }
+
+       VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pVolumeHandle;
+
+       *bIsRealize = pVolumeWidget->bIsRealize;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param nCurVal
+ * @return
+ */
+bool vp_play_volume_popup_set_value(volume_popup_handle pVolumeHandle,
+                                                                       int nCurVal)
+{
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pParent is NULL");
+               return FALSE;
+       }
+
+       VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pVolumeHandle;
+
+       _vp_play_volume_popup_create_timer(pVolumeWidget);
+
+       pVolumeWidget->nCurVal = nCurVal;
+
+       if (pVolumeWidget->nCurVal < 0) {
+               pVolumeWidget->nCurVal = 0;
+               return TRUE;
+       }
+
+       if (pVolumeWidget->nCurVal > pVolumeWidget->nMaxVal) {
+               pVolumeWidget->nCurVal = pVolumeWidget->nMaxVal;
+               return TRUE;
+       }
+
+       _vp_play_volume_popup_set_value(pVolumeWidget, pVolumeWidget->nCurVal);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nCurVal
+ * @return
+ */
+bool vp_play_volume_popup_get_value(int *nCurVal)
+{
+
+       int nVal = 0;
+
+       if (!vp_sound_get_volume(&nVal)) {
+               VideoLogError("vp_sound_get_volume fail");
+               return FALSE;
+       }
+
+       *nCurVal = nVal;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nMaxVal
+ * @return
+ */
+bool vp_play_volume_popup_get_max_value(int *nMaxVal)
+{
+       int nVal = 0;
+
+       if (!vp_sound_get_max_volume(&nVal)) {
+               VideoLogError("vp_sound_get_max_volume fail");
+               return FALSE;
+       }
+
+       *nMaxVal = nVal;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param bIsMute
+ * @return
+ */
+bool vp_play_volume_popup_is_mute(volume_popup_handle pVolumeHandle,
+                                                                 bool * bIsMute)
+{
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pParent is NULL");
+               return FALSE;
+       }
+
+       VolumePopupWidget *pVolumeWidget = (VolumePopupWidget *) pVolumeHandle;
+
+       if (pVolumeWidget->nCurVal == 0) {
+               *bIsMute = TRUE;
+       } else {
+               *bIsMute = FALSE;
+       }
+
+       return TRUE;
+
+}
diff --git a/playview/src/widget/vp-play-volume.c b/playview/src/widget/vp-play-volume.c
new file mode 100755 (executable)
index 0000000..4b300a9
--- /dev/null
@@ -0,0 +1,1139 @@
+/*
+ * Copyright (c) 2020 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 "vp-play-string-define.h"
+#include "vp-play-macro-define.h"
+
+#include "vp-play-volume.h"
+#include "vp-play-button.h"
+
+#include "vp-sound.h"
+
+/* check temp */
+#include "vp-play-log.h"
+
+#define VP_VOLUME_HIDE_LAYOUT_TIMER_INTERVAL   5.0
+
+#define VP_VOLUME_PORTRAIT_POS_X       15
+#define VP_VOLUME_PORTRAIT_POS_Y       60
+#define VP_VOLUME_PORTRAIT_HEIGHT      241
+
+#define VP_VOLUME_LANDSCAPE_POS_X      19
+#define VP_VOLUME_LANDSCAPE_POS_Y      27
+#define VP_VOLUME_LANDSCAPE_HEIGHT     170
+
+#define VP_VOLUME_TOP_PADDING_H                87
+
+#define VP_VOLUME_TEXT_MAX_LEN         4
+
+
+
+typedef struct _VolumeWidget {
+       Evas_Object *pParent;
+       Evas_Object *pWin;
+       Evas_Object *pLayout;
+       Evas_Object *pFocusPoint;
+       Ecore_Timer *pHideTimer;
+       Ecore_Timer *pDeviceTimer;
+
+       bool bLandscape;
+       bool bIsRealize;
+       bool bMouseDown;
+
+       int nMaxVal;
+       int nCurVal;
+       int nTmpVal;
+       int nMuteVal;
+
+       void *pUserData;
+       void *pPlayerHandle;
+
+       NormalVolumeChangeCbFunc pChangeVolFunc;
+} VolumeWidget;
+
+static void _vp_play_volume_destory_handle(VolumeWidget * pVolumeWidget);
+static double _vp_play_volume_get_mouse_pos_ratio(Evas_Object * pObj,
+                                                                                                 bool bLandscape,
+                                                                                                 int nCurY,
+                                                                                                 Evas_Object * pWin);
+static bool _vp_play_volume_set_value(VolumeWidget * pVolumeWidget,
+                                                                         int nValue);
+static void _vp_play_volume_create_timer(VolumeWidget * pVolumeWidget);
+
+/* callback functions */
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_volume_focus_key_down_cb(void *pUserData, Evas * e,
+                                                                                 Evas_Object * pObj, void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pUserData;
+
+       Evas_Event_Key_Down *ev = pEvent;
+
+       if (!ev) {
+               return;
+       }
+       if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) {
+               return;
+       }
+
+       VideoLogInfo("KEY: %s", ev->keyname);
+
+       if (!strcmp(ev->keyname, "Up")) {
+               vp_play_volume_increase_value(pVolumeWidget);
+       } else if (!strcmp(ev->keyname, "Down")) {
+               vp_play_volume_decrease_value(pVolumeWidget);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_volume_mouse_down_cb(void *pUserData, Evas * e,
+                                                                         Evas_Object * pObj, void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pUserData;
+
+       if (pVolumeWidget->bIsRealize == FALSE) {
+               return;
+       }
+
+       Evas_Event_Mouse_Down *pMouseDownEvent =
+               (Evas_Event_Mouse_Down *) pEvent;
+
+       double dRatio =
+               _vp_play_volume_get_mouse_pos_ratio(pVolumeWidget->pLayout,
+                                                                                       pVolumeWidget->bLandscape,
+                                                                                       pMouseDownEvent->canvas.y,
+                                                                                       pVolumeWidget->pWin);
+
+       int nCurVal =
+               pVolumeWidget->nMaxVal - (dRatio * pVolumeWidget->nMaxVal);
+
+       _vp_play_volume_set_value(pVolumeWidget, nCurVal);
+
+       VP_EVAS_TIMER_DEL(pVolumeWidget->pHideTimer);
+
+       pVolumeWidget->bMouseDown = TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_volume_mouse_up_cb(void *pUserData, Evas * e,
+                                                                       Evas_Object * pObj, void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pUserData;
+
+       Evas_Event_Mouse_Up *pMouseUpEvent = (Evas_Event_Mouse_Up *) pEvent;
+
+       if (pVolumeWidget->bIsRealize == FALSE) {
+               return;
+       }
+
+       double dRatio =
+               _vp_play_volume_get_mouse_pos_ratio(pVolumeWidget->pLayout,
+                                                                                       pVolumeWidget->bLandscape,
+                                                                                       pMouseUpEvent->canvas.y,
+                                                                                       pVolumeWidget->pWin);
+
+       int nCurVal =
+               pVolumeWidget->nMaxVal - (dRatio * pVolumeWidget->nMaxVal);
+
+       _vp_play_volume_set_value(pVolumeWidget, nCurVal);
+       _vp_play_volume_create_timer(pVolumeWidget);
+
+       pVolumeWidget->bMouseDown = FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObj
+ * @param pEvent
+ */
+static void __vp_volume_mouse_move_cb(void *pUserData, Evas * e,
+                                                                         Evas_Object * pObj, void *pEvent)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pUserData;
+
+       Evas_Event_Mouse_Move *pMouseMoveEvent =
+               (Evas_Event_Mouse_Move *) pEvent;
+
+       if (pVolumeWidget->bIsRealize == FALSE
+               || pVolumeWidget->bMouseDown == FALSE) {
+               return;
+       }
+
+       double dRatio =
+               _vp_play_volume_get_mouse_pos_ratio(pVolumeWidget->pLayout,
+                                                                                       pVolumeWidget->bLandscape,
+                                                                                       pMouseMoveEvent->cur.canvas.y,
+                                                                                       pVolumeWidget->pWin);
+
+       int nCurVal =
+               pVolumeWidget->nMaxVal - (dRatio * pVolumeWidget->nMaxVal);
+
+       if (nCurVal != pVolumeWidget->nCurVal) {
+               _vp_play_volume_set_value(pVolumeWidget, nCurVal);
+       }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_volume_hide_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pUserData;
+
+       VP_EVAS_TIMER_DEL(pVolumeWidget->pHideTimer);
+
+       if (!vp_play_volume_unrealize((volume_handle) pVolumeWidget)) {
+               VideoLogWarning("vp_play_volume_unrealize is fail");
+       }
+
+       return EINA_FALSE;
+}
+
+/* internal functions */
+/**
+ *
+ * @param pVolumeWidget
+ */
+static void _vp_play_volume_destory_handle(VolumeWidget * pVolumeWidget)
+{
+       if (pVolumeWidget == NULL) {
+               VideoLogError("pVolumeWidget is NULL");
+               return;
+       }
+
+       pVolumeWidget->pChangeVolFunc = NULL;
+
+       VP_EVAS_TIMER_DEL(pVolumeWidget->pHideTimer);
+       VP_EVAS_TIMER_DEL(pVolumeWidget->pDeviceTimer);
+
+       VP_EVAS_DEL(pVolumeWidget->pFocusPoint);
+       VP_EVAS_DEL(pVolumeWidget->pLayout);
+       VP_FREE(pVolumeWidget);
+}
+
+/**
+ *
+ * @param pObj
+ * @param bLandscape
+ * @param nCurY
+ * @param pWin
+ * @return
+ */
+static double _vp_play_volume_get_mouse_pos_ratio(Evas_Object * pObj,
+                                                                                                 bool bLandscape,
+                                                                                                 int nCurY,
+                                                                                                 Evas_Object * pWin)
+{
+       if (pObj == NULL) {
+               VideoLogError("pObj is NULL");
+               return 0.0;
+       }
+
+       int nHeight = 0;
+       int nCurrent = 0;
+       double dRatio = 0.0;
+       int w = 0;
+       int h = 0;
+       elm_win_screen_size_get(pWin, NULL, NULL, &w, &h);
+
+       if ((elm_config_scale_get() - 2.6) == 0.0) {
+               if (bLandscape) {
+                       nHeight = VP_VOLUME_LANDSCAPE_HEIGHT;
+                       nCurrent =
+                               nCurY - VP_VOLUME_LANDSCAPE_POS_Y -
+                               VP_VOLUME_TOP_PADDING_H + 10;
+               } else {
+                       nHeight = 350;
+                       nCurrent =
+                               nCurY - VP_VOLUME_PORTRAIT_POS_Y -
+                               VP_VOLUME_TOP_PADDING_H - 310;
+               }
+       } else if ((elm_config_scale_get() - 1.8) == 0.0) {
+               if (bLandscape) {
+                       nHeight = 125;
+                       nCurrent =
+                               nCurY - VP_VOLUME_LANDSCAPE_POS_Y -
+                               VP_VOLUME_TOP_PADDING_H + 70;
+               } else {
+                       nHeight = 255;
+                       nCurrent =
+                               nCurY - VP_VOLUME_PORTRAIT_POS_Y -
+                               VP_VOLUME_TOP_PADDING_H - 42;
+               }
+       } else {
+               if (bLandscape) {
+                       nHeight = VP_VOLUME_LANDSCAPE_HEIGHT;
+                       nCurrent =
+                               nCurY - VP_VOLUME_LANDSCAPE_POS_Y -
+                               VP_VOLUME_TOP_PADDING_H + 10;
+               } else {
+                       nHeight = 390;
+                       nCurrent =
+                               nCurY - VP_VOLUME_PORTRAIT_POS_Y -
+                               VP_VOLUME_TOP_PADDING_H - 150;
+               }
+       }
+
+       if (nCurrent < 0) {
+               nCurrent = 0;
+       } else if (nCurrent > nHeight) {
+               nCurrent = nHeight;
+       }
+       if (nHeight > 0.0) {
+               dRatio = (double) nCurrent / nHeight;
+       }
+
+       return dRatio;
+}
+
+/**
+ *
+ * @param pVolumeWidget
+ * @param pWin
+ */
+static void _vp_play_volume_set_widget_position(VolumeWidget *
+                                                                                               pVolumeWidget,
+                                                                                               Evas_Object * pWin)
+{
+       if (pVolumeWidget == NULL) {
+               VideoLogError("pVolumeWidget is NULL");
+               return;
+       }
+       int w = 0;
+       int h = 0;
+       elm_win_screen_size_get(pWin, NULL, NULL, &w, &h);
+       pVolumeWidget->pWin = pWin;
+       bool bLandscape = pVolumeWidget->bLandscape;
+
+       if ((elm_config_scale_get() - 2.6) == 0.0) {
+               if (bLandscape) {
+                       elm_object_signal_emit(pVolumeWidget->pLayout,
+                                                                  VP_NORMAL_SIGNAL_VOLUME_LANDSCAPE_MODE,
+                                                                  "*");
+                       evas_object_move(pVolumeWidget->pLayout, h - 80, w / 10);
+               } else {
+                       elm_object_signal_emit(pVolumeWidget->pLayout,
+                                                                  VP_NORMAL_SIGNAL_VOLUME_PORTRAIT_MODE,
+                                                                  "*");
+                       evas_object_move(pVolumeWidget->pLayout, w - w / 9,
+                                                        (5 * h) / 16);
+               }
+       } else if ((elm_config_scale_get() - 1.8) == 0.0) {
+               if (bLandscape) {
+                       elm_object_signal_emit(pVolumeWidget->pLayout,
+                                                                  VP_NORMAL_SIGNAL_VOLUME_LANDSCAPE_MODE,
+                                                                  "*");
+                       evas_object_move(pVolumeWidget->pLayout, h - h / 16, w / 16);
+               } else {
+                       elm_object_signal_emit(pVolumeWidget->pLayout,
+                                                                  VP_NORMAL_SIGNAL_VOLUME_PORTRAIT_MODE,
+                                                                  "*");
+                       evas_object_move(pVolumeWidget->pLayout, w - w / 10, h / 5);
+               }
+       } else {
+               if (bLandscape) {
+                       elm_object_signal_emit(pVolumeWidget->pLayout,
+                                                                  VP_NORMAL_SIGNAL_VOLUME_LANDSCAPE_MODE,
+                                                                  "*");
+                       evas_object_move(pVolumeWidget->pLayout, h - h / 16, w / 16);
+               } else {
+                       elm_object_signal_emit(pVolumeWidget->pLayout,
+                                                                  VP_NORMAL_SIGNAL_VOLUME_PORTRAIT_MODE,
+                                                                  "*");
+                       evas_object_move(pVolumeWidget->pLayout, w - w / 10, h / 5);
+               }
+       }
+}
+
+/**
+ *
+ * @param pVolumeWidget
+ */
+static void _vp_play_volume_update_value(VolumeWidget * pVolumeWidget)
+{
+       if (pVolumeWidget == NULL) {
+               VideoLogError("pVolumeWidget is NULL");
+               return;
+       }
+
+       double nVolumeRatio = 0.0;
+       char szPlayingTime[VP_VOLUME_TEXT_MAX_LEN] = { 0, };
+
+       snprintf(szPlayingTime, VP_VOLUME_TEXT_MAX_LEN, "%d",
+                        pVolumeWidget->nCurVal);
+
+       nVolumeRatio =
+               ((double) pVolumeWidget->nCurVal /
+                (double) pVolumeWidget->nMaxVal);
+
+       if (!edje_object_part_drag_value_set
+               (_EDJ(pVolumeWidget->pLayout), VP_PLAY_SWALLOW_VOLUME_DRAG_RECT,
+                0.0, nVolumeRatio)) {
+               VideoLogWarning("Drag value set fail : %lf", nVolumeRatio);
+       }
+
+       elm_object_part_text_set(pVolumeWidget->pLayout,
+                                                        VP_PLAY_SWALLOW_VOLUME_VALUE_LABEL,
+                                                        szPlayingTime);
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __vp_volume_device_timer_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return EINA_FALSE;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pUserData;
+
+       int maxVolume = 0;
+       if (!vp_sound_get_max_volume(&maxVolume)) {
+               VideoLogError("vp_sound_get_max_volume failed");
+       }
+
+       if (pVolumeWidget->pDeviceTimer) {
+               VP_EVAS_TIMER_DEL(pVolumeWidget->pDeviceTimer);
+       }
+       if (!vp_sound_set_volume(pVolumeWidget->nTmpVal)) {
+               VideoLogError("vp_sound_set_volume failed");
+       } else {
+               pVolumeWidget->nCurVal = pVolumeWidget->nTmpVal;
+               _vp_play_volume_update_value(pVolumeWidget);
+               if (pVolumeWidget->pChangeVolFunc) {
+                       pVolumeWidget->pChangeVolFunc(pVolumeWidget->nCurVal,
+                                                                                 pVolumeWidget->pUserData);
+               }
+
+               VideoLogWarning
+                       ("vp_sound_set_volume successed, need update volume bar! = %d",
+                        pVolumeWidget->nCurVal);
+       }
+
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pVolumeWidget
+ * @param nValue
+ * @return
+ */
+static bool _vp_play_volume_set_value(VolumeWidget * pVolumeWidget,
+                                                                         int nValue)
+{
+       if (pVolumeWidget == NULL) {
+               VideoLogError("pParent is NULL");
+               return FALSE;
+       }
+
+       pVolumeWidget->nTmpVal = pVolumeWidget->nCurVal;
+       if (nValue > 0) {
+               pVolumeWidget->nMuteVal = 0;
+       }
+
+       int nMaxValue = 0;
+       if (vp_sound_get_max_volume(&nMaxValue) && nValue <= nMaxValue) {
+               pVolumeWidget->nTmpVal = nValue;
+       }
+
+       if (pVolumeWidget->pDeviceTimer == NULL) {
+               pVolumeWidget->pDeviceTimer = ecore_timer_add(0.1,
+                                                                                                         __vp_volume_device_timer_cb,
+                                                                                                         (void *)
+                                                                                                         pVolumeWidget);
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeWidget
+ */
+static void _vp_play_volume_create_timer(VolumeWidget * pVolumeWidget)
+{
+       if (pVolumeWidget == NULL) {
+               VideoLogError("pParent is NULL");
+               return;
+       }
+
+       VP_EVAS_TIMER_DEL(pVolumeWidget->pHideTimer);
+
+       pVolumeWidget->pHideTimer =
+               ecore_timer_add(VP_VOLUME_HIDE_LAYOUT_TIMER_INTERVAL,
+                                               __vp_volume_hide_timer_cb, (void *) pVolumeWidget);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *_vp_play_volume_create_layout(Evas_Object * pParent)
+{
+       if (!pParent) {
+               VideoLogError("Parent is NULL");
+               return NULL;
+       }
+
+       Evas_Object *pObj = NULL;
+       Eina_Bool bRet = EINA_FALSE;
+
+       pObj = elm_layout_add(pParent);
+       if (pObj == NULL) {
+               VideoLogError("elm_layout_add object is NULL");
+               return NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VP_PLAY_VOLUME_EDJ_PATH);
+       free(path);
+       bRet = elm_layout_file_set(pObj, edj_path, VP_PLAY_EDJ_GROUP_VOLUME);
+       if (bRet != EINA_TRUE) {
+               VideoLogError("elm_layout_file_set fail");
+               return NULL;
+       }
+
+       evas_object_show(pObj);
+
+       return pObj;
+}
+
+/**
+ *
+ * @param pVolumeWidget
+ * @return
+ */
+static bool _vp_play_volume_init_layout(VolumeWidget * pVolumeWidget)
+{
+       if (pVolumeWidget == NULL) {
+               VideoLogError("pVolumeWidget is NULL");
+               return FALSE;
+       }
+
+       Evas_Object *pParent = pVolumeWidget->pParent;
+
+       pVolumeWidget->pLayout = _vp_play_volume_create_layout(pParent);
+       if (pVolumeWidget->pLayout == NULL) {
+               VideoLogError("_vp_play_volume_create_layout is fail");
+               return FALSE;
+       }
+       pVolumeWidget->pFocusPoint =
+               vp_button_create(pVolumeWidget->pLayout, "focus", NULL, NULL,
+                                                NULL, NULL, (void *) pVolumeWidget);
+       if (!pVolumeWidget->pFocusPoint) {
+               VideoLogError("elm_button_add is fail");
+               return FALSE;
+       }
+
+       elm_object_focus_allow_set(pVolumeWidget->pFocusPoint, EINA_FALSE);
+       elm_object_part_content_set(pVolumeWidget->pLayout,
+                                                               "pv.volume.point.focus",
+                                                               pVolumeWidget->pFocusPoint);
+
+       return TRUE;
+}
+
+/* external functions */
+/**
+ *
+ * @param pParent
+ * @param pPlayerHandle
+ * @param pFunc
+ * @return
+ */
+volume_handle vp_play_volume_create(Evas_Object * pParent,
+                                                                       void *pPlayerHandle,
+                                                                       NormalVolumeChangeCbFunc pFunc)
+{
+       if (pParent == NULL) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       VolumeWidget *pVolumeWidget = NULL;
+
+       pVolumeWidget = calloc(1, sizeof(VolumeWidget));
+
+       if (pVolumeWidget == NULL) {
+               VideoLogError("pVolumeWidget alloc fail");
+               return NULL;
+       }
+
+       pVolumeWidget->pChangeVolFunc = pFunc;
+       pVolumeWidget->pParent = pParent;
+       pVolumeWidget->bLandscape = FALSE;
+       pVolumeWidget->pPlayerHandle = pPlayerHandle;
+
+       if (!_vp_play_volume_init_layout(pVolumeWidget)) {
+               VideoLogError("_vp_play_volume_init_layout is fail");
+               _vp_play_volume_destory_handle(pVolumeWidget);
+               return NULL;
+       }
+
+       if (!vp_sound_get_max_volume(&(pVolumeWidget->nMaxVal))) {
+               VideoLogError("vp_sound_get_max_volume fail");
+               _vp_play_volume_destory_handle(pVolumeWidget);
+               return NULL;
+       }
+
+       if (!vp_sound_get_volume(&(pVolumeWidget->nCurVal))) {
+               VideoLogError("vp_sound_get_volume fail");
+               _vp_play_volume_destory_handle(pVolumeWidget);
+               return NULL;
+       }
+
+       bool flag = vp_play_volume_unrealize(pVolumeWidget);
+       if (!flag) {
+               VideoLogError("vp_play_volume_unrealize return FALSE");
+       }
+
+       _vp_play_volume_update_value(pVolumeWidget);
+
+       return (volume_handle) pVolumeWidget;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ */
+void vp_play_volume_destroy(volume_handle pVolumeHandle)
+{
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pVolumeHandle is NULL");
+               return;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+       vp_play_volume_unset_mouse_callbacks(pVolumeWidget,
+                                                                                pVolumeWidget->pWin);
+       _vp_play_volume_destory_handle(pVolumeWidget);
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param pWin
+ * @return
+ */
+bool vp_play_volume_realize(volume_handle pVolumeHandle,
+                                                       Evas_Object * pWin)
+{
+       VideoLogInfo("");
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pVolumeHandle is NULL");
+               return FALSE;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+       pVolumeWidget->bIsRealize = TRUE;
+
+       _vp_play_volume_set_widget_position(pVolumeWidget, pWin);
+
+       _vp_play_volume_set_value(pVolumeWidget, pVolumeWidget->nCurVal);
+
+       evas_object_show(pVolumeWidget->pLayout);
+       _vp_play_volume_create_timer(pVolumeWidget);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+bool vp_play_volume_unrealize(volume_handle pVolumeHandle)
+{
+       VideoLogInfo("");
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pVolumeHandle is NULL");
+               return FALSE;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+       pVolumeWidget->bIsRealize = FALSE;
+
+       elm_object_focus_allow_set(pVolumeWidget->pFocusPoint, EINA_FALSE);
+       evas_object_hide(pVolumeWidget->pFocusPoint);
+       evas_object_hide(pVolumeWidget->pLayout);
+       return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param bLandscape
+ * @param pWin
+ * @return
+ */
+bool vp_play_volume_set_landscape_mode(volume_handle pVolumeHandle,
+                                                                          bool bLandscape, Evas_Object * pWin)
+{
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pVolumeHandle is NULL");
+               return FALSE;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+       pVolumeWidget->bLandscape = bLandscape;
+
+       _vp_play_volume_set_widget_position(pVolumeWidget, pWin);
+
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param pUserData
+ * @return
+ */
+bool vp_play_volume_set_user_data(volume_handle pVolumeHandle,
+                                                                 void *pUserData)
+{
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pVolumeHandle is NULL");
+               return FALSE;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+       pVolumeWidget->pUserData = pUserData;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param bIsRealize
+ * @return
+ */
+bool vp_play_volume_is_realize(volume_handle pVolumeHandle,
+                                                          bool * bIsRealize)
+{
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pVolumeHandle is NULL");
+               return FALSE;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+       *bIsRealize = pVolumeWidget->bIsRealize;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+bool vp_play_volume_increase_value(volume_handle pVolumeHandle)
+{
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pVolumeHandle is NULL");
+               return FALSE;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+       int nVal = 0;
+
+       if (pVolumeWidget->pDeviceTimer) {
+               nVal = pVolumeWidget->nCurVal + 1;
+       } else {
+               if (!vp_sound_get_volume(&nVal)) {
+                       VideoLogError("vp_sound_get_volume fail");
+                       return FALSE;
+               }
+
+               nVal++;
+       }
+
+       _vp_play_volume_create_timer(pVolumeWidget);
+
+       if (nVal > pVolumeWidget->nMaxVal) {
+               pVolumeWidget->nCurVal = pVolumeWidget->nMaxVal;
+               return TRUE;
+       }
+
+       _vp_play_volume_set_value(pVolumeWidget, nVal);
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+bool vp_play_volume_decrease_value(volume_handle pVolumeHandle)
+{
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pVolumeHandle is NULL");
+               return FALSE;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+       int nVal = 0;
+
+       if (pVolumeWidget->pDeviceTimer) {
+               nVal = pVolumeWidget->nCurVal - 1;
+       } else {
+               if (!vp_sound_get_volume(&nVal)) {
+                       VideoLogError("vp_sound_get_volume fail");
+                       return FALSE;
+               }
+
+               nVal--;
+       }
+
+       _vp_play_volume_create_timer(pVolumeWidget);
+
+       if (nVal < 0) {
+               pVolumeWidget->nCurVal = 0;
+               return TRUE;
+       }
+
+       _vp_play_volume_set_value(pVolumeWidget, nVal);
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+bool vp_play_volume_update_value(volume_handle pVolumeHandle)
+{
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pVolumeHandle is NULL");
+               return FALSE;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+       int nVal = 0;
+
+       if (pVolumeWidget->pDeviceTimer) {
+               return TRUE;
+       }
+
+       if (!vp_sound_get_volume(&nVal)) {
+               VideoLogError("vp_sound_get_volume fail");
+               return FALSE;
+       }
+
+       if (pVolumeWidget->nCurVal != nVal) {
+               pVolumeWidget->nCurVal = nVal;
+               if (pVolumeWidget->bIsRealize) {
+                       _vp_play_volume_update_value(pVolumeWidget);
+               }
+       }
+
+       return TRUE;
+}
+
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param bIsMute
+ * @return
+ */
+bool vp_play_volume_is_mute(volume_handle pVolumeHandle, bool * bIsMute)
+{
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pVolumeHandle is NULL");
+               return FALSE;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+       if (pVolumeWidget->nCurVal == 0) {
+               *bIsMute = TRUE;
+       } else {
+               *bIsMute = FALSE;
+       }
+
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+int vp_play_volume_get_max_value(volume_handle pVolumeHandle)
+{
+       if (NULL == pVolumeHandle) {
+               VideoLogError("pVolumeHandle is NULL");
+               return FALSE;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+       return pVolumeWidget->nMaxVal;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+int vp_play_volume_get_value(volume_handle pVolumeHandle)
+{
+       if (NULL == pVolumeHandle) {
+               VideoLogError("pVolumeHandle is NULL");
+               return 0;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+       return pVolumeWidget->nCurVal;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param nVolumeVal
+ * @return
+ */
+bool vp_play_volume_set_value(volume_handle pVolumeHandle, int nVolumeVal)
+{
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pVolumeHandle is NULL");
+               return FALSE;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+       _vp_play_volume_create_timer(pVolumeWidget);
+
+       pVolumeWidget->nCurVal = nVolumeVal;
+
+       if (pVolumeWidget->nCurVal < 0) {
+               pVolumeWidget->nCurVal = 0;
+       }
+
+       if (pVolumeWidget->nCurVal > pVolumeWidget->nMaxVal) {
+               pVolumeWidget->nCurVal = pVolumeWidget->nMaxVal;
+       }
+
+       _vp_play_volume_set_value(pVolumeWidget, pVolumeWidget->nCurVal);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+int vp_play_volume_get_mute_value(volume_handle pVolumeHandle)
+{
+       if (NULL == pVolumeHandle) {
+               VideoLogError("pVolumeHandle is NULL");
+               return 0;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+       return pVolumeWidget->nMuteVal;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+bool vp_play_volume_set_mute_value(volume_handle pVolumeHandle)
+{
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pVolumeHandle is NULL");
+               return FALSE;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+       if (pVolumeWidget->nMuteVal == 0) {
+               pVolumeWidget->nMuteVal = pVolumeWidget->nCurVal;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @return
+ */
+bool vp_play_volume_set_focus_in(volume_handle pVolumeHandle)
+{
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pVolumeHandle is NULL");
+               return FALSE;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+
+       evas_object_show(pVolumeWidget->pFocusPoint);
+       elm_object_focus_allow_set(pVolumeWidget->pFocusPoint, EINA_TRUE);
+       elm_object_focus_set(pVolumeWidget->pFocusPoint, EINA_TRUE);
+
+       elm_object_focus_next_object_set(pVolumeWidget->pFocusPoint,
+                                                                        pVolumeWidget->pFocusPoint,
+                                                                        ELM_FOCUS_UP);
+       elm_object_focus_next_object_set(pVolumeWidget->pFocusPoint,
+                                                                        pVolumeWidget->pFocusPoint,
+                                                                        ELM_FOCUS_DOWN);
+
+       evas_object_event_callback_del(pVolumeWidget->pFocusPoint,
+                                                                  EVAS_CALLBACK_KEY_DOWN,
+                                                                  __vp_volume_focus_key_down_cb);
+       evas_object_event_callback_add(pVolumeWidget->pFocusPoint,
+                                                                  EVAS_CALLBACK_KEY_DOWN,
+                                                                  __vp_volume_focus_key_down_cb,
+                                                                  (void *) pVolumeWidget);
+       return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param pWin
+ * @return
+ */
+bool vp_play_volume_set_mouse_callbacks(volume_handle pVolumeHandle,
+                                                                               Evas_Object * pWin)
+{
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pVolumeHandle is NULL");
+               return FALSE;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+       pVolumeWidget->pWin = pWin;
+
+       evas_object_event_callback_add(pVolumeWidget->pLayout,
+                                                                  EVAS_CALLBACK_MOUSE_DOWN,
+                                                                  __vp_volume_mouse_down_cb,
+                                                                  (void *) pVolumeWidget);
+
+       evas_object_event_callback_add(pVolumeWidget->pLayout,
+                                                                  EVAS_CALLBACK_MOUSE_UP,
+                                                                  __vp_volume_mouse_up_cb,
+                                                                  (void *) pVolumeWidget);
+
+       evas_object_event_callback_add(pVolumeWidget->pLayout,
+                                                                  EVAS_CALLBACK_MOUSE_MOVE,
+                                                                  __vp_volume_mouse_move_cb,
+                                                                  (void *) pVolumeWidget);
+       return TRUE;
+}
+
+/**
+ *
+ * @param pVolumeHandle
+ * @param pWin
+ * @return
+ */
+bool vp_play_volume_unset_mouse_callbacks(volume_handle pVolumeHandle,
+                                                                                 Evas_Object * pWin)
+{
+       if (pVolumeHandle == NULL) {
+               VideoLogError("pVolumeHandle is NULL");
+               return FALSE;
+       }
+
+       VolumeWidget *pVolumeWidget = (VolumeWidget *) pVolumeHandle;
+       pVolumeWidget->pWin = pWin;
+
+       evas_object_event_callback_del(pVolumeWidget->pLayout,
+                                                                  EVAS_CALLBACK_MOUSE_DOWN,
+                                                                  __vp_volume_mouse_down_cb);
+
+       evas_object_event_callback_del(pVolumeWidget->pLayout,
+                                                                  EVAS_CALLBACK_MOUSE_UP,
+                                                                  __vp_volume_mouse_up_cb);
+
+       evas_object_event_callback_del(pVolumeWidget->pLayout,
+                                                                  EVAS_CALLBACK_MOUSE_MOVE,
+                                                                  __vp_volume_mouse_move_cb);
+       return TRUE;
+}
diff --git a/project_def.prop b/project_def.prop
new file mode 100755 (executable)
index 0000000..3455f9e
--- /dev/null
@@ -0,0 +1,73 @@
+
+# Project Name
+APPNAME = videos
+
+# Project Type
+type = app
+
+# Project Profile
+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 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 src/common/mp-video-util-db-controller.c playview/src/core/vp-mm-player.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 =  
+
+# PO Sources
+USER_POS = res/po/pt_BR.po res/po/el_GR.po res/po/sr.po res/po/sl.po res/po/mk.po res/po/en.po res/po/da.po res/po/zh_HK.po res/po/fr_CA.po res/po/es_ES.po res/po/et.po res/po/cs.po res/po/ga.po res/po/de.po res/po/ja_JP.po res/po/uk.po res/po/sv.po res/po/nl.po res/po/fr.po res/po/ca.po res/po/nb.po res/po/zh_TW.po res/po/pt_PT.po res/po/hu.po res/po/hi.po res/po/es_US.po res/po/ka.po res/po/is.po res/po/ru_RU.po res/po/en_US.po res/po/hy.po res/po/zh_CN.po res/po/sk.po res/po/tr_TR.po res/po/ar.po res/po/gl.po res/po/az.po res/po/kk.po res/po/eu.po res/po/ko_KR.po res/po/it_IT.po res/po/en_PH.po res/po/pl.po res/po/lv.po res/po/fi.po res/po/bg.po res/po/ro.po res/po/uz.po res/po/lt.po res/po/hr.po 
+
+# User Defines
+USER_DEFS = VS_FEATURE_THUMBNAIL_VIEW VS_FEATURE_FOLDER_VIEW SUBTITLE_K_FEATURE ENABLE_LANDSCAPE USE_SWITCH ENABLE_PERSONAL ENABLE_SUBTITLE ENABLE_NOTICE_POPUP ENABLE_VOLUME_BRIGHTNESS_POPUP _USE_OPENGL_BACKEND ENABLE_EMBEDED_PROGRESS ENABLE_S_BEAM VS_FEATURE_THUMBNAIL_VIEW VS_FEATURE_FOLDER_VIEW 
+USER_CPP_DEFS = 
+
+# User Undefines
+USER_UNDEFS = 
+USER_CPP_UNDEFS = 
+
+# User Libraries
+USER_LIBS = 
+
+# User Objects
+USER_OBJS = 
+USER_OBJS_ABS = 
+
+# User Includes
+## C Compiler
+USER_INC_DIRS = include vp-main/include playview/src/common/include common/include include/feature include/widget include/view core/include common/src/include playview/include video-downloader/include vp-main/include/serviceParser playview/src/widget/include playview/src/view/include playview/src/feature/include playview/src/core/include include/viewMgr playview/src/include include/common playview/src/widget/include 
+USER_INC_DIRS_ABS = 
+USER_INC_FILES = 
+USER_INC_FILES_ABS = 
+## C++ Compiler
+USER_CPP_INC_DIRS = 
+USER_CPP_INC_DIRS_ABS = 
+USER_CPP_INC_FILES = 
+USER_CPP_INC_FILES_ABS = 
+
+# User Library Path
+USER_LIB_DIRS = 
+USER_LIB_DIRS_ABS = 
+
+# EDC Resource Path
+USER_EDCS_IMAGE_DIRS = edje/images playview/res/edje/images res/images 
+USER_EDCS_IMAGE_DIRS_ABS = 
+USER_EDCS_SOUND_DIRS = edje/sounds res/edje 
+USER_EDCS_SOUND_DIRS_ABS = 
+USER_EDCS_FONT_DIRS = edje/fonts 
+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 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 
+USER_EXT_EDC0_EDCS_SOUND_DIRS_ABS = 
+USER_EXT_EDC0_EDCS_FONT_DIRS = edje/fonts 
+USER_EXT_EDC0_EDCS_FONT_DIRS_ABS = 
+
+# Resource Filter
+USER_RES_INCLUDE = 
+USER_RES_EXCLUDE = res/**/*.edc res/images vp-main/res/edje/images
+
diff --git a/res/edje/button-pressed.wav b/res/edje/button-pressed.wav
new file mode 100755 (executable)
index 0000000..99ba74d
Binary files /dev/null and b/res/edje/button-pressed.wav differ
diff --git a/res/edje/edc_image_macro.edc b/res/edje/edc_image_macro.edc
new file mode 100755 (executable)
index 0000000..9830e98
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#define RESOURCE_IMAGE( FILE_NAME ) \
+   group { \
+      name: FILE_NAME; \
+      images.image: FILE_NAME COMP; \
+      parts { \
+         part { name: "image"; \
+            description { \
+               state: "default" 0.0; \
+               image.normal: FILE_NAME; \
+               aspect: 1 1; \
+               aspect_preference: BOTH; \
+            } \
+         } \
+      } \
+   }
+
+#define RESOURCE_IMAGE_LOSSY( FILE_NAME ) \
+   group { \
+      name: FILE_NAME; \
+      images.image: FILE_NAME LOSSY 85; \
+      parts { \
+         part { name: "image"; \
+            description { \
+               state: "default" 0.0; \
+               image.normal: FILE_NAME; \
+               aspect: 1 1; \
+               aspect_preference: BOTH; \
+            } \
+         } \
+      } \
+   }
diff --git a/res/edje/image_res.edc b/res/edje/image_res.edc
new file mode 100755 (executable)
index 0000000..fbbb121
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+images {
+       image: "T01_toolbar_bg.png" COMP;
+       image: "T01_toolbar_press.png" COMP;
+       image: "T01_Nocontents_multimedia.png" COMP;
+       image: "T01-2_hold_icon_lock.png" COMP;
+
+
+       image: "panel/T01-2_controller_progress_bar.png" COMP;
+       image: "panel/T01-2_controller_progress_bg.png" COMP;
+       image: "panel/T01-2_icon_toolbar_cancel.png" COMP;
+       image: "panel/T01-2_icon_toolbar_done.png" COMP;
+
+
+       // FOR GENLIST SWEEP and check box
+       image: "00_sweep_list_bg.png" COMP;
+       image: "T01_checkbox.png" COMP;
+       image: "00_check_bg_dim.png" COMP;
+       image: "T01_check.png" COMP;
+       image: "T01_grid_select_check.png" COMP;
+       image: "00_grid_select_check.png" COMP;
+       image: "T01_video_list_progress_bar.png" COMP;
+       image: "00_winset_list_progress_bg.png" COMP;
+
+
+       image: "white/common/T01-2_popup_bg.png" COMP;
+       image: "white/common/T01-2_popup_arrow.png" COMP;
+
+
+       image: "T01_2_icon_rotate.png" COMP;
+       image: "T01_2_icon_rotate_press.png" COMP;
+       image: "turn_over/B15_turn_over_01.png" COMP;
+       image: "turn_over/B15_turn_over_02.png" COMP;
+       image: "turn_over/B15_turn_over_03.png" COMP;
+
+       image: "00_scroll_bar.png" COMP;
+       image: "00_scroll_bar_v.png" COMP;
+       image: "00_scroll_bar_h.png" COMP;
+}
+
diff --git a/res/edje/landscape_thumbnail.edc b/res/edje/landscape_thumbnail.edc
new file mode 100755 (executable)
index 0000000..8627da0
--- /dev/null
@@ -0,0 +1,222 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#define GRAY_RECT_COLOR                        128 128 128 128
+#define SPEEDBOX_OFFSET_Y              225
+
+
+#include "image_res.edc"
+#include "vp_font.edc"
+
+collections {
+       group {
+               name: "landscape.thumb";
+
+               parts {
+                       part {
+                               name: "landscape.thumb";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 255 255 255 255;
+                               }
+                       }
+                       part {
+                               name: "landscape.thumb.preview.image";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "landscape.thumb.preview.text.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 68;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       color: 0 0 0 102;
+                                       rel1 { relative: 0.0 1.0; to: "landscape.thumb.preview.image"; }
+                                       rel2 { relative: 1.0 1.0; to: "landscape.thumb.preview.image"; }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "landscape.thumb.preview.title";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 50;
+                                       fixed: 0 1;
+                                       align: 0.0 0.5;
+                                       color: 0 0 0 0;
+                                       rel1 { relative: 0.0433 0.5; to: "landscape.thumb.preview.text.bg"; }
+                                       rel2 { relative: 0.59 0.5; to: "landscape.thumb.preview.text.bg"; }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "landscape.thumb.preview.title.text";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "landscape.thumb.preview.title"; }
+                                       rel2 { relative: 1.0 1.0; to: "landscape.thumb.preview.title"; }
+                                       text {
+                                               font: FONT_BOLD_TYPE;
+                                               size: 26;
+                                               text: "TITLE";
+                                               align: 0.0 0.5;
+                                       }
+                                       color: 255 255 255 28;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "landscape.thumb.preview.duration";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 50;
+                                       fixed: 0 1;
+                                       align: 1.0 0.5;
+                                       color: 0 0 0 0;
+                                       rel1 { relative: 0.6 0.5; to: "landscape.thumb.preview.text.bg"; }
+                                       rel2 { relative: 0.9567 0.5; to: "landscape.thumb.preview.text.bg"; }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "landscape.thumb.preview.duration.text";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "landscape.thumb.preview.duration"; }
+                                       rel2 { relative: 1.0 1.0; to: "landscape.thumb.preview.duration"; }
+                                       text {
+                                               font: FONT_BOLD_TYPE;
+                                               size: 26;
+                                               text: "--:--:--/--:--:--";
+                                               align: 0.0 0.5;
+                                       }
+                                       color: 255 255 255 28;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+               } /* parts */
+
+               programs {
+                       program {
+                               signal: "signal.landscape.thumb.preview.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "landscape.thumb.preview.image";
+                               target: "landscape.thumb.preview.text.bg";
+                               target: "landscape.thumb.preview.title";
+                               target: "landscape.thumb.preview.title.text";
+                               target: "landscape.thumb.preview.duration";
+                               target: "landscape.thumb.preview.duration.text";
+                       }
+                       program {
+                               signal: "signal.landscape.thumb.preview.hide";
+                               source: "*";
+                               action: STATE_SET "hide" 0.0;
+                               target: "landscape.thumb.preview.image";
+                               target: "landscape.thumb.preview.text.bg";
+                               target: "landscape.thumb.preview.title";
+                               target: "landscape.thumb.preview.title.text";
+                               target: "landscape.thumb.preview.duration";
+                               target: "landscape.thumb.preview.duration.text";
+                       }
+               }
+       } /* group */
+} /* collection */
diff --git a/res/edje/panel.edc b/res/edje/panel.edc
new file mode 100755 (executable)
index 0000000..633ba0c
--- /dev/null
@@ -0,0 +1,170 @@
+/*
+ * Copyright (c) 2020 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 "image_res.edc"
+#include "vp_font.edc"
+
+#define LINE_RECT_COLOR                130 130 130 255
+
+collections {
+       group {
+               name: "panel";
+
+               parts {
+                       part {
+                               name: "panel.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "panel.progress";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 78;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       color: 255 0 0 255;
+                                       rel1 { relative: 0.0277 0.0;}
+                                       rel2 { relative: 0.9723 0.0;}
+                               }
+                               description {
+                                       state: "portrate" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 78;
+                                       rel1 { relative: 0.01875 0.0;}
+                                       rel2 { relative: 0.98125 0.0;}
+                               }
+                               description {
+                                       state: "trim" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 183;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 0.0;}
+                               }
+                       }
+
+                       part {
+                               name: "panel.control.line";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 1;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 0.40625; }
+                                       rel2 { relative: 1.0 0.40625; }
+                                       color: 255 0 0 0;
+                               }
+                               description {
+                                       state: "portrate" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 1;
+                                       rel1 { relative: 0.0 0.40625; }
+                                       rel2 { relative: 1.0 0.40625; }
+                               }
+                               description {
+                                       state: "trim" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 1;
+                                       rel1 { relative: 0.0 0.616161; }
+                                       rel2 { relative: 1.0 0.616161; }
+                               }
+                       }
+                       part {
+                               name: "panel.control";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 114;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 0.0; to_y: "panel.control.line"; }
+                                       rel2 { relative: 1.0 0.0; to_y: "panel.control.line"; }
+                               }
+                               description {
+                                       state: "portrate" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 114;
+                                       rel1 { relative: 0.0 0.0; to_y: "panel.control.line"; }
+                                       rel2 { relative: 1.0 0.0; to_y: "panel.control.line"; }
+                               }
+                               description {
+                                       state: "trim" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 114;
+                                       rel1 { relative: 0.0 0.0; to_y: "panel.control.line"; }
+                                       rel2 { relative: 1.0 0.0; to_y: "panel.control.line"; }
+                               }
+                       }
+               } // parts
+
+               programs {
+                       program {
+                               signal: "signal.panel.portrate.mode";
+                               source: "*";
+                               action: STATE_SET "portrate" 0.0;
+                               target: "panel.progress";
+                               target: "panel.control.line";
+                               target: "panel.control";
+                       }
+
+                       program {
+                               signal: "signal.panel.landscape.mode";
+                               source: "*";
+                               action: STATE_SET "landscape" 0.0;
+                               target: "panel.progress";
+                               target: "panel.control.line";
+                               target: "panel.control";
+                       }
+
+                       program {
+                               signal: "signal.panel.trim.mode";
+                               source: "*";
+                               action: STATE_SET "trim" 0.0;
+                               target: "panel.progress";
+                               target: "panel.control.line";
+                               target: "panel.control";
+                       }
+               }
+       } // group
+} // collections
diff --git a/res/edje/popup_progressbar.edc b/res/edje/popup_progressbar.edc
new file mode 100755 (executable)
index 0000000..69bc432
--- /dev/null
@@ -0,0 +1,1035 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+collections {
+
+group { name: "popup_center_progress_move_copy";
+#define DEMO_POPUP_PROGRESSVIEW_CONTENT_MIN 568 154
+#define DEMO_POPUP_PROGRESSVIEW_TITLE_MIN 568 60
+#define DEMO_POPUP_PROGRESSVIEW_TEXT_LEFT_RIGHT_MAX 324 60
+   parts {
+      part { name: "pad_t";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.5 0.0;
+            min: 0 32;
+            fixed: 0 1;
+            rel1 {
+               relative: 1.0 0.0;to_x: "pad_l";
+            }
+            rel2 {
+               relative: 0.0 0.0;to_x: "pad_r";
+            }
+         }
+      }
+      part { name: "pad_l";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 26 0;
+            max: 26 0;
+            fixed: 1 0;
+            rel1 {
+               relative: 0.0 0.0;
+            }
+            rel2 {
+               relative: 0.0 1.0;
+            }
+            align: 0.0 0.0;
+         }
+      }
+      part { name: "pad_r";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 26 0;
+            max: 26 0;
+            fixed: 1 0;
+            rel1 {
+               relative: 1.0 0.0;
+            }
+            rel2 {
+               relative: 1.0 1.0;
+            }
+            align: 1.0 0.0;
+         }
+      }
+      part { name: "pad_b";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.0 1.0;
+            min: 0 32;
+            fixed: 0 1;
+            rel1 {
+               relative: 1.0 1.0;
+               to_x: "pad_l";
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               to_x: "pad_r";
+            }
+         }
+      }
+      part { name: "elm.title";
+         type: TEXT;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: DEMO_POPUP_PROGRESSVIEW_TITLE_MIN;
+            fixed: 1 1;
+            text {
+               font: "Tizen:style=Medium";
+               size: 38;
+               min: 0 0;
+               align: 0.5 0.0;
+            }
+            color: 128 128 128 255;
+            align: 0.5 0.0;
+            rel1 {
+               relative: 0.0 0.0;
+               to: "elm.swallow.content";
+            }
+            rel2 {
+               relative: 1.0 0.0;
+               to: "elm.swallow.content";
+            }
+         }
+      }
+      part{ name:"elm.swallow.content";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: DEMO_POPUP_PROGRESSVIEW_CONTENT_MIN;
+            align: 0.5 0.5;
+            fixed: 1 0;
+            rel1 {
+               relative: 1.0 1.0;
+               to_x: "pad_l";
+               to_y: "pad_t";
+            }
+            rel2 {
+               relative: 0.0 0.0;
+               to_x: "pad_r";
+               to_y: "pad_b";
+            }
+         }
+      }
+      part { name: "elm.text.left";
+         type: TEXT;
+         scale: 1;
+         description { state: "default" 0.0;
+            max: DEMO_POPUP_PROGRESSVIEW_TEXT_LEFT_RIGHT_MAX;
+            text {
+               font: "Tizen:style=Medium";
+               size: 36;
+               min: 0 0;
+               align: 0.0 1.0;
+            }
+            color: 128 128 128 255;
+            align: 0.0 1.0;
+            rel1 {
+               relative: 0.0 0.0;
+               to: "elm.swallow.content";
+            }
+            rel2 {
+               relative: 0.5 1.0;
+               to: "elm.swallow.content";
+            }
+         }
+      }
+      part { name: "elm.text.right";
+         type: TEXT;
+         scale: 1;
+         description { state: "default" 0.0;
+            max: DEMO_POPUP_PROGRESSVIEW_TEXT_LEFT_RIGHT_MAX;
+            text {
+               font: "Tizen:style=Medium";
+               size: 36;
+               min: 0 0;
+               align: 1.0 1.0;
+            }
+            color: 128 128 128 255;
+            align: 1.0 1.0;
+            rel1 {
+               relative: 0.5 0.0;
+               to: "elm.swallow.content";
+            }
+            rel2 {
+               relative: 1.0 1.0;
+               to: "elm.swallow.content";
+            }
+         }
+      }
+   }
+#undef DEMO_POPUP_PROGRESSVIEW_CONTENT_MIN
+#undef DEMO_POPUP_PROGRESSVIEW_TITLE_MIN
+#undef DEMO_POPUP_PROGRESSVIEW_TEXT_LEFT_RIGHT_MAX
+}
+
+
+group { name: "popup_center_progressview";
+   parts{
+      part { name: "elm.title";
+         type: TEXT;
+         scale : 1;
+         description { state: "default" 0.0;
+            max: 80 16;
+            text {
+               font: "Tizen:style=Medium";
+               size: 16;
+               min: 0 0;
+               align: 0.5 0.0;
+              }
+            color: 108 108 108 255;
+            align: 0.5 0.0;
+            rel1 {
+               relative: 0.0 0.0;
+               to: "elm.swallow.content";
+            }
+            rel2 {
+               relative: 1.0 0.0;
+               to: "elm.swallow.content";
+            }
+         }
+      }
+      part{ name:"elm.swallow.content";
+         type: SWALLOW;
+         scale : 1;
+         description { state: "default" 0.0;
+            min: 0 70;
+            align: 0.5 0.5;
+            fixed: 1 0;
+            rel1 {
+               relative: 0.0 0.0;
+            }
+            rel2 {
+               relative: 1.0 1.0;
+            }
+         }
+      }
+      part { name: "elm.text.left";
+         type: TEXT;
+         scale : 1;
+         description { state: "default" 0.0;
+            max: 150 16;
+            text {
+               font: "Tizen:style=Medium";
+               size: 16;
+               min: 0 0;
+               align: 0.0 1.0;
+              }
+            color: 108 108 108 255;
+            align: 0.0 1.0;
+            rel1 {
+               relative: 0.0 0.0;
+               to: "elm.swallow.content";
+            }
+            rel2 {
+               relative: 1.0 1.0;
+               to: "elm.swallow.content";
+            }
+         }
+      }
+      part { name: "elm.text.right";
+         type: TEXT;
+         scale : 1;
+         description { state: "default" 0.0;
+            max: 150 16;
+            text {
+               font: "Tizen:style=Medium";
+               size: 16;
+               min: 0 0;
+               align: 1.0 1.0;
+              }
+            color: 108 108 108 255;
+            align: 1.0 1.0;
+            rel1 {
+               relative: 0.0 0.0;
+               to: "elm.swallow.content";
+            }
+            rel2 {
+               relative: 1.0 1.0;
+               to: "elm.swallow.content";
+            }
+         }
+      }
+   }
+}
+
+
+group { name: "popup_center_text_progressview";
+   parts{
+      part { name: "pad_t";
+                type: SPACER;
+         scale : 1;
+         mouse_events: 0;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            align: 0.5 0.0;
+            min: 0 14;
+            fixed: 0 1;
+            rel1 {
+               relative: 1.0 0.0;
+               to_x: "pad_l";
+            }
+            rel2 {
+               relative: 0.0 0.0;
+               to_x: "pad_r";
+            }
+         }
+      }
+      part { name: "pad_l";
+                type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min : 10 0;
+            fixed: 1 0;
+            rel1 {
+               relative: 0.0 0.0;
+            }
+            rel2 {
+               relative: 0.0 1.0;
+            }
+            align: 0.0 0.0;
+         }
+      }
+      part { name: "pad_r";
+                type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min : 10 0;
+            fixed: 1 0;
+            rel1 {
+               relative: 1.0 0.0;
+            }
+            rel2 {
+               relative: 1.0 1.0;
+            }
+            align: 1.0 0.0;
+         }
+      }
+      part{ name:"elm.swallow.content";
+         type: SWALLOW;
+         scale : 1;
+         description { state: "default" 0.0;
+            min: 300 0;
+            align: 0.5 0.5;
+            fixed: 1 0;
+            rel1 {
+               relative: 0.5 1.0;
+               to: "pad_t";
+            }
+            rel2 {
+               relative: 0.5 0.0;
+               to: "pad_b";
+            }
+         }
+      }
+      part { name: "pad_b";
+                type: SPACER;
+         scale : 1;
+         mouse_events: 0;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            align: 0.5 1.0;
+            min: 0 90;
+            fixed: 0 1;
+            rel1 {
+               relative: 1.0 1.0;
+               to_x: "pad_l";
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               to_x: "pad_r";
+            }
+         }
+      }
+      part { name: "elm.swallow.end";
+         type: SWALLOW;
+         scale : 1;
+         mouse_events: 1;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            align: 0.0 0.0;
+            fixed: 1 1;
+            rel1 {
+               relative: 0.0 0.0;
+               to: "pad_b";
+            }
+            rel2 {
+               relative: 1.0 1.0;
+               to: "pad_b";
+            }
+         }
+      }
+      part { name: "pad_bm";
+                type: SPACER;
+         scale : 1;
+         mouse_events: 0;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            align: 0.0 1.0;
+            min: 0 52;
+            fixed: 0 1;
+            rel1 {
+               relative: 0.0 1.0;
+               to: "pad_b";
+            }
+            rel2 {
+               relative: 1.0 1.0;
+               to: "pad_b";
+            }
+         }
+      }
+      part { name: "elm.text.subtext1";
+         type: TEXT;
+         scale : 1;
+         description { state: "default" 0.0;
+            text {
+               font: "Tizen:style=Medium";
+               size: 16;
+               min: 0 0;
+               align: 0.0 1.0;
+              }
+            color: 108 108 108 255;
+            align: 0.0 0.5;
+            rel1 {
+               relative: 0.0 0.0;
+               to: "pad_bm";
+            }
+            rel2 {
+               relative: 1.0 1.0;
+               to: "pad_bm";
+            }
+         }
+      }
+      part { name: "elm.text.subtext2";
+         type: TEXT;
+         scale : 1;
+         description { state: "default" 0.0;
+            text {
+               font: "Tizen:style=Medium";
+               size: 16;
+               min: 0 0;
+               align: 1.0 1.0;
+              }
+            color: 108 108 108 255;
+            align: 1.0 0.5;
+            rel1 {
+               relative: 0.0 0.0;
+               to: "pad_bm";
+            }
+            rel2 {
+               relative: 1.0 1.0;
+               to: "pad_bm";
+            }
+         }
+      }
+   }
+}
+
+group { name: "popup_processing_1button";
+#define DEMO_POPUP_PROCESSINGVIEW1BUTTON_CONTENT_MIN 568 200
+   parts {
+      part { name: "base";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: DEMO_POPUP_PROCESSINGVIEW1BUTTON_CONTENT_MIN;
+            fixed: 1 0;
+         }
+      }
+      part { name: "pad_t";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.5 0.0;
+            min: 0 32;
+            fixed: 0 1;
+            rel1 {
+               relative: 1.0 0.0;to_x: "pad_l";
+            }
+            rel2 {
+               relative: 0.0 0.0;to_x: "pad_r";
+            }
+         }
+      }
+      part { name: "pad_l";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 26 0;
+            max: 26 0;
+            fixed: 1 0;
+            rel1 {
+               relative: 0.0 0.0;
+               to: "base";
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               to: "base";
+            }
+            align: 0.0 0.0;
+         }
+      }
+      part { name: "pad_r";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 26 0;
+            max: 26 0;
+            fixed: 1 0;
+            rel1 {
+               relative: 1.0 0.0;
+               to: "base";
+            }
+            rel2 {
+               relative: 1.0 1.0;
+               to: "base";
+            }
+            align: 1.0 0.0;
+         }
+      }
+      part { name: "pad_b";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.0 1.0;
+            min: 0 32;
+            fixed: 0 1;
+            rel1 {
+               relative: 1.0 1.0;
+               to_x: "pad_l";
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               to_x: "pad_r";
+            }
+         }
+      }
+      part { name:"elm.swallow.content";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.0 0.0;
+            fixed: 1 1;
+            rel1 {
+               relative: 0.0 1.0;
+               to: "pad_t";
+            }
+            rel2 {
+               relative: 1.0 1.0;
+               to: "pad_t";
+            }
+         }
+      }
+      part { name:"pad_after_content";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 9;
+            fixed: 0 1;
+            rel1 {
+               relative: 0.0 1.0;
+               to: "elm.swallow.content";
+            }
+            rel2 {
+               relative: 1.0 1.0;
+               to: "elm.swallow.content";
+            }
+         }
+      }
+
+      part { name: "elm.text";
+         type: TEXT;
+         scale : 1;
+         description { state: "default" 0.0;
+            text {
+               font: "Tizen:style=Medium";
+               size: 38;
+               min: 1 0;
+               align: 0.5 0.5;
+            }
+            fixed: 1 1;
+            color: 0 0 0 255;
+            align: 0.5 0.5;
+            rel1 {
+               relative: 0.0 1.0;
+               to: "pad_after_content";
+            }
+            rel2 {
+               relative: 1.0 0.0;
+               to: "pad_b";
+            }
+         }
+      }
+   }
+#undef DEMO_POPUP_PROCESSINGVIEW1BUTTON_CONTENT_MIN
+}
+
+group {
+       name: "popup_processingview_1button";
+       #define DEMO_POPUP_PROCESSINGVIEW1BUTTON_CONTENT_MIN 568 132
+       parts {
+       part {
+                       name: "base";
+                       type: SPACER;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                       min: DEMO_POPUP_PROCESSINGVIEW1BUTTON_CONTENT_MIN;
+                       fixed: 1 0;
+                       }
+       }
+       part { name: "pad_t";
+               type: SPACER;
+               scale: 1;
+               description { state: "default" 0.0;
+               align: 0.5 0.0;
+               min: 0 32;
+               fixed: 0 1;
+               rel1 {
+                       relative: 1.0 0.0;to_x: "pad_l";
+                       }
+               rel2 {
+                       relative: 0.0 0.0;to_x: "pad_r";
+                       }
+               }
+       }
+       part { name: "pad_l";
+               type: SPACER;
+               scale: 1;
+               description { state: "default" 0.0;
+               min: 26 0;
+               max: 26 0;
+               fixed: 1 0;
+               rel1 {
+                       relative: 0.0 0.0;
+                       to: "base";
+                       }
+               rel2 {
+                       relative: 0.0 1.0;
+                       to: "base";
+                       }
+               align: 0.0 0.0;
+               }
+       }
+       part { name: "pad_r";
+               type: SPACER;
+               scale: 1;
+               description { state: "default" 0.0;
+               min: 26 0;
+               max: 26 0;
+               fixed: 1 0;
+               rel1 {
+                       relative: 1.0 0.0;
+                       to: "base";
+                       }
+               rel2 {
+                       relative: 1.0 1.0;
+                       to: "base";
+                       }
+               align: 1.0 0.0;
+               }
+       }
+       part { name: "pad_b";
+               type: SPACER;
+               scale: 1;
+               description { state: "default" 0.0;
+               align: 0.0 1.0;
+               min: 0 32;
+               fixed: 0 1;
+               rel1 {
+                       relative: 1.0 1.0;
+                       to_x: "pad_l";
+                       }
+               rel2 {
+                       relative: 0.0 1.0;
+                       to_x: "pad_r";
+                       }
+               }
+       }
+       part {
+               name: "after.space";
+               scale: 1;
+               type: SPACER;
+               description { state: "default" 0.0;
+               align: 0.0 0.5;
+               min: 80 80;
+               max: 80 80;
+               fixed: 1 1;
+               rel1 {
+                       relative: 0.0 1.0;
+                       to: "pad_t";
+                       }
+               rel2 {
+                       relative: 1.0 0.0;
+                       to: "pad_b";
+                       }
+               }
+       }
+       part { name: "elm.text";
+               type: TEXT;
+               scale : 1;
+               description { state: "default" 0.0;
+               align: 0.5 0.5;
+               color: 0 0 0 255;
+               fixed: 1 1;
+               text {
+                       font: "Tizen:style=Medium";
+                       size: 38;
+                       align: 0.0 0.5;
+                       min: 0 1;
+                       max: 1 1;
+               }
+               rel1 {
+                       relative: 1.0 1.0;
+                       to_x: "after.space";
+                       to_y: "pad_t";
+                       }
+               rel2 {
+                       relative: 0.0 0.0;
+                       to_x: "pad_r";
+                       to_y: "pad_b";
+                       }
+               }
+       }
+       part { name:"pad_before_text";
+               type: SPACER;
+               scale: 1;
+               description { state: "default" 0.0;
+               min: 16 132;
+               max: 16 132;
+               fixed: 1 1;
+               align: 1.0 0.0;
+               rel1 {
+                       relative: 0.0 0.0;
+                       to: "elm.text";
+                       }
+               rel2 {
+                       relative: 0.0 0.0;
+                       to: "elm.text";
+                       }
+               }
+       }
+       part { name:"elm.swallow.content";
+               type: SWALLOW;
+               scale: 1;
+               description { state: "default" 0.0;
+               min: 63 63;
+               max: 63 63;
+               fixed: 1 1;
+               align: 1.0 0.5;
+               rel1 {
+                       relative: 0.0 0.0;
+                       to_x: "pad_before_text";
+                       to_y: "pad_t";
+                       }
+               rel2 {
+                       relative: 0.0 1.0;
+                       to_x: "pad_before_text";
+                       to_y: "pad_b";
+                       }
+               }
+       }
+       }#undef DEMO_POPUP_PROCESSINGVIEW1BUTTON_CONTENT_MIN
+}
+
+       group { name: "popup_embeded_processing";
+          parts {
+                 part { name, "background";
+                        type: RECT;
+                        scale: 1;
+                        description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 1.0 1.0;}
+                               visible: 1;
+                               color: 0 0 0 0;
+                               align: 0.0 0.0;
+                        }
+                 }
+
+                 part { name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1    {
+                                               relative: 0.0 0.0;
+                                               to_x : "background";
+                                               to_y : "background";
+                                       }
+                               rel2 {
+                                               relative: 1.0 1.0;
+                                               to_x : "background";
+                                               to_y : "background";
+                                       }
+                               align: 0.5 0.5;
+                       }
+
+                       description {
+                               state: "rotate" 0.0;
+                               rel1    {
+                                               relative: 0.0 0.0;
+                                               to_x : "background";
+                                               to_y : "background";
+                                       }
+                               rel2 {
+                                               relative: 1.0 1.0;
+                                               to_x : "background";
+                                               to_y : "background";
+                                       }
+                               inherit: "default" 0.0;
+                       }
+                }
+
+          }
+       }
+       group { name: "popup_checkview";
+          parts {
+                 part { name: "pad_t";
+                        type: SPACER;
+                        scale: 1;
+                        description { state: "default" 0.0;
+                               align: 0.5 0.0;
+                               min: 0 32;
+                               fixed: 0 1;
+                               rel1 {
+                                  relative: 1.0 0.0;to_x: "pad_l";
+                               }
+                               rel2 {
+                                  relative: 0.0 0.0;to_x: "pad_r";
+                               }
+                        }
+                 }
+                 part { name: "pad_l";
+                        type: SPACER;
+                        scale: 1;
+                        description { state: "default" 0.0;
+                               min: 26 0;
+                               max: 26 0;
+                               fixed: 1 0;
+                               rel1 {
+                                  relative: 0.0 0.0;
+                               }
+                               rel2 {
+                                  relative: 0.0 1.0;
+                               }
+                               align: 0.0 0.0;
+                        }
+                 }
+                 part { name: "pad_r";
+                        type: SPACER;
+                        scale: 1;
+                        description { state: "default" 0.0;
+                               min: 26 0;
+                               max: 26 0;
+                               fixed: 1 0;
+                               rel1 {
+                                  relative: 1.0 0.0;
+                               }
+                               rel2 {
+                                  relative: 1.0 1.0;
+                               }
+                               align: 1.0 0.0;
+                        }
+                 }
+                 part { name: "elm.swallow.content";
+                        type: SWALLOW;
+                        scale: 1;
+                        description { state: "default" 0.0;
+                               fixed: 1 0;
+                               rel1 {
+                                  relative: 1.0 1.0;
+                                  to_x: "pad_l";
+                                  to_y: "pad_t";
+                               }
+                               rel2 {
+                                  relative: 0.0 0.0;
+                                  to_x: "pad_r";
+                                  to_y: "pad_b";
+                               }
+                        }
+                 }
+                 part { name: "bottom_pad";
+                        type: SPACER;
+                        scale: 1;
+                        description { state: "default" 0.0;
+                               align: 0.0 1.0;
+                               min: 0 32;
+                               fixed: 0 1;
+                               rel1 {
+                                  relative: 1.0 1.0;
+                                  to_x: "pad_l";
+                               }
+                               rel2 {
+                                  relative: 0.0 1.0;
+                                  to_x: "pad_r";
+                               }
+                        }
+                 }
+                 part { name: "pad_b";
+                        type: SPACER;
+                        scale: 1;
+                        description { state: "default" 0.0;
+                               align: 0.0 1.0;
+                               min: 0 121;
+                               fixed: 0 1;
+                               rel1 {
+                                  relative: 0.0 0.0;
+                                  to: "bottom_pad";
+                               }
+                               rel2 {
+                                  relative: 1.0 0.0;
+                                  to: "bottom_pad";
+                               }
+                        }
+                 }
+                 part { name: "end_field";
+                        type: SPACER;
+                        scale: 1;
+                        description { state: "default" 0.0;
+                               align: 0.0 1.0;
+                               min: 0 100;
+                               fixed: 0 1;
+                               rel1 {
+                                  relative: 0.0 1.0;
+                                  to: "pad_b";
+                               }
+                               rel2 {
+                                  relative: 1.0 1.0;
+                                  to: "pad_b";
+                               }
+                        }
+                 }
+                 part { name: "elm.swallow.end";
+                        type: SWALLOW;
+                        scale: 1;
+                        description { state: "default" 0.0;
+                               fixed: 1 1;
+                               align: 0.0 0.5;
+                               rel1.to: "end_field";
+                               rel2.to: "end_field";
+                        }
+                 }
+          }
+       }
+
+#define POPUP_PROGRESSBAR_VIEW_LAYOUT_BG_MIN_INC 0 70
+#define POPUP_PROGRESSBAR_VIEW_LAYOUT_PADDING_INC 15 27
+#define POPUP_PROGRESSBAR_VIEW_LAYOUT_TEXT_FONT_SIZE_INC 0 38
+#define POPUP_PROGRESSBAR_VIEW_LAYOUT_BG_INC 0 69
+#define POPUP_TEXT_FONT_SIZE 15
+
+
+group { name: "popup_text_progressbar_view_layout";
+   styles {
+      style { name: "popup_progress_style";
+         base: "font=Tizen:style=Regular align=right font_size="14" color=#FFFFFF wrap=mixed ellipsis=1.0";
+         tag:  "br" "\n";
+         tag:  "tab" "\t";
+      }
+  style { name: "popup_processing_style";
+         base: "font=Tizen:style=Regular align=left font_size="POPUP_TEXT_FONT_SIZE" color=#000000 wrap=mixed ellipsis=1.0";
+         tag:  "br" "\n";
+         tag:  "tab" "\t";
+      }
+   }
+
+   parts {
+      part { name: "bg";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: POPUP_PROGRESSBAR_VIEW_LAYOUT_BG_MIN_INC;
+            fixed: 1 0;
+         }
+      }
+      part { name: "pad_l_t";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: POPUP_PROGRESSBAR_VIEW_LAYOUT_PADDING_INC;
+            max: POPUP_PROGRESSBAR_VIEW_LAYOUT_PADDING_INC;
+            fixed: 1 1;
+            rel2.relative: 0.0 0.0;
+            align: 0.0 0.0;
+         }
+      }
+      part { name: "pad_r_t";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: POPUP_PROGRESSBAR_VIEW_LAYOUT_PADDING_INC;
+            max: POPUP_PROGRESSBAR_VIEW_LAYOUT_PADDING_INC;
+            fixed: 1 1;
+            rel1.relative: 1.0 1.0;
+            align: 1.0 1.0;
+         }
+      }
+      part { name: "elm.text.description";
+         type: TEXTBLOCK;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 0 1;
+            min: POPUP_PROGRESSBAR_VIEW_LAYOUT_TEXT_FONT_SIZE_INC;
+            rel1 {
+               relative: 0.2 0.4;
+               to: "bg";
+            }
+            rel2 {
+               relative: 0.0 0.6;
+               to_x: "pad_r_t";
+               to_y: "bg";
+            }
+            text {
+               style: "popup_processing_style";
+               min: 0 1;
+            }
+         }
+      }
+      part { name: "progressbar_bg";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 0 1;
+            min: POPUP_PROGRESSBAR_VIEW_LAYOUT_BG_INC;
+            rel1 {
+               relative: 0.0 0.0;
+               to_x: "bg";
+              to_y: "elm.text.description";
+            }
+            rel2 {
+               relative: 0.2 1.0;
+               to_x: "bg";
+              to_y: "elm.text.description";
+            }
+         }
+      }
+      part { name: "progressbar";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 0 1;
+            rel1.to: "progressbar_bg";
+            rel2.to: "progressbar_bg";
+         }
+      }
+   }
+}
+
+}
diff --git a/res/edje/vp-button-white.edc b/res/edje/vp-button-white.edc
new file mode 100755 (executable)
index 0000000..6732239
--- /dev/null
@@ -0,0 +1,392 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+
+#define BUTTON_BG_NORMAL "white/common/00_button_01.png"
+#define BUTTON_BG_PRESS "white/common/00_button_01_press.png"
+#define NO_ITEM_BUTTON_WIDTH 688
+#define NO_ITEM_BUTTON_HEIGHT 80
+
+#define BUTTON_BG_BACK_NORMAL "T01_icon_soft_back.png"
+#define BUTTON_BG_CLEAR_NORMAL "T01-2_icon_toolbar_cancel.png"
+
+//////////////////////////////////////////////////////////////
+
+#define VP_BUTTON_STYLE(__name,__bg_normal,__bg_pressed,__width,__height) \
+group { name: "elm/button/base/video/"__name; \
+       images { \
+               image: __bg_normal COMP; \
+               image: __bg_pressed COMP; \
+       } \
+       parts { \
+               part { \
+                       name: __name"_bg"; \
+                       mouse_events: 0; \
+                       type: RECT; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               align: 0.0 0.0; \
+                               visible: 0; \
+                               min: __width __height; \
+                               max: __width __height; \
+                               fixed: 1 1; \
+                               rel1 { \
+                                       relative: 0.0 0.0; \
+                               } \
+                               rel2 { \
+                                       relative: 1.0 1.0; \
+                               } \
+                               color: 0 0 0 0; \
+                       } \
+                       description { state: "invisible" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 0; \
+                       } \
+               } \
+               part{ \
+                       name : __name"_press_bg"; \
+                       type: IMAGE; \
+                       mouse_events:1; \
+                       scale : 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               align: 0 0; \
+                               visible:1; \
+                               image { \
+                                       normal: __bg_normal; \
+                                       border: 13 13 15 15; \
+                                       border_scale: 1; \
+                               } \
+                               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: __bg_pressed; } \
+                       } \
+                       description { state: "invisible" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 0; \
+                       } \
+               } \
+               part { \
+                       name: "elm.text"; \
+                       type: TEXT; \
+                       mouse_events: 1; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               align: 0.5 0.5; \
+                               visible:1; \
+                               rel1 { \
+                                       relative: 0 0; \
+                                       to: __name"_bg"; \
+                               } \
+                               rel2 { \
+                                       relative: 1 1; \
+                                       to: __name"_bg"; \
+                               } \
+                               color: 50 50 50 255; \
+                               text { \
+                                       font: "Tizen:style=Medium"; \
+                                       size: 36; \
+                                       min: 0 0; \
+                                       max: 1 0; \
+                                       align: 0.5 0.5; \
+                               } \
+                       } \
+                       description { \
+                               state: "press" 0.0; \
+                               inherit: "default" 0.0; \
+                               color: 248 246 239 255; \
+                       } \
+                       description { state: "invisible" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 0; \
+                       } \
+               } \
+       } \
+       programs{ \
+               program{\
+                       name: __name"_after_down"; \
+                       source: "elm.text"; \
+                       signal: "mouse,down,1"; \
+                       action: STATE_SET "press" 0.0; \
+                       target: __name"_bg"; \
+                       target: __name"_press_bg"; \
+                       target: "elm.text"; \
+               } \
+               program { \
+                       name: __name"_down"; \
+                       source: "*"; \
+                       signal: "mouse,down,1"; \
+                       action: PLAY_SAMPLE "button-pressed" 1.0; \
+                       after:  __name"_after_down"; \
+               } \
+               program { \
+                       name: __name"_up"; \
+                       source: "*"; \
+                       signal: "mouse,up,1"; \
+                       action: STATE_SET "default" 0.0; \
+                       target: __name"_bg"; \
+                       target: __name"_press_bg"; \
+                       target: "elm.text"; \
+               } \
+       } \
+}
+
+VP_BUTTON_STYLE("sign_in", BUTTON_BG_NORMAL,  BUTTON_BG_PRESS, NO_ITEM_BUTTON_WIDTH, NO_ITEM_BUTTON_HEIGHT)
+
+group {
+       name: "elm/button/base/text";
+       parts {
+               part {
+                       name: "bg";
+                       type: RECT;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               min: 200 100;
+                       }
+               }
+               part {
+                       name: "text_part_left";
+                       type: TEXT;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.5 0.5;
+                               color: 255 255 255 255;
+                               rel1 {
+                                       relative: 0.1 0;
+                                       to: "bg";
+                               }
+                               rel2 {
+                                       relative: 1 1;
+                                       to: "bg";
+                               }
+                               text {
+                                       size: 30;
+                                       min: 0 0;
+                                       max: 1 0;
+                               }
+                       }
+               }
+                       part {
+                       name: "text_part_right";
+                       type: TEXT;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.5 0.5;
+                               color: 255 255 255 255;
+                               rel1 {
+                                       relative: 0.0 0;
+                                       to: "bg";
+                               }
+                               rel2 {
+                                       relative: 0.9 1;
+                                       to: "bg";
+                               }
+                               text {
+                                       size: 30;
+                                       min: 0 0;
+                                       max: 1 0;
+                               }
+                       }
+               }
+       } /*parts*/
+       programs {
+               program {
+                       name:   "buttonclicked";
+                       signal: "mouse,clicked,1";
+                       source: "bg";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+               program {
+                       name:   "buttonlefttextclicked";
+                       signal: "mouse,clicked,1";
+                       source: "text_part_left";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+               program {
+                       name:   "buttonrighttextclicked";
+                       signal: "mouse,clicked,1";
+                       source: "text_part_right";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+       }
+
+}
+group {
+       name: "elm/button/base/back";
+       images
+       {
+               image: BUTTON_BG_BACK_NORMAL COMP;
+       }
+       parts {
+               part {
+                       name: "bg";
+                       type: RECT;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               min: 50 80;
+                               max: 50 80;
+                       }
+               }
+               part {
+                       name: "icon";
+                       type: IMAGE;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 {
+                                       relative: 0 0;
+                                       to: "bg";
+                               }
+                               rel2 {
+                                       relative: 1 1;
+                                       to: "bg";
+                               }
+                               image {
+                                       normal: BUTTON_BG_BACK_NORMAL;
+                               }
+                       }
+               }
+       } /*parts*/
+       programs {
+               program {
+                       name:   "buttonclicked";
+                       signal: "mouse,clicked,1";
+                       source: "bg";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+               program {
+                       name:   "buttontextclicked";
+                       signal: "mouse,clicked,1";
+                       source: "icon";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+       }
+
+}
+group {
+       name: "elm/button/base/clear";
+       images
+       {
+               image: BUTTON_BG_CLEAR_NORMAL COMP;
+       }
+       parts {
+               part {
+                       name: "bg";
+                       type: RECT;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               min: 50 50;
+                               max: 50 50;
+                       }
+               }
+               part {
+                       name: "icon";
+                       type: IMAGE;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 {
+                                       relative: 0 0;
+                                       to: "bg";
+                               }
+                               rel2 {
+                                       relative: 1 1;
+                                       to: "bg";
+                               }
+                               image {
+                                       normal: BUTTON_BG_CLEAR_NORMAL;
+                               }
+                               min: 30 30;
+                               max: 30 30;
+                               color: 0 0 0 255;
+                       }
+               }
+       } /*parts*/
+       programs {
+               program {
+                       name:   "buttonclicked";
+                       signal: "mouse,clicked,1";
+                       source: "bg";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+               program {
+                       name:   "buttontextclicked";
+                       signal: "mouse,clicked,1";
+                       source: "icon";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+       }
+
+}
+group {
+       name: "elm/button/base/clear_dim";
+       images
+       {
+               image: BUTTON_BG_CLEAR_NORMAL COMP;
+       }
+       parts {
+               part {
+                       name: "bg";
+                       type: RECT;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               min: 30 30;
+                               max: 30 30;
+                       }
+               }
+               part {
+                       name: "icon";
+                       type: IMAGE;
+                       description {
+                               state: "default" 0.0;
+                               rel1 {
+                                       relative: 0 0;
+                                       to: "bg";
+                               }
+                               rel2 {
+                                       relative: 1 1;
+                                       to: "bg";
+                               }
+                               image {
+                                       normal: BUTTON_BG_CLEAR_NORMAL;
+                               }
+                               color: 100 100 100 255;
+                       }
+               }
+       } /*parts*/
+}
diff --git a/res/edje/vp-check.edc b/res/edje/vp-check.edc
new file mode 100755 (executable)
index 0000000..f76a8a8
--- /dev/null
@@ -0,0 +1,1333 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#define CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC 42 42
+
+#define CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC        255 255 255 255
+#define CHECK_DEFAULT_TEXT_PRESSED_COLOR_INC      255 255 255 255
+#define CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC          136 136 136 136
+
+//////////////////////////////////////////////////////////
+//
+#define        GALLERY_EDC_IMAGE_CHECK_BG "T01_checkbox.png"
+#define        GALLERY_EDC_IMAGE_CHECK_BG_DIM "00_check_bg_dim.png"
+#define        GALLERY_EDC_IMAGE_CHECK_BG_CHECKING "T01_check.png"
+#define GALLERY_EDC_IMAGE_CHECK_ALBUM_BG "T01_checkbox.png"
+#define GALLERY_EDC_IMAGE_CHECK_GRID "T01_grid_select_check.png"
+#define GALLERY_EDC_IMAGE_CHECK_PINCH_GRID "00_grid_select_check.png"
+
+// Grid item background size W: 14+158+6; H: 24+158
+#define W               178
+#define H               182
+
+// Gap between bg and icon
+#define GAP_BG_L         14
+#define GAP_BG_R         6
+#define GAP_BG_T         24
+
+// Gap between icon and shadow
+#define GAP_ICON_L         3
+#define GAP_ICON_R         3
+#define GAP_ICON_T         0
+#define GAP_ICON_B         4
+
+// Shadow image size
+#define SHADOW_W               (W-GAP_BG_L-GAP_BG_R+GAP_ICON_L+GAP_ICON_R)
+#define SHADOW_H               (H-GAP_BG_T+GAP_ICON_B)
+
+// Gap between bg and shadow
+#define GAP_SHADOW_L         (GAP_BG_L-GAP_ICON_L)
+#define GAP_SHADOW_R         (GAP_BG_R-GAP_ICON_R)
+#define GAP_SHADOW_T         (GAP_BG_T-GAP_ICON_T)
+#define GAP_SHADOW_B         (0+GAP_ICON_B)
+
+
+
+#define ZOOMED_W               116 //6+104+6
+#define ZOOMED_H               110 //6+104
+
+#define ZOOMED_GAP_L         6
+#define ZOOMED_GAP_R         6
+#define ZOOMED_GAP_T         6
+#define ZOOMED_GAP_B         0
+//
+//////////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////////////////////////////////
+//
+// check default textblock style
+//
+///////////////////////////////////////////////////////////////////////////////////////
+       styles {
+               style { name: "check_label_textblock_style";
+                       base: "font=Tizen:style=Roman font_size=32 color=#ffffff wrap=char";
+                       tag: "br" "\n";
+                       tag: "ps" "ps";
+                       tag: "hilight" "+ font=Tizen:style=Bold";
+                       tag: "b" "+ font=Tizen:style=Bold";
+                       tag: "whitecolor" "+ color=#ffffff";
+                       tag: "tab" "\t";
+               }
+       }
+
+#define CHECK_STATE_DEFAULT 0
+#define CHECK_STATE_VISIBLE 1
+#define CHECK_STATE_DISABLED_VISIBLE 2
+#define CHECK_STATE_DISABLED 3
+
+////////////////////////////////////////////////////////////////////////////////
+#define CHECK_STYLE_DEFAULT(style_name, image_bg, image_checking, min_width, min_height) \
+ group { name: "elm/check/base/"style_name; \
+      images { \
+         image: image_bg COMP; \
+         image: GALLERY_EDC_IMAGE_CHECK_BG_DIM COMP; \
+         image: image_checking COMP; \
+      } \
+      script { \
+         public check_state = CHECK_STATE_DEFAULT; \
+      } \
+      parts { \
+         part { name: "back_bg"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               rel2.relative: 0.0 1.0; \
+               align: 0 0.5; \
+               min: min_width min_height; \
+               fixed: 1 0; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         part { name: "bg"; \
+            mouse_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC; \
+               max: CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC; \
+               fixed: 1 1; \
+               rel1.to: "back_bg"; \
+               rel2.to: "back_bg"; \
+               image.normal: image_bg; \
+               fill.smooth : 0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               image.normal: GALLERY_EDC_IMAGE_CHECK_BG_DIM; \
+               fill.smooth : 0; \
+            } \
+         } \
+         part { name: "check"; \
+            mouse_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               rel1.to: "bg"; \
+               rel2.to: "bg"; \
+               visible: 0; \
+               image.normal: image_checking; \
+            } \
+            description { state: "visible" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+            description { state: "disabled_visible" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         } \
+         part { name: "elm.swallow.content"; \
+            type: SWALLOW; \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               visible: 0; \
+               color: 255 255 255 255; \
+               align: 0.0 0.5; \
+               rel1 { \
+                  to_x: "bg"; \
+                  relative: 1.0 0.0; \
+                  offset: 1 1; \
+               } \
+               rel2 { \
+                  to_x: "bg"; \
+                  relative: 1.0 1.0; \
+                  offset: 2 -2; \
+               } \
+            } \
+            description { state: "visible" 0.0; \
+               inherit: "default" 0.0; \
+               fixed: 1 1; \
+               visible: 1; \
+               aspect: 1.0 1.0; \
+               aspect_preference: VERTICAL; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               color: 128 128 128 128; \
+            } \
+            description { state: "disabled_visible" 0.0; \
+               inherit: "default" 0.0; \
+               color: 128 128 128 128; \
+               fixed: 1 1; \
+               visible: 1; \
+               aspect: 1.0 1.0; \
+            } \
+         } \
+         part { name: "elm.text"; \
+            type: TEXTBLOCK; \
+            mouse_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               visible: 0; \
+               fixed: 0 1; \
+               rel1 { \
+                  relative: 1.0 0.5; \
+                  offset: 1 1; \
+                  to_x: "elm.swallow.content"; \
+               } \
+               rel2 { \
+                  relative: 1.0 0.5; \
+                  offset: -2 -2; \
+               } \
+               align: 0.0 0.5; \
+               text { \
+                  style: "check_label_textblock_style"; \
+                  min: 0 0; \
+               } \
+               color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC; \
+            } \
+            description { state: "visible" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+               text.min: 1 1; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+            } \
+            description { state: "disabled_visible" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+               text.min: 1 1; \
+               color: CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC; \
+            } \
+         } \
+         part { name: "events1"; \
+            type: RECT; \
+            ignore_flags: ON_HOLD; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         part { name: "events2"; \
+            type: RECT; \
+            repeat_events: 1; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         part { name: "disabler"; \
+            type: RECT; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+               visible: 0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         } \
+      } \
+      programs { \
+         program { name: "click"; \
+            signal: "mouse,clicked,1"; \
+            source: "events1"; \
+            action: SIGNAL_EMIT "elm,action,check,toggle" ""; \
+         } \
+         program { name: "check_on"; \
+            signal: "elm,state,check,on"; \
+            source: "elm"; \
+            script { \
+               set_int(check_state, CHECK_STATE_VISIBLE); \
+               set_state(PART:"check", "visible", 0.0); \
+            } \
+         } \
+         program { name: "check_off"; \
+            signal: "elm,state,check,off"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "check"; \
+            script { \
+               if (get_int(check_state) == CHECK_STATE_VISIBLE) \
+                 { \
+                    set_int(check_state, CHECK_STATE_DEFAULT); \
+                    set_state(PART:"check", "default", 0.0); \
+                 } \
+            } \
+         } \
+         program { name: "text_show"; \
+            signal: "elm,state,text,visible"; \
+            source: "elm"; \
+            action: STATE_SET "visible" 0.0; \
+            target: "elm.text"; \
+         } \
+         program { name: "text_hide"; \
+            signal: "elm,state,text,hidden"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text"; \
+         } \
+         program { name: "icon_show"; \
+            signal: "elm,state,icon,visible"; \
+            source: "elm"; \
+            action: STATE_SET "visible" 0.0; \
+            target: "elm.swallow.content"; \
+         } \
+         program { name: "icon_hide"; \
+            signal: "elm,state,icon,hidden"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.swallow.content"; \
+         } \
+         program { name: "disable"; \
+            signal: "elm,state,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "disabled" 0.0; \
+            target: "disabler"; \
+            target: "bg"; \
+            after: "disable_text"; \
+         } \
+         program { name: "disable_text"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"elm.text", st, 30, vl); \
+               if (!strcmp(st, "visible")) \
+                 set_state(PART:"elm.text", "disabled_visible", 0.0); \
+               else \
+                 set_state(PART:"elm.text", "disabled", 0.0); \
+               get_state(PART:"elm.swallow.content", st, 30, vl); \
+               if (!strcmp(st, "visible")) \
+                 set_state(PART:"elm.swallow.content", "disabled_visible", 0.0); \
+               else \
+                 set_state(PART:"elm.swallow.content", "disabled", 0.0); \
+               get_state(PART:"check", st, 30, vl); \
+               if (!strcmp(st, "visible")) \
+                 { \
+                    set_state(PART:"check", "disabled_visible", 0.0); \
+                    set_int(check_state, CHECK_STATE_DISABLED_VISIBLE); \
+                 } \
+            } \
+         } \
+         program { name: "enable"; \
+            signal: "elm,state,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "disabler"; \
+            target: "bg"; \
+            after: "enable_text"; \
+         } \
+         program { name: "enable_text"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"elm.text", st, 30, vl); \
+               if (!strcmp(st, "disabled_visible")) \
+                 set_state(PART:"elm.text", "visible", 0.0); \
+               else \
+                 set_state(PART:"elm.text", "default", 0.0); \
+               get_state(PART:"elm.swallow.content", st, 30, vl); \
+               if (!strcmp(st, "visible")) \
+                 set_state(PART:"elm.swallow.content", "visible", 0.0); \
+               else \
+                 set_state(PART:"elm.swallow.content", "default", 0.0); \
+               get_state(PART:"check", st, 30, vl); \
+               if (!strcmp(st, "disabled_visible")) \
+                 { \
+                    set_state(PART:"check", "visible", 0.0); \
+                    set_int(check_state, CHECK_STATE_VISIBLE); \
+                 } \
+               else \
+                 set_int(check_state, CHECK_STATE_DEFAULT); \
+            } \
+         } \
+      } \
+   }
+
+////////////////////////////////////////////////////////////////////////////////
+       CHECK_STYLE_DEFAULT("gallery/default", GALLERY_EDC_IMAGE_CHECK_BG, GALLERY_EDC_IMAGE_CHECK_BG_CHECKING, 42, 42)
+
+////////////////////////////////////////////////////////////////////////////////
+       CHECK_STYLE_DEFAULT("gallery/album", GALLERY_EDC_IMAGE_CHECK_ALBUM_BG, GALLERY_EDC_IMAGE_CHECK_BG_CHECKING, 42, 42)
+
+////////////////////////////////////////////////////////////////////////////////
+#define CHECK_STYLE_GRID(style_name, image_grid, width, height) \
+   group { name: "elm/check/base/"style_name; \
+      images.image: image_grid COMP; \
+      parts { \
+         part { name: "bg"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+            description { state: "pressed" 0.0; \
+               inherit: "default" 0.0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            } \
+         } \
+               part { name: "icon_bg_img"; \
+                       type: RECT; \
+                       mouse_events: 0; \
+                       scale : 1; \
+                       description { \
+                               color: 0 0 0 0; \
+                               rel1 { relative: GAP_SHADOW_L/W GAP_SHADOW_T/H; to: "bg"; } \
+                               rel2 { relative: (W-GAP_SHADOW_R-1)/W (H+GAP_SHADOW_B-1)/H; to: "bg"; } \
+                       } \
+               } \
+               part { name: "icon_bg"; \
+                       type: RECT; \
+                       description { state: "default" 0.0; \
+                               color: 0 0 0 0; \
+                               rel1 { relative: GAP_ICON_L/SHADOW_W GAP_ICON_T/SHADOW_H; to: "icon_bg_img"; } \
+                               rel2 { relative: (SHADOW_W-GAP_ICON_R+2)/SHADOW_W (SHADOW_H-GAP_ICON_B+1)/SHADOW_H; to: "icon_bg_img"; } \
+                       } \
+               } \
+         part { name: "bg2"; \
+            type: RECT; \
+            mouse_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               rel1.to: "icon_bg"; \
+               rel2.to: "icon_bg"; \
+               align: 0.5 0.5; \
+               min: width height; \
+               max: width height; \
+               color:  0 0 0 0; \
+            } \
+            description { state: "pressed" 0.0; \
+               inherit: "default" 0.0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            } \
+         } \
+         part { name: "selected_bg"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               rel1.to: "icon_bg"; \
+               rel2.to: "icon_bg"; \
+               color: 0 0 0 0; \
+               visible: 0; \
+            } \
+            description { state: "visible" 0.0; \
+               inherit: "default" 0.0; \
+               color: 0 0 0 153; \
+               visible: 1; \
+            } \
+         } \
+         part { name: "check"; \
+            mouse_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               rel1.to: "bg2"; \
+               rel2.to: "bg2"; \
+               visible: 0; \
+               image.normal: image_grid; \
+            } \
+            description { state: "visible" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+            description { state: "pressed" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+            description { state: "disabled_visible" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         } \
+         part { name: "elm.swallow.content"; \
+            type: SWALLOW; \
+            description { \
+               state: "default" 0.0; \
+               fixed: 1 0; \
+               visible: 0; \
+               color: 255 255 255 255; \
+               align: 0.0 0.5; \
+               rel1 { \
+                  to_x: "bg2"; \
+                  relative: 1.0 0.0; \
+                  offset: 1 1; \
+               } \
+               rel2 { \
+                  to_x: "bg2"; \
+                  relative: 1.0 1.0; \
+                  offset: 2 -2; \
+               } \
+            } \
+            description { state: "visible" 0.0; \
+               inherit: "default" 0.0; \
+               fixed: 1 1; \
+               visible: 1; \
+               aspect: 1.0 1.0; \
+               aspect_preference: VERTICAL; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               color: 128 128 128 128; \
+            } \
+            description { state: "disabled_visible" 0.0; \
+               inherit: "default" 0.0; \
+               color: 128 128 128 128; \
+               fixed: 1 1; \
+               visible: 1; \
+               aspect: 1.0 1.0; \
+            } \
+         } \
+         part { name: "elm.text"; \
+            type: TEXTBLOCK; \
+            mouse_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               visible: 0; \
+               fixed: 0 1; \
+               rel1 { \
+                  relative: 1.0 0.5; \
+                  offset: 1 1; \
+                  to_x: "elm.swallow.content"; \
+               } \
+               rel2 { \
+                  relative: 1.0 0.5; \
+                  offset: -2 -2; \
+               } \
+               color: 255 255 255 255; \
+               align: 0.0 0.5; \
+               text { \
+                  style: "check_label_textblock_style"; \
+                  min: 0 0; \
+               } \
+               color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC; \
+            } \
+            description { state: "visible" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+               text.min: 1 1; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+            } \
+            description { state: "disabled_visible" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+               text.min: 1 1; \
+               color: CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC; \
+            } \
+         } \
+         part { name: "events"; \
+            type: RECT; \
+            ignore_flags: ON_HOLD; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         part { name: "disabler"; \
+            type: RECT; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+               visible: 0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         } \
+      } \
+      programs { \
+         program { name: "click"; \
+            signal: "mouse,up,1"; \
+            source: "events"; \
+            action: SIGNAL_EMIT "elm,action,check,toggle" ""; \
+            after: "bg_normal"; \
+         } \
+         program { name: "bg_normal"; \
+            script { \
+               set_state(PART:"bg", "default", 0.0); \
+               set_state(PART:"bg2", "default", 0.0); \
+            } \
+         } \
+         program { name: "mouseout"; \
+            signal: "mouse,out"; \
+            source: "events"; \
+            after: "bg_check_normal"; \
+         } \
+         program { name: "bg_check_normal"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"check", st, 30, vl); \
+               if (!strcmp(st, "pressed")) \
+                 set_state(PART:"check", "visible", 0.0); \
+               set_state(PART:"bg", "default", 0.0); \
+               set_state(PART:"bg2", "default", 0.0); \
+            } \
+         } \
+         program { name: "pressed"; \
+            signal: "mouse,down,1"; \
+            source: "events"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"check", st, 30, vl); \
+               if (!strcmp(st, "visible")) \
+                 set_state(PART:"check", "pressed", 0.0); \
+               set_state(PART:"bg", "pressed", 0.0); \
+               set_state(PART:"bg2", "pressed", 0.0); \
+            } \
+         } \
+         program { name: "check_on"; \
+            signal: "elm,state,check,on"; \
+            source: "elm"; \
+            action: STATE_SET "visible" 0.0; \
+            target: "check"; \
+            target: "selected_bg"; \
+         } \
+         program { name: "check_off"; \
+            signal: "elm,state,check,off"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "check"; \
+            target: "selected_bg"; \
+         } \
+         program { name: "text_show"; \
+            signal: "elm,state,text,visible"; \
+            source: "elm"; \
+            action: STATE_SET "visible" 0.0; \
+            target: "elm.text"; \
+         } \
+         program { name: "text_hide"; \
+            signal: "elm,state,text,hidden"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text"; \
+         } \
+         program { name: "icon_show"; \
+            signal: "elm,state,icon,visible"; \
+            source: "elm"; \
+            action: STATE_SET "visible" 0.0; \
+            target: "elm.swallow.content"; \
+         } \
+         program { name: "icon_hide"; \
+            signal: "elm,state,icon,hidden"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.swallow.content"; \
+         } \
+         program { name: "disable"; \
+            signal: "elm,state,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "disabled" 0.0; \
+            target: "disabler"; \
+            target: "bg"; \
+            target: "bg2"; \
+            after: "disable_text"; \
+         } \
+         program { name: "disable_text"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"elm.text", st, 30, vl); \
+               if (!strcmp(st, "visible")) \
+                 set_state(PART:"elm.text", "disabled_visible", 0.0); \
+               else \
+                 set_state(PART:"elm.text", "disabled", 0.0); \
+               get_state(PART:"elm.swallow.content", st, 30, vl); \
+               if (!strcmp(st, "visible")) \
+                 set_state(PART:"elm.swallow.content", "disabled_visible", 0.0); \
+               else \
+                 set_state(PART:"elm.swallow.content", "disabled", 0.0); \
+               get_state(PART:"check", st, 30, vl); \
+               if (!strcmp(st, "visible")) \
+                 set_state(PART:"check", "disabled_visible", 0.0); \
+            } \
+         } \
+         program { name: "enable"; \
+            signal: "elm,state,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "disabler"; \
+            target: "bg"; \
+            target: "bg2"; \
+            after: "enable_text"; \
+         } \
+         program { name: "enable_text"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"elm.text", st, 30, vl); \
+               if (!strcmp(st, "disabled_visible")) \
+                 set_state(PART:"elm.text", "visible", 0.0); \
+               else \
+                 set_state(PART:"elm.text", "default", 0.0); \
+               get_state(PART:"elm.swallow.content", st, 30, vl); \
+               if (!strcmp(st, "visible")) \
+                 set_state(PART:"elm.swallow.content", "visible", 0.0); \
+               else \
+                 set_state(PART:"elm.swallow.content", "default", 0.0); \
+               get_state(PART:"check", st, 30, vl); \
+               if (!strcmp(st, "disabled_visible")) \
+                 set_state(PART:"check", "visible", 0.0); \
+            } \
+         } \
+      } \
+   }
+
+////////////////////////////////////////////////////////////////////////////////
+       CHECK_STYLE_GRID("gallery/grid", GALLERY_EDC_IMAGE_CHECK_GRID, 64, 64)
+
+////////////////////////////////////////////////////////////////////////////////
+   group { name: "elm/check/base/gallery/pinch/grid";
+      images.image: GALLERY_EDC_IMAGE_CHECK_PINCH_GRID COMP;
+      parts {
+         part { name: "bg";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               color: 0 0 0 0;
+            }
+            description { state: "pressed" 0.0;
+               inherit: "default" 0.0;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               visible: 0;
+            }
+         }
+        part { name: "icon_bg";
+                type: RECT;
+                description {
+                    state: "default" 0.0;
+                    color: 0 0 0 0;
+                    rel1 { relative: ZOOMED_GAP_L/ZOOMED_W ZOOMED_GAP_T/ZOOMED_H; to: "bg"; }
+                    rel2 { relative: (ZOOMED_W-ZOOMED_GAP_R)/ZOOMED_W (ZOOMED_H-ZOOMED_GAP_B)/ZOOMED_H; to: "bg"; }
+                }
+        }
+         part { name: "bg2";
+            type: RECT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1.to: "icon_bg";
+               rel2.to: "icon_bg";
+               align: 0.5 0.5;
+               min: 40 40;
+               max: 40 40;
+               color:  0 0 0 0;
+            }
+            description { state: "pressed" 0.0;
+               inherit: "default" 0.0;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               visible: 0;
+            }
+         }
+         part { name: "selected_bg";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1.to: "icon_bg";
+               rel2.to: "icon_bg";
+               color: 0 0 0 0;
+               visible: 0;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               color: 0 0 0 153;
+               visible: 1;
+            }
+         }
+         part { name: "check";
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1.to: "bg2";
+               rel2.to: "bg2";
+               visible: 0;
+               image.normal: GALLERY_EDC_IMAGE_CHECK_PINCH_GRID;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+            description { state: "pressed" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+            description { state: "disabled_visible" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
+         part { name: "elm.swallow.content";
+            type: SWALLOW;
+            description {
+               state: "default" 0.0;
+               fixed: 1 0;
+               visible: 0;
+               color: 255 255 255 255;
+               align: 0.0 0.5;
+               rel1 {
+                  to_x: "bg2";
+                  relative: 1.0 0.0;
+                  offset: 1 1;
+               }
+               rel2 {
+                  to_x: "bg2";
+                  relative: 1.0 1.0;
+                  offset: 2 -2;
+               }
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               fixed: 1 1;
+               visible: 1;
+               aspect: 1.0 1.0;
+               aspect_preference: VERTICAL;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               color: 128 128 128 128;
+            }
+            description { state: "disabled_visible" 0.0;
+               inherit: "default" 0.0;
+               color: 128 128 128 128;
+               fixed: 1 1;
+               visible: 1;
+               aspect: 1.0 1.0;
+            }
+         }
+         part { name: "elm.text";
+            type: TEXTBLOCK;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               visible: 0;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 0.5;
+                  offset: 1 1;
+                  to_x: "elm.swallow.content";
+               }
+               rel2 {
+                  relative: 1.0 0.5;
+                  offset: -2 -2;
+               }
+               color: 255 255 255 255;
+               align: 0.0 0.5;
+               text {
+                  style: "check_label_textblock_style";
+                  min: 0 0;
+               }
+               color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               text.min: 1 1;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+            }
+            description { state: "disabled_visible" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               text.min: 1 1;
+               color: CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC;
+            }
+         }
+         part { name: "events";
+            type: RECT;
+            ignore_flags: ON_HOLD;
+            description { state: "default" 0.0;
+               color: 0 0 0 0;
+            }
+         }
+         part { name: "disabler";
+            type: RECT;
+            description { state: "default" 0.0;
+               color: 0 0 0 0;
+               visible: 0;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
+      }
+      programs {
+         program { name: "click";
+            signal: "mouse,up,1";
+            source: "events";
+            action: SIGNAL_EMIT "elm,action,check,toggle" "";
+            after: "bg_normal";
+         }
+         program { name: "bg_normal";
+            script {
+               set_state(PART:"bg", "default", 0.0);
+               set_state(PART:"bg2", "default", 0.0);
+            }
+         }
+         program { name: "mouseout";
+            signal: "mouse,out";
+            source: "events";
+            after: "bg_check_normal";
+         }
+         program { name: "bg_check_normal";
+            script {
+               new st[31];
+               new Float:vl;
+               get_state(PART:"check", st, 30, vl);
+               if (!strcmp(st, "pressed"))
+                 set_state(PART:"check", "visible", 0.0);
+               set_state(PART:"bg", "default", 0.0);
+               set_state(PART:"bg2", "default", 0.0);
+            }
+         }
+         program { name: "pressed";
+            signal: "mouse,down,1";
+            source: "events";
+            script {
+               new st[31];
+               new Float:vl;
+               get_state(PART:"check", st, 30, vl);
+               if (!strcmp(st, "visible"))
+                 set_state(PART:"check", "pressed", 0.0);
+               set_state(PART:"bg", "pressed", 0.0);
+               set_state(PART:"bg2", "pressed", 0.0);
+            }
+         }
+         program { name: "check_on";
+            signal: "elm,state,check,on";
+            source: "elm";
+            action: STATE_SET "visible" 0.0;
+            target: "check";
+            target: "selected_bg";
+         }
+         program { name: "check_off";
+            signal: "elm,state,check,off";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "check";
+            target: "selected_bg";
+         }
+         program { name: "text_show";
+            signal: "elm,state,text,visible";
+            source: "elm";
+            action: STATE_SET "visible" 0.0;
+            target: "elm.text";
+         }
+         program { name: "text_hide";
+            signal: "elm,state,text,hidden";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "elm.text";
+         }
+         program { name: "icon_show";
+            signal: "elm,state,icon,visible";
+            source: "elm";
+            action: STATE_SET "visible" 0.0;
+            target: "elm.swallow.content";
+         }
+         program { name: "icon_hide";
+            signal: "elm,state,icon,hidden";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "elm.swallow.content";
+         }
+         program { name: "disable";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disabler";
+            target: "bg";
+            target: "bg2";
+            after: "disable_text";
+         }
+         program { name: "disable_text";
+            script {
+               new st[31];
+               new Float:vl;
+               get_state(PART:"elm.text", st, 30, vl);
+               if (!strcmp(st, "visible"))
+                 set_state(PART:"elm.text", "disabled_visible", 0.0);
+               else
+                 set_state(PART:"elm.text", "disabled", 0.0);
+               get_state(PART:"elm.swallow.content", st, 30, vl);
+               if (!strcmp(st, "visible"))
+                 set_state(PART:"elm.swallow.content", "disabled_visible", 0.0);
+               else
+                 set_state(PART:"elm.swallow.content", "disabled", 0.0);
+               get_state(PART:"check", st, 30, vl);
+               if (!strcmp(st, "visible"))
+                 set_state(PART:"check", "disabled_visible", 0.0);
+            }
+         }
+         program { name: "enable";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disabler";
+            target: "bg";
+            target: "bg2";
+            after: "enable_text";
+         }
+         program { name: "enable_text";
+            script {
+               new st[31];
+               new Float:vl;
+               get_state(PART:"elm.text", st, 30, vl);
+               if (!strcmp(st, "disabled_visible"))
+                 set_state(PART:"elm.text", "visible", 0.0);
+               else
+                 set_state(PART:"elm.text", "default", 0.0);
+               get_state(PART:"elm.swallow.content", st, 30, vl);
+               if (!strcmp(st, "visible"))
+                 set_state(PART:"elm.swallow.content", "visible", 0.0);
+               else
+                 set_state(PART:"elm.swallow.content", "default", 0.0);
+               get_state(PART:"check", st, 30, vl);
+               if (!strcmp(st, "disabled_visible"))
+                 set_state(PART:"check", "visible", 0.0);
+            }
+         }
+      }
+   }
+
+////////////////////////////////////////////////////////////////////////////////
+   group { name: "elm/check/base/gallery/album/grid";
+      parts {
+         part { name: "bg";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               color: 0 0 0 0;
+            }
+            description { state: "pressed" 0.0;
+               inherit: "default" 0.0;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               visible: 0;
+            }
+         }
+         part { name: "bg2";
+            type: RECT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1.to: "bg";
+               rel2.to: "bg";
+               align: 0.5 0.5;
+               min: 40 40;
+               max: 40 40;
+               color:  0 0 0 0;
+            }
+            description { state: "pressed" 0.0;
+               inherit: "default" 0.0;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               visible: 0;
+            }
+         }
+         part { name: "selected_bg";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1.to: "bg";
+               rel2.to: "bg";
+               color: 0 0 0 0;
+               visible: 0;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               color: 0 0 0 153;
+               visible: 1;
+            }
+         }
+         part { name: "check";
+            type: RECT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1.to: "bg2";
+               rel2.to: "bg2";
+               color: 0 0 0 0;
+               visible: 0;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+            }
+            description { state: "pressed" 0.0;
+               inherit: "default" 0.0;
+            }
+            description { state: "disabled_visible" 0.0;
+               inherit: "default" 0.0;
+            }
+         }
+         part { name: "elm.swallow.content";
+            type: SWALLOW;
+            description {
+               state: "default" 0.0;
+               fixed: 1 0;
+               visible: 0;
+               color: 255 255 255 255;
+               align: 0.0 0.5;
+               rel1 {
+                  to_x: "bg2";
+                  relative: 1.0 0.0;
+                  offset: 1 1;
+               }
+               rel2 {
+                  to_x: "bg2";
+                  relative: 1.0 1.0;
+                  offset: 2 -2;
+               }
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               fixed: 1 1;
+               visible: 1;
+               aspect: 1.0 1.0;
+               aspect_preference: VERTICAL;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               color: 128 128 128 128;
+            }
+            description { state: "disabled_visible" 0.0;
+               inherit: "default" 0.0;
+               color: 128 128 128 128;
+               fixed: 1 1;
+               visible: 1;
+               aspect: 1.0 1.0;
+            }
+         }
+         part { name: "elm.text";
+            type: TEXTBLOCK;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               visible: 0;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 0.5;
+                  offset: 1 1;
+                  to_x: "elm.swallow.content";
+               }
+               rel2 {
+                  relative: 1.0 0.5;
+                  offset: -2 -2;
+               }
+               color: 255 255 255 255;
+               align: 0.0 0.5;
+               text {
+                  style: "check_label_textblock_style";
+                  min: 0 0;
+               }
+               color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               text.min: 1 1;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+            }
+            description { state: "disabled_visible" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               text.min: 1 1;
+               color: CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC;
+            }
+         }
+         part { name: "events";
+            type: RECT;
+            ignore_flags: ON_HOLD;
+            description { state: "default" 0.0;
+               color: 0 0 0 0;
+            }
+         }
+         part { name: "disabler";
+            type: RECT;
+            description { state: "default" 0.0;
+               color: 0 0 0 0;
+               visible: 0;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
+      }
+      programs {
+         program { name: "click";
+            signal: "mouse,up,1";
+            source: "events";
+            action: SIGNAL_EMIT "elm,action,check,toggle" "";
+            after: "bg_normal";
+         }
+         program { name: "bg_normal";
+            script {
+               set_state(PART:"bg", "default", 0.0);
+               set_state(PART:"bg2", "default", 0.0);
+            }
+         }
+         program { name: "mouseout";
+            signal: "mouse,out";
+            source: "events";
+            after: "bg_check_normal";
+         }
+         program { name: "bg_check_normal";
+            script {
+               new st[31];
+               new Float:vl;
+               get_state(PART:"check", st, 30, vl);
+               if (!strcmp(st, "pressed"))
+                 set_state(PART:"check", "visible", 0.0);
+               set_state(PART:"bg", "default", 0.0);
+               set_state(PART:"bg2", "default", 0.0);
+            }
+         }
+         program { name: "pressed";
+            signal: "mouse,down,1";
+            source: "events";
+            script {
+               new st[31];
+               new Float:vl;
+               get_state(PART:"check", st, 30, vl);
+               if (!strcmp(st, "visible"))
+                 set_state(PART:"check", "pressed", 0.0);
+               set_state(PART:"bg", "pressed", 0.0);
+               set_state(PART:"bg2", "pressed", 0.0);
+            }
+         }
+         program { name: "check_on";
+            signal: "elm,state,check,on";
+            source: "elm";
+            action: STATE_SET "visible" 0.0;
+            target: "check";
+            target: "selected_bg";
+         }
+         program { name: "check_off";
+            signal: "elm,state,check,off";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "check";
+            target: "selected_bg";
+         }
+         program { name: "text_show";
+            signal: "elm,state,text,visible";
+            source: "elm";
+            action: STATE_SET "visible" 0.0;
+            target: "elm.text";
+         }
+         program { name: "text_hide";
+            signal: "elm,state,text,hidden";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "elm.text";
+         }
+         program { name: "icon_show";
+            signal: "elm,state,icon,visible";
+            source: "elm";
+            action: STATE_SET "visible" 0.0;
+            target: "elm.swallow.content";
+         }
+         program { name: "icon_hide";
+            signal: "elm,state,icon,hidden";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "elm.swallow.content";
+         }
+         program { name: "disable";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disabler";
+            target: "bg";
+            target: "bg2";
+            after: "disable_text";
+         }
+         program { name: "disable_text";
+            script {
+               new st[31];
+               new Float:vl;
+               get_state(PART:"elm.text", st, 30, vl);
+               if (!strcmp(st, "visible"))
+                 set_state(PART:"elm.text", "disabled_visible", 0.0);
+               else
+                 set_state(PART:"elm.text", "disabled", 0.0);
+               get_state(PART:"elm.swallow.content", st, 30, vl);
+               if (!strcmp(st, "visible"))
+                 set_state(PART:"elm.swallow.content", "disabled_visible", 0.0);
+               else
+                 set_state(PART:"elm.swallow.content", "disabled", 0.0);
+               get_state(PART:"check", st, 30, vl);
+               if (!strcmp(st, "visible"))
+                 set_state(PART:"check", "disabled_visible", 0.0);
+            }
+         }
+         program { name: "enable";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disabler";
+            target: "bg";
+            target: "bg2";
+            after: "enable_text";
+         }
+         program { name: "enable_text";
+            script {
+               new st[31];
+               new Float:vl;
+               get_state(PART:"elm.text", st, 30, vl);
+               if (!strcmp(st, "disabled_visible"))
+                 set_state(PART:"elm.text", "visible", 0.0);
+               else
+                 set_state(PART:"elm.text", "default", 0.0);
+               get_state(PART:"elm.swallow.content", st, 30, vl);
+               if (!strcmp(st, "visible"))
+                 set_state(PART:"elm.swallow.content", "visible", 0.0);
+               else
+                 set_state(PART:"elm.swallow.content", "default", 0.0);
+               get_state(PART:"check", st, 30, vl);
+               if (!strcmp(st, "disabled_visible"))
+                 set_state(PART:"check", "visible", 0.0);
+            }
+         }
+      }
+   }
+
+#undef CHECK_STATE_DEFAULT
+#undef CHECK_STATE_VISIBLE
+#undef CHECK_STATE_DISABLED_VISIBLE
+#undef CHECK_STATE_DISABLED
diff --git a/res/edje/vp-controlbar.edc b/res/edje/vp-controlbar.edc
new file mode 100755 (executable)
index 0000000..80eff2f
--- /dev/null
@@ -0,0 +1,775 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+/*
+* Refer to nbeat-theme\themes\groups\controlbar.edc
+*/
+
+#define CONTROLBAR_LARGE_H             78              //Macros defined in file: nbeat.edc.
+#define CONTROLBAR_LARGE_LANDSCAPE_H           62
+#define CONTROLBAR_SMALL_H             65
+#define CONTROLBAR_SMALL_LANDSCAPE_H           50
+#define CONTROLBAR_W                   78
+
+#define CONTROLBAR_SEPARATEBAR_BRIGHT_COLOR_INC 22 22 22 255
+#define CONTROLBAR_SEPARATEBAR_DARK_COLOR_INC 63 63 63 255
+
+
+       group{
+               name: "elm/controlbar/base/video/default";
+               parts{
+                       part{
+                               name: "bg_rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events:0;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 {relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 {relative: 1.0 1.0; offset: -1 -1;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part{
+                               name: "bg_image";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events:0;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 {relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 {relative: 1.0 1.0; offset: -1 -1;}
+                               }
+                               description{
+                                       state: "large" 0.0;
+                                       min: 0 CONTROLBAR_LARGE_H;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 {relative: 0.0 1.0; offset: 0 -1;}
+                                       rel2 {relative: 1.0 1.0; offset: -1 -1;}
+                               }
+                               description{
+                                       state: "small" 0.0;
+                                       min: 0 CONTROLBAR_SMALL_H;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 {relative: 0.0 1.0; offset: 0 -1;}
+                                       rel2 {relative: 1.0 1.0; offset: -1 -1;}
+                               }
+                               description{
+                                       state: "left" 0.0;
+                                       min: CONTROLBAR_W 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.5;
+                                       rel1 {relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 {relative: 0.0 1.0; offset: 0 -1;}
+                               }
+                               description{
+                                       state: "right" 0.0;
+                                       min: CONTROLBAR_W 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.5;
+                                       rel1 {relative: 1.0 0.0; offset: -1 0;}
+                                       rel2 {relative: 1.0 1.0; offset: -1 -1;}
+                               }
+                       }
+                       part{
+                               name: "elm.swallow.items";
+                               type: SWALLOW;
+                               scale: 1;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 {relative: 0.0 0.0; to: "bg_image";}
+                                       rel2 {relative: 1.0 1.0; to: "bg_image";}
+                               }
+                       }
+               }
+               programs{
+                       program{
+                               name: "default";
+                               signal: "elm,state,default";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg_image";
+                       }
+                       program{
+                               name: "large";
+                               signal: "elm,state,large";
+                               source: "elm";
+                               action: STATE_SET "large" 0.0;
+                               target: "bg_image";
+                       }
+                       program{
+                               name: "small";
+                               signal: "elm,state,small";
+                               source: "elm";
+                               action: STATE_SET "small" 0.0;
+                               target: "bg_image";
+                       }
+                       program{
+                               name: "left";
+                               signal: "elm,state,left";
+                               source: "elm";
+                               action: STATE_SET "left" 0.0;
+                               target: "bg_image";
+                       }
+                       program{
+                               name: "right";
+                               signal: "elm,state,right";
+                               source: "elm";
+                               action: STATE_SET "right" 0.0;
+                               target: "bg_image";
+                       }
+               }
+       }
+
+       group{
+               name: "elm/controlbar/background/video/default";
+               images{
+                       image: "T01_toolbar_bg.png" COMP;
+               }
+               parts{
+                       part{
+                               name: "bg_image";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events:0;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 {relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 {relative: 1.0 1.0; offset: -1 -1;}
+                                       image.normal: "T01_toolbar_bg.png";
+                                       color: 255 255 255 255;
+                               }
+                       }
+                       programs {
+                               program {
+                                       name: "tabbar_bg";
+                                       signal: "elm,state,tabbar";
+                                       source: "elm";
+                                       action: STATE_SET "tabbar" 0.0;
+                                       target: "bg_image";
+                               }
+                       }
+               }
+       }
+
+       group{
+               name: "elm/controlbar/view/video/default";
+               parts{
+                       part{
+                               name: "bg_rect";
+                               type: RECT;
+                               mouse_events:1;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 {relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 {relative: 1.0 1.0; offset: -1 -1;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part{
+                               name: "elm.swallow.view";
+                               type: SWALLOW;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 {relative: 0.0 0.0; to: "bg_rect";}
+                                       rel2 {relative: 1.0 1.0; to: "bg_rect";}
+                               }
+                       }
+               }
+       }
+
+       group{
+               name: "elm/controlbar/item_bg/video/default";
+               images{
+                       image: "T01_toolbar_press.png" COMP;
+               }
+               parts{
+                       part{
+                               name: "bg_rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description{
+                                       state: "default" 0.0;
+                                       min: 0 CONTROLBAR_SMALL_H;
+                                       rel1 {relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 {relative: 1.0 1.0; offset: -1 -1;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part{
+                               name: "bg_img";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 0;
+                               description{
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 {relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 {relative: 1.0 1.0; offset: -1 -1;}
+                               }
+                               description{
+                                       state: "toolbar_pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 {relative: 0.0 0.07; offset: 3 0;}
+                                       rel2 {relative: 1.0 0.93; offset: -3 0;}
+                                       image.normal: "T01_toolbar_press.png";
+                                       image.border: 2 2 2 2;
+                                       visible: 1;
+                               }
+                       }
+                       part{
+                               name: "left_line";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description{
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 {relative: 0.0 0.0; offset: 0 5;}
+                                       rel2 {relative: 0.0 1.0; offset: 1 -3;}
+                                       color: CONTROLBAR_SEPARATEBAR_BRIGHT_COLOR_INC;
+                               }
+                               description{
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part{
+                               name: "right_line";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description{
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 {relative: 1.0 0.0; offset: -1 5;}
+                                       rel2 {relative: 1.0 1.0; offset: 0 -3;}
+                                       color: CONTROLBAR_SEPARATEBAR_DARK_COLOR_INC;
+                               }
+                               description{
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part{
+                               name: "top_line";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description{
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 {relative: 0.0 0.0; offset: 5 0;}
+                                       rel2 {relative: 1.0 0.0; offset: -5 1;}
+                                       color: CONTROLBAR_SEPARATEBAR_BRIGHT_COLOR_INC;
+                               }
+                               description{
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part{
+                               name: "bottom_line";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description{
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 {relative: 0.0 1.0; offset: 5 -1;}
+                                       rel2 {relative: 1.0 1.0; offset: -5 0;}
+                                       color: CONTROLBAR_SEPARATEBAR_DARK_COLOR_INC;
+                               }
+                               description{
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part{
+                               name: "item";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 {to: "bg_rect";}
+                                       rel2 {to: "bg_rect";}
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "toolbar_pressed";
+                               signal: "elm,state,toolbar_pressed";
+                               source: "elm";
+                               action: STATE_SET "toolbar_pressed" 0.0;
+                               target: "bg_img";
+                       }
+                       program {
+                               name: "unselected";
+                               signal: "elm,state,unselected";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg_img";
+                       }
+                       program {
+                               name: "unpressed";
+                               signal: "elm,state,unpressed";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg_img";
+                       }
+                       program {
+                               name: "left_line_show";
+                               signal: "elm,state,left_line_show";
+                               source: "elm";
+                               action: STATE_SET "show" 0.0;
+                               target: "left_line";
+                       }
+                       program {
+                               name: "left_line_hide";
+                               signal: "elm,state,left_line_hide";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "left_line";
+                       }
+                       program {
+                               name: "right_line_show";
+                               signal: "elm,state,right_line_show";
+                               source: "elm";
+                               action: STATE_SET "show" 0.0;
+                               target: "right_line";
+                       }
+                       program {
+                               name: "right_line_hide";
+                               signal: "elm,state,right_line_hide";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "right_line";
+                       }
+                       program {
+                               name: "top_line_show";
+                               signal: "elm,state,top_line_show";
+                               source: "elm";
+                               action: STATE_SET "show" 0.0;
+                               target: "top_line";
+                       }
+                       program {
+                               name: "top_line_hide";
+                               signal: "elm,state,top_line_hide";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "top_line";
+                       }
+                       program {
+                               name: "bottom_line_show";
+                               signal: "elm,state,bottom_line_show";
+                               source: "elm";
+                               action: STATE_SET "show" 0.0;
+                               target: "bottom_line";
+                       }
+                       program {
+                               name: "bottom_line_hide";
+                               signal: "elm,state,bottom_line_hide";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "bottom_line";
+                       }
+               }
+       }
+
+
+       group{
+               name: "elm/controlbar/base/video/landscape/default";
+
+               parts{
+                       part{
+                               name: "bg_rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events:0;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 {relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 {relative: 1.0 1.0; offset: -1 -1;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part{
+                               name: "bg_image";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events:0;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 {relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 {relative: 1.0 1.0; offset: -1 -1;}
+                               }
+                               description{
+                                       state: "large" 0.0;
+                                       min: 0 CONTROLBAR_LARGE_LANDSCAPE_H;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 {relative: 0.0 1.0; offset: 0 -1;}
+                                       rel2 {relative: 1.0 1.0; offset: -1 -1;}
+                               }
+                               description{
+                                       state: "small" 0.0;
+                                       min: 0 CONTROLBAR_SMALL_LANDSCAPE_H;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 {relative: 0.0 1.0; offset: 0 -1;}
+                                       rel2 {relative: 1.0 1.0; offset: -1 -1;}
+                               }
+                               description{
+                                       state: "left" 0.0;
+                                       min: CONTROLBAR_W 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.5;
+                                       rel1 {relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 {relative: 0.0 1.0; offset: 0 -1;}
+                               }
+                               description{
+                                       state: "right" 0.0;
+                                       min: CONTROLBAR_W 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.5;
+                                       rel1 {relative: 1.0 0.0; offset: -1 0;}
+                                       rel2 {relative: 1.0 1.0; offset: -1 -1;}
+                               }
+                       }
+                       part{
+                               name: "elm.swallow.items";
+                               type: SWALLOW;
+                               scale: 1;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 {relative: 0.0 0.0; to: "bg_image";}
+                                       rel2 {relative: 1.0 1.0; to: "bg_image";}
+                               }
+                       }
+               }
+               programs{
+                       program{
+                               name: "default";
+                               signal: "elm,state,default";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg_image";
+                       }
+                       program{
+                               name: "large";
+                               signal: "elm,state,large";
+                               source: "elm";
+                               action: STATE_SET "large" 0.0;
+                               target: "bg_image";
+                       }
+                       program{
+                               name: "small";
+                               signal: "elm,state,small";
+                               source: "elm";
+                               action: STATE_SET "small" 0.0;
+                               target: "bg_image";
+                       }
+                       program{
+                               name: "left";
+                               signal: "elm,state,left";
+                               source: "elm";
+                               action: STATE_SET "left" 0.0;
+                               target: "bg_image";
+                       }
+                       program{
+                               name: "right";
+                               signal: "elm,state,right";
+                               source: "elm";
+                               action: STATE_SET "right" 0.0;
+                               target: "bg_image";
+                       }
+               }
+       }
+
+       group{
+               name: "elm/controlbar/background/video/landscape/default";
+
+               images{
+                       image: "T01_toolbar_bg.png" COMP;
+               }
+
+               parts{
+                       part{
+                               name: "bg_image";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events:0;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 {relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 {relative: 1.0 1.0; offset: -1 -1;}
+                                       image.normal: "T01_toolbar_bg.png";
+                                       color: 255 255 255 255;
+                               }
+                       }
+                       programs {
+                               program {
+                                       name: "tabbar_bg";
+                                       signal: "elm,state,tabbar";
+                                       source: "elm";
+                                       action: STATE_SET "tabbar" 0.0;
+                                       target: "bg_image";
+                               }
+                       }
+               }
+       }
+
+       group{
+               name: "elm/controlbar/view/video/landscape/default";
+
+               parts{
+                       part{
+                               name: "bg_rect";
+                               type: RECT;
+                               mouse_events:1;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 {relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 {relative: 1.0 1.0; offset: -1 -1;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part{
+                               name: "elm.swallow.view";
+                               type: SWALLOW;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 {relative: 0.0 0.0; to: "bg_rect";}
+                                       rel2 {relative: 1.0 1.0; to: "bg_rect";}
+                               }
+                       }
+               }
+       }
+
+       group{
+               name: "elm/controlbar/item_bg/video/landscape/default";
+               images{
+                       image: "T01_toolbar_press.png" COMP;
+               }
+
+               parts{
+                       part{
+                               name: "bg_rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description{
+                                       state: "default" 0.0;
+                                       min: 0 CONTROLBAR_SMALL_LANDSCAPE_H;
+                                       rel1 {relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 {relative: 1.0 1.0; offset: -1 -1;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part{
+                               name: "bg_img";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 0;
+                               description{
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 {relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 {relative: 1.0 1.0; offset: -1 -1;}
+                               }
+                               description{
+                                       state: "toolbar_pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 {relative: 0.0 0.07; offset: 3 0;}
+                                       rel2 {relative: 1.0 0.93; offset: -3 0;}
+                                       image.normal: "T01_toolbar_press.png";
+                                       image.border: 2 2 2 2;
+                                       visible: 1;
+                               }
+                       }
+                       part{
+                               name: "left_line";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description{
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 {relative: 0.0 0.0; offset: 0 5;}
+                                       rel2 {relative: 0.0 1.0; offset: 1 -3;}
+                                       color: CONTROLBAR_SEPARATEBAR_BRIGHT_COLOR_INC;
+                               }
+                               description{
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part{
+                               name: "right_line";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description{
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 {relative: 1.0 0.0; offset: -1 5;}
+                                       rel2 {relative: 1.0 1.0; offset: 0 -3;}
+                                       color: CONTROLBAR_SEPARATEBAR_DARK_COLOR_INC;
+                               }
+                               description{
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part{
+                               name: "top_line";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description{
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 {relative: 0.0 0.0; offset: 5 0;}
+                                       rel2 {relative: 1.0 0.0; offset: -5 1;}
+                                       color: CONTROLBAR_SEPARATEBAR_BRIGHT_COLOR_INC;
+                               }
+                               description{
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part{
+                               name: "bottom_line";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description{
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 {relative: 0.0 1.0; offset: 5 -1;}
+                                       rel2 {relative: 1.0 1.0; offset: -5 0;}
+                                       color: CONTROLBAR_SEPARATEBAR_DARK_COLOR_INC;
+                               }
+                               description{
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part{
+                               name: "item";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 {to: "bg_rect";}
+                                       rel2 {to: "bg_rect";}
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "toolbar_pressed";
+                               signal: "elm,state,toolbar_pressed";
+                               source: "elm";
+                               action: STATE_SET "toolbar_pressed" 0.0;
+                               target: "bg_img";
+                       }
+                       program {
+                               name: "unselected";
+                               signal: "elm,state,unselected";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg_img";
+                       }
+                       program {
+                               name: "unpressed";
+                               signal: "elm,state,unpressed";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg_img";
+                       }
+                       program {
+                               name: "left_line_show";
+                               signal: "elm,state,left_line_show";
+                               source: "elm";
+                               action: STATE_SET "show" 0.0;
+                               target: "left_line";
+                       }
+                       program {
+                               name: "left_line_hide";
+                               signal: "elm,state,left_line_hide";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "left_line";
+                       }
+                       program {
+                               name: "right_line_show";
+                               signal: "elm,state,right_line_show";
+                               source: "elm";
+                               action: STATE_SET "show" 0.0;
+                               target: "right_line";
+                       }
+                       program {
+                               name: "right_line_hide";
+                               signal: "elm,state,right_line_hide";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "right_line";
+                       }
+                       program {
+                               name: "top_line_show";
+                               signal: "elm,state,top_line_show";
+                               source: "elm";
+                               action: STATE_SET "show" 0.0;
+                               target: "top_line";
+                       }
+                       program {
+                               name: "top_line_hide";
+                               signal: "elm,state,top_line_hide";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "top_line";
+                       }
+                       program {
+                               name: "bottom_line_show";
+                               signal: "elm,state,bottom_line_show";
+                               source: "elm";
+                               action: STATE_SET "show" 0.0;
+                               target: "bottom_line";
+                       }
+                       program {
+                               name: "bottom_line_hide";
+                               signal: "elm,state,bottom_line_hide";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "bottom_line";
+                       }
+               }
+       }
+
diff --git a/res/edje/vp-ctxpopup-option.edc b/res/edje/vp-ctxpopup-option.edc
new file mode 100755 (executable)
index 0000000..c955f5e
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+///////////////////////////////////////////////////////////////////////////////////////
+//
+// ctxpopup
+//
+///////////////////////////////////////////////////////////////////////////////////////
+
+#define FONT_ROM       "Tizen:style=Roman"
+#define FONT_MED       "Tizen:style=Medium"
+
+collections {
+group {
+       name:"video/option/ctxpopup";
+       parts {
+               part {
+                       name: "layout_bg";
+                       type: RECT;
+                       mouse_events: 0;
+                        description {
+                               color: 0 0 0 120;
+                               rel2 { to: "elm.title"; }
+                        }
+               }
+               part {
+                       name: "elm.title";
+                       type:  TEXT;
+                       mouse_events:  0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 1 54;
+                               max: 999999 54;
+                               fixed: 0 1;
+                               align: 0.5 0;
+                               text {
+                                       font:     FONT_ROM;
+                                       size:     28;
+                                       align:    0.5 0.5;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.box";
+                       type: SWALLOW;
+                       description {
+                               rel1 { to: "elm.title"; relative: 0 1; }
+                       }
+               }
+       }
+}
+
+}
+
diff --git a/res/edje/vp-ctxpopup.edc b/res/edje/vp-ctxpopup.edc
new file mode 100755 (executable)
index 0000000..ea19451
--- /dev/null
@@ -0,0 +1,1388 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+///////////////////////////////////////////////////////////////////////////////////////
+//
+// ctxpopup
+//
+///////////////////////////////////////////////////////////////////////////////////////
+#define CTXPOPUP_BUBBLE_BG_IMAGE_BORDER 3 3 3 3 /* modify */
+#define CTXPOPUP_BUBBLE_MASK_IMAGE_BORDER 13 13 13 13 /* modify */
+#define CTXPOPUP_SHADOW_LEFT_PADDING 0
+#define CTXPOPUP_SHADOW_RIGHT_PADDING 0
+#define CTXPOPUP_SHADOW_TOP_PADDING 0
+#define CTXPOPUP_SHADOW_BOTTOM_PADDING 0
+#define CTXPOPUP_CONTENT_PADDING 0
+#define CTXPOPUP_SCROLLER_PADDING 8
+#define CTXPOPUP_SCROLLER_MIN_SIZE_INC 9 12
+#define CTXPOPUP_FRAME_CORNER_ARROW_PADDING 4 /* modify */
+#define CTXPOPUP_BG_COLOR_INC 22 27 30 165 /* modify */
+#define CTXPOPUP_BG_PRESS_COLOR_INC 42 137 194 255
+
+#define CTXPOPUP_LIST_MAIN_TEXT_COLOR_INC 255 255 255 255
+#define CTXPOPUP_LIST_MAIN_TEXT_DIM_COLOR_INC 255 255 255 178
+#define CTXPOPUP_LIST_MAIN_TEXT_PRESS_COLOR_INC 255 255 255 255
+#define CTXPOPUP_SEPARATOR_PXLINE_SIZE_INC 1
+#define CTXPOPUP_SEPARATOR_PADDING_INC 3 /* modify */
+#define CTXPOPUP_SEPARATOR_COLOR_INC 200 200 200 255 /* modify */
+#define CTXPOPUP_SEPARATOR2_COLOR_INC 200 200 200 255
+#define CTXPOPUP_HORIZONTAL_SEPARATOR_1_COLOR_INC 45 45 45 255
+#define CTXPOPUP_HORIZONTAL_SEPARATOR_2_COLOR_INC 91 91 91 255
+#define CTXPOPUP_HORIZONTAL_SEPARATOR_MIN_SIZE_INC 1 74
+#define CTXPOPUP_HORIZONTAL_SEPARATOR_MAX_SIZE_INC 1 74
+#define CTXPOPUP_ITEM_DISABLED_COLOR 0 0 0 100
+#define CTXPOPUP_LIST_MAIN_TEXT_SIZE_INC 33 /* modify */
+#define CTXPOPUP_ITEM_HEIGHT_MIN_INC 112
+#define CTXPOPUP_ITEM_HEIGHT_MAX_INC 130
+#define CTXPOPUP_ICON_ITEM_HORIZONTAL_WIDTH_INC 112
+#define CTXPOPUP_ITEM_HORIZONTAL_HEIGHT_INC 96
+#define CTXPOPUP_ICON_WIDTH_INC 64
+#define CTXPOPUP_ICON_HEIGHT_INC 64
+#define CTXPOPUP_ICON_HORIZONTAL_WIDTH_INC 48
+#define CTXPOPUP_ICON_HORIZONTAL_HEIGHT_INC 48
+#define CTXPOPUP_ARROW_SIZE_INC 48 48
+#define CTXPOPUP_VERTICAL_ARROW_SIZE_INC 40 24 /* modify */
+#define CTXPOPUP_HORIZONTAL_ARROW_SIZE_INC 30 40
+#define CTXPOPUP_ITEM_TEXT_PADDING_INC 35
+#define CTXPOPUP_ITEM_ICON_PADDING_INC 35
+
+///////////////////////////////////////////////////////////////////////////////////////
+//
+// ctxpopup
+//
+///////////////////////////////////////////////////////////////////////////////////////
+
+#define CTXPOPUP_SHADOW_PADDING 10
+#define CTXPOPUP_FRAME_CORNER_SIZE 4 4
+#define CTXPOPUP_FONT_COLOR 0 0 0 255
+#define CTXPOPUP_CLICKED_FONT_COLOR 255 255 255 255
+#define CTXPOPUP_LIST_PADDING 10
+#define CTXPOPUP_LIST_SHADOW_PADDING 3
+
+
+///////////////////////////////////////////////////////////////////////////////
+       group {
+               name: "elm/scroller/base/video/ctxpopup";
+               script {
+                       public sbvis_v, sbvis_h, sbalways_v, sbalways_h, sbvis_timer;
+                       public timer0(val) {
+                               new v;
+                       v = get_int(sbvis_v);
+                       if (v) {
+                               v = get_int(sbalways_v);
+                               if(!v) {
+                                       emit("do-hide-vbar", "");
+                                       set_int(sbvis_v, 0);
+                               }
+                       }
+                       v = get_int(sbvis_h);
+                       if (v) {
+                               v = get_int(sbalways_h);
+                               if(!v) {
+                                       emit("do-hide-hbar", "");
+                                       set_int(sbvis_h, 0);
+                               }
+                       }
+                       set_int(sbvis_timer, 0);
+                       return 0;
+                       }
+               }
+               images {
+                       image: "white/common/00_popup_scroll.9.png" COMP;
+                       image: "white/common/01_scroller.png" COMP;
+               }
+               parts {
+                       part {
+                               name: "clipper";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.content";
+                               clip_to: "clipper";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.5;
+                               }
+                       }
+                       part {
+                               name: "sb_vbar_clip_master";
+                               type: RECT;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                               }
+                               description {
+                                       state: "hidden" 0.0;
+                                       visible: 0;
+                                       color: 255 255 255 0;
+                               }
+                       }
+                       part {
+                               name: "sb_vbar_clip";
+                               clip_to:"sb_vbar_clip_master";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       rel2{ to:"clipper"; relative: 1.0 1.0;}
+                               }
+                               description {
+                                       state: "hidden" 0.0;
+                                       visible: 0;
+                                       color: 255 255 255 0;
+                               }
+                       }
+                       part {
+                               name: "sb_vbar_padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       min: (CTXPOPUP_SCROLLER_PADDING-CTXPOPUP_CONTENT_PADDING) 0;
+                                       max: (CTXPOPUP_SCROLLER_PADDING-CTXPOPUP_CONTENT_PADDING) 0;
+                                       visible: 0;
+                                       align: 1.0 0.0;
+                                       rel1 { to:"clipper"; relative: 1.0 0.0; }
+                                       rel2 { to:"clipper"; relative: 1.0 1.0; }
+                               }
+                       }
+                       part {
+                               name: "sb_vbar";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       visible: 0;
+                                       align: 1.0 0.0;
+                                       rel1 { to_x:"sb_vbar_padding"; to_y:"clipper"; relative: 0.0 0.0; }
+                                       rel2 { to_x:"sb_vbar_padding"; to_y:"clipper"; relative: 0.0 1.0; }
+                               }
+                       }
+                       part {
+                               name: "elm.dragable.vbar";
+                               clip_to: "sb_vbar_clip";
+                               mouse_events: 0;
+                               scale: 1;
+                               dragable {
+                                       x: 0 0 0;
+                                       y: 1 1 0;
+                                       confine: "sb_vbar";
+                               }
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       min: CTXPOPUP_SCROLLER_MIN_SIZE_INC;
+                                       rel1 {
+                                               relative: 0.5  0.5;
+                                               to: "sb_vbar";
+                                       }
+                                       rel2 {
+                                               relative: 0.5  0.5;
+                                               to: "sb_vbar";
+                                       }
+                                       image {
+                                               normal: "white/common/00_popup_scroll.9.png";
+                                               border: 0 0 5 5;
+                                               border_scale: 1;
+                                       }
+                               }
+                       }
+                       part {
+                               name: "sb_hbar_clip_master";
+                               type: RECT;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                               }
+                               description {
+                                       state: "hidden" 0.0;
+                                       visible: 0;
+                                       color: 255 255 255 0;
+                               }
+                       }
+                       part {
+                               name: "sb_hbar_clip";
+                               clip_to: "sb_hbar_clip_master";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       rel2{ to:"clipper"; relative: 1.0 1.0;}
+                               }
+                               description {
+                                       state: "hidden" 0.0;
+                                       visible: 0;
+                                       color: 255 255 255 0;
+                               }
+                       }
+                       part {
+                               name: "sb_hbar";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       visible: 0;
+                                       align: 0.0 1.0;
+                                       rel1 {to:"clipper"; relative: 0.0 1.0;}
+                                       rel2 {to:"clipper"; relative: 1.0 1.0;}
+                               }
+                       }
+                       part {
+                               name: "elm.dragable.hbar";
+                               clip_to: "sb_hbar_clip";
+                               mouse_events: 0;
+                               scale: 1;
+                               dragable {
+                                       x: 1 1 0;
+                                       y: 0 0 0;
+                                       confine: "sb_hbar";
+                               }
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       min: 32 12;
+                                       rel1 {relative: 0.5  0.5; to: "sb_hbar";}
+                                       rel2 {relative: 0.5  0.5; to: "sb_hbar";}
+                                       image {
+                                               normal: "white/common/01_scroller.png";
+                                               border: 6 6 0 0;
+                                               border_scale: 1;
+                                       }
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "load";
+                               signal: "load";
+                               source: "";
+                               script {
+                                       set_state(PART:"sb_vbar_clip", "hidden", 0.0);
+                                       set_state(PART:"sb_hbar_clip", "hidden", 0.0);
+                                       set_int(sbvis_v, 0);
+                                       set_int(sbvis_h, 0);
+                                       set_int(sbalways_v, 0);
+                                       set_int(sbalways_h, 0);
+                                       set_int(sbvis_timer, 0);
+                               }
+                       }
+                       program {
+                               name: "vbar_show";
+                               signal: "elm,action,show,vbar";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "sb_vbar_clip_master";
+                       }
+                       program {
+                               name: "vbar_hide";
+                               signal: "elm,action,hide,vbar";
+                               source: "elm";
+                               action:  STATE_SET "hidden" 0.0;
+                               target: "sb_vbar_clip_master";
+                       }
+                       program {
+                               name: "vbar_show_always";
+                               signal: "elm,action,show_always,vbar";
+                               source: "elm";
+                               script {
+                                       new v;
+                                       v = get_int(sbvis_v);
+                                       v |= get_int(sbalways_v);
+                                       if (!v) {
+                                               set_int(sbalways_v, 1);
+                                               emit("do-show-vbar", "");
+                                               set_int(sbvis_v, 1);
+                                       }
+                               }
+                       }
+                       program {
+                               name: "vbar_show_notalways";
+                               signal: "elm,action,show_notalways,vbar";
+                               source: "elm";
+                               script {
+                                       new v;
+                                       v = get_int(sbalways_v);
+                                       if (v) {
+                                               set_int(sbalways_v, 0);
+                                               v = get_int(sbvis_v);
+                                               if (!v) {
+                                                       emit("do-hide-vbar", "");
+                                               set_int(sbvis_v, 0);
+                                               }
+                                       }
+                               }
+                       }
+                       program {
+                               name: "sb_vbar_show";
+                               signal: "do-show-vbar";
+                               source: "";
+                               action:  STATE_SET "default" 0.0;
+                               transition: LINEAR 1.0;
+                               target: "sb_vbar_clip";
+                       }
+                       program {
+                               name: "sb_vbar_hide";
+                               signal: "do-hide-vbar";
+                               source: "";
+                               action:  STATE_SET "hidden" 0.0;
+                               transition: LINEAR 1.0;
+                               target: "sb_vbar_clip";
+                       }
+                       program {
+                               name: "hbar_show";
+                               signal: "elm,action,show,hbar";
+                               source: "elm";
+                               action:  STATE_SET "default" 0.0;
+                               target: "sb_hbar_clip_master";
+                       }
+                       program {
+                               name: "hbar_hide";
+                               signal: "elm,action,hide,hbar";
+                               source: "elm";
+                               action:  STATE_SET "hidden" 0.0;
+                               target: "sb_hbar_clip_master";
+                       }
+                       program {
+                               name: "hbar_show_always";
+                               signal: "elm,action,show_always,hbar";
+                               source: "elm";
+                               script {
+                                       new v;
+                                       v = get_int(sbvis_h);
+                                       v |= get_int(sbalways_h);
+                                       if (!v) {
+                                               set_int(sbalways_h, 1);
+                                               emit("do-show-hbar", "");
+                                               set_int(sbvis_h, 1);
+                                       }
+                               }
+                       }
+                       program {
+                               name: "hbar_show_notalways";
+                               signal: "elm,action,show_notalways,hbar";
+                               source: "elm";
+                               script {
+                                       new v;
+                                       v = get_int(sbalways_h);
+                                       if (v) {
+                                               set_int(sbalways_h, 0);
+                                               v = get_int(sbvis_h);
+                                               if (!v) {
+                                                       emit("do-hide-hbar", "");
+                                                       set_int(sbvis_h, 0);
+                                               }
+                                       }
+                               }
+                       }
+                       program {
+                               name: "sb_hbar_show";
+                               signal: "do-show-hbar";
+                               source: "";
+                               action:  STATE_SET "default" 0.0;
+                               transition: LINEAR 1.0;
+                               target: "sb_hbar_clip";
+                       }
+                       program {
+                               name: "sb_hbar_hide";
+                               signal: "do-hide-hbar";
+                               source: "";
+                               action:  STATE_SET "hidden" 0.0;
+                               transition: LINEAR 1.0;
+                               target: "sb_hbar_clip";
+                       }
+                       program {
+                               name: "scroll";
+                               signal: "elm,action,scroll";
+                               source: "elm";
+                               action:  STATE_SET "default" 0.0;
+                               script {
+                                       new v;
+                                       v = get_int(sbvis_v);
+                                       v |= get_int(sbalways_v);
+                                       if (!v) {
+                                               emit("do-show-vbar", "");
+                                               set_int(sbvis_v, 1);
+                                       }
+                                       v = get_int(sbvis_h);
+                                       v |= get_int(sbalways_h);
+                                       if(!v) {
+                                               emit("do-show-hbar", "");
+                                               set_int(sbvis_h, 1);
+                                       }
+                                       v = get_int(sbvis_timer);
+                                       if (v > 0) cancel_timer(v);
+                                       v = timer(2.0, "timer0", 0);
+                                       set_int(sbvis_timer, v);
+                               }
+                       }
+               }
+       }
+///////////////////////////////////////////////////////////////////////////////
+       group {
+               name: "elm/ctxpopup/bg/video/pass_event";
+               alias: "elm/ctxpopup/bg/video/extended/entry/pass_event";
+               alias: "elm/ctxpopup/bg/video/extended/entry";
+               alias: "elm/ctxpopup/bg/video/timepicker";
+               alias: "elm/ctxpopup/bg/video/datetime/default";
+               parts {
+                       part {
+                               name: "bg";
+                               type: RECT;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "visible" 0.0;
+                                       color: 0 0 0 0;
+                                       visible: 1;
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name:   "clicked_event";
+                               signal: "mouse,clicked,1";
+                               source: "bg";
+                               action: SIGNAL_EMIT "elm,action,click" "";
+                       }
+                       program {
+                               name: "show";
+                               signal: "elm,state,show";
+                               source: "elm";
+                               action: STATE_SET "visible" 0.0;
+                               target: "bg";
+                       }
+                       program {
+                               name: "hide";
+                               signal: "elm,state,hide";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg";
+                       }
+               }
+       }
+///////////////////////////////////////////////////////////////////////////////
+       group {
+               name: "elm/ctxpopup/bg/video/default";
+               parts {
+                       part {
+                               name: "bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "visible" 0.0;
+                                       color: 0 0 0 0;
+                                       visible: 1;
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name:   "clicked_event";
+                               signal: "mouse,clicked,1";
+                               source: "bg";
+                               action: SIGNAL_EMIT "elm,action,click" "";
+                       }
+                       program {
+                               name: "show";
+                               signal: "elm,state,show";
+                               source: "elm";
+                               action: STATE_SET "visible" 0.0;
+                               target: "bg";
+                       }
+                       program {
+                               name: "hide";
+                               signal: "elm,state,hide";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg";
+                       }
+               }
+       }
+
+///////////////////////////////////////////////////////////////////////////////
+
+       group {
+               name: "elm/ctxpopup/base/video/default";
+               images {
+                       image: "white/common/00_popup_bubble_bg.png" COMP;
+                       image: "white/common/T01-2_popup_bg.png" COMP;
+               }
+               parts {
+                       part {
+                               name:"frame_shadow_left_top_padding";
+                               type:RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       min: CTXPOPUP_SHADOW_LEFT_PADDING 0;
+                                       max: CTXPOPUP_SHADOW_LEFT_PADDING 0;
+                                       rel2 { relative: 0 0; }
+                                       align: 1 1;
+                                       fixed: 1 1;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name:"frame_shadow_right_bottom_padding";
+                               type:RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       min: CTXPOPUP_SHADOW_RIGHT_PADDING CTXPOPUP_SHADOW_BOTTOM_PADDING;
+                                       max: CTXPOPUP_SHADOW_RIGHT_PADDING CTXPOPUP_SHADOW_BOTTOM_PADDING;
+                                       rel1{relative: 1 1;}
+                                       align: 0 0;
+                                       fixed: 1 1;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "frame_bg";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 0;
+                               clip_to: "ctxpopup_clip";
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 {to:"frame_shadow_left_top_padding";}
+                                       rel2 {to:"frame_shadow_right_bottom_padding";}
+                                       min: (CTXPOPUP_ICON_ITEM_HORIZONTAL_WIDTH_INC + CTXPOPUP_SHADOW_LEFT_PADDING + CTXPOPUP_SHADOW_RIGHT_PADDING) 0;
+                                       image {
+                                               normal: "white/common/T01-2_popup_bg.png";
+                                               border: CTXPOPUP_BUBBLE_BG_IMAGE_BORDER;
+                                               border_scale: 1;
+                                       }
+                               }
+                       }
+                       part { name: "arrow_area_left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               clip_to: "ctxpopup_clip";
+                               description { state: "default" 0.0;
+                                       visible: 0;
+                                       min: CTXPOPUP_HORIZONTAL_ARROW_SIZE_INC;
+                                       fixed: 1 1;
+                                       align: 1 0.5;
+                                       rel1 {
+                                               relative: 1 1;
+                                               to_x:"content_left_top_padding";
+                                               to_y: "ctxpopup_frame_left_top";
+                                       }
+                                       rel2 {
+                                               relative: 1 0;
+                                               to_x:"content_left_top_padding";
+                                               to_y:"ctxpopup_frame_right_bottom";
+                                       }
+                               }
+                       }
+                       part { name: "arrow_area_right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               clip_to: "ctxpopup_clip";
+                               description { state: "default" 0.0;
+                                       visible: 0;
+                                       min: CTXPOPUP_HORIZONTAL_ARROW_SIZE_INC;
+                                       fixed: 1 1;
+                                       align: 0 0.5;
+                                       rel1 {
+                                               relative: 0 1;
+                                               to_x:"content_right_bottom_padding";
+                                               to_y:"ctxpopup_frame_left_top";
+                                       }
+                                       rel2 {
+                                               relative: 0 0;
+                                               to_x:"content_right_bottom_padding";
+                                               to_y: "ctxpopup_frame_right_bottom";
+                                       }
+                               }
+                       }
+                       part { name: "arrow_area_up";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               clip_to: "ctxpopup_clip";
+                               description { state: "default" 0.0;
+                                       visible: 0;
+                                       min: CTXPOPUP_VERTICAL_ARROW_SIZE_INC;
+                                       fixed: 1 1;
+                                       align: 0.5 1;
+                                       rel1 {
+                                               relative: 1 1;
+                                               to_x: "ctxpopup_frame_left_top";
+                                               to_y: "content_left_top_padding";
+                                       }
+                                       rel2 {
+                                               relative: 0 1;
+                                               to_x:"ctxpopup_frame_right_bottom";
+                                               to_y: "content_left_top_padding";
+                                       }
+                               }
+                       }
+                       part { name: "arrow_area_down";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               clip_to: "ctxpopup_clip";
+                               description { state: "default" 0.0;
+                                       visible: 0;
+                                       min: CTXPOPUP_VERTICAL_ARROW_SIZE_INC;
+                                       fixed: 1 1;
+                                       align: 0.5 0;
+                                       rel1 {
+                                               relative: 1 0;
+                                               to_x:"ctxpopup_frame_left_top";
+                                               to_y:"content_right_bottom_padding";
+                                       }
+                                       rel2 {
+                                               relative: 0 0;
+                                               to_x: "ctxpopup_frame_right_bottom";
+                                               to_y:"content_right_bottom_padding";
+                                       }
+                               }
+                       }
+                       part { name: "elm.swallow.arrow_up";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               clip_to: "ctxpopup_clip";
+                               dragable {
+                                       x: 1 1 0;
+                                       y: 1 1 0;
+                                       confine: "arrow_area_up";
+                               }
+                               description {
+                                       state: "default" 0.0;
+                                       min: CTXPOPUP_VERTICAL_ARROW_SIZE_INC;
+                                       fixed: 1 1;
+                                       visible: 0;
+                               }
+                       }
+                       part { name: "elm.swallow.arrow_down";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               clip_to: "ctxpopup_clip";
+                               dragable {
+                                       x: 1 1 0;
+                                       y: 1 1 0;
+                                       confine: "arrow_area_down";
+                               }
+                               description {
+                                       state: "default" 0.0;
+                                       min: CTXPOPUP_VERTICAL_ARROW_SIZE_INC;
+                                       fixed: 1 1;
+                                       visible: 0;
+                               }
+                       }
+                       part { name: "elm.swallow.arrow_left";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               clip_to: "ctxpopup_clip";
+                               dragable {
+                                       x: 1 1 0;
+                                       y: 1 1 0;
+                                       confine: "arrow_area_left";
+                               }
+                               description {
+                                       state: "default" 0.0;
+                                       min: CTXPOPUP_HORIZONTAL_ARROW_SIZE_INC;
+                                       fixed: 1 1;
+                                       visible: 0;
+                               }
+                       }
+                       part { name: "elm.swallow.arrow_right";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               clip_to: "ctxpopup_clip";
+                               dragable {
+                                       x: 1 1 0;
+                                       y: 1 1 0;
+                                       confine: "arrow_area_right";
+                               }
+                               description {
+                                       state: "default" 0.0;
+                                       min: CTXPOPUP_HORIZONTAL_ARROW_SIZE_INC;
+                                       fixed: 1 1;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "ctxpopup_frame_left_top";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0 0;
+                                       fixed: 1 1;
+                                       min: CTXPOPUP_FRAME_CORNER_ARROW_PADDING CTXPOPUP_FRAME_CORNER_ARROW_PADDING;
+                                       max: CTXPOPUP_FRAME_CORNER_ARROW_PADDING CTXPOPUP_FRAME_CORNER_ARROW_PADDING;
+                                       rel1 {relative: 0 0; to: "content_left_top_padding";}
+                               }
+                       }
+                       part {
+                               name: "ctxpopup_frame_right_bottom";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 1 1;
+                                       fixed: 1 1;
+                                       min: CTXPOPUP_FRAME_CORNER_ARROW_PADDING CTXPOPUP_FRAME_CORNER_ARROW_PADDING;
+                                       max: CTXPOPUP_FRAME_CORNER_ARROW_PADDING CTXPOPUP_FRAME_CORNER_ARROW_PADDING;
+                                       rel2 {relative: 1 1; to: "content_right_bottom_padding";}
+                               }
+                       }
+                       part {
+                               name:"content_left_top_padding";
+                               type:RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       min: CTXPOPUP_CONTENT_PADDING CTXPOPUP_CONTENT_PADDING;
+                                       max: CTXPOPUP_CONTENT_PADDING CTXPOPUP_CONTENT_PADDING;
+                                       rel1 {to:"frame_shadow_left_top_padding";  relative: 1.0 1.0;}
+                                       align: 0 0;
+                                       fixed: 1 1;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name:"content_right_bottom_padding";
+                               type:RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       min: CTXPOPUP_CONTENT_PADDING CTXPOPUP_CONTENT_PADDING;
+                                       max: CTXPOPUP_CONTENT_PADDING CTXPOPUP_CONTENT_PADDING;
+                                       rel2 {to:"frame_shadow_right_bottom_padding";  relative: 0.0 0.0;}
+                                       align: 1 1;
+                                       fixed: 1 1;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.content";
+                               type: SWALLOW;
+                               clip_to: "ctxpopup_clip";
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0 0;
+                                       rel1 {to:"content_left_top_padding";  relative: 1.0 1.0;}
+                                       rel2 {to:"content_right_bottom_padding";  relative: 0.0 0.0;}
+                               }
+                       }
+                       part {
+                               name: "mask";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 0;
+                               clip_to: "ctxpopup_clip";
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       rel1 {to:"elm.swallow.content";}
+                                       rel2 {to:"elm.swallow.content";}
+                                       image {
+                                               normal: "white/common/00_popup_bubble_bg.png";
+                                               border: CTXPOPUP_BUBBLE_MASK_IMAGE_BORDER;
+                                               border_scale: 1;
+                                       }
+                               }
+                       }
+                       part { name: "ctxpopup_clip";
+                               type: RECT;
+                               description { state: "default" 0.0;
+                               color: 255 255 255 0;
+                               rel1 { to:"ctxpopup_frame_left_top"; relative: 0.5 0.5; }
+                               rel2 { to:"ctxpopup_frame_right_bottom"; relative: 0.5 0.5; }
+                               }
+                               description { state: "show_up" 0.0;
+                                       color: 255 255 255 0;
+                                       rel1 { to:"elm.swallow.arrow_down"; relative: 0.5 0.5; }
+                                       rel2 { to:"elm.swallow.arrow_down"; relative: 0.5 0.5; }
+                               }
+                               description { state: "show_left" 0.0;
+                                       color: 255 255 255 0;
+                                       rel1 { to:"elm.swallow.arrow_right"; relative: 0.5 0.5; }
+                                       rel2 { to:"elm.swallow.arrow_right"; relative: 0.5 0.5; }
+                               }
+                               description { state: "show_right" 0.0;
+                                       color: 255 255 255 0;
+                                       rel1 { to:"elm.swallow.arrow_left"; relative: 0.5 0.5; }
+                                       rel2 { to:"elm.swallow.arrow_left"; relative: 0.5 0.5; }
+                               }
+                               description { state: "show_down" 0.0;
+                                       color: 255 255 255 0;
+                                       rel1 { to:"elm.swallow.arrow_up"; relative: 0.5 0.5; }
+                                       rel2 { to:"elm.swallow.arrow_up"; relative: 0.5 0.5; }
+                               }
+                               description { state: "hide_up" 0.0;
+                                       color: 255 255 255 0;
+                                       rel1 { to:"elm.swallow.arrow_down"; relative: 0.5 0.5; }
+                                       rel2 { to:"elm.swallow.arrow_down"; relative: 0.5 0.5; }
+                               }
+                               description { state: "hide_left" 0.0;
+                                       color: 255 255 255 0;
+                                       rel1 { to:"elm.swallow.arrow_right"; relative: 0.5 0.5; }
+                                       rel2 { to:"elm.swallow.arrow_right"; relative: 0.5 0.5; }
+                               }
+                               description { state: "hide_right" 0.0;
+                                       color: 255 255 255 0;
+                                       rel1 { to:"elm.swallow.arrow_left"; relative: 0.5 0.5; }
+                                       rel2 { to:"elm.swallow.arrow_left"; relative: 0.5 0.5; }
+                               }
+                               description { state: "hide_down" 0.0;
+                                       color: 255 255 255 0;
+                                       rel1 { to:"elm.swallow.arrow_up"; relative: 0.5 0.5; }
+                                       rel2 { to:"elm.swallow.arrow_up"; relative: 0.5 0.5; }
+                               }
+                               description { state: "visible" 0.0;
+                                       color: 255 255 255 255;
+                                       rel1 { to_x:"arrow_area_left"; to_y:"arrow_area_up"; }
+                                       rel2 { to_x:"arrow_area_right"; to_y:"arrow_area_down"; }
+                               }
+                       }
+               }
+               programs {
+                       program { name: "show";
+                               signal: "elm,state,show";
+                               source: "elm";
+                               action: STATE_SET "visible" 0.0;
+                               transition: SIN_FAC 0.33 0.6;
+                               target: "ctxpopup_clip";
+                       }
+                       program { name: "show_up";
+                               signal: "elm,state,show,up";
+                               source: "elm";
+                               action: STATE_SET "show_up" 0.0;
+                               transition: SIN_FAC 0.33 0.6;
+                               target: "ctxpopup_clip";
+                       }
+                       program { name: "show_left";
+                               signal: "elm,state,show,left";
+                               source: "elm";
+                               action: STATE_SET "show_left" 0.0;
+                               transition: SIN_FAC 0.33 0.6;
+                               target: "ctxpopup_clip";
+                       }
+                       program { name: "show_right";
+                               signal: "elm,state,show,right";
+                               source: "elm";
+                               action: STATE_SET "show_right" 0.0;
+                               transition: SIN_FAC 0.33 0.6;
+                               target: "ctxpopup_clip";
+                       }
+                       program { name: "show_down";
+                               signal: "elm,state,show,down";
+                               source: "elm";
+                               action: STATE_SET "show_down" 0.0;
+                               transition: SIN_FAC 0.33 0.6;
+                               target: "ctxpopup_clip";
+                       }
+                       program { name: "hide_up";
+                               signal: "elm,state,hide,up";
+                               source: "elm";
+                               action: STATE_SET "hide_up" 0.0;
+                               transition: SIN_FAC 0.33 0.6;
+                               target: "ctxpopup_clip";
+                               after: "hide_finished";
+                       }
+                       program { name: "hide_left";
+                               signal: "elm,state,hide,left";
+                               source: "elm";
+                               action: STATE_SET "hide_left" 0.0;
+                               transition: SIN_FAC 0.33 0.6;
+                               target: "ctxpopup_clip";
+                               after: "hide_finished";
+                       }
+                       program { name: "hide_right";
+                               signal: "elm,state,hide,right";
+                               source: "elm";
+                               action: STATE_SET "hide_right" 0.0;
+                               transition: SIN_FAC 0.33 0.6;
+                               target: "ctxpopup_clip";
+                               after: "hide_finished";
+                       }
+                       program { name: "hide_down";
+                               signal: "elm,state,hide,down";
+                               source: "elm";
+                               action: STATE_SET "hide_down" 0.0;
+                               transition: SIN_FAC 0.33 0.6;
+                               target: "ctxpopup_clip";
+                               after: "hide_finished";
+                       }
+                       program { name: "hide_finished";
+                               action: SIGNAL_EMIT "elm,action,hide,finished" "";
+                       }
+               }
+       }
+
+///////////////////////////////////////////////////////////////////////////////
+       group { name: "elm/ctxpopup/arrow/video/default";
+               images {
+                       image: "white/common/00_popup_tail_left.png" COMP;
+                       image: "white/common/00_popup_tail_right.png" COMP;
+                       image: "white/common/00_popup_tail_top.png" COMP;
+                       image: "white/common/00_popup_tail_bottom.png" COMP;
+                       image: "white/common/T01-2_popup_arrow.png" COMP;
+               }
+               parts {
+                       part {
+                               name: "ctxpopup_arrow";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: CTXPOPUP_ARROW_SIZE_INC;
+                                       max: CTXPOPUP_ARROW_SIZE_INC;
+                                       fixed: 1 1;
+                                       visible: 0;
+                                       align: 0.5 0.5;
+                               }
+                               description {
+                                       state: "left" 0.0;
+                                       min: CTXPOPUP_HORIZONTAL_ARROW_SIZE_INC;
+                                       max: CTXPOPUP_HORIZONTAL_ARROW_SIZE_INC;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       image {
+                                               normal: "white/common/00_popup_tail_left.png";
+                                       }
+                               }
+                               description {
+                                       state: "right" 0.0;
+                                       min: CTXPOPUP_HORIZONTAL_ARROW_SIZE_INC;
+                                       max: CTXPOPUP_HORIZONTAL_ARROW_SIZE_INC;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       image {
+                                               normal: "white/common/00_popup_tail_right.png";
+                                       }
+                               }
+                               description {
+                                       state: "top" 0.0;
+                                       min: CTXPOPUP_VERTICAL_ARROW_SIZE_INC;
+                                       max: CTXPOPUP_VERTICAL_ARROW_SIZE_INC;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       image {
+                                               normal: "white/common/T01-2_popup_arrow.png";
+                                       }
+                               }
+                               description {
+                                       state: "bottom" 0.0;
+                                       min: CTXPOPUP_VERTICAL_ARROW_SIZE_INC;
+                                       max: CTXPOPUP_VERTICAL_ARROW_SIZE_INC;
+                                       fixed: 1 1;
+                                       align: 0.5 0.0;
+                                       image {
+                                               normal: "white/common/00_popup_tail_bottom.png";
+                                       }
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "enable_left_arrow";
+                               signal: "elm,state,left";
+                               source: "elm";
+                               action: STATE_SET "left" 0.0;
+                               target: "ctxpopup_arrow";
+                       }
+                       program {
+                               name: "enable_right_arrow";
+                               signal: "elm,state,right";
+                               source: "elm";
+                               action: STATE_SET "right" 0.0;
+                               target: "ctxpopup_arrow";
+                       }
+                       program {
+                               name: "enable_top_arrow";
+                               signal: "elm,state,top";
+                               source: "elm";
+                               action: STATE_SET "top" 0.0;
+                               target: "ctxpopup_arrow";
+                       }
+                       program {
+                               name: "enable_bottom_arrow";
+                               signal: "elm,state,bottom";
+                               source: "elm";
+                               action: STATE_SET "bottom" 0.0;
+                               target: "ctxpopup_arrow";
+                       }
+               }
+       }
+
+///////////////////////////////////////////////////////////////////////////////
+       group {
+               name: "elm/ctxpopup/icon_text_style_item/video/default";
+               parts {
+                       part {
+                               name: "event_blocker";
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                               }
+                       }
+                       part {
+                               name: "bg";
+                               mouse_events: 0;
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       color: CTXPOPUP_BG_COLOR_INC;
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "clicked" 0.0;
+                                       color: CTXPOPUP_BG_PRESS_COLOR_INC;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "clicked_separator" 0.0;
+                                       rel1 { relative: 0.0 1.0; to_y: "separator2"; }
+                                       color: CTXPOPUP_BG_PRESS_COLOR_INC;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name:"separator_left_padding";
+                               type:RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       min: CTXPOPUP_SEPARATOR_PADDING_INC 0;
+                                       max: CTXPOPUP_SEPARATOR_PADDING_INC 0;
+                                       align: 0 0;
+                                       fixed: 1 1;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name:"separator_right_padding";
+                               type:RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       min: CTXPOPUP_SEPARATOR_PADDING_INC 0;
+                                       max: CTXPOPUP_SEPARATOR_PADDING_INC 0;
+                                       align: 1 1;
+                                       fixed: 1 1;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "icon_left_padding";
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       min: (CTXPOPUP_ITEM_ICON_PADDING_INC-CTXPOPUP_CONTENT_PADDING) CTXPOPUP_ITEM_HEIGHT_MIN_INC;
+                                       max: (CTXPOPUP_ITEM_ICON_PADDING_INC-CTXPOPUP_CONTENT_PADDING) CTXPOPUP_ITEM_HEIGHT_MAX_INC;
+                                       align: 0 0;
+                                       fixed: 1 1;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "separator1";
+                               mouse_events: 0;
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       color: CTXPOPUP_SEPARATOR_COLOR_INC;
+                                       rel1 { relative: 1.0 0.0; to_x: "separator_left_padding";}
+                                       rel2 { relative: 0.0 1.0; to_x: "separator_right_padding";}
+                                       align: 0.5 0;
+                                       min: 0 CTXPOPUP_SEPARATOR_PXLINE_SIZE_INC;
+                                       max: 999999 CTXPOPUP_SEPARATOR_PXLINE_SIZE_INC;
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "visible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "separator2";
+                               mouse_events: 0;
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       color: CTXPOPUP_SEPARATOR2_COLOR_INC;
+                                       rel1 { relative: 0.0 1.0; to: "separator1";}
+                                       rel2 { relative: 1.0 1.0; to: "separator1";}
+                                       align: 0.5 0;
+                                       fixed: 0 1;
+                                       min: 0 CTXPOPUP_SEPARATOR_PXLINE_SIZE_INC;
+                                       max: 999999 CTXPOPUP_SEPARATOR_PXLINE_SIZE_INC;
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "visible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.icon";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: CTXPOPUP_ICON_WIDTH_INC CTXPOPUP_ICON_HEIGHT_INC;
+                                       max: CTXPOPUP_ICON_WIDTH_INC CTXPOPUP_ICON_HEIGHT_INC;
+                                       align: 0 0.5;
+                                       aspect: 1.0 1.0;
+                                       rel1 { to:"icon_left_padding"; relative: 1 0; }
+                               }
+                       }
+                       part {
+                               name: "icon_right_padding";
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       min: CTXPOPUP_ITEM_ICON_PADDING_INC CTXPOPUP_ITEM_HEIGHT_MIN_INC;
+                                       max: CTXPOPUP_ITEM_ICON_PADDING_INC CTXPOPUP_ITEM_HEIGHT_MAX_INC;
+                                       align: 0 0.5;
+                                       fixed: 1 1;
+                                       visible: 0;
+                                       rel1 { to:"elm.swallow.icon"; relative: 1 1; }
+                               }
+                       }
+                       part {
+                               name: "elm.text";
+                               type:  TEXT;
+                               mouse_events:  0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 1 CTXPOPUP_ITEM_HEIGHT_MIN_INC;
+                                       align: 0.5 0.5;
+                                       rel1 {relative: 1.0 0.0; to_x: "icon_right_padding"; to_y: "bg";}
+                                       rel2 {relative: 0.0 1.0; to_x: "text_right_padding"; to_y: "bg";}
+                                       color: CTXPOPUP_LIST_MAIN_TEXT_COLOR_INC;
+                                       text {
+                                               font: "Tizen:style=Roman";
+                                               size: CTXPOPUP_LIST_MAIN_TEXT_SIZE_INC;
+                                               align: 0.0 0.5;
+                                               min: 1 1;
+                                       }
+                               }
+                               description {
+                                       state: "compress" 0.0;
+                                       inherit: "default" 0.0;
+                                       max: -1 -1;
+                                       text {
+                                               min: 0 1;
+                                       }
+                               }
+                               description {
+                                       state: "clicked" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: CTXPOPUP_LIST_MAIN_TEXT_PRESS_COLOR_INC;
+                               }
+                               description {
+                                       state: "disabled" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: CTXPOPUP_LIST_MAIN_TEXT_DIM_COLOR_INC;
+                               }
+                               description {
+                                       state: "compress_disabled" 0.0;
+                                       inherit: "compress" 0.0;
+                                       color: CTXPOPUP_LIST_MAIN_TEXT_DIM_COLOR_INC;
+                               }
+                       }
+                       part {
+                               name: "text_right_padding";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: CTXPOPUP_ITEM_TEXT_PADDING_INC CTXPOPUP_ITEM_HEIGHT_MIN_INC;
+                                       max: CTXPOPUP_ITEM_TEXT_PADDING_INC CTXPOPUP_ITEM_HEIGHT_MAX_INC;
+                                       fixed: 1 0;
+                                       align: 1.0 0.5;
+                       }
+                       }
+                       part {
+                               name: "over1";
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                               }
+                       }
+                       part {
+                               name: "over2";
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                               }
+                       }
+                       part {
+                               name: "disclip";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "disabled" 0.0;
+                                       visible: 1;
+                                       color: CTXPOPUP_ITEM_DISABLED_COLOR;
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "item_unclick";
+                               signal: "mouse,clicked,1";
+                               source: "over1";
+                               action: SIGNAL_EMIT "elm,action,click" "";
+                       }
+                       program {
+                               name: "disable";
+                               signal: "elm,state,disabled";
+                               source: "elm";
+                               script {
+                                       new st[31];
+                                       new Float:vl;
+                                       get_state(PART:"elm.text", st, 30, vl);
+                                       if ((!strcmp(st, "compress")) || (!strcmp(st, "compress_disabled")))
+                                               set_state(PART:"elm.text", "compress_disabled", 0.0);
+                                       else
+                                               set_state(PART:"elm.text", "disabled", 0.0);
+
+                                       set_state(PART:"disclip", "disabled", 0.0);
+                               }
+                       }
+                       program {
+                               name: "enable";
+                               signal: "elm,state,enabled";
+                               source: "elm";
+                               script {
+                                       new st[31];
+                                       new Float:vl;
+                                       get_state(PART:"elm.text", st, 30, vl);
+                                       if ((!strcmp(st, "compress")) || (!strcmp(st, "compress_disabled")))
+                                               set_state(PART:"elm.text", "compress", 0.0);
+                                       else
+                                               set_state(PART:"elm.text", "default", 0.0);
+
+                                       set_state(PART:"disclip", "default", 0.0);
+                               }
+                       }
+                       program {
+                               name: "default";
+                               signal: "elm,state,default";
+                               source: "elm";
+                               script {
+                                       set_state(PART:"separator1", "default", 0.0);
+                                       set_state(PART:"separator2", "default", 0.0);
+                               }
+                       }
+                       program {
+                               name: "compress";
+                               signal: "elm,state,compress";
+                               source: "elm";
+                               script {
+                                       new st[31];
+                                       new Float:vl;
+                                       get_state(PART:"disclip", st, 30, vl);
+                                       if (!strcmp(st, "disabled"))
+                                               set_state(PART:"elm.text", "compress_disabled", 0.0);
+                                       else
+                                               set_state(PART:"elm.text", "compress", 0.0);
+                               }
+                       }
+                       program {
+                               name: "separator";
+                               signal: "elm,state,separator";
+                               source: "elm";
+                               script {
+                                       set_state(PART:"separator1", "visible", 0.0);
+                                       set_state(PART:"separator2", "visible", 0.0);
+                               }
+                       }
+                       program {
+                               name: "item_click2";
+                               signal: "mouse,down,1";
+                               source: "over2";
+                               script {
+                                       set_state(PART:"elm.text", "clicked", 0.0);
+
+                                       new st[31];
+                                       new Float:vl;
+                                       get_state(PART:"separator2", st, 30, vl);
+                                       if (!strcmp(st, "default"))
+                                               set_state(PART:"bg", "clicked", 0.0);
+                                       else
+                                               set_state(PART:"bg", "clicked_separator", 0.0);
+                               }
+                       }
+                       program {
+                               name: "item_unclick2";
+                               signal: "mouse,up,1";
+                               source: "over2";
+                               script {
+                                       set_state(PART:"elm.text", "compress", 0.0);
+                                       set_state(PART:"bg", "default", 0.0);
+                               }
+                       }
+               }
+       }
diff --git a/res/edje/vp-custom-genlist-miltiline.edc b/res/edje/vp-custom-genlist-miltiline.edc
new file mode 100755 (executable)
index 0000000..86134ae
--- /dev/null
@@ -0,0 +1,1452 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#define GENLIST_HEIGHT_MULTILINE_SUB      38
+#define GENLIST_HEIGHT_2LINE_SUB          42
+#define GENLIST_LIST_SUB_TEXT_SIZE        32
+#define GENLIST_TREESIZE_DEFAULT          26
+#define GENLIST_PART_LIST_LINE_HEIGHT     1
+#define GENLIST_HEIGHT_2LINE_MAIN_MULTI         57
+#define GENLIST_PADDING_SIZE_DEFAULT            16
+#define GENLIST_PADDING_SIZE_LEFT_MULTI               62
+#define GENLIST_PADDING_SIZE_RIGHT_MULTI              GENLIST_PADDING_SIZE_LEFT_MULTI
+#define GENLIST_PADDING_SIZE_TOP_2LINE_MULTI          19
+#define GENLIST_PADDING_SIZE_BOTTOM_2LINE_MULTI       19
+#define GENLIST_HEIGHT_1LINE_MULTI                    104  // (114 - top/bottom padding)
+#define GENLIST_PADDING_SIZE_TOP                5
+#define GENLIST_PADDING_SIZE_BOTTOM             5
+#define GENLIST_ICON_MEDIUM_SIZE                       81
+#define GENLIST_BTN_01_HEIGHT                   74
+
+
+//popup
+#define POPUP_ITEM_BG_PRESSED_BORDER_INC 8 8 8 8
+#define POPUP_ITEM_BG_LEFT_TOP_PAD_MIN_INC 4 4
+#define POPUP_ITEM_BG_RIGHT_BOTTOM_PAD_MIN_INC 4 6
+
+
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE_M            "#4F4F4FFF"
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE_M     "#A3A99FFF"
+#define GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE                 "#FFFFFFFF"
+#define GENLIST_PART_MATCH_TAG_COLOR_M                      "+ color=#1382FF"
+#define GENLIST_LIST_BG_COLOR_M                     248 246 239 0
+#define GENLIST_LIST_PRESS_COLOR                    87 135 194 255
+#define GENLIST_LIST_DIM_COLOR_M                    248 246 239 255
+#define GENLIST_LIST_LINE2_COLOR_M                  204 203 199 255
+#define GENLIST_LIST_LINE1_COLOR_M                  250 250 250 255
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR         0 0 0 255
+
+
+// Genlist Text
+#define GENLIST_LIST_MAIN_TEXT_SIZE                         44
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE           "#000000FF"
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_M           124 123 119 255
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE_M     "#7C7B77FF"
+#define GENLIST_LIST_MAIN_TEXT_READ_COLOR                   128 128 128 255
+#define GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR_M             188 187 183 255
+#define GENLIST_LIST_TEXT_FOCUS_COLOR                       255 255 255 255
+#define GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE                 "#FFFFFFFF"
+
+
+
+//popup
+#define GENLIST_LIST_BG_POPUP_COLOR                 0 0 0 0
+#define GENLIST_LIST_BG_POPUP_PRESS_COLOR           255 255 255 255
+#define GENLIST_LIST_LINE1_POPUP_COLOR              211 209 203 255
+#define GENLIST_LIST_LINE2_POPUP_COLOR              250 250 250 255
+
+
+#define GENLIST_PARAM_ICON_MEDIUM \
+         min: GENLIST_ICON_MEDIUM_SIZE GENLIST_ICON_MEDIUM_SIZE; \
+         max: GENLIST_ICON_MEDIUM_SIZE GENLIST_ICON_MEDIUM_SIZE;
+
+#define GENLIST_PARAM_ICON_BTN_01 \
+         min: 0 GENLIST_BTN_01_HEIGHT; \
+         max: -1 GENLIST_BTN_01_HEIGHT;
+
+sounds {
+   sample {
+         name: "touch_sound" RAW;
+         source: "button-pressed.wav";
+   }
+}
+
+#define STYLE_TAG_M \
+      tag:  "br" "\n";\
+      tag:  "ps" "ps";\
+      tag:  "tab" "\t";\
+      tag:  "b" "+ font_weight=Bold";
+
+#define STYLE_TAG_MATCH_M \
+      tag:  "match" GENLIST_PART_MATCH_TAG_COLOR_M;
+
+
+styles {
+               style { name: "genlist_style_list_sub_text_default_wrap";
+                  base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG_M
+                  STYLE_TAG_MATCH_M
+               }
+               style { name: "genlist_style_list_sub_text_default_dim_wrap";
+                  base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG_M
+                  STYLE_TAG_MATCH_M
+               }
+               style { name: "genlist_style_list_sub_text_focus_wrap";
+                  base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG_M
+                  STYLE_TAG_MATCH_M
+               }
+
+               style { name: "genlist_style_list_main_text_default_wrap";
+                  base: "font=Tizen:style=Bold font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG_M
+                  STYLE_TAG_MATCH_M
+               }
+               style { name: "genlist_style_list_main_text_default_dim_wrap";
+                  base: "font=Tizen:style=Bold font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG_M
+                  STYLE_TAG_MATCH_M
+               }
+               style { name: "genlist_style_list_main_text_focus_wrap";
+                  base: "font=Tizen:style=Bold font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG_M
+                  STYLE_TAG_MATCH_M
+               }
+}
+
+
+#define GENLIST_NAME(NAME) \
+          name: "elm/genlist/item/"NAME; \
+          alias: "elm/genlist/item_compress/"NAME; \
+          alias: "elm/genlist/tree/"NAME; \
+          alias: "elm/genlist/tree_compress/"NAME;
+
+ // |  PART == HERE  |
+ // ------------------
+ #define GENLIST_DESCRIPTION_ENVELOP( PART, PARAM ) \
+          description { state: "default" 0.0;\
+                 rel1 { \
+                        relative: 0 0; \
+                        to: PART; \
+                 }\
+                 rel2 {\
+                        relative: 1 1;\
+                        to: PART; \
+                 }\
+                 PARAM\
+          }
+
+
+ //     |       top  |
+ // ---------------------
+ // left |     HERE  | right
+ // ---------------------
+ //     | bottom |
+#define GENLIST_DESCRIPTION( left, right, top, bottom, param ) \
+          description { state: "default" 0.0;\
+                 rel1 { \
+                        relative: 1 1; \
+                        to_x: left; \
+                        to_y: top; \
+                 }\
+                 rel2 {\
+                        relative: 0 0;\
+                        to_x: right;\
+                        to_y: bottom;\
+                 }\
+                 param\
+          }
+
+
+//      |   top  |
+// ---------------------
+// left |  HERE  | right
+#define GENLIST_DESCRIPTION_LRT( left, right, top, param ) \
+      description { state: "default" 0.0;\
+         align: 0.5 0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: top;\
+         }\
+         param\
+      }
+
+// ---------------------
+// left |--> HERE
+// ---------------------
+#define GENLIST_DESCRIPTION_L( left, param ) \
+      description { state: "default" 0.0;\
+         align: 0 0.5; \
+         fixed: 1 0; \
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         rel2 { \
+            relative: 1 1;\
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+//   |  top     |
+// -----------------
+//  |  HERE  <--| right
+// -----------------
+//  | bottom   |
+#define GENLIST_DESCRIPTION_RTB( right, top, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 1 0.5;\
+         rel1 { \
+            relative: 0 1; \
+            to_x: right; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+// --------------------------
+// left |--> HERE  <--| right
+// --------------------------
+#define GENLIST_DESCRIPTION_LR( left, right, param ) \
+      description { state: "default" 0.0;\
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+//      |     top  |
+// ---------------------
+// left |--> HERE  |
+// ---------------------
+//      |   bottom |
+#define GENLIST_DESCRIPTION_LTB( left, top, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0 0.5;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 1 0;\
+            to_x: left;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+
+#define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP \
+       description { state: "disabled" 0.0; \
+          inherit: "default" 0.0; \
+          text.style: "genlist_style_list_sub_text_default_dim_wrap"; \
+       } \
+       description { state: "selected" 0.0; \
+          inherit: "default" 0.0; \
+          text.style: "genlist_style_list_sub_text_focus_wrap"; \
+       }
+
+#define GENLIST_PARAM_SUBITEM_DEFAULT_TB_WRAP \
+        text { \
+               min: 0 1; \
+               style: "genlist_style_list_sub_text_default_wrap"; \
+        }
+
+#define GENLIST_PARAM_MAINITEM_DEFAULT_TB_WRAP \
+        text { \
+               min: 0 1; \
+               style: "genlist_style_list_main_text_default_wrap"; \
+        }
+
+#define GENLIST_DESCRIPTION_MAINITEM_DEFAULT_OTHERS_TB_WRAP \
+       description { state: "disabled" 0.0; \
+          inherit: "default" 0.0; \
+          text.style: "genlist_style_list_main_text_default_dim_wrap"; \
+       } \
+       description { state: "selected" 0.0; \
+          inherit: "default" 0.0; \
+          text.style: "genlist_style_list_main_text_focus_wrap"; \
+       }
+
+#define GENLIST_PART_TEXTBLOCK_M(NAME, DESCRIPION) \
+        part { name: NAME; \
+          scale: 1; \
+          type: TEXTBLOCK; \
+          repeat_events: 1; \
+          DESCRIPION \
+       }
+
+#define GENLIST_PART_TEXT_M(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      type: TEXT; \
+      repeat_events: 1; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_SPACER_M(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      mouse_events: 0; \
+      type: SPACER; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_RECT_M(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      type: RECT; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_IMAGE(NAME, DESCRIPION) \
+   part { name: NAME; \
+      scale: 1; \
+      type: IMAGE; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_ICON_M(NAME, DESCRIPION) \
+   part { name: NAME; \
+      scale: 1; \
+      type: SWALLOW; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_ICON_MEDIUM_L(NAME, LEFT) \
+   GENLIST_PART_ICON_M(NAME, \
+      GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.top", "elm.padding.bottom", \
+         GENLIST_PARAM_ICON_MEDIUM \
+         fixed: 1 1; \
+      ) \
+   )
+
+
+// list main text
+#define GENLIST_PARAM_LISTITEM \
+   color: 8 8 8 255; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "Tizen:style=Regular"; \
+      size: GENLIST_LIST_MAIN_TEXT_SIZE; \
+   }
+
+// list main text
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS_M \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_M; \
+   } \
+   description { state: "read" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_MAIN_TEXT_READ_COLOR; \
+   } \
+   description { state: "read,disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR_M; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_TEXT_FOCUS_COLOR; \
+   }
+
+#define GENLIST_PART_PADDING_T_SIZE( NAME, TOP, SIZE ) \
+                 GENLIST_PART_SPACER_M(NAME, \
+                        description { state: "default" 0.0; \
+                               min: 0 SIZE; \
+                               max: -1 SIZE; \
+                               fixed: 0 1; \
+                               align: 0.5 0; \
+                               rel1 { \
+                                  relative: 0 1; \
+                                  to: TOP; \
+                               } \
+                               rel2 { \
+                                  relative: 1 1; \
+                                  to: TOP; \
+                               } \
+                        } \
+                 )
+
+#define GENLIST_PART_EXPANDED_PAD \
+         part { name: "elm.swallow.pad"; \
+            type: SWALLOW; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               visible: 0; \
+               min: 0 0; \
+               fixed: 1 0; \
+               align: 0.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel2.relative: 0.0 1.0; \
+            } \
+         } \
+
+#define GENLIST_PROLOG \
+      data.item: "selectraise" "on"; \
+      data.item: "treesize" 0;
+
+
+#define GENLIST_PROLOG_NORMAL \
+      GENLIST_PROLOG \
+      data.item: "treesize" GENLIST_TREESIZE_DEFAULT; \
+      data.item: "flips" "elm.flip.icon elm.flip.content"; \
+      images { \
+         image : "00_list_group_bg.png" COMP; \
+         image : "00_list_group_bg_press.png" COMP; \
+      }
+
+#define GENLIST_PART_BASE_SIZE(HEIGHT) \
+         part { name: "base"; \
+            type: RECT; \
+            mouse_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+               min: 0 HEIGHT; \
+            } \
+         } \
+         part { name: "state"; \
+            type: RECT; \
+            mouse_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+            description { state: "decorate" 0.0; \
+               inherit: "default"; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default"; \
+            } \
+            description { state: "decorate_reorder" 0.0; \
+               inherit: "default"; \
+            } \
+         }
+
+#define GENLIST_PART_BASE_M \
+         GENLIST_PART_BASE_SIZE(0)
+
+#define GENLIST_DESCRIPTION_DECORATE_PADDING \
+   description { state: "decorate" 0.0; \
+      inherit: "default" 0.0; \
+      min: 0 0; \
+      max: 0 0; \
+   }
+
+#define GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+   description { state: "decorate_reorder" 0.0; \
+      inherit: "default" 0.0; \
+      min: 0 0; \
+      max: 0 0; \
+   }
+
+#define GENLIST_DESCRIPTION_REORDER_PADDING \
+   description { state: "reorder" 0.0; \
+      inherit: "default" 0.0; \
+      min: 32 0; \
+      max: 32 -1; \
+   }
+
+
+#define GENLIST_PART_PADDING_LEFT_M \
+                 GENLIST_PART_EXPANDED_PAD \
+                 GENLIST_PART_SPACER_M("elm.padding.left", \
+                        GENLIST_DESCRIPTION_L("elm.swallow.pad",  \
+                               min: GENLIST_PADDING_SIZE_LEFT_MULTI 0; \
+                               max: GENLIST_PADDING_SIZE_LEFT_MULTI -1; \
+                               fixed: 1 0; \
+                        ) \
+                        GENLIST_DESCRIPTION_DECORATE_PADDING \
+                        GENLIST_DESCRIPTION_REORDER_PADDING \
+                        GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+                 )
+
+#define GENLIST_PART_PADDING_RIGHT_M \
+         GENLIST_PART_SPACER_M("elm.padding.right", \
+            description { state: "default" 0.0; \
+               min: GENLIST_PADDING_SIZE_RIGHT_MULTI 0; \
+               max: GENLIST_PADDING_SIZE_RIGHT_MULTI -1; \
+               fixed: 1 0; \
+               align: 1.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 1 0; \
+            } \
+            GENLIST_DESCRIPTION_DECORATE_PADDING \
+            GENLIST_DESCRIPTION_REORDER_PADDING \
+            GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+         )
+
+
+#define GENLIST_PART_PADDING_R_M( NAME, RIGHT ) \
+         GENLIST_PART_SPACER_M(NAME, \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+               max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+               align: 1 0.5; \
+               rel1 { \
+                  relative: 0 0; \
+                  to_x: RIGHT; \
+               } \
+               rel2 { \
+                  relative: 0 1; \
+                  to_x: RIGHT; \
+               } \
+            } \
+         )
+
+#define GENLIST_PART_ICON_BTN_01_RTB(NAME, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_ICON_M(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM,\
+         GENLIST_PARAM_ICON_BTN_01 \
+         fixed: 1 1; \
+      ) \
+   )
+
+#define GENLIST_PART_BG_NORMAL \
+          GENLIST_PART_RECT_M("bg_clip", \
+                 mouse_events: 0; \
+                 description { state: "default" 0.0; \
+                        visible: 1; \
+                        color: 255 255 255 255; \
+                 } \
+                 description { state: "decorate" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                 } \
+                 description { state: "reorder" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                 } \
+                 description { state: "decorate_reorder" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                 } \
+          ) \
+          GENLIST_PART_RECT_M("bg_reorder_clip", \
+                 mouse_events: 0; \
+                 description { state: "default" 0.0; \
+                        visible: 0; \
+                 } \
+                 description { state: "reorder" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 1; \
+                        color: 255 255 255 255; \
+                 } \
+                 description { state: "decorate_reorder" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                 } \
+                 description { state: "decorate" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                 } \
+                 description { state: "reorder_flip" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                 } \
+          ) \
+          GENLIST_PART_RECT_M("bg",    \
+                 clip_to: "bg_clip"; \
+                 description { state: "default" 0.0; \
+                        color: GENLIST_LIST_BG_COLOR_M; \
+                 } \
+                 description { state: "selected" 0.0; \
+                        inherit: "default" 0.0; \
+                        color: GENLIST_LIST_PRESS_COLOR; \
+                 } \
+                 description { state: "disabled" 0.0; \
+                        inherit: "default" 0.0; \
+                        color: GENLIST_LIST_DIM_COLOR_M; \
+                 } \
+          ) \
+          GENLIST_PART_SPACER_M("bg_reorder_left", \
+                 description { state: "default" 0.0; \
+                        min: 16 0; \
+                        max: 16 -1; \
+                        fixed: 1 0; \
+                        align: 0 0.5; \
+                        rel2.relative: 0 1; \
+                 } \
+          ) \
+          GENLIST_PART_SPACER_M("bg_reorder_right", \
+                 description { state: "default" 0.0; \
+                        min: 16 0; \
+                        max: 16 -1; \
+                        fixed: 1 0; \
+                        align: 1.0 0.5; \
+                        rel1.relative: 1 0; \
+                 } \
+          ) \
+          GENLIST_PART_SPACER_M("bg_reorder_top", \
+                 description { state: "default" 0.0; \
+                        min: 0 2; \
+                        max: -1 2; \
+                        fixed: 0 1; \
+                        align: 0.5 0; \
+                        rel2.relative: 1 0; \
+                 } \
+          ) \
+          GENLIST_PART_SPACER_M("bg_reorder_bottom", \
+                 description { state: "default" 0.0; \
+                        min: 0 2; \
+                        max: -1 2; \
+                        fixed: 0 1; \
+                        align: 0.5 1.0; \
+                        rel1.relative: 0 1; \
+                 } \
+          ) \
+          GENLIST_PART_IMAGE("bg_reorder", \
+                 clip_to: "bg_reorder_clip"; \
+                 description { state: "default" 0.0; \
+                        rel1 { \
+                               relative: 1 1; \
+                               to_x: "bg_reorder_left"; \
+                               to_y: "bg_reorder_top"; \
+                        } \
+                        rel2 { \
+                               relative: 0 0; \
+                               to_x: "bg_reorder_right"; \
+                               to_y: "bg_reorder_bottom"; \
+                        } \
+                        image { \
+                               normal: "00_list_group_bg.png"; \
+                               border: 17 17 8 8; \
+                               border_scale: 1; \
+                        } \
+                 } \
+                 description { state: "selected" 0.0; \
+                        inherit: "default"; \
+                        image { \
+                               normal: "00_list_group_bg_press.png"; \
+                               border: 17 17 8 8; \
+                               border_scale: 1; \
+                        } \
+                 } \
+                 description { state: "flipped" 0.0; \
+                        inherit: "default"; \
+                        visible: 0; \
+                 } \
+          ) \
+          GENLIST_PART_RECT_M("sound",  \
+                 repeat_events: 1;  /*for play_sound to check selected state*/ \
+                 description { state: "default" 0.0; \
+                        color: 0 0 0 0; \
+                 } \
+          ) \
+
+
+#define GENLIST_PART_BOTTOM_LINE_M \
+                 GENLIST_PART_RECT_M("bottom_line_clip", \
+                        description { state: "default" 0.0; \
+                               color: 255 255 255 255; \
+                        } \
+                        description { state: "decorate" 0.0; \
+                               inherit: "default" 0.0; \
+                               color: 0 0 0 0; \
+                        } \
+                        description { state: "reorder" 0.0; \
+                               inherit: "default" 0.0; \
+                               color: 0 0 0 0; \
+                        } \
+                        description { state: "decorate_reorder" 0.0; \
+                               inherit: "default" 0.0; \
+                               color: 0 0 0 0; \
+                        } \
+                 ) \
+                 GENLIST_PART_RECT_M("bottom_line", \
+                        mouse_events: 0; \
+                        clip_to: "bottom_line_clip"; \
+                        description { state: "default" 0.0; \
+                               min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+                               max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+                               fixed: 0 1; \
+                               align: 0.5 1; \
+                               color: GENLIST_LIST_LINE1_COLOR_M; \
+                               rel1.to: "bottom_line2"; \
+                               rel2.to: "bottom_line2"; \
+                               rel2.relative: 1 0; \
+                               rel1.offset: -1 -1; \
+                        } \
+                        description { state: "flipped" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 0; \
+                        } \
+                 ) \
+                 GENLIST_PART_RECT_M("bottom_line2", \
+                        mouse_events: 0; \
+                        clip_to: "bottom_line_clip"; \
+                        description { state: "default" 0.0; \
+                               min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+                               max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+                               fixed: 0 1; \
+                               align: 0.5 1; \
+                               color: GENLIST_LIST_LINE2_COLOR_M; \
+                               rel1.to_x: "base"; \
+                               rel1.relative: 0 0; \
+                               rel2.to_x: "base"; \
+                               rel2.relative: 1 1; \
+                               rel1.offset: -1 -1; \
+                        } \
+                        description { state: "flipped" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 0; \
+                        } \
+                 )
+
+#define GENLIST_PART_PADDING_TOP_2LINE_M \
+                 GENLIST_PART_SPACER_M("elm.padding.top", \
+                        description { \
+                               state: "default" 0.0; \
+                               min: 0 GENLIST_PADDING_SIZE_TOP_2LINE_MULTI; \
+                               max: -1 GENLIST_PADDING_SIZE_TOP_2LINE_MULTI; \
+                               fixed: 0 1; \
+                               rel1.to: "base"; \
+                               rel2.to: "base"; \
+                               rel2.relative: 1.0 0.0; \
+                               align: 0.5 0.0; \
+                        } \
+                        description { state: "reorder" 0.0; \
+                               inherit: "default" 0.0; \
+                               min: 0 (GENLIST_PADDING_SIZE_TOP_2LINE_MULTI+2); \
+                               max: -1 (GENLIST_PADDING_SIZE_TOP_2LINE_MULTI+2); \
+                        } \
+                 )
+
+#define GENLIST_PART_PADDING_BOTTOM_2LINE_M \
+                 GENLIST_PART_SPACER_M("elm.padding.bottom", \
+                        description { state: "default" 0.0; \
+                               min: 0 GENLIST_PADDING_SIZE_BOTTOM_2LINE_MULTI; \
+                               max: -1 GENLIST_PADDING_SIZE_BOTTOM_2LINE_MULTI; \
+                               fixed: 0 1; \
+                               rel1.to: "base"; \
+                               rel2.to: "base"; \
+                               rel1.relative: 0.0 1.0; \
+                               align: 0.5 1.0; \
+                        } \
+                        description { state: "reorder" 0.0; \
+                               inherit: "default" 0.0; \
+                               min: 0 (GENLIST_PADDING_SIZE_BOTTOM_2LINE_MULTI+2); \
+                               max: -1 (GENLIST_PADDING_SIZE_BOTTOM_2LINE_MULTI+2); \
+                        } \
+                 )
+
+#define GENLIST_PART_PADDING_TOP \
+         GENLIST_PART_SPACER_M("elm.padding.top", \
+            description { \
+               state: "default" 0.0; \
+               min: 0 GENLIST_PADDING_SIZE_TOP; \
+               max: -1 GENLIST_PADDING_SIZE_TOP; \
+               fixed: 0 1; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel2.relative: 1.0 0.0; \
+               align: 0.5 0.0; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               min: 0 (GENLIST_PADDING_SIZE_TOP+2); \
+               max: -1 (GENLIST_PADDING_SIZE_TOP+2); \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_BOTTOM \
+                        GENLIST_PART_SPACER_M("elm.padding.bottom", \
+                               description { state: "default" 0.0; \
+                                  min: 0 GENLIST_PADDING_SIZE_BOTTOM; \
+                                  max: -1 GENLIST_PADDING_SIZE_BOTTOM; \
+                                  fixed: 0 1; \
+                                  rel1.to: "base"; \
+                                  rel2.to: "base"; \
+                                  rel1.relative: 0.0 1.0; \
+                                  align: 0.5 1.0; \
+                               } \
+                               description { state: "reorder" 0.0; \
+                                  inherit: "default" 0.0; \
+                                  min: 0 (GENLIST_PADDING_SIZE_BOTTOM+2); \
+                                  max: -1 (GENLIST_PADDING_SIZE_BOTTOM+2); \
+                               } \
+                        )
+
+
+#define GENLIST_PART_FLIP_M \
+                 GENLIST_PART_RECT_M("elm.flip.bg", \
+                        mouse_events: 0; \
+                        description { state: "default" 0.0;\
+                               color: 0 0 0 0;\
+                        } \
+                        description { state: "flipped" 0.0; \
+                               inherit: "default" 0.0; \
+                               rel2.offset: 0 -3; \
+                               color: GENLIST_LIST_BG_COLOR_M;\
+                        }\
+                 ) \
+                 GENLIST_PART_SPACER_M("elm.flip.padding.right", \
+                        description { state: "default" 0.0; \
+                               min: 26 0; \
+                               max: 26 -1; \
+                               fixed: 1 0; \
+                               align: 1 0.5; \
+                               rel1.relative: 1 0; \
+                        } \
+                 ) \
+                 GENLIST_PART_ICON_M("elm.flip.content", \
+                        GENLIST_DESCRIPTION("elm.padding.left", "elm.flip.padding.icon.left",  \
+                               "elm.padding.top", "elm.padding.bottom", \
+                               visible: 0; \
+                               aspect: 1 1; \
+                               min: 0 96; \
+                        ) \
+                        description { state: "flipped" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 1; \
+                        } \
+                 ) \
+                 GENLIST_PART_PADDING_R_M("elm.flip.padding.icon.left", "elm.flip.icon") \
+                 GENLIST_PART_ICON_M( "elm.flip.icon", \
+                        GENLIST_DESCRIPTION_RTB("elm.flip.padding.right", \
+                               "elm.padding.top", "elm.padding.bottom", \
+                               visible: 0; \
+                               aspect: 1 1; \
+                               align: 1 0.5; \
+                               max: 158 74; \
+                        ) \
+                        description { state: "flipped" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 1; \
+                        } \
+                 )
+
+#define GENLIST_PART_FOCUS_M \
+   GENLIST_PART_IMAGE("focus_part", \
+      mouse_events: 0; \
+      description { state: "default" 0.0; \
+         visible: 0; \
+         image { \
+            normal: "00_focus.png"; \
+            border: 6 6 6 6; \
+            border_scale: 1; \
+         } \
+      } \
+      description { state: "focused" 0.0; \
+         inherit: "default" 0.0; \
+         visible: 1; \
+      } \
+   ) \
+   GENLIST_PART_ICON_M("elm.icon.focus", \
+      repeat_events: 1; \
+      GENLIST_DESCRIPTION_ENVELOP("focus_part", \
+         fixed: 1 1; \
+      ) \
+   )
+
+#define GENLIST_PART_FOCUS_REORDER \
+   GENLIST_PART_IMAGE("focus_part_reorder", \
+      mouse_events: 0; \
+         description { state: "default" 0.0; \
+            rel1 { \
+               relative: 1 1; \
+               to_x: "bg_reorder_left"; \
+               to_y: "bg_reorder_top"; \
+            } \
+            rel2 { \
+               relative: 0 0; \
+               to_x: "bg_reorder_right"; \
+               to_y: "bg_reorder_bottom"; \
+            } \
+         visible: 0; \
+         image { \
+            normal: "00_focus.png"; \
+            border: 6 6 6 6; \
+            border_scale: 1; \
+         } \
+      } \
+      description { state: "focused" 0.0; \
+         inherit: "default" 0.0; \
+         visible: 1; \
+      } \
+   )
+
+#define GENLIST_PART_PADDING_L_M( NAME, LEFT ) \
+         GENLIST_PART_SPACER_M(NAME, \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+               max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+               align: 0 0.5; \
+               rel1 { \
+                  relative: 1 0; \
+                  to_x: LEFT; \
+               } \
+               rel2 { \
+                  relative: 1 1; \
+                  to_x: LEFT; \
+               } \
+            } \
+         )
+
+
+#define GENLIST_PART_FOCUS_NORMAL \
+       GENLIST_PART_FOCUS_M \
+       GENLIST_PART_FOCUS_REORDER
+
+
+#define GENLIST_PROGRAM_DEFAULT( TARGET ) \
+         program { name: "default"; \
+            signal: "elm,state,default"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         } \
+
+#define GENLIST_PROGRAM_DISABLED( TARGET ) \
+         program { name: "enabled"; \
+            signal: "elm,state,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         } \
+         program { name: "disabled"; \
+            signal: "elm,state,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "disabled" 0.0; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_FOCUS_ITEM \
+      program { name: "focused"; \
+         signal: "elm,state,focused"; \
+         source: "elm"; \
+         action: STATE_SET "focused" 0.0; \
+         target: "focus_part"; \
+      } \
+      program { name: "unfocused"; \
+         signal: "elm,state,unfocused"; \
+         source: "elm"; \
+         action: STATE_SET "default" 0.0; \
+         target: "focus_part"; \
+      }
+
+#define GENLIST_PROGRAM_FOCUS_NORMAL \
+      program { name: "focused"; \
+         signal: "elm,state,focused"; \
+         source: "elm"; \
+         script { \
+            new st[31]; \
+            new Float:vl; \
+            get_state(PART:"bg_reorder_clip", st, 30, vl); \
+            if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) \
+               set_state(PART:"focus_part_reorder", "focused", 0.0); \
+            else \
+               set_state(PART:"focus_part", "focused", 0.0); \
+         } \
+      } \
+      program { name: "unfocused"; \
+         signal: "elm,state,unfocused"; \
+         source: "elm"; \
+         action: STATE_SET "default" 0.0; \
+         target: "focus_part_reorder"; \
+         target: "focus_part"; \
+      }
+
+#define GENLIST_PROGRAM_FOCUS_DIALOGUE \
+      program { name: "focused"; \
+         signal: "elm,state,focused"; \
+         source: "elm"; \
+         script { \
+            new st[31]; \
+            new Float:vl; \
+            get_state(PART:"bg_dialogue", st, 30, vl); \
+            if (!strcmp(st, "top") || !strcmp(st, "top_selected") || !strcmp(st, "2depth_top")) \
+               set_state(PART:"focus_part_dialogue", "top_focused", 0.0); \
+            else if (!strcmp(st, "center") || !strcmp(st, "center_selected") || !strcmp(st, "2depth_center")) \
+               set_state(PART:"focus_part_dialogue", "center_focused", 0.0); \
+            else if (!strcmp(st, "bottom") || !strcmp(st, "bottom_selected") || !strcmp(st, "2depth_bottom")) \
+               set_state(PART:"focus_part_dialogue", "bottom_focused", 0.0); \
+            else if (!strcmp(st, "default") || !strcmp(st, "selected") || !strcmp(st, "2depth")) \
+               set_state(PART:"focus_part_dialogue", "focused", 0.0); \
+         } \
+      } \
+      program { name: "unfocused"; \
+         signal: "elm,state,unfocused"; \
+         source: "elm"; \
+         action: STATE_SET "default" 0.0; \
+         target: "focus_part_dialogue"; \
+      }
+
+#define GENLIST_PROGRAM_SOUND( SRC ) \
+      program { name: "play_sound"SRC; \
+         signal: "mouse,clicked,1"; \
+         source: SRC; \
+         script { \
+            new st[31]; \
+            new Float:vl; \
+            get_state(PART:SRC, st, 30, vl); \
+            if (!strcmp(st, "selected") || \
+                !strcmp(st, "top_selected") || \
+                !strcmp(st, "center_selected") || \
+                !strcmp(st, "bottom_selected")) \
+               play_sample("touch_sound", 1.0); \
+         } \
+      }
+
+#define GENLIST_PROGRAM_SELECT( TARGET ) \
+         program { name: "selected"; \
+            signal: "elm,state,selected"; \
+            source: "elm"; \
+            action: STATE_SET "selected" 0.0; \
+            TARGET \
+         } \
+         program { name: "unselected"; \
+            signal: "elm,state,unselected"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_DECORATE_REORDER( NAME, TARGET ) \
+         program { name: "reorder_enabled"NAME; \
+            signal: "elm,state,reorder,mode_set"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"decorate_reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"reorder_set"NAME); \
+               } \
+            } \
+         } \
+         program { name: "reorder_disabled"NAME; \
+            signal: "elm,state,reorder,mode_unset"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"decorate_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"default_set"NAME); \
+               } \
+            } \
+         } \
+         program { name: "decorate_enabled_effect"NAME; \
+            signal: "elm,state,decorate,enabled,effect";\
+            source: "elm";\
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"decorate_reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"decorate_set"NAME); \
+               } \
+            } \
+         }\
+         program { name: "decorate_disabled_effect"NAME;\
+            signal: "elm,state,decorate,disabled,effect";\
+            source: "elm";\
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"default_set"NAME); \
+               } \
+            } \
+         }\
+         program { name: "decorate_enabled"NAME;\
+            signal: "elm,state,decorate,enabled";\
+            source: "elm";\
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"decorate_reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"decorate_set"NAME); \
+               } \
+            } \
+         }\
+         program { name: "decorate_disabled"NAME;\
+            signal: "elm,state,decorate,disabled";\
+            source: "elm";\
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"default_set"NAME); \
+               } \
+            } \
+         } \
+         program { name: "default_set"NAME; \
+            action: STATE_SET "default" 0.0;\
+            target: "state"; \
+            TARGET \
+         } \
+         program { name: "decorate_set"NAME; \
+            action: STATE_SET "decorate" 0.0;\
+            target: "state"; \
+            TARGET \
+         } \
+         program { name: "reorder_set"NAME; \
+            action: STATE_SET "reorder" 0.0;\
+            target: "state"; \
+            TARGET \
+         } \
+         program { name: "decorate_reorder_set"NAME; \
+            action: STATE_SET "decorate_reorder" 0.0;\
+            target: "state"; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_FLIP_M \
+         program { name: "flip_enabled"; \
+            signal:  "elm,state,flip,enabled"; \
+            source:  "elm"; \
+            transition: DECELERATE 0.5; \
+            action:  STATE_SET "flipped" 0.0; \
+            target: "elm.flip.content"; \
+            target: "elm.flip.icon"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal:  "elm,state,flip,disabled"; \
+            source:  "elm"; \
+            transition: DECELERATE 0.5; \
+            action:  STATE_SET "default" 0.0; \
+            target: "elm.flip.content"; \
+            target: "elm.flip.icon"; \
+         } \
+         program { name: "flip_enabled_bg"; \
+            signal:  "elm,state,flip,enabled"; \
+            source:  "elm"; \
+            action:  STATE_SET "flipped" 0.0; \
+            target: "elm.flip.bg"; \
+         } \
+         program { name: "flip_disabled_bg"; \
+            signal:  "elm,state,flip,disabled"; \
+            source:  "elm"; \
+            action:  STATE_SET "default" 0.0; \
+            target: "elm.flip.bg"; \
+         }
+
+
+#define GENLIST_PROGRAMS_NORMAL_M( TARGET ) \
+   programs { \
+      GENLIST_PROGRAM_DEFAULT( TARGET \
+         target: "bg"; \
+         target: "bg_clip"; \
+         target: "bottom_line"; \
+         target: "bottom_line2"; \
+         target: "bottom_line_clip"; \
+         target: "bg_reorder"; \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+         target: "elm.padding.top"; \
+         target: "elm.padding.bottom"; \
+      ) \
+      GENLIST_PROGRAM_DISABLED( TARGET \
+         target: "bg"; \
+         target: "bg_reorder"; \
+      ) \
+      GENLIST_PROGRAM_FOCUS_NORMAL \
+      GENLIST_PROGRAM_SELECT( TARGET \
+         target: "bg"; \
+         target: "bg_reorder"; \
+      ) \
+      GENLIST_PROGRAM_SOUND("bg") \
+      GENLIST_PROGRAM_SOUND("bg_reorder") \
+      GENLIST_PROGRAM_DECORATE_REORDER("normal", TARGET \
+         target: "bg_clip"; \
+         target: "bg_reorder_clip"; \
+         target: "bottom_line_clip"; \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+         target: "elm.padding.top"; \
+         target: "elm.padding.bottom"; \
+      ) \
+      GENLIST_PROGRAM_FLIP_M \
+   }
+
+ group { GENLIST_NAME("video.multiline/2text/default")
+       GENLIST_PROLOG_NORMAL
+       data.item: "texts" "elm.text.1 elm.text.2";
+
+       parts {
+          GENLIST_PART_BASE_M
+          GENLIST_PART_BG_NORMAL
+          GENLIST_PART_BOTTOM_LINE_M
+          GENLIST_PART_PADDING_LEFT_M
+          GENLIST_PART_PADDING_RIGHT_M
+          GENLIST_PART_PADDING_TOP_2LINE_M
+          GENLIST_PART_PADDING_BOTTOM_2LINE_M
+
+          GENLIST_PART_TEXT_M("elm.text.1",
+                 GENLIST_DESCRIPTION_LRT("elm.padding.left", "elm.padding.right", "elm.padding.top",
+                        GENLIST_PARAM_LISTITEM
+                        min: 0 GENLIST_HEIGHT_2LINE_MAIN_MULTI;
+                        fixed: 0 1;
+                 )
+                 GENLIST_DESCRIPTION_LISTITEM_OTHERS_M
+          )
+          //GENLIST_PART_PADDING_T_SIZE("elm.padding.text1.bottom", "elm.text.1", 0)
+          GENLIST_PART_TEXTBLOCK_M("elm.text.2",
+                 GENLIST_DESCRIPTION("elm.padding.left", "elm.padding.right", "elm.text.1", "elm.padding.bottom",
+                        GENLIST_PARAM_SUBITEM_DEFAULT_TB_WRAP
+                        min: 0 GENLIST_HEIGHT_MULTILINE_SUB;
+                 )
+                 GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP
+          )
+          GENLIST_PART_FLIP_M
+          GENLIST_PART_FOCUS_NORMAL
+       }
+       GENLIST_PROGRAMS_NORMAL_M( target: "elm.text.1"; target: "elm.text.2"; )
+ }
+
+ group { GENLIST_NAME("video.multiline/1text.2icon/default")
+       GENLIST_PROLOG_NORMAL
+       data.item: "texts" "elm.text";
+       data.item: "contents" "elm.icon.1 elm.icon.2";
+
+       parts {
+          GENLIST_PART_BASE_M
+          GENLIST_PART_BG_NORMAL
+          GENLIST_PART_BOTTOM_LINE_M
+          GENLIST_PART_PADDING_LEFT_M
+          GENLIST_PART_PADDING_RIGHT_M
+          GENLIST_PART_PADDING_TOP
+          GENLIST_PART_PADDING_BOTTOM
+
+          GENLIST_PART_ICON_MEDIUM_L( "elm.icon.1", "elm.padding.left")
+          GENLIST_PART_PADDING_L_M("elm.padding.icon1.right", "elm.icon.1")
+          GENLIST_PART_TEXTBLOCK_M("elm.text",
+                 GENLIST_DESCRIPTION_LR("elm.padding.icon1.right", "elm.padding.icon2.left",
+                        GENLIST_PARAM_MAINITEM_DEFAULT_TB_WRAP
+                        min: 0 GENLIST_HEIGHT_1LINE_MULTI;
+                 )
+                 GENLIST_DESCRIPTION_MAINITEM_DEFAULT_OTHERS_TB_WRAP
+          )
+          GENLIST_PART_PADDING_R_M("elm.padding.icon2.left", "elm.icon.2")
+          GENLIST_PART_ICON_BTN_01_RTB("elm.icon.2", "elm.padding.right", "elm.padding.top", "elm.padding.bottom")
+          GENLIST_PART_FLIP_M
+          GENLIST_PART_FOCUS_NORMAL
+       }
+       GENLIST_PROGRAMS_NORMAL_M( target: "elm.text"; target: "elm.icon.1"; target: "elm.icon.2"; )
+ }
+
+
+ group {
+       name: "elm/genlist/item/custom.subtitle/default";
+       alias: "elm/genlist/item_compress/custom.subtitle/default";
+       alias: "elm/genlist/tree/custom.subtitle/default";
+       alias: "elm/genlist/tree_compress/custom.subtitle/default";
+       data.item: "stacking" "above";
+       data.item: "selectraise" "on";
+       data.item: "texts" "elm.text";
+       data.item: "contents" "elm.icon";
+       parts {
+               part {
+                       name: "base";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 255 255 255 0;
+                               min: 0 52;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       scale: 1;
+                       type: TEXT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 0.0;
+                               rel1 {
+                                       relative: 0.05 0.0; to: "base";
+                               }
+                               rel2 {
+                                       relative: 0.88 1.0; to: "base";
+                               }
+                               text {
+                                       align: 0.0 0.5;
+                                       min: 0 1;
+                                       font: "Tizen:style=Regular";
+                                       size: 30;
+                               }
+                               color: 0 0 0 255;
+                       }
+               }
+               part {
+                       name: "elm.icon";
+                       scale: 1;
+                       type: SWALLOW;
+                       description {
+                               state: "default" 0.0;
+                               align: 1.0 0.0;
+                               rel1 {
+                                       relative: 0.88 0.0; to: "base";
+                               }
+                               rel2 {
+                                       relative: 0.95 1.0; to: "base";
+                               }
+                               min: 32 32;
+                       }
+               }
+       }
+}/* group */
+
+
+#define GENLIST_POPUP_STYLE(NAME) \
+        group { GENLIST_NAME(NAME"/popup/default") \
+               inherit: "elm/genlist/item/"NAME"/default"; \
+               images { \
+                  image: "00_popup_list_press.png" COMP; \
+               } \
+               parts { \
+                  GENLIST_PART_SPACER_M("bg_left_top_padding", \
+                         description { state: "default" 0.0; \
+                                min: POPUP_ITEM_BG_LEFT_TOP_PAD_MIN_INC; \
+                                fixed: 1 1; \
+                                align: 0 0; \
+                                rel2.relative: 0 0; \
+                         } \
+                  ) \
+                  GENLIST_PART_SPACER_M("bg_right_bottom_padding", \
+                         description { state: "default" 0.0; \
+                                min: POPUP_ITEM_BG_RIGHT_BOTTOM_PAD_MIN_INC; \
+                                fixed: 1 1; \
+                                align: 1 1; \
+                                rel1.relative: 1 1; \
+                         } \
+                  ) \
+                  GENLIST_PART_IMAGE("bg", \
+                         description { state: "default" 0.0; \
+                                image { \
+                                       normal: "00_popup_list_press.png"; \
+                                       border: POPUP_ITEM_BG_PRESSED_BORDER_INC; \
+                                       border_scale: 1; \
+                                } \
+                                rel1 { \
+                                       relative: 1 1; \
+                                       to_x: "bg_left_top_padding"; \
+                                       to_y: "bg_left_top_padding"; \
+                                } \
+                                rel2 { \
+                                       relative: 0 0; \
+                                       to_x: "bg_right_bottom_padding"; \
+                                       to_y: "bg_right_bottom_padding"; \
+                                } \
+                                color: GENLIST_LIST_BG_POPUP_COLOR; \
+                         } \
+                         description { state: "disabled" 0.0; \
+                                inherit: "default" 0.0; \
+                                color: GENLIST_LIST_BG_POPUP_COLOR; \
+                         } \
+                         description { state: "selected" 0.0; \
+                                inherit: "default" 0.0; \
+                                color: GENLIST_LIST_BG_POPUP_PRESS_COLOR; \
+                         } \
+                  ) \
+                  GENLIST_PART_RECT_M("bottom_line", \
+                         description { state: "default" 0.0; \
+                                color: GENLIST_LIST_LINE1_POPUP_COLOR; \
+                                rel1.to: "bottom_line2"; \
+                                rel2.to: "bottom_line2"; \
+                                rel2.relative: 1 0; \
+                         } \
+                         description { state: "disabled" 0.0; \
+                                inherit: "default" 0.0; \
+                                visible: 0; \
+                         } \
+                  ) \
+                  GENLIST_PART_RECT_M("bottom_line2", \
+                         description { state: "default" 0.0; \
+                                color: GENLIST_LIST_LINE2_POPUP_COLOR; \
+                                rel1.to_x: "bg"; \
+                                rel2.to_x: "bg"; \
+                                rel1.offset: 1 0; \
+                                rel2.offset: -2 -1; \
+                         } \
+                         description { state: "disabled" 0.0; \
+                                inherit: "default" 0.0; \
+                                visible: 0; \
+                         } \
+                  ) \
+               } \
+               programs { \
+                  program { name : "hide_bottomline"; \
+                         signal: "elm,state,bottomline,hide"; \
+                         source: ""; \
+                         action: STATE_SET "disabled" 0.0; \
+                         target: "bottom_line"; \
+                         target: "bottom_line2"; \
+                  } \
+                  program { name : "show_bottomline"; \
+                         signal: "elm,state,bottomline,show"; \
+                         source: ""; \
+                         action: STATE_SET "default" 0.0; \
+                         target: "bottom_line"; \
+                         target: "bottom_line2"; \
+                  } \
+               } \
+        }
+
+
+//popup
+GENLIST_POPUP_STYLE("video.multiline/2text")
+GENLIST_POPUP_STYLE("video.multiline/1text.2icon")
+
diff --git a/res/edje/vp-custom-winset-style.edc b/res/edje/vp-custom-winset-style.edc
new file mode 100755 (executable)
index 0000000..592d77d
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2020 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 "image_res.edc"
+//#include "tizen-hd-inc.edc"
+
+externals {
+          external: "elm";
+          external: "feedback";
+       }
+
+collections {
+       plugins {
+               plugin {
+                       name: "touch_sound_plugin";
+                       source: "feedback";
+                       param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+                       }
+               }
+       #include "vp-controlbar.edc"
+       #include "vp-layout.edc"
+       #include "vp-gengrid.edc"
+       #include "vp-genlist-custom.edc"
+       #include "vp-button-white.edc"
+       #include "vp-check.edc"
+       #include "vp-progressbar-list.edc"
+       #include "vp-nocontents.edc"
+       #include "vp-gengrid-custom.edc"
+       #include "vp-scroller-custom.edc"
+       #include "vp-detail-popup.edc"
+       //#include "vp-naviframe.edc"
+       #include "vp-custom-genlist-miltiline.edc"
+       #include "vp-numberinfo.edc"
+       #include "vp-entry-popup.edc"
+       #include "vp-toolbar.edc"
+}
diff --git a/res/edje/vp-detail-popup.edc b/res/edje/vp-detail-popup.edc
new file mode 100755 (executable)
index 0000000..3e3a50e
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+group { name: "popup_detail";
+   parts {
+      part { name: "pad_t";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.5 0.0;
+            min: 0 5;
+            fixed: 0 1;
+            rel2.relative: 1.0 0.0;
+         }
+      }
+      part { name:"elm.swallow.layout";
+         type: SWALLOW;
+         scale: 1;
+         mouse_events: 1;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            min: 0 332;
+            align: 0.5 1.0;
+            fixed: 1 0;
+            rel1 {
+               relative: 0.0 1.0;
+               to: "pad_t";
+            }
+            rel2 {
+               relative: 1.0 0.0;
+               to: "pad_b";
+            }
+         }
+      }
+      part { name: "pad_b";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.5 1.0;
+            min: 0 5;
+            fixed: 0 1;
+            rel1.relative: 0.0 1.0;
+         }
+      }
+   }
+}
+group { name: "transparent_layout";
+       parts {
+             part { name: "base_bg";
+                type: SWALLOW;
+                scale: 1;
+                description { state: "default" 0.0;
+                   rel1 {
+                      relative: 0.0 0.0;
+                   }
+                   rel2 {
+                      relative: 1.0 1.0;
+                   }
+               }
+           }
+       }
+}
+
diff --git a/res/edje/vp-device-list-internal.edc b/res/edje/vp-device-list-internal.edc
new file mode 100755 (executable)
index 0000000..6b37adc
--- /dev/null
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#define GRAY_RECT_COLOR                        128 128 128 128
+#define SPEEDBOX_OFFSET_Y              225
+
+
+#include "image_res.edc"
+#include "vp_font.edc"
+
+collections {
+       group {
+               name: "asf.device.list.internal";
+
+               parts {
+                       part {
+                               name: "asf.device.list.background";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 248 246 239 255;
+                               }
+                       }
+                       part {
+                               name: "asf.device.list.content";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "asf.item.list.selection.info";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       visible: 0;
+                                       rel1 { relative: 0.0 1.0; to: "asf.device.list.content"; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part { name: "progress";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                               }
+
+                               description {
+                                       state: "rotate" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+                       }
+               }
+
+               programs {
+                       program {
+                               signal: "signal.asf.device.internal.selection.info.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "asf.item.list.selection.info";
+                       }
+                       program {
+                               signal: "signal.asf.device.internal.selection.info.hide";
+                               source: "*";
+                               action: STATE_SET "hide" 0.0;
+                               target: "asf.item.list.selection.info";
+                       }
+               }
+       } /* group */
+} /* collection */
+
diff --git a/res/edje/vp-entry-popup.edc b/res/edje/vp-entry-popup.edc
new file mode 100755 (executable)
index 0000000..b43d044
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#define VP_POPUP_ENTRY_WIDTH_HEIGHT_MIN                0 60
+#define PV_POPUP_ENTRY_CONTENT_MIN                             0 60
+#define POPUP_CONTENT_PADDING_LEFT_MIN_INC 15
+#define POPUP_CONTENT_PADDING_RIGHT_MIN_INC 15
+
+
+group {
+       name: "pv.popup.entry";
+       parts {
+               part {
+                       name:"bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: VP_POPUP_ENTRY_WIDTH_HEIGHT_MIN;
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "pad_l";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: POPUP_CONTENT_PADDING_LEFT_MIN_INC 0;
+                               fixed: 1 0;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "bg";}
+                               rel2 { relative: 0.0 1.0; to: "bg";}
+                       }
+               }
+
+               part {
+                       name: "pad_r";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: POPUP_CONTENT_PADDING_RIGHT_MIN_INC 0;
+                               fixed: 1 0;
+                               align: 1.0 1.0;
+                               rel1 { relative: 0.9 0.0; to: "bg";}
+                               rel2 { relative: 0.9 1.0; to: "bg";}
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: PV_POPUP_ENTRY_CONTENT_MIN;
+                               fixed: 0 1;
+                               align: 0.0 0.5;
+                               rel1 { relative: 1.0 0.5; to_x: "pad_l"; to_y: "bg"; }
+                               rel2 { relative: 0.0 0.5; to_x: "pad_r"; to_y: "bg"; }
+                       }
+               }
+               part {
+                       name: "elm.swallow.end";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 30 30;
+                               max: 30 30;
+                               align: 0.0 0.5;
+                               rel1 { relative: 0.85 0.5; to_x: "bg"; to_y: "bg"; }
+                               rel2 { relative: 1.0 0.5; to_x: "bg"; to_y: "bg"; }
+                               fixed: 1 1;
+                       }
+               }
+
+       }
+} /* group */
+
diff --git a/res/edje/vp-gengrid-custom.edc b/res/edje/vp-gengrid-custom.edc
new file mode 100755 (executable)
index 0000000..eb180ee
--- /dev/null
@@ -0,0 +1,1051 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+/*PD*/
+#define GENGRID_PD_TEXT_LEFT_TOP_PAD_INC                       0 0
+#define GENGRID_PD_TEXT_RIGHT_BOTTOM_PAD_INC           31 46
+#define GENGRID_PD_TEXT_CENTER_HEIGHT                          0
+#define GENGRID_PD_TEXT_TITLE_HEIGHT                           46
+#define GENGRID_PD_ITEM_REAL_BG_RIGHT_PADDING_INC      1 1
+
+
+#define GENGRID_GRID_TEXT_LEFT_TOP_PAD_INC 7 4
+#define GENGRID_GRID_TEXT_RIGHT_BOTTOM_PAD_INC 3 70
+
+#define GENGRID_R_TEXT_LEFT_TOP_PAD_INC 3 4
+#define GENGRID_R_TEXT_RIGHT_BOTTOM_PAD_INC 7 70
+
+#define GENGRID_GRID_TEXT_TITLE_HEIGHT                         30
+#define GENGRID_GRID_TEXT_SUB_TITLE_HEIGHT                     23
+#define GENGRID_GRID_TEXT_CENTER_HEIGHT                                4
+#define GENGRID_GRID_TEXT_BOTTOM_HEIGHT                                6
+#define GENGRID_GRID_MAIN_TEXT_SIZE                 15
+#define GENGIID_LIST_SUB_TEXT_SIZE                             10
+
+#define GENGRID_ICON_CUSTOM_WIDTH   70
+#define GENGRID_ICON_CUSTOM_HEIGHT  45
+#define GENGRID_ICON_CUSTOM_VIDEO_PROGRESSBAR_H 5
+#define GENGRID_PROGRESSBAR_L 12
+#define GENGRID_PROGRESSBAR_R 338
+#define GENGRID_PROGRESSBAR_T 182
+#define GENGRID_PROGRESSBAR_B 193
+
+
+//Copy from tizen-hd-inc.edc
+#define GENGRID_PART_BACKGROUND_COLOR_INC 0 0 0 0
+#define GENGRID_DEFAULT_LEFT_TOP_PADDING_INC 2 2
+#define GENGRID_DEFAULT_RIGHT_BOTTOM_PADDING_INC 2 2
+#define GENGRID_DEFAULT_ITEM_BG_LEFT_TOP_PADDING_INC 1 1
+#define GENGRID_DEFAULT_ITEM_BG_RIGHT_BOTTOM_PADDING_INC 1 1
+#define GENGRID_DEFAULT_ITEM_REAL_BG_RIGHT_PADDING_INC 0 0
+#define GENGRID_DEFAULT_LEFT_TOP_FOCUS_PADDING_INC 2 2
+#define GENGRID_PART_REORDER_DEFAULT_BG_COLOR_INC 0 0 0 77
+#define GENGRID_DEFAULT_RIGHT_BOTTOM_FOCUS_PADDING_INC 2 2
+
+
+#define GRID_ICON_CUSTOM_LOCK_WIDTH                    45
+#define GRID_ICON_CUSTOM_LOCK_HEIGHT           45
+#define GRID_ICON_CUSTOM_DROPBOX_WIDTH                         40
+#define GRID_ICON_CUSTOM_DROPBOX_LOCK_HEIGHT           40
+
+
+#define GENGIID_PART_MATCH_TIME_TAG_COLOR                   "+ color=#0E68AD"
+#define GENGIID_LIST_SUB_TIME_DEFAULT_COLOR_STYLE           "#4F4F4FFF"
+#define GENGRID_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE           "#000000FF"
+#define GENGRID_PART_MATCH_TAG_COLOR                           "+ color=#FE5400"
+
+#define STYLE_TAG \
+      tag:  "br" "\n";\
+      tag:  "ps" "ps";\
+      tag:  "tab" "\t";\
+      tag:  "b" "+ font=Tizen:style=Bold";\
+
+#define GRID_STYLE_TIME_TAG_MATCH \
+      tag:  "match" GENGIID_PART_MATCH_TIME_TAG_COLOR; \
+
+#define GRID_STYLE_TAG_MATCH \
+      tag:  "match" GENGRID_PART_MATCH_TAG_COLOR; \
+
+
+
+styles {
+   style { name: "gengrid_style_list_time_text_unread";
+      base: "font=Tizen:style=Bold align=left valign=middle font_size="GENGIID_LIST_SUB_TEXT_SIZE" color="GENGIID_LIST_SUB_TIME_DEFAULT_COLOR_STYLE" ellipsis=1.0";
+      STYLE_TAG
+      GRID_STYLE_TIME_TAG_MATCH
+   }
+
+   style { name: "gengrid_style_list_main_text_unread";
+      base: "font=Tizen:style=Regular font_size="GENGRID_GRID_MAIN_TEXT_SIZE" color="GENGRID_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE" ellipsis=1.0";
+      STYLE_TAG
+      GRID_STYLE_TAG_MATCH
+   }
+}
+
+externals {
+          external: "elm";
+          external: "feedback";
+       }
+
+#define GENGRID_PART_PROGRESS_BAR_ICON( NAME, REL1_TO, REL2_TO ) \
+part { name: NAME; \
+               scale: 1; \
+               repeat_events: 1; \
+               type: SWALLOW; \
+               description { state: "default" 0.0; \
+                  min: 0 GENGRID_ICON_CUSTOM_VIDEO_PROGRESSBAR_H; \
+                  fixed: 0 1; \
+                  align: 0.5 1.0; \
+                  rel1 { \
+                         relative: GENGRID_PROGRESSBAR_L/GENGRID_ICON_CUSTOM_WIDTH GENGRID_PROGRESSBAR_T/GENGRID_ICON_CUSTOM_HEIGHT; \
+                         to: REL1_TO; \
+            } \
+                  rel2 { \
+                         relative: GENGRID_PROGRESSBAR_R/GENGRID_ICON_CUSTOM_WIDTH GENGRID_PROGRESSBAR_B/GENGRID_ICON_CUSTOM_HEIGHT; \
+                         to: REL2_TO; \
+                  } \
+                  GENGRID_ITEM_SELECT_VI_EFFECT \
+               } \
+     }
+
+#define GENGRID_TAP_SOUND \
+       program { name: "touch_snd"; \
+           signal: "mouse,clicked,1"; \
+           source: "reorder_bg"; \
+           action: PLAY_SAMPLE "button-pressed" 1.0; \
+       }
+
+
+#define GRID_PARAM_ICON_RT_CUSTOM_LOCK \
+      min: GRID_ICON_CUSTOM_LOCK_WIDTH GRID_ICON_CUSTOM_LOCK_HEIGHT;\
+      max: GRID_ICON_CUSTOM_LOCK_WIDTH GRID_ICON_CUSTOM_LOCK_HEIGHT;
+
+#define GRID_PARAM_ICON_RT_CUSTOM_DROPBOX \
+      min: GRID_ICON_CUSTOM_DROPBOX_WIDTH GRID_ICON_CUSTOM_DROPBOX_LOCK_HEIGHT;\
+      max: GRID_ICON_CUSTOM_DROPBOX_WIDTH GRID_ICON_CUSTOM_DROPBOX_LOCK_HEIGHT;
+
+
+#define GRID_PART_ICON_RT_CUSTOM_LOCK(NAME, REL_TO) \
+       part { name: NAME; \
+               scale: 1; \
+               repeat_events: 0; \
+               type: SWALLOW; \
+               description { state: "default" 0.0; \
+                  GRID_PARAM_ICON_RT_CUSTOM_LOCK \
+                  fixed: 1 1; \
+                  align: 1.0 0.0; \
+                  rel1 { \
+                         relative: 1.0 0.0;\
+                         to: REL_TO; offset:0 4;\
+                       } \
+                  rel2 { \
+                         to: REL_TO; offset:-4 0;\
+                  } \
+                  GENGRID_ITEM_SELECT_VI_EFFECT \
+               } \
+       }
+
+#define GRID_PART_ICON_RT_CUSTOM_DROPBOX(NAME, REL_TO) \
+       part { name: NAME; \
+               scale: 1; \
+               repeat_events: 0; \
+               type: SWALLOW; \
+               description { state: "default" 0.0; \
+                  GRID_PARAM_ICON_RT_CUSTOM_DROPBOX \
+                  fixed: 1 1; \
+                  align: 0.0 1.0; \
+                  rel1 { \
+                         relative: 0.0 1.0;\
+                         to: REL_TO; offset:10 0;\
+                       } \
+                  rel2 { \
+                         to: REL_TO; offset:0 -20;\
+                  } \
+                  GENGRID_ITEM_SELECT_VI_EFFECT \
+               } \
+        }
+
+#define GENLIST_PROGRAM_FOCUS_IMAGE \
+       program { name: "action_focus"; \
+        signal: "elm,action,focus_highlight,show"; \
+        source: "elm"; \
+        action: STATE_SET "enabled" 0.0; \
+        target: "focus_bg"; \
+       } \
+       program { name: "action_unfocus"; \
+        signal: "elm,action,focus_highlight,hide"; \
+        source: "elm"; \
+        action: STATE_SET "default" 0.0; \
+        target: "focus_bg"; \
+       }
+
+#define GENGRID_ITEM_SELECT_VI_EFFECT \
+} \
+description { state: "pressed" 0.0; \
+   inherit: "default" 0.0; \
+   map { \
+         on: 1; \
+         perspective: "persp1"; \
+         smooth: 0; \
+   } \
+} \
+description { state: "selected" 0.0; \
+   inherit: "default" 0.0; \
+   map { \
+         on: 1; \
+         perspective: "persp"; \
+         smooth: 1; \
+   }
+
+#define GENGRID_PROGRAM_ITEM_SELECT_VI_EFFECT( TARGET ) \
+         program { name: "vi_pressed"; \
+                action: STATE_SET "pressed" 0.0; \
+                TARGET \
+                after: "vi_zoom_in"; \
+         } \
+         program { name: "vi_zoom_in"; \
+                action: STATE_SET "selected" 0.0; \
+                TARGET \
+                transition: SIN_FAC 0.167 1.1; \
+         } \
+         program { name: "vi_zoom_out"; \
+                action: STATE_SET "pressed" 0.0; \
+                TARGET \
+                transition: SIN_FAC 0.167 1.1; \
+                after: "vi_default"; \
+         } \
+         program { name: "vi_default"; \
+                action: STATE_SET "default" 0.0; \
+                TARGET \
+         }
+
+
+group { name: "elm/gengrid/item/video/default_grid/default";
+      data.item: "contents" "elm.swallow.icon elm.swallow.end";
+      images {
+         image : "00_thumbs_line_bg.png" COMP;
+         image : "00_thumbs_bg_focus.png" COMP;
+         image : "00_thumbs_loading_bg.png" COMP;
+         image : "player_library_list_thumbnail_default.png" COMP;
+      }
+         script {
+                public selected = 0;
+         }
+      parts {
+         part { name: "bg";
+            type: RECT;
+            description { state: "default" 0.0;
+               color: GENGRID_PART_BACKGROUND_COLOR_INC;
+                          //GENGRID_ITEM_SELECT_VI_EFFECT
+            }
+         }
+
+               part { name: "persp";
+                  type: RECT;
+                  description { state: "default" 0.0;
+                         min: 32 32;
+                         max: 32 32;
+                         fixed: 1 1;
+                         align: 0.5 0.5;
+                         color: 0 0 0 0;
+                         visible: 1;
+                         perspective {
+                                zplane: -70;
+                                focal: 1000;
+                         }
+                  }
+               }
+               part { name: "persp1";
+                  type: RECT;
+                  description { state: "default" 0.0;
+                         min: 32 32;
+                         max: 32 32;
+                         fixed: 1 1;
+                         align: 0.5 0.5;
+                         color: 0 0 0 0;
+                         visible: 1;
+                         perspective {
+                                zplane: 0;
+                                focal: 1000;
+                         }
+                  }
+               }
+
+         part { name: "left_top_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: GENGRID_DEFAULT_LEFT_TOP_PADDING_INC;
+               align: 0.0 0.0;
+               visible: 0;
+               fixed: 1 1;
+               rel1.to: "bg";
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "bg";
+               }
+            }
+         }
+         part { name: "right_bottom_padding";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENGRID_DEFAULT_RIGHT_BOTTOM_PADDING_INC;
+               align: 1.0 1.0;
+               visible: 0;
+               fixed: 1 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "bg";
+               }
+               rel2.to: "bg";
+            }
+         }
+
+         part { name: "item_bg";
+            type: RECT;
+               description { state: "default" 0.0;
+                       rel1 {
+                  relative: 1.0 1.0;
+                  to: "left_top_padding";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "right_bottom_padding";
+               }
+                       }
+         }
+
+                part{
+                       name: "elm.swallow.icon.bg";
+                       type: IMAGE;
+                       scale: 1;
+                       mouse_events: 0;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to: "item_bg";}
+                               rel2 { relative: 1.0 0.7; to: "item_bg";}
+                               image.normal: "player_library_list_thumbnail_default.png";
+                               GENGRID_ITEM_SELECT_VI_EFFECT
+                       }
+                }
+
+         part { name: "item_bg_left_top_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: GENGRID_DEFAULT_ITEM_BG_LEFT_TOP_PADDING_INC;
+               align: 0.0 0.0;
+               visible: 0;
+               fixed: 1 1;
+               rel1.to: "item_bg";
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "item_bg";
+               }
+            }
+         }
+         part { name: "item_bg_right_bottom_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: GENGRID_DEFAULT_ITEM_BG_RIGHT_BOTTOM_PADDING_INC;
+               align: 1.0 1.0;
+               visible: 0;
+               fixed: 1 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "item_bg";
+               }
+               rel2.to: "item_bg";
+            }
+         }
+         part { name: "item_real_bg";
+            description { state: "default" 0.0;
+               visible: 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "item_bg_left_top_padding";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "item_bg_right_bottom_padding";
+               }
+               image.normal: "00_thumbs_loading_bg.png";
+            }
+         }
+         part { name: "item_real_bg_left_top_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: GENGRID_DEFAULT_ITEM_REAL_BG_RIGHT_PADDING_INC;
+               align: 0.0 0.0;
+               visible: 0;
+               fixed: 1 1;
+               rel1.to: "item_real_bg";
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "item_real_bg";
+               }
+            }
+         }
+         part { name: "item_real_bg_right_bottom_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: GENGRID_DEFAULT_ITEM_REAL_BG_RIGHT_PADDING_INC;
+               align: 1.0 1.0;
+               fixed: 1 1;
+               visible: 0;
+               rel1 {
+                  relative: 1.0 0.7;
+                  to: "item_real_bg";
+               }
+               rel2.to: "item_real_bg";
+            }
+         }
+         part { name: "elm.swallow.icon";
+            type: SWALLOW;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "item_real_bg_left_top_padding";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "item_real_bg_right_bottom_padding";
+               }
+                          GENGRID_ITEM_SELECT_VI_EFFECT
+            }
+         }
+         part { name: "elm.swallow.icon_rect";
+            type: RECT;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "item_real_bg_left_top_padding";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "item_real_bg_right_bottom_padding";
+               }
+               color : 0 0 0 0;
+            }
+         }
+         part { name: "elm.swallow.end";
+            type: SWALLOW;
+           repeat_events: 1;
+            description { state: "default" 0.0;
+                               rel1
+                               {
+                                       relative: 0.8 0.1;
+                               to: "elm.swallow.icon_rect";
+                               }
+                               rel2
+                               {
+                                       relative: 0.9 0.2;
+                                       to: "elm.swallow.icon_rect";
+                               }
+                           GENGRID_ITEM_SELECT_VI_EFFECT
+            }
+         }
+         part { name: "reorder_bg";
+            type: RECT;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               color: GENGRID_PART_BG_COLOR_INC;
+               rel1.to: "item_bg";
+               rel2.to: "item_bg";
+            }
+            description { state: "enabled" 0.0;
+               inherit: "default" 0.0;
+               color: GENGRID_PART_REORDER_DEFAULT_BG_COLOR_INC;
+            }
+         }
+         part { name: "focus_bg_left_top_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: GENGRID_DEFAULT_LEFT_TOP_FOCUS_PADDING_INC;
+               align: 0.0 0.0;
+               visible: 0;
+               fixed: 1 1;
+               rel1.to: "bg";
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "bg";
+               }
+            }
+         }
+         part { name: "focus_bg_right_bottom_padding";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENGRID_DEFAULT_RIGHT_BOTTOM_FOCUS_PADDING_INC;
+               align: 1.0 1.0;
+               visible: 0;
+               fixed: 1 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "bg";
+               }
+               rel2.to: "bg";
+            }
+         }
+         part { name: "focus_bg";
+            type: IMAGE;
+            description { state: "default" 0.0;
+               visible: 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "focus_bg_left_top_padding";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "focus_bg_right_bottom_padding";
+               }
+               image.normal: "00_thumbs_bg_focus.png";
+               image.border: 6 6 6 6;
+            }
+            description { state: "enabled" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
+      }
+
+      programs {
+               /*GENGRID_PROGRAM_ITEM_SELECT_VI_EFFECT(
+                  target: "bg";
+                  //target: "item_bg";
+                  target: "elm.swallow.icon.bg";
+                  target: "elm.swallow.icon";
+                  target: "elm.swallow.end";
+               )*/
+         program { name: "go_mouse_down";
+            signal: "mouse,down,1";
+            source: "reorder_bg";
+            after:"go_down";
+            transition: ACCELERATE 0.2;
+         }
+         program { name: "go_mouse_up";
+            signal: "mouse,up,1";
+            source: "reorder_bg";
+            action: STATE_SET "default" 0.0;
+                       script {
+                          if (get_int(selected)) {
+                                 set_int(selected, 0);
+                                 //run_program(PROGRAM:"vi_zoom_out");
+                          }
+                       }
+            transition: DECELERATE 0.2;
+         }
+         program { name: "go_reorder_disabled";
+            signal: "elm,state,reorder,disabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "reorder_bg";
+            target: "focus_bg";
+            transition: ACCELERATE 0.3;
+         }
+         program { name: "go_reorder_enabled";
+            signal: "elm,state,reorder,enabled";
+            source: "elm";
+            action: STATE_SET "enabled" 0.0;
+            target: "reorder_bg";
+            target: "focus_bg";
+            transition: DECELERATE 0.3;
+         }
+         program { name:"go_down";
+               signal: "mouse,down,1";
+            source: "reorder_bg";
+            action: STATE_SET "enabled" 0.0;
+                       script {
+                          if (!get_int(selected)) {
+                                 set_int(selected, 1);
+                                 //run_program(PROGRAM:"vi_pressed");
+                          }
+                       }
+            transition: ACCELERATE 0.2;
+         }
+      }
+   }
+
+
+group { name: "elm/gengrid/item/video/album_grid/default";
+      inherit: "elm/gengrid/item/video/default_grid/default";
+      data.item: "texts" "elm.text elm.text.2";
+      data.item: "contents" "elm.swallow.icon elm.swallow.end elm.progressbar.icon elm.lock.icon elm.dropbox.icon";
+
+      parts {
+         part { name: "elm.progressbar.icon";
+                scale: 1;
+                repeat_events: 1;
+                type: SWALLOW;
+                description { state: "default" 0.0;
+                  min: 0 GENGRID_ICON_CUSTOM_VIDEO_PROGRESSBAR_H;
+                  fixed: 0 1;
+                  rel1 {
+                         relative: 0.0 0.96;
+                         to: "elm.swallow.icon";
+            }
+                  rel2 {
+                         relative: 1.0 1.0;
+                         to: "elm.swallow.icon";
+                  }
+                  GENGRID_ITEM_SELECT_VI_EFFECT
+                }
+     }
+        part { name: "main_text_area";
+               type: SPACER;
+               mouse_events: 0;
+               scale: 1;
+               description { state: "default" 0.0;
+                       rel1 { relative: 0.05 1.0; to: "elm.swallow.icon"; }
+                       rel2 { relative: 0.9 0.82; to: "item_bg"; }
+                       min: 0 GENGRID_GRID_TEXT_TITLE_HEIGHT;
+                       fixed: 0 1;
+                       align: 0.0 0.0;
+               }
+        }
+
+        part { name: "sub_text_area";
+               type: SPACER;
+               mouse_events: 0;
+               scale: 1;
+               description { state: "default" 0.0;
+                       rel1 { relative: 0.05 0.84; to: "item_bg"; }
+                       rel2 { relative: 0.9 0.99; to: "item_bg"; }
+                       min: 0 GENGRID_GRID_TEXT_SUB_TITLE_HEIGHT;
+                       fixed: 0 1;
+                       align: 0.0 0.0;
+               }
+        }
+
+        part { name: "bottom_space_area";
+               type: SPACER;
+               mouse_events: 0;
+               scale: 1;
+               description { state: "default" 0.0;
+                       rel1 { relative: 0.0 1.0; to: "sub_text_area"; }
+                       rel2 { relative: 1.0 1.0; to: "sub_text_area"; }
+                       min: 0 GENGRID_GRID_TEXT_BOTTOM_HEIGHT;
+                       fixed: 0 1;
+                       align: 0.0 0.0;
+               }
+        }
+
+    part { name: "elm.text";
+            type: TEXTBLOCK;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1.to: "main_text_area";
+               rel2.to: "main_text_area";
+               text {
+                    min: 0 1;
+                    style: "gengrid_style_list_main_text_unread";
+                }
+            }
+         }
+
+       part { name: "elm.text.2";
+            type: TEXTBLOCK;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1.to: "sub_text_area";
+               rel2.to: "sub_text_area";
+                          text {
+                                  min: 0 1;
+                                  style: "gengrid_style_list_time_text_unread";
+                          }
+              //color: 59 115 182 255;
+            }
+         }
+       //GENGRID_PART_PROGRESS_BAR_ICON("elm.progressbar.icon", "elm.swallow.icon", "elm.swallow.icon")
+               GRID_PART_ICON_RT_CUSTOM_LOCK("elm.lock.icon", "elm.swallow.icon")
+               GRID_PART_ICON_RT_CUSTOM_DROPBOX("elm.dropbox.icon", "elm.swallow.icon")
+         part { name: "focus_bg";
+            description { state: "default" 0.0;
+                rel1 { relative: 0.0 0.0; to: "elm.swallow.icon"; }
+                rel2 { relative: 1.0 1.0; to: "elm.swallow.icon"; }
+            }
+           description { state: "enabled" 0.0;
+                inherit: "default" 0.0;
+                visible: 1;
+           }
+         }
+      }
+      programs {
+                       GENGRID_TAP_SOUND
+                       GENLIST_PROGRAM_FOCUS_IMAGE
+                       /*GENGRID_PROGRAM_ITEM_SELECT_VI_EFFECT(
+                          target: "bg";
+                          target: "item_bg";
+                          target: "elm.swallow.icon.bg";
+                          target: "elm.swallow.icon";
+                          target: "elm.swallow.end";
+                          target: "elm.progressbar.icon";
+                          target: "elm.lock.icon";
+                          target: "elm.dropbox.icon";
+                       )*/
+      }
+       program{
+               name: "touch_snd0";
+               signal: "mouse,clicked,1";
+               source: "elm.swallow.icon";
+               action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       program{
+               name: "touch_snd1";
+               signal: "mouse,clicked,1";
+               source: "elm.swallow.icon.bg";
+               action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       program{
+               name: "touch_snd2";
+               signal: "mouse,clicked,1";
+               source: "item_bg";
+               action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       program{
+               name: "touch_snd3";
+               signal: "mouse,clicked,1";
+               source: "elm.swallow.end";
+               action: RUN_PLUGIN "touch_sound_plugin";
+               }
+   }
+
+group { name: "elm/gengrid/item/video/folder_grid/default";
+      inherit: "elm/gengrid/item/video/default_grid/default";
+      data.item: "texts" "elm.text elm.text.2 elm.text.number";
+      data.item: "contents" "elm.swallow.icon elm.swallow.end elm.progressbar.icon elm.lock.icon elm.dropbox.icon elm.sdcard.icon";
+
+      parts {
+         part { name: "elm.progressbar.icon";
+                scale: 1;
+                repeat_events: 1;
+                type: SWALLOW;
+                description { state: "default" 0.0;
+                  min: 0 GENGRID_ICON_CUSTOM_VIDEO_PROGRESSBAR_H;
+                  fixed: 0 1;
+                  rel1 {
+                         relative: 0.0 0.96;
+                         to: "elm.swallow.icon";
+            }
+                  rel2 {
+                         relative: 1.0 1.0;
+                         to: "elm.swallow.icon";
+                  }
+                  GENGRID_ITEM_SELECT_VI_EFFECT
+                }
+     }
+        part { name: "main_text_area";
+               type: SPACER;
+               mouse_events: 0;
+               scale: 1;
+               description { state: "default" 0.0;
+                       rel1 { relative: 0.05 1.0; to: "elm.swallow.icon"; }
+                       rel2 { relative: 0.9 0.82; to: "item_bg"; }
+                       min: 0 GENGRID_GRID_TEXT_TITLE_HEIGHT;
+                       fixed: 0 1;
+                       align: 0.0 0.0;
+               }
+        }
+
+        part { name: "sub_text_area";
+               type: SPACER;
+               mouse_events: 0;
+               scale: 1;
+               description { state: "default" 0.0;
+                       rel1 { relative: 0.05 0.84; to: "item_bg"; }
+                       rel2 { relative: 0.9 0.99; to: "item_bg"; }
+                       min: 0 GENGRID_GRID_TEXT_SUB_TITLE_HEIGHT;
+                       fixed: 0 1;
+                       align: 0.0 0.0;
+               }
+        }
+
+        part { name: "bottom_space_area";
+               type: SPACER;
+               mouse_events: 0;
+               scale: 1;
+               description { state: "default" 0.0;
+                       rel1 { relative: 0.0 1.0; to: "sub_text_area"; }
+                       rel2 { relative: 1.0 1.0; to: "sub_text_area"; }
+                       min: 0 GENGRID_GRID_TEXT_BOTTOM_HEIGHT;
+                       fixed: 0 1;
+                       align: 0.0 0.0;
+               }
+        }
+
+    part { name: "elm.text";
+            type: TEXTBLOCK;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+            rel1 { relative: 0.0 0.5; to: "main_text_area"; }
+           rel2 { relative: 0.7 0.5; to: "main_text_area"; }
+               text {
+                    min: 0 1;
+                    style: "gengrid_style_list_main_text_unread";
+                }
+            }
+         }
+
+       part { name: "elm.text.number";
+            type: TEXTBLOCK;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+            rel1 { relative: 0.7 0.5; to: "main_text_area"; }
+           rel2 { relative: 1.0 0.5; to: "main_text_area"; }
+               text {
+                    min: 0 1;
+                    style: "gengrid_style_list_main_text_unread";
+                }
+            }
+         }
+
+       part { name: "elm.text.2";
+            type: TEXTBLOCK;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1.to: "sub_text_area";
+               rel2.to: "sub_text_area";
+                          text {
+                                  min: 0 1;
+                                  style: "gengrid_style_list_time_text_unread";
+                          }
+              //color: 59 115 182 255;
+            }
+         }
+       part {
+               name: "elm.sdcard.icon";
+               type: SWALLOW;
+               description {
+               state: "default" 0.0;
+               rel1 {
+               relative: 0.80 0.48;
+               to: item_bg;
+               }
+               rel2 {
+               relative: 0.98 0.65;
+               to: item_bg;
+               }
+               color: 255 0 0 255;
+               }
+       }
+       //GENGRID_PART_PROGRESS_BAR_ICON("elm.progressbar.icon", "elm.swallow.icon", "elm.swallow.icon")
+               GRID_PART_ICON_RT_CUSTOM_LOCK("elm.lock.icon", "elm.swallow.icon")
+               GRID_PART_ICON_RT_CUSTOM_DROPBOX("elm.dropbox.icon", "elm.swallow.icon")
+         part { name: "focus_bg";
+            description { state: "default" 0.0;
+                rel1 { relative: 0.0 0.0; to: "elm.swallow.icon"; }
+                rel2 { relative: 1.0 1.0; to: "elm.swallow.icon"; }
+            }
+           description { state: "enabled" 0.0;
+                inherit: "default" 0.0;
+                visible: 1;
+           }
+         }
+      }
+      programs {
+                       GENGRID_TAP_SOUND
+                       GENLIST_PROGRAM_FOCUS_IMAGE
+                       /*GENGRID_PROGRAM_ITEM_SELECT_VI_EFFECT(
+                          target: "bg";
+                          target: "item_bg";
+                          target: "elm.swallow.icon.bg";
+                          target: "elm.swallow.icon";
+                          target: "elm.swallow.end";
+                          target: "elm.progressbar.icon";
+                          target: "elm.lock.icon";
+                          target: "elm.dropbox.icon";
+                       )*/
+      }
+       program{
+               name: "touch_snd4";
+               signal: "mouse,clicked,1";
+               source: "elm.swallow.icon";
+               action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       program{
+               name: "touch_snd5";
+               signal: "mouse,clicked,1";
+               source: "elm.swallow.icon.bg";
+               action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       program{
+               name: "touch_snd6";
+               signal: "mouse,clicked,1";
+               source: "item_bg";
+               action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       program{
+               name: "touch_snd7";
+               signal: "mouse,clicked,1";
+               source: "elm.swallow.end";
+               action: RUN_PLUGIN "touch_sound_plugin";
+               }
+   }
+
+   group { name: "elm/gengrid/item/video/album_grid_r/default";
+                inherit: "elm/gengrid/item/video/album_grid/default";
+                data.item: "texts" "elm.text elm.text.2";
+                data.item: "contents" "elm.swallow.icon elm.swallow.end elm.progressbar.icon elm.lock.icon elm.dropbox.icon";
+                parts {
+                       part { name: "left_top_padding";
+                          description { state: "default" 0.0;
+                                 min: GENGRID_R_TEXT_LEFT_TOP_PAD_INC;
+                          }
+                       }
+                       part { name: "right_bottom_padding";
+                          description { state: "default" 0.0;
+                                 min: GENGRID_R_TEXT_RIGHT_BOTTOM_PAD_INC;
+                          }
+                       }
+                }
+       }
+
+/*
+   group {
+         name: "elm/gengrid/item/livebox/pd_grid/default";
+         inherit: "elm/gengrid/item/video/default_grid/default";
+         data.item: "texts" "elm.text";
+         data.item: "contents" "elm.swallow.icon";
+        parts {
+
+               part { name: "item_real_bg_left_top_padding";
+                  type: RECT;
+                  scale : 1;
+                  description { state: "default" 0.0;
+                         min: GENGRID_PD_ITEM_REAL_BG_RIGHT_PADDING_INC;
+                         align: 0.0 0.0;
+                         visible: 1;
+                         fixed: 1 1;
+                         color: 155 155 155 255;
+                         rel1.to: "item_real_bg";
+                         rel2 {
+                                relative: 0.0 0.0;
+                                to: "item_real_bg";
+                         }
+                  }
+               }
+               part { name: "item_real_bg_right_bottom_padding";
+                  type: RECT;
+                  scale : 1;
+                  description { state: "default" 0.0;
+                         min: GENGRID_PD_ITEM_REAL_BG_RIGHT_PADDING_INC;
+                         align: 1.0 1.0;
+                         fixed: 1 1;
+                         visible: 1;
+                         color: 155 155 155 255;
+                         rel1 {
+                                relative: 1.0 1.0;
+                                to: "item_real_bg";
+                         }
+                         rel2.to: "item_real_bg";
+                  }
+               }
+
+               part { name: "left_top_padding";
+                  description { state: "default" 0.0;
+                         min: GENGRID_PD_TEXT_LEFT_TOP_PAD_INC;
+                  }
+               }
+               part { name: "right_bottom_padding";
+                  description { state: "default" 0.0;
+                         min: GENGRID_PD_TEXT_RIGHT_BOTTOM_PAD_INC;
+                  }
+               }
+               part { name: "padding_center";
+                  type: SPACER;
+                  mouse_events: 0;
+                  scale: 1;
+                  description { state: "default" 0.0;
+                          rel1 { relative: 0.0 0.0; to_x: "elm.swallow.icon"; to_y: "right_bottom_padding"; }
+                          rel2 { relative: 1.0 0.0; to_x: "elm.swallow.icon"; to_y: "right_bottom_padding"; }
+                          min: 0 GENGRID_PD_TEXT_CENTER_HEIGHT;
+                          fixed: 0 1;
+                          align: 0.0 0.0;
+                  }
+               }
+
+               part { name: "main_text_area";
+                  type: SPACER;
+                  mouse_events: 0;
+                  scale: 1;
+                  description { state: "default" 0.0;
+                          rel1 { relative: 0.0 1.0; to: "padding_center"; }
+                          rel2 { relative: 1.0 1.0; to: "padding_center"; }
+                          min: 0 GENGRID_PD_TEXT_TITLE_HEIGHT;
+                          fixed: 0 1;
+                          align: 0.0 0.0;
+                  }
+               }
+
+               part { name: "elm.text";
+                  type: TEXT;
+                  mouse_events: 0;
+                  scale: 1;
+                  description { state: "default" 0.0;
+                         rel1.to: "main_text_area";
+                         rel2.to: "main_text_area";
+                         text {
+                                text: "Tizen:style=Medium";
+                                size: 24;
+                                align: 0.0 0.5;
+                         }
+                         color: 255 255 255 255;
+                  }
+               }
+               part { name: "item_bg_left_top_padding";
+                  description { state: "default" 0.0;
+                         min: 0 0;
+                  }
+               }
+               part { name: "item_bg_right_bottom_padding";
+                  description { state: "default" 0.0;
+                         min: 0 0;
+                  }
+               }
+*/             /*part { name: "item_real_bg_left_top_padding";
+                  description { state: "default" 0.0;
+                         min: 0 0;
+                  }
+               }
+               part { name: "item_real_bg_right_bottom_padding";
+                  description { state: "default" 0.0;
+                         min: 0 0;
+                  }
+               }*/
+/*             part { name: "focus_bg";
+                  description { state: "default" 0.0;
+                          rel1 { relative: 0.0 0.0; to: "elm.swallow.icon"; }
+                          rel2 { relative: 1.0 1.0; to: "elm.swallow.icon"; }
+                  }
+                  description { state: "enabled" 0.0;
+                         inherit: "default" 0.0;
+                         visible: 1;
+                  }
+              }
+        }
+        programs {
+            GENGRID_TAP_SOUND
+        }
+     }
+*/
diff --git a/res/edje/vp-gengrid.edc b/res/edje/vp-gengrid.edc
new file mode 100755 (executable)
index 0000000..c8f9309
--- /dev/null
@@ -0,0 +1,830 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#define GENGRID_FONT_STYLE_18_INC "26"
+#define GENGRID_PART_BG_COLOR_INC 0 0 0 0
+#define GENGRID_PART_ITEM_BG_COLOR_INC 255 0 0 255
+#define GENGRID_PART_REORDER_BG_COLOR_INC 0 0 0 128
+#define GENGRID_PART_TEXTBLOCK_STYLE_COLOR_INC "#F9F9F9"
+
+   styles {
+      style { name: "gengrid_textblock_style";
+         base: "font=Tizen:style=Medium font_size="GENGRID_FONT_STYLE_18_INC" color="GENGRID_PART_TEXTBLOCK_STYLE_COLOR_INC" align=center wrap=mixed ellipsis=1.0";
+         tag: "br" "\n";
+         tag: "ps" "ps";
+         tag: "tab" "\t";
+         tag: "b" "+ font=Tizen:style=Bold";
+      }
+   }
+
+   group { name: "elm/gengrid/item/bookmark/default";
+      data.item: "contents" "elm.swallow.icon elm.swallow.end";
+      images {
+         image : "00_winset_thumbs_bg.png" COMP;
+         image : "00_winset_thumbs_focus_bg.png" COMP;
+      }
+      parts {
+         part { name: "bg";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               color: GENGRID_PART_BG_COLOR_INC;
+            }
+         }
+         part { name: "left_top_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: 8 18;
+               align: 0.0 0.0;
+               visible: 0;
+               rel1.to: "bg";
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "bg";
+               }
+            }
+         }
+         part { name: "right_bottom_padding";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 8 0;
+               align: 1.0 1.0;
+               visible: 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "bg";
+               }
+               rel2.to: "bg";
+            }
+         }
+         part { name: "item_bg";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "left_top_padding";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "right_bottom_padding";
+               }
+               //image.normal: "00_winset_thumbs_bg.png";
+               color: 0 0 0 0;
+            }
+         }
+         part { name: "item_bg_left_top_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: 2 0;
+               align: 0.0 0.0;
+               visible: 0;
+               rel1.to: "item_bg";
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "item_bg";
+               }
+            }
+         }
+         part { name: "item_bg_right_bottom_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: 2 6;
+               align: 1.0 1.0;
+               visible: 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "item_bg";
+               }
+               rel2.to: "item_bg";
+            }
+         }
+         part { name: "item_real_bg";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               //color: 190 189 189 255;
+               color: 0 0 0 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "item_bg_left_top_padding";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "item_bg_right_bottom_padding";
+               }
+            }
+         }
+         part { name: "item_real_bg_left_top_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: 2 2;
+               align: 0.0 0.0;
+               visible: 0;
+               rel1.to: "item_real_bg";
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "item_real_bg";
+               }
+            }
+         }
+         part { name: "item_real_bg_right_bottom_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: 2 2;
+               align: 1.0 1.0;
+               visible: 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "item_real_bg";
+               }
+               rel2.to: "item_real_bg";
+            }
+         }
+         part { name: "elm.swallow.icon";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "item_real_bg_left_top_padding";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "item_real_bg_right_bottom_padding";
+               }
+            }
+         }
+         part { name: "elm.swallow.end";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1.to: "elm.swallow.icon";
+               rel2.to: "elm.swallow.icon";
+            }
+         }
+         part { name: "reorder_bg";
+            type: RECT;
+            scale: 1;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               color: GENGRID_PART_BG_COLOR_INC;
+               rel1.to: "item_bg";
+               rel2.to: "item_bg";
+            }
+            description { state: "enabled" 0.0;
+               inherit: "default" 0.0;
+               color: GENGRID_PART_REORDER_BG_COLOR_INC;
+            }
+         }
+         part { name: "focus_bg_left_top_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: 8 16;
+               align: 0.0 0.0;
+               visible: 0;
+               rel1.to: "bg";
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "bg";
+               }
+            }
+         }
+         part { name: "focus_bg_right_bottom_padding";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 8 4;
+               align: 1.0 1.0;
+               visible: 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "bg";
+               }
+               rel2.to: "bg";
+            }
+         }
+         part { name: "focus_bg";
+            type: IMAGE;
+            scale: 1;
+            description { state: "default" 0.0;
+               visible: 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "focus_bg_left_top_padding";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "focus_bg_right_bottom_padding";
+               }
+               image.normal: "00_winset_thumbs_focus_bg.png";
+            }
+            description { state: "enabled" 0.0;
+               inherit: "default" 0.0;
+               visible: 0;
+            }
+         }
+      }
+      programs {
+         program { name: "go_mouse_down";
+            signal: "mouse,down,1";
+            source: "reorder_bg";
+            action: STATE_SET "enabled" 0.0;
+            target: "focus_bg";
+            transition: ACCELERATE 0.2;
+         }
+         program { name: "go_mouse_up";
+            signal: "mouse,up,1";
+            source: "reorder_bg";
+            action: STATE_SET "default" 0.0;
+            target: "focus_bg";
+            transition: DECELERATE 0.2;
+         }
+         program { name: "go_reorder_disabled";
+            signal: "elm,state,reorder,disabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "reorder_bg";
+            target: "focus_bg";
+            transition: ACCELERATE 0.3;
+         }
+         program { name: "go_reorder_enabled";
+            signal: "elm,state,reorder,enabled";
+            source: "elm";
+            action: STATE_SET "enabled" 0.0;
+            target: "reorder_bg";
+            target: "focus_bg";
+            transition: DECELERATE 0.3;
+         }
+      }
+   }
+
+   group { name: "elm/gengrid/item/default_gridtext/default";
+      data.item: "texts" "elm.text";
+      data.item: "contents" "elm.swallow.icon elm.swallow.block elm.swallow.end";
+      images {
+         image : "00_winset_thumbs_bg.png" COMP;
+         image : "00_winset_thumbs_focus_bg.png" COMP;
+      }
+      parts {
+         part { name: "bg";
+            type: RECT;
+            description { state: "default" 0.0;
+               color: GENGRID_PART_BG_COLOR_INC;
+            }
+         }
+         part { name: "left_top_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: 8 18;
+               align: 0.0 0.0;
+               visible: 0;
+               rel1.to: "bg";
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "bg";
+               }
+            }
+         }
+         part { name: "right_bottom_padding";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 8 72;
+               align: 1.0 1.0;
+               visible: 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "bg";
+               }
+               rel2.to: "bg";
+            }
+         }
+         part { name: "elm.text";
+            type: TEXTBLOCK;
+            mouse_events: 1;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "left_top_padding";
+                  to_y: "right_bottom_padding";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to: "right_bottom_padding";
+               }
+               text {
+                  style: "gengrid_textblock_style";
+                  min: 0 1;
+                  align: 0.5 0.0;
+               }
+            }
+         }
+         part { name: "elm.swallow.block";
+            type: SWALLOW;
+            mouse_events: 1;
+            description { state: "default" 0.0;
+               rel1.to : "elm.text";
+               rel2.to : "elm.text";
+            }
+         }
+         part { name: "item_bg";
+            type: IMAGE;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "left_top_padding";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "right_bottom_padding";
+               }
+               image.normal: "00_winset_thumbs_bg.png";
+            }
+         }
+         part { name: "item_bg_left_top_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: 2 0;
+               align: 0.0 0.0;
+               visible: 0;
+               rel1.to: "item_bg";
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "item_bg";
+               }
+            }
+         }
+         part { name: "item_bg_right_bottom_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: 2 6;
+               align: 1.0 1.0;
+               visible: 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "item_bg";
+               }
+               rel2.to: "item_bg";
+            }
+         }
+         part { name: "item_real_bg";
+            type: RECT;
+            description { state: "default" 0.0;
+               color: 190 189 189 255;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "item_bg_left_top_padding";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "item_bg_right_bottom_padding";
+               }
+            }
+         }
+         part { name: "item_real_bg_left_top_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: 2 2;
+               align: 0.0 0.0;
+               visible: 0;
+               rel1.to: "item_real_bg";
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "item_real_bg";
+               }
+            }
+         }
+         part { name: "item_real_bg_right_bottom_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: 2 2;
+               align: 1.0 1.0;
+               visible: 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "item_real_bg";
+               }
+               rel2.to: "item_real_bg";
+            }
+         }
+         part { name: "elm.swallow.icon";
+            type: SWALLOW;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "item_real_bg_left_top_padding";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "item_real_bg_right_bottom_padding";
+               }
+            }
+         }
+         part { name: "elm.swallow.end";
+            type: SWALLOW;
+            description { state: "default" 0.0;
+               rel1.to: "elm.swallow.icon";
+               rel2.to: "elm.swallow.icon";
+            }
+         }
+         part { name: "reorder_bg";
+            type: RECT;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               color: GENGRID_PART_BG_COLOR_INC;
+               rel1.to: "item_bg";
+               rel2.to: "item_bg";
+            }
+            description { state: "enabled" 0.0;
+               inherit: "default" 0.0;
+               color: GENGRID_PART_REORDER_BG_COLOR_INC;
+            }
+         }
+         part { name: "focus_bg_left_top_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: 8 16;
+               align: 0.0 0.0;
+               visible: 0;
+               rel1.to: "bg";
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "bg";
+               }
+            }
+         }
+         part { name: "focus_bg_right_bottom_padding";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 8 76;
+               align: 1.0 1.0;
+               visible: 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "bg";
+               }
+               rel2.to: "bg";
+            }
+         }
+         part { name: "focus_bg";
+            type: IMAGE;
+            description { state: "default" 0.0;
+               visible: 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "focus_bg_left_top_padding";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "focus_bg_right_bottom_padding";
+               }
+               image.normal: "00_winset_thumbs_focus_bg.png";
+            }
+            description { state: "enabled" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
+      }
+      programs {
+         program { name: "go_mouse_down";
+            signal: "mouse,down,1";
+            source: "reorder_bg";
+            action: STATE_SET "enabled" 0.0;
+            target: "focus_bg";
+            transition: ACCELERATE 0.2;
+         }
+         program { name: "go_mouse_up";
+            signal: "mouse,up,1";
+            source: "reorder_bg";
+            action: STATE_SET "default" 0.0;
+            target: "focus_bg";
+            transition: DECELERATE 0.2;
+         }
+         program { name: "go_reorder_disabled";
+            signal: "elm,state,reorder,disabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "reorder_bg";
+            target: "focus_bg";
+            transition: ACCELERATE 0.3;
+         }
+         program { name: "go_reorder_enabled";
+            signal: "elm,state,reorder,enabled";
+            source: "elm";
+            action: STATE_SET "enabled" 0.0;
+            target: "reorder_bg";
+            target: "focus_bg";
+            transition: DECELERATE 0.3;
+         }
+      }
+   }
+
+   group { name: "elm/gengrid/item/default_gridtext2/default";
+      data.item: "texts" "elm.text";
+      data.item: "contents" "elm.swallow.icon elm.swallow.block elm.swallow.end";
+      images {
+         image : "00_winset_thumbs_bg.png" COMP;
+         image : "00_winset_thumbs_focus_bg.png" COMP;
+      }
+      parts {
+         part { name: "bg";
+            type: RECT;
+            description { state: "default" 0.0;
+               color: GENGRID_PART_BG_COLOR_INC;
+            }
+         }
+         part { name: "left_top_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: 8 74;
+               align: 0.0 0.0;
+               visible: 0;
+               rel1.to: "bg";
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "bg";
+               }
+            }
+         }
+         part { name: "right_bottom_padding";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 8 0;
+               align: 1.0 1.0;
+               visible: 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "bg";
+               }
+               rel2.to: "bg";
+            }
+         }
+         part { name: "elm.text";
+            type: TEXTBLOCK;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to: "left_top_padding";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "right_bottom_padding";
+                  to_y: "left_top_padding";
+               }
+               text {
+                  style: "gengrid_textblock_style";
+                  min: 0 1;
+                  align: 0.5 1.0;
+               }
+            }
+         }
+         part { name: "elm.swallow.block";
+            type: SWALLOW;
+            mouse_events: 1;
+            description { state: "default" 0.0;
+               rel1.to : "elm.text";
+               rel2.to : "elm.text";
+            }
+         }
+         part { name: "item_bg";
+            type: IMAGE;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "left_top_padding";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "right_bottom_padding";
+               }
+               image.normal: "00_winset_thumbs_bg.png";
+            }
+         }
+         part { name: "item_bg_left_top_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: 2 0;
+               align: 0.0 0.0;
+               visible: 0;
+               rel1.to: "item_bg";
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "item_bg";
+               }
+            }
+         }
+         part { name: "item_bg_right_bottom_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: 2 6;
+               align: 1.0 1.0;
+               visible: 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "item_bg";
+               }
+               rel2.to: "item_bg";
+            }
+         }
+         part { name: "item_real_bg";
+            type: RECT;
+            description { state: "default" 0.0;
+               color: 190 189 189 255;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "item_bg_left_top_padding";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "item_bg_right_bottom_padding";
+               }
+            }
+         }
+         part { name: "item_real_bg_left_top_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: 2 2;
+               align: 0.0 0.0;
+               visible: 0;
+               rel1.to: "item_real_bg";
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "item_real_bg";
+               }
+            }
+         }
+         part { name: "item_real_bg_right_bottom_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: 2 2;
+               align: 1.0 1.0;
+               visible: 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "item_real_bg";
+               }
+               rel2.to: "item_real_bg";
+            }
+         }
+         part { name: "elm.swallow.icon";
+            type: SWALLOW;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "item_real_bg_left_top_padding";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "item_real_bg_right_bottom_padding";
+               }
+            }
+         }
+         part { name: "elm.swallow.end";
+            type: SWALLOW;
+            description { state: "default" 0.0;
+               rel1.to: "elm.swallow.icon";
+               rel2.to: "elm.swallow.icon";
+            }
+         }
+         part { name: "reorder_bg";
+            type: RECT;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               color: GENGRID_PART_BG_COLOR_INC;
+               rel1.to: "item_bg";
+               rel2.to: "item_bg";
+            }
+            description { state: "enabled" 0.0;
+               inherit: "default" 0.0;
+               color: GENGRID_PART_REORDER_BG_COLOR_INC;
+            }
+         }
+         part { name: "focus_bg_left_top_padding";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: 8 72;
+               align: 0.0 0.0;
+               visible: 0;
+               rel1.to: "bg";
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "bg";
+               }
+            }
+         }
+         part { name: "focus_bg_right_bottom_padding";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 8 4;
+               align: 1.0 1.0;
+               visible: 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "bg";
+               }
+               rel2.to: "bg";
+            }
+         }
+         part { name: "focus_bg";
+            type: IMAGE;
+            description { state: "default" 0.0;
+               visible: 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to: "focus_bg_left_top_padding";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to: "focus_bg_right_bottom_padding";
+               }
+               image.normal: "00_winset_thumbs_focus_bg.png";
+            }
+            description { state: "enabled" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
+      }
+      programs {
+         program { name: "go_mouse_down";
+            signal: "mouse,down,1";
+            source: "reorder_bg";
+            action: STATE_SET "enabled" 0.0;
+            target: "focus_bg";
+            transition: ACCELERATE 0.2;
+         }
+         program { name: "go_mouse_up";
+            signal: "mouse,up,1";
+            source: "reorder_bg";
+            action: STATE_SET "default" 0.0;
+            target: "focus_bg";
+            transition: DECELERATE 0.2;
+         }
+         program { name: "go_reorder_disabled";
+            signal: "elm,state,reorder,disabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "reorder_bg";
+            target: "focus_bg";
+            transition: ACCELERATE 0.3;
+         }
+         program { name: "go_reorder_enabled";
+            signal: "elm,state,reorder,enabled";
+            source: "elm";
+            action: STATE_SET "enabled" 0.0;
+            target: "reorder_bg";
+            target: "focus_bg";
+            transition: DECELERATE 0.3;
+         }
+      }
+   }
+
+   group { name: "elm/gengrid/item/block/default";
+      parts {
+         part { name: "bg";
+            type: RECT;
+            description { state: "default" 0.0;
+               color: 0 0 0 0;
+            }
+         }
+      }
+   }
diff --git a/res/edje/vp-genlist-custom.edc b/res/edje/vp-genlist-custom.edc
new file mode 100755 (executable)
index 0000000..7e25d70
--- /dev/null
@@ -0,0 +1,2897 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+/*
+ * vim:ts=3
+*/
+
+/* genlist multisense sample/tone listing */
+   sounds {
+      sample {
+         name: "button-pressed" RAW;
+         source: "button-pressed.wav";
+      }
+   }
+
+#ifndef USE_VIDEO_DOWNLOAD
+#define USE_VIDEO_DOWNLOAD
+#endif
+
+//////////////////////////////
+// tizen-hd-inc.edc
+// List bg color
+#define GENLIST_LIST_BG_COLOR                       248 246 239 0
+#define GENLIST_DIALOGUE_BG_COLOR                   248 246 239 255
+#define GENLIST_LIST_PRESS_COLOR                    87 135 194 255
+#define GENLIST_LIST_DIM_COLOR                      219 217 212 255
+#define GENLIST_LIST_LINE1_COLOR                    211 209 203 255
+#define GENLIST_LIST_LINE2_COLOR                    255 255 255 255
+#define GENLIST_LIST_DIVIDER1_COLOR                 185 184 178 255
+#define GENLIST_LIST_DIVIDER2_COLOR                 255 255 255 255
+#define GENLIST_LIST_CENTERLINE1_COLOR              206 205 202 255
+#define GENLIST_SELECT_ALL_BG_COLOR                 220 218 211 255
+
+// Genlist Text
+#define GENLIST_LIST_RECENT_TEXT_SIZE                       38
+#define GENLIST_LIST_MAIN_TEXT_SIZE                         44
+#define GENLIST_LIST_SUBITEM_TITLE_TEXT_SIZE                35
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR                 0 0 0 255
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE           "#000000FF"
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR             0 0 0 102
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE       "#00000066"
+#define GENLIST_LIST_MAIN_TEXT_READ_COLOR                   128 128 128 255
+#define GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR               128 128 128 204
+#define GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR                  255 255 255 255
+#define GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR_STYLE            "#FFFFFFFF"
+//#define GENLIST_PART_MATCH_TAG_COLOR                         "+ color=#3F8DAD"
+#define GENLIST_PART_MATCH_TAG_COLOR                           "+ color=#FE5400"
+#define GENLIST_PART_MATCH_TIME_TAG_COLOR                   "+ color=#0E68AD"
+
+
+
+#define GENLIST_LIST_SUB_TEXT_SIZE                          32
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR                 128 128 128 255
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE           "#808080FF"
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR             128 128 128 204
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE       "#808080CC"
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR                59 115 182 255
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR_STYLE          "#3B73B6FF"
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR            59 115 182 76
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR_STYLE      "#3B73B64C"
+#define GENLIST_LIST_SUB_TEXT_FOCUS_COLOR                   255 255 255 255
+#define GENLIST_LIST_SUB_TEXT_FOCUS_COLOR_STYLE             "#FFFFFFFF"
+
+#define GENLIST_LIST_SUB_TIME_FOCUS_COLOR                   248 236 239 255
+#define GENLIST_LIST_SUB_TIME_DEFAULT_COLOR                 79 79 79 255
+#define GENLIST_LIST_SUB_TIME_DEFAULT_COLOR_STYLE           "#4F4F4FFF"
+#define GENLIST_LIST_SUB_TIME_DEFAULT_DIM_COLOR             79 79 79 204
+
+#define GENLIST_CONTENTS_TEXT_SIZE                          28
+#define GENLIST_CONTENTS_TEXT_COLOR                         128 128 128 255
+#define GENLIST_CONTENTS_TEXT_COLOR_STYLE                   "#808080FF"
+
+#define GENLIST_LIST_BUBBLE_TEXT_SIZE                       32
+#define GENLIST_LIST_BUBBLE_TEXT_COLOR                      249 249 249 255
+
+#define GENLIST_LIST_THUMBNAIL_BG                                                      0 0 0 255
+
+#define GENLIST_LIST_ITEM_FOCUS_BG                                                     "00_focus.png"
+
+
+//////////////////////////////
+// genlist_textblock_style.edc
+
+#define STYLE_TAG \
+      tag:  "br" "\n";\
+      tag:  "ps" "ps";\
+      tag:  "tab" "\t";\
+      tag:  "b" "+ font=Tizen:style=Bold";\
+
+#define STYLE_TAG_MATCH \
+      tag:  "match" GENLIST_PART_MATCH_TAG_COLOR; \
+
+#define STYLE_TIME_TAG_MATCH \
+      tag:  "match" GENLIST_PART_MATCH_TIME_TAG_COLOR; \
+
+// FIXME: Why this is needed? just don't use match color, right? damn textblock bug...
+#define STYLE_TAG_MATCH_FOCUS \
+      tag:  "match" GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR_STYLE; \
+
+
+styles {
+   // ********************** list main text
+   style { name: "genlist_style_list_main_text_unread";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE" ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_main_text_unread_dim";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE" ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_main_text_read";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_READ_COLOR_STYLE" ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_main_text_read_dim";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR_STYLE" ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_main_text_focus";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR_STYLE" ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH_FOCUS
+   }
+
+   //********************** subitem title text
+   style { name: "genlist_style_list_subitem_title_text_unread";
+         base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUBITEM_TITLE_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE" ellipsis=1.0";
+         STYLE_TAG
+         STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_subitem_title_text_unread_dim";
+         base: "font=Tizen:style=Regular font_size="GENLIST_LIST_SUBITEM_TITLE_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE" ellipsis=1.0";
+         STYLE_TAG
+         STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_subitem_title_text_read";
+         base: "font=Tizen:style=Regular font_size="GENLIST_LIST_SUBITEM_TITLE_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_READ_COLOR_STYLE" ellipsis=1.0";
+         STYLE_TAG
+         STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_subitem_title_text_read_dim";
+         base: "font=Tizen:style=Regular font_size="GENLIST_LIST_SUBITEM_TITLE_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR_STYLE" ellipsis=1.0";
+         STYLE_TAG
+         STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_subitem_title_text_focus";
+         base: "font=Tizen:style=Regular font_size="GENLIST_LIST_SUBITEM_TITLE_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR_STYLE" ellipsis=1.0";
+         STYLE_TAG
+         STYLE_TAG_MATCH_FOCUS
+   }
+
+   // ********************** list time text
+   style { name: "genlist_style_list_time_text_unread";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TIME_TAG_MATCH
+   }
+   style { name: "genlist_style_list_time_text_unread_dim";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_time_text_read";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_time_text_read_dim";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_time_text_focus";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH_FOCUS
+   }
+}
+
+
+//////////////////////////////
+// genlist_macro.edc
+#define GENLIST_HEIGHT_MIN_1LINE          50
+#define GENLIST_HEIGHT_1LINE              75
+#define GENLIST_HEIGHT_2LINE_MAIN         54
+#define GENLIST_HEIGHT_2LINE_SUB          42
+#define GENLIST_HEIGHT_3LINE_MAIN         54
+#define GENLIST_HEIGHT_3LINE_SUB1         42
+#define GENLIST_HEIGHT_3LINE_SUB2         38
+#define GENLIST_HEIGHT_MULTILINE_SUB      38
+#define GENLIST_PART_LIST_LINE_HEIGHT     1
+#define GENLIST_HEIGHT_GROUPTITLE         46
+#define GENLIST_HEIGHT_1LINE_RECENT       66
+
+#define GENLIST_ICON_BIG_SIZE             74
+#define GENLIST_ICON_CHECK_RADIO_SIZE     63
+#define GENLIST_BTN_02_SIZE               74
+
+#define GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH   202
+#define GENLIST_ICON_CUSTOM_THUMBNAIL_HEIGHT  120
+
+#define GENLIST_ICON_CUSTOM_LOCK_WIDTH        45
+#define GENLIST_ICON_CUSTOM_LOCK_HEIGHT       45
+
+#define GENLIST_ICON_CUSTOM_DROPBOX_WIDTH     40
+#define GENLIST_ICON_CUSTOM_DROPBOX_HEIGHT    40
+
+
+#define GENLIST_ICON_CUSTOM_FOLDER_ICON_WIDTH   72
+#define GENLIST_ICON_CUSTOM_FOLDER_ICON_HEIGHT  72
+
+#define GENLIST_PADDING_CUSTOM_SIZE_LEFT_EDIT   26
+#define GENLIST_PADDING_SIZE_DEFAULT            16
+#define GENLIST_PADDING_SIZE_LEFT               16
+#define GENLIST_PADDING_CUSTOM_SIZE_LEFT        16
+#define GENLIST_PADDING_CUSTOM_1ICON_SIZE_LEFT  0
+#define GENLIST_PADDING_SIZE_RIGHT              26
+#define GENLIST_PADDING_CUSTOM_1ICON_SIZE_RIGHT 0
+#define GENLIST_PADDING_SIZE_PLAY_ICON_L        22
+#define GENLIST_PADDING_SIZE_TOP_2LINE          22
+#define GENLIST_PADDING_SIZE_BOTTOM_2LINE       22
+#define GENLIST_PADDING_CUSTOM_SIZE_TOP_2LINE    22
+#define GENLIST_PADDING_CUSTOM_SIZE_BOTTOM_2LINE 22
+#define GENLIST_PADDING_SIZE_TOP_3LINE          17
+#define GENLIST_PADDING_SIZE_BOTTOM_3LINE       17
+#define GENLIST_PADDING_SIZE_NDEPTH             26
+#define GENLIST_PADDING_CUSTOM_1TEXT_LEFT              18
+#define GENLIST_PADDING_CUSTOM_1TEXT_RIGHT             0
+#define GENLIST_PADDING_CUSTOM_1TEXT_TOP       0
+#define GENLIST_PADDING_CUSTOM_1TEXT_BOTTOM    0
+
+#define GENLIST_ICON_CUSTOM_VIDEO_PROGRESSBAR_H 11
+#define GENLIST_PROGRESSBAR_L 10
+#define GENLIST_PROGRESSBAR_R (GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH-GENLIST_PROGRESSBAR_L)
+#define GENLIST_PROGRESSBAR_T 102
+#define GENLIST_PROGRESSBAR_B 113
+
+#define GENLIST_HEIGHT_MIN_1LINE_THUMBNAIL                             150
+#define GENLIST_HEIGHT_MIN_1LINE_THUMBNAIL_LANDSCAPE   150
+#define GENLIST_HEIGHT_MAX_1LINE_THUMBNAIL                             225
+
+#define GENLIST_TREESIZE_DEFAULT          26
+
+#define GENLIST_ICON_CUSTOM_FOLDER_WIDTH     30
+#define GENLIST_ICON_CUSTOM_FOLDER_HEIGHT    30
+
+#define GENLIST_PARAM_ICON_BIG \
+         min: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE; \
+         max: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE;
+
+#define GENLIST_PARAM_ICON_BIG_CUSTOM_THUMBNAIL \
+      min: GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH GENLIST_ICON_CUSTOM_THUMBNAIL_HEIGHT;\
+      max: GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH GENLIST_ICON_CUSTOM_THUMBNAIL_HEIGHT;
+
+#define GENLIST_PARAM_ICON_RT_CUSTOM_LOCK \
+      min: GENLIST_ICON_CUSTOM_LOCK_WIDTH GENLIST_ICON_CUSTOM_LOCK_HEIGHT;\
+      max: GENLIST_ICON_CUSTOM_LOCK_WIDTH GENLIST_ICON_CUSTOM_LOCK_HEIGHT;
+
+#define GENLIST_PARAM_ICON_RT_CUSTOM_DROPBOX \
+      min: GENLIST_ICON_CUSTOM_DROPBOX_WIDTH GENLIST_ICON_CUSTOM_DROPBOX_HEIGHT;\
+      max: GENLIST_ICON_CUSTOM_DROPBOX_WIDTH GENLIST_ICON_CUSTOM_DROPBOX_HEIGHT;
+
+
+#define GENLIST_PARAM_ICON_BIG_CUSTOM_FOLDER_ICON \
+      min: GENLIST_ICON_CUSTOM_FOLDER_ICON_WIDTH GENLIST_ICON_CUSTOM_FOLDER_ICON_HEIGHT;\
+      max: GENLIST_ICON_CUSTOM_FOLDER_ICON_WIDTH GENLIST_ICON_CUSTOM_FOLDER_ICON_HEIGHT;
+
+#define GENLIST_PARAM_ICON_CHECK_RADIO \
+         min: GENLIST_ICON_CHECK_RADIO_SIZE GENLIST_ICON_CHECK_RADIO_SIZE; \
+         max: GENLIST_ICON_CHECK_RADIO_SIZE GENLIST_ICON_CHECK_RADIO_SIZE;
+
+#define GENLIST_PARAM_ICON_BTN_02 \
+         min: GENLIST_BTN_02_SIZE GENLIST_BTN_02_SIZE; \
+         max: GENLIST_BTN_02_SIZE GENLIST_BTN_02_SIZE;
+
+#define GENLIST_DATA_ITEM_NORMAL \
+      data.item: "stacking" "above"; \
+      data.item: "selectraise" "on"; \
+      data.item: "flips" "elm.flip.icon elm.flip.content"; \
+      data.item: "treesize" GENLIST_TREESIZE_DEFAULT;
+
+#define GENLIST_DESCRIPTION_FADE_ICON \
+   description { state: "fadeout" 0.0; \
+      inherit: "default" 0.0; \
+      color: 0 0 0 10; \
+      visible: 0; \
+   } \
+   description { state: "fadein" 0.0; \
+      inherit: "default" 0.0; \
+   } \
+
+#define GENLIST_DESCRIPTION_FADE \
+   description { state: "fadeout" 0.0; \
+      inherit: "default" 0.0; \
+      color: 255 255 255 10; \
+   } \
+   description { state: "fadein" 0.0; \
+      inherit: "default" 0.0; \
+   } \
+
+#define GENLIST_PART_ICON(NAME, DESCRIPION) \
+   part { name: NAME; \
+      scale: 1; \
+      type: SWALLOW; \
+      DESCRIPION \
+      GENLIST_DESCRIPTION_FADE_ICON \
+   }
+
+#define GENLIST_PART_ICON_REPEAT(NAME, DESCRIPION) \
+   part { name: NAME; \
+      scale: 1; \
+      repeat_events: 1; \
+      type: SWALLOW; \
+      DESCRIPION \
+      GENLIST_DESCRIPTION_FADE_ICON \
+   }
+
+#define GENLIST_PART_SPACER(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      mouse_events: 0; \
+      repeat_events: 1; \
+      type: SPACER; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_RECT(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      type: RECT; \
+      DESCRIPION \
+      GENLIST_DESCRIPTION_FADE \
+   }
+
+#define GENLIST_PART_IMAGE(NAME, DESCRIPION) \
+   part { name: NAME; \
+      scale: 1; \
+      type: IMAGE; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_TEXT(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      repeat_events: 0; \
+      type: TEXT; \
+      DESCRIPION \
+      GENLIST_DESCRIPTION_FADE \
+   }
+
+#define GENLIST_PART_TEXTBLOCK(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      repeat_events: 0; \
+      type: TEXTBLOCK; \
+      DESCRIPION \
+      GENLIST_DESCRIPTION_FADE \
+   }
+
+#define GENLIST_PARAM_LISTITEM \
+   color: GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "Tizen:style=Regular"; \
+      size: GENLIST_LIST_MAIN_TEXT_SIZE; \
+   }
+
+#define GENLIST_PARAM_LISTITEM_TB \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_main_text_unread"; \
+   }
+
+#define GENLIST_PARAM_SUBTITLE_TITLE_TB \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_subitem_title_text_unread"; \
+   }
+
+#define GENLIST_PARAM_LISTITEM_TIME_TB \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_time_text_unread"; \
+   }
+
+
+//      |   top  |
+// ---------------------
+// left |  HERE  | right
+// ---------------------
+//      | bottom |
+#define GENLIST_DESCRIPTION( left, right, top, bottom, param ) \
+      description { state: "default" 0.0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+// ---------------------
+// left |--> HERE
+// ---------------------
+#define GENLIST_DESCRIPTION_L( left, param ) \
+      description { state: "default" 0.0;\
+         align: 0 0.5; \
+         fixed: 1 0; \
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         rel2 { \
+            relative: 1 1;\
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+// ---------------------
+//   HERE  <--| right
+// ---------------------
+#define GENLIST_DESCRIPTION_R( right, param ) \
+      description { state: "default" 0.0;\
+         align: 1 0.5; \
+         fixed: 1 0; \
+         rel1 { \
+            relative: 0 0; \
+            to_x: right; \
+            to_y: "base"; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right; \
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+// --------------------------
+// left |--> HERE  <--| right
+// --------------------------
+#define GENLIST_DESCRIPTION_LR( left, right, param ) \
+      description { state: "default" 0.0;\
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+//         | top |
+// ---------------------
+// left |  HERE  | right
+#define GENLIST_DESCRIPTION_LRT( left, right, top, param ) \
+      description { state: "default" 0.0;\
+         align: 0.5 0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: top;\
+         }\
+         param\
+      }
+
+
+// left |  HERE  | right
+// ---------------------
+//      | bottom |
+#define GENLIST_DESCRIPTION_LRB( left, right, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0.5 1;\
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: bottom; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+// left |  HERE  | right
+// ---------------------
+//      | bottom |
+#define GENLIST_DESCRIPTION_CUSTOM_LRB_ALIGN_1( left, right, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 1 1;\
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: bottom; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+//         | TOP |
+// ---------------------
+// left |  HERE  | right
+#define GENLIST_DESCRIPTION_CUSTOM_LRT_ALIGN_1( left, right, top, param ) \
+      description { state: "default" 0.0;\
+         align: 1 0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: top;\
+         }\
+         param\
+      }
+
+// left |  HERE  | right | bottom
+#define GENLIST_DESCRIPTION_LRTB( left, right, top, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0.5 0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR; \
+   } \
+   description { state: "read" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_MAIN_TEXT_READ_COLOR; \
+   } \
+   description { state: "read,disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR; \
+   }
+
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_unread_dim"; \
+   } \
+   description { state: "read" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_read"; \
+   } \
+   description { state: "read,disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_read_dim"; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_focus"; \
+   }
+
+#define GENLIST_DESCRIPTION_SUBITEM_TITLE_OTHERS_TB \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_subitem_title_text_unread_dim"; \
+   } \
+   description { state: "read" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_subitem_title_text_read"; \
+   } \
+   description { state: "read,disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_subitem_title_text_read_dim"; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_subitem_title_text_focus"; \
+   }
+
+#define GENLIST_DESCRIPTION_LISTITEM_TIME_OTHERS_TB \
+       description { state: "disabled" 0.0; \
+          inherit: "default" 0.0; \
+          text.style: "genlist_style_list_time_text_unread_dim"; \
+       } \
+       description { state: "read" 0.0; \
+          inherit: "default" 0.0; \
+          text.style: "genlist_style_list_time_text_read"; \
+       } \
+       description { state: "read,disabled" 0.0; \
+          inherit: "default" 0.0; \
+          text.style: "genlist_style_list_time_text_read_dim"; \
+       } \
+       description { state: "selected" 0.0; \
+          inherit: "default" 0.0; \
+          text.style: "genlist_style_list_time_text_focus"; \
+       }
+
+
+#define GENLIST_PARAM_SUBITEM_DEFAULT \
+   color: GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "Tizen:style=Medium"; \
+      size: GENLIST_LIST_SUB_TEXT_SIZE; \
+   }
+
+#define GENLIST_PARAM_SUBITEM_TIME_DEFAULT \
+   color: GENLIST_LIST_SUB_TIME_DEFAULT_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "Tizen:style=Bold"; \
+      size: GENLIST_LIST_SUB_TEXT_SIZE; \
+   }
+
+#define GENLIST_PARAM_CUSTOM_SUBITEM_DEFAULT_ALIGN_1 \
+   color: GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR; \
+   text { \
+      align: 1 0.5; \
+      min: 0 1; \
+      font: "Tizen:style=Medium"; \
+      size: GENLIST_LIST_SUB_TEXT_SIZE; \
+   }
+
+#define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_SUB_TEXT_FOCUS_COLOR; \
+   }
+
+#define GENLIST_DESCRIPTION_SUBITEM_TIME_DEFAULT_OTHERS \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_SUB_TIME_DEFAULT_DIM_COLOR; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_SUB_TIME_FOCUS_COLOR; \
+   }
+
+#define GENLIST_PART_BG_IMAGE \
+         part { name: "bg_image_clip"; \
+            type: RECT; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+            description { state: "2depth" 0.0; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         part { name: "bg_image"; \
+            type: RECT; \
+            scale: 1; \
+            mouse_events: 1; \
+            description { state: "default" 0.0; \
+               color: 21 108 148 255; \
+            } \
+            description { state: "selected" 0.0; \
+               color: 21 108 148 77; \
+            } \
+            description { state: "disabled" 0.0; \
+               color: GENLIST_LIST_DIM_COLOR; \
+            } \
+            GENLIST_DESCRIPTION_FADE \
+         }
+
+#define GENLIST_PART_PERSPECTIVE_POINT \
+         GENLIST_PART_RECT("point", \
+            description { \
+               state: "default" 0.0; \
+               color: 0 0 0 0; \
+               rel1 { relative: 0.0 0.0; } \
+               rel2 { relative: 1.0 0.0; } \
+            } \
+         )
+
+#define GENLIST_PART_BASE \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               align: 0.5 0.5; \
+               color: 248 248 248 255; \
+            } \
+         } \
+         GENLIST_PART_PERSPECTIVE_POINT
+
+#define GENLIST_PART_BOTTOM_LINE \
+         part { name: "bottom_line"; \
+            type: RECT; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+               max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+               fixed: 0 1; \
+               align: 0.5 1; \
+               color: GENLIST_LIST_LINE1_COLOR; \
+               rel1.to: "bottom_line2"; \
+               rel2.to: "bottom_line2"; \
+               rel2.relative: 1 0; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_LIST_PRESS_COLOR; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_LIST_DIM_COLOR; \
+            } \
+            GENLIST_DESCRIPTION_FADE \
+         } \
+         part { name: "bottom_line2"; \
+            type: RECT; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+               max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+               fixed: 0 1; \
+               align: 0.5 1; \
+               color: GENLIST_LIST_LINE2_COLOR; \
+               rel1.to_x: "elm.padding.left"; \
+               rel1.relative: 1 0; \
+               rel2.to_x: "elm.padding.right"; \
+               rel2.relative: 0 1; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_LIST_PRESS_COLOR; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_LIST_DIM_COLOR; \
+            } \
+            GENLIST_DESCRIPTION_FADE \
+         }
+
+#define GENLIST_PART_EXPANDED_PAD \
+         part { name: "elm.swallow.pad"; \
+            type: SWALLOW; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               visible: 0; \
+               min: 0 0; \
+               fixed: 1 0; \
+               align: 0.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel2.relative: 0.0 1.0; \
+            } \
+         } \
+
+#define GENLIST_PART_PADDING_LEFT \
+         GENLIST_PART_EXPANDED_PAD \
+         GENLIST_PART_SPACER("elm.padding.left", \
+            GENLIST_DESCRIPTION_L("elm.swallow.pad",  \
+               min: GENLIST_PADDING_SIZE_LEFT 0; \
+               max: GENLIST_PADDING_SIZE_LEFT -1; \
+               fixed: 1 0; \
+            ) \
+         )
+
+#define GENLIST_PART_CUSTOM_PADDING_LEFT \
+         GENLIST_PART_EXPANDED_PAD \
+         GENLIST_PART_SPACER("elm.padding.left", \
+            GENLIST_DESCRIPTION_L("elm.swallow.pad",  \
+               min: GENLIST_PADDING_CUSTOM_SIZE_LEFT 0; \
+               max: GENLIST_PADDING_CUSTOM_SIZE_LEFT -1; \
+               fixed: 1 0; \
+            ) \
+         )
+
+#define GENLIST_PART_CUSTOM_PADDING_LEFT_EDIT \
+         GENLIST_PART_EXPANDED_PAD \
+         GENLIST_PART_SPACER("elm.padding.left", \
+            GENLIST_DESCRIPTION_L("elm.swallow.pad",  \
+               min: GENLIST_PADDING_CUSTOM_SIZE_LEFT_EDIT 0; \
+               max: GENLIST_PADDING_CUSTOM_SIZE_LEFT_EDIT -1; \
+               fixed: 1 0; \
+            ) \
+         )
+
+
+#define GENLIST_PART_CUSTOM_1ICON_PADDING_LEFT \
+         GENLIST_PART_EXPANDED_PAD \
+         GENLIST_PART_SPACER("elm.padding.left", \
+            GENLIST_DESCRIPTION_L("elm.swallow.pad",  \
+               min: GENLIST_PADDING_CUSTOM_1ICON_SIZE_LEFT 0; \
+               max: GENLIST_PADDING_CUSTOM_1ICON_SIZE_LEFT -1; \
+               fixed: 1 0; \
+            ) \
+         )
+
+#define GENLIST_PART_PADDING_RIGHT \
+         GENLIST_PART_SPACER("elm.padding.right", \
+            description { state: "default" 0.0; \
+               min: GENLIST_PADDING_SIZE_RIGHT 0; \
+               max: GENLIST_PADDING_SIZE_RIGHT -1; \
+               fixed: 1 0; \
+               align: 1.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 1 0; \
+            } \
+         )
+
+#define GENLIST_PART_CUSTOM_1ICON_PADDING_RIGHT \
+         GENLIST_PART_SPACER("elm.padding.right", \
+            description { state: "default" 0.0; \
+               min: GENLIST_PADDING_CUSTOM_1ICON_SIZE_RIGHT 0; \
+               max: GENLIST_PADDING_CUSTOM_1ICON_SIZE_RIGHT -1; \
+               fixed: 1 0; \
+               align: 1.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 1 0; \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_TOP_2LINE \
+         GENLIST_PART_SPACER("elm.padding.top", \
+            description { \
+               state: "default" 0.0; \
+               min: 0 GENLIST_PADDING_SIZE_TOP_2LINE; \
+               max: -1 GENLIST_PADDING_SIZE_TOP_2LINE; \
+               fixed: 0 1; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel2.relative: 1.0 0.0; \
+               align: 0.5 0.0; \
+            } \
+         )
+
+#define GENLIST_PART_CUSTOM_PADDING_TOP_2LINE \
+         GENLIST_PART_SPACER("elm.padding.top", \
+            description { \
+               state: "default" 0.0; \
+               min: 0 GENLIST_PADDING_CUSTOM_SIZE_TOP_2LINE; \
+               max: -1 GENLIST_PADDING_CUSTOM_SIZE_TOP_2LINE; \
+               fixed: 0 1; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel2.relative: 1.0 0.0; \
+               align: 0.5 0.0; \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_BOTTOM_2LINE \
+         GENLIST_PART_SPACER("elm.padding.bottom", \
+            description { state: "default" 0.0; \
+               min: 0 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
+               max: -1 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
+               fixed: 0 1; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 0.0 1.0; \
+               align: 0.5 1.0; \
+            } \
+         )
+
+#define GENLIST_PART_CUSTOM_PADDING_BOTTOM_2LINE \
+         GENLIST_PART_SPACER("elm.padding.bottom", \
+            description { state: "default" 0.0; \
+               min: 0 GENLIST_PADDING_CUSTOM_SIZE_BOTTOM_2LINE; \
+               max: -1 GENLIST_PADDING_CUSTOM_SIZE_BOTTOM_2LINE; \
+               fixed: 0 1; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 0.0 1.0; \
+               align: 0.5 1.0; \
+            } \
+         )
+
+#define GENLIST_PART_ICON_CHECK_RADIO_L(NAME, LEFT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_L(LEFT, \
+         GENLIST_PARAM_ICON_CHECK_RADIO \
+      ) \
+   )
+
+
+#define GENLIST_PART_ICON_BIG_L(NAME, LEFT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_L(LEFT, \
+         fixed: 1 1; \
+         GENLIST_PARAM_ICON_BIG \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_BIG_L_CUSTOM_THUMBNAIL(NAME, LEFT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_L(LEFT, \
+         fixed: 1 1; \
+         GENLIST_PARAM_ICON_BIG_CUSTOM_THUMBNAIL \
+      ) \
+   )
+
+#define GENLIST_PART_BG(NAME, PART , COLOR) \
+         GENLIST_PART_RECT(NAME, \
+            description { state: "default" 0.0; \
+               rel1 { \
+                  relative: 0 0; \
+                  to: PART; \
+               } \
+               rel2 { \
+                  relative: 1 1; \
+                  to: PART; \
+               } \
+               color: COLOR; \
+            } \
+         )
+
+#define GENLIST_PART_ICON_BIG_L_CUSTOM_FOLDER_ICON(NAME, LEFT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_L(LEFT, \
+         fixed: 1 1; \
+         GENLIST_PARAM_ICON_BIG_CUSTOM_FOLDER_ICON \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_BTN_02_R(NAME, RIGHT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_R(RIGHT, \
+         GENLIST_PARAM_ICON_BTN_02 \
+      ) \
+   )
+
+#define GENLIST_PART_PADDING_L( NAME, LEFT ) \
+         GENLIST_PART_SPACER(NAME, \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+               max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+               align: 0 0.5; \
+               rel1 { \
+                  relative: 1 0; \
+                  to_x: LEFT; \
+               } \
+               rel2 { \
+                  relative: 1 1; \
+                  to_x: LEFT; \
+               } \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_R( NAME, RIGHT ) \
+         GENLIST_PART_SPACER(NAME, \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+               max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+               align: 1 0.5; \
+               rel1 { \
+                  relative: 0 0; \
+                  to_x: RIGHT; \
+               } \
+               rel2 { \
+                  relative: 0 1; \
+                  to_x: RIGHT; \
+               } \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_PLAY_ICON_L( NAME, RIGHT ) \
+         GENLIST_PART_SPACER(NAME, \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               min: GENLIST_PADDING_SIZE_PLAY_ICON_L 0; \
+               max: GENLIST_PADDING_SIZE_PLAY_ICON_L -1; \
+               align: 1 0.5; \
+               rel1 { \
+                  relative: 0 0; \
+                  to_x: RIGHT; \
+               } \
+               rel2 { \
+                  relative: 0 1; \
+                  to_x: RIGHT; \
+               } \
+            } \
+         )
+
+
+#define GENLIST_PART_LISTITEM_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_LISTITEM \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   )
+
+#define GENLIST_PART_LISTITEM_TB_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_LISTITEM_TB \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_LRT(NAME, HEIGHT, LEFT, RIGHT, TOP) \
+   GENLIST_PART_SPACER(NAME, \
+      GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \
+         min: 0 HEIGHT; \
+         fixed: 1 1; \
+      ) \
+   )
+
+#define GENLIST_PART_SUBITEM_LRB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+         min: 0 HEIGHT; \
+         fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_TIME_LRB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
+          GENLIST_PART_TEXT(NAME, \
+                 GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+                        min: 0 HEIGHT; \
+                        fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \
+                        GENLIST_PARAM_SUBITEM_TIME_DEFAULT \
+                 ) \
+                 GENLIST_DESCRIPTION_SUBITEM_TIME_DEFAULT_OTHERS \
+          )
+
+#define GENLIST_PART_SUBITEM_TIME_BLOCK_LRB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
+         GENLIST_PART_TEXTBLOCK(NAME, \
+                GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+                       min: 0 HEIGHT; \
+                       GENLIST_PARAM_LISTITEM_TIME_TB \
+                ) \
+                GENLIST_DESCRIPTION_LISTITEM_TIME_OTHERS_TB \
+        )
+
+
+#define GENLIST_PART_CUSTOM_SUBITEM_LRB_ALIGN_1(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_CUSTOM_LRB_ALIGN_1(LEFT, RIGHT, BOTTOM, \
+         min: 0 HEIGHT; \
+         fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \
+         GENLIST_PARAM_CUSTOM_SUBITEM_DEFAULT_ALIGN_1 \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+// only fot recent 1 text style
+#define GENLIST_PARAM_RECENTITEM \
+   color: GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "Tizen:style=Bold"; \
+      size: GENLIST_LIST_RECENT_TEXT_SIZE; \
+   }
+
+#define GENLIST_PART_CUSTOM_1TEXT_PADDING_LEFT \
+         GENLIST_PART_EXPANDED_PAD \
+         GENLIST_PART_SPACER("elm.padding.left", \
+            GENLIST_DESCRIPTION_L("elm.swallow.pad",  \
+               min: GENLIST_PADDING_CUSTOM_1TEXT_LEFT 0; \
+               max: GENLIST_PADDING_CUSTOM_1TEXT_LEFT -1; \
+               fixed: 1 0; \
+            ) \
+         )
+
+#define GENLIST_PART_CUSTOM_1TEXT_PADDING_RIGHT \
+         GENLIST_PART_SPACER("elm.padding.right", \
+            description { state: "default" 0.0; \
+               min: GENLIST_PADDING_CUSTOM_1TEXT_RIGHT 0; \
+               max: GENLIST_PADDING_CUSTOM_1TEXT_RIGHT -1; \
+               fixed: 1 0; \
+               align: 1.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 1 0; \
+            } \
+         )
+
+#define GENLIST_PART_CUSTOM_1TEXT_PADDING_TOP \
+                        GENLIST_PART_SPACER("elm.padding.top", \
+                               description { \
+                                  state: "default" 0.0; \
+                                  min: 0 GENLIST_PADDING_CUSTOM_1TEXT_TOP; \
+                                  max: -1 GENLIST_PADDING_CUSTOM_1TEXT_TOP; \
+                                  fixed: 0 1; \
+                                  rel1.to: "base"; \
+                                  rel2.to: "base"; \
+                                  rel2.relative: 1.0 0.0; \
+                                  align: 0.5 0.0; \
+                               } \
+                        )
+
+#define GENLIST_PART_CUSTOM_1TEXT_PADDING_BOTTOM \
+                        GENLIST_PART_SPACER("elm.padding.bottom", \
+                               description { state: "default" 0.0; \
+                                  min: 0 GENLIST_PADDING_CUSTOM_1TEXT_BOTTOM; \
+                                  max: -1 GENLIST_PADDING_CUSTOM_1TEXT_BOTTOM; \
+                                  fixed: 0 1; \
+                                  rel1.to: "base"; \
+                                  rel2.to: "base"; \
+                                  rel1.relative: 0.0 1.0; \
+                                  align: 0.5 1.0; \
+                               } \
+                        )
+
+#define GENLIST_PART_RECENTLY_ITEM_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_RECENTITEM \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   )
+
+// If check is swallowed, genlist selected/unselected should be synched with check.
+
+#define GENLIST_PROGRAM_CHECK(CHECK, TARGET1, TARGET2, TARGET3) \
+         program { name: "selected"CHECK; \
+            signal: "mouse,down,1"; \
+            source: CHECK; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:CHECK, st, 30, vl); \
+               if (strcmp(st, "selected")) \
+                  set_state(PART:"bg_image", "selected", 0.0); \
+                                 set_state(PART:TARGET1, "selected", 0.0); \
+                                 set_state(PART:TARGET2, "selected", 0.0); \
+                                 set_state(PART:TARGET3, "selected", 0.0); \
+            } \
+         } \
+         program { name: "unselected"CHECK; \
+            signal: "mouse,up,1"; \
+            source: CHECK; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:CHECK, st, 30, vl); \
+               if (strcmp(st, "disabled")) \
+                  set_state(PART:"bg_image", "default", 0.0); \
+                                 set_state(PART:TARGET1, "default", 0.0); \
+                                 set_state(PART:TARGET2, "default", 0.0); \
+                                 set_state(PART:TARGET3, "default", 0.0); \
+            } \
+         }
+
+// 2.2.7 Genlist_Edit mode (Rename)
+// FIXME: padding is not needed when swallow content is NULL.
+// But how can edje kwno existence of swallow content?
+#define GENLIST_PART_FLIP \
+         part { name: "elm.flip.event_block";\
+            type: RECT;\
+            mouse_events: 0; \
+            repeat_events: 0;\
+            description { state: "default" 0.0;\
+               visible: 0; \
+            } \
+            description { state: "flip_enabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+               color: GENLIST_LIST_BG_COLOR;\
+            }\
+         }\
+         part { name: "elm.flip.padding.left"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 26 0; \
+               max: 26 -1; \
+               fixed: 1 0; \
+               visible: 0; \
+               align: 0 0.5; \
+               rel1 { \
+                  relative: 0 0; \
+                  to: "base"; \
+               } \
+               rel2 { \
+                  relative: 0 1; \
+                  to: "base"; \
+               } \
+            } \
+         } \
+         part { name: "elm.flip.padding.right"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 26 0; \
+               max: 26 -1; \
+               fixed: 1 0; \
+               visible: 0; \
+               align: 1 0.5; \
+               rel1 { \
+                  relative: 1 0; \
+                  to: "base"; \
+               } \
+               rel2 { \
+                  relative: 1 1; \
+                  to: "base"; \
+               } \
+            } \
+         } \
+         part { name: "elm.flip.content"; \
+            type: SWALLOW; \
+            scale: 1; \
+            GENLIST_DESCRIPTION_LR("elm.flip.padding.left", "elm.flip.padding.icon.left", \
+               aspect: 1 1; visible: 0; ) \
+            description { state: "flip_enabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         } \
+         GENLIST_PART_PADDING_R("elm.flip.padding.icon.left", "elm.flip.icon") \
+         GENLIST_PART_ICON( "elm.flip.icon", \
+            GENLIST_DESCRIPTION_R("elm.flip.padding.right", \
+               visible: 0; \
+               aspect: 1 1; \
+               align: 1 0.5; \
+               max: 154 74;) \
+            description { state: "flip_enabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         )
+
+
+#define GENLIST_PART_PROGRESS_BAR_ICON( NAME, REL1_TO, REL2_TO ) \
+       part { name: NAME; \
+               scale: 1; \
+               repeat_events: 0; \
+               type: SWALLOW; \
+               description { state: "default" 0.0; \
+                  min: 0 GENLIST_ICON_CUSTOM_VIDEO_PROGRESSBAR_H; \
+                  fixed: 0 1; \
+                  align: 0.5 1.0; \
+                  rel1 { \
+                         relative: GENLIST_PROGRESSBAR_L/GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH GENLIST_PROGRESSBAR_T/GENLIST_ICON_CUSTOM_THUMBNAIL_HEIGHT; \
+                         to: REL1_TO; \
+            } \
+                  rel2 { \
+                         relative: GENLIST_PROGRESSBAR_R/GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH GENLIST_PROGRESSBAR_B/GENLIST_ICON_CUSTOM_THUMBNAIL_HEIGHT; \
+                         to: REL2_TO; \
+                  } \
+               } \
+     }
+
+#define GENLIST_PART_ICON_RT_CUSTOM_LOCK(NAME, REL_TO) \
+       part { name: NAME; \
+               scale: 1; \
+               repeat_events: 0; \
+               type: SWALLOW; \
+               description { state: "default" 0.0; \
+                  GENLIST_PARAM_ICON_RT_CUSTOM_LOCK \
+                  fixed: 1 1; \
+                  align: 1.0 0.0; \
+                  rel1 { \
+                         relative: 1.0 0.0;\
+                         to: REL_TO; offset:0 4;\
+                       } \
+                  rel2 { \
+                         to: REL_TO; offset:-4 0;\
+                  } \
+               } \
+        }
+
+#define GENLIST_PART_ICON_RT_CUSTOM_DROPBOX(NAME, REL_TO) \
+       part { name: NAME; \
+               scale: 1; \
+               repeat_events: 0; \
+               type: SWALLOW; \
+               description { state: "default" 0.0; \
+                  GENLIST_PARAM_ICON_RT_CUSTOM_DROPBOX \
+                  fixed: 1 1; \
+                  align: 0.0 1.0; \
+                  rel1 { \
+                         relative: 0.0 1.0;\
+                         to: REL_TO; offset:10 0;\
+                       } \
+                  rel2 { \
+                         to: REL_TO; offset:0 -20;\
+                  } \
+               } \
+        }
+
+#define GENLIST_PROGRAM_CLICK_SOUND( TARGET ) \
+      program { name: "play_sound"TARGET; \
+         signal: "mouse,clicked,1"; \
+         source: TARGET; \
+         script { \
+            new st[31]; \
+            new Float:vl; \
+            get_state(PART:"base", st, 30, vl); \
+            if (strcmp(st, "disabled")) \
+               run_program(PROGRAM:"play_button_press"TARGET); \
+         } \
+      } \
+      program { name: "play_button_press"TARGET; \
+         action: PLAY_SAMPLE "button-pressed" 1.0; \
+      }
+
+/*#define GENLIST_PROGRAM_CLICK_SOUND( TARGET ) \
+      program { name: "touch_click"TARGET; \
+         signal: "mouse,clicked,1"; \
+         source: TARGET; \
+         action: PLAY_SAMPLE "button-pressed" 1.0; \
+      }*/
+
+#define GENLIST_PROGRAM_DISABLED_BOTTOMLINE( TARGET ) \
+         program { name: "enabled"; \
+            signal: "elm,state,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "bg_image"; \
+            target: "bottom_line"; \
+            target: "bottom_line2"; \
+            TARGET \
+         } \
+         program { name: "disabled"; \
+            signal: "elm,state,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "disabled" 0.0; \
+            target: "bg_image"; \
+            target: "bottom_line"; \
+            target: "bottom_line2"; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_SELECT_BOTTOMLINE( TARGET ) \
+         program { name: "selected"; \
+            signal: "elm,state,selected"; \
+            source: "elm"; \
+            action: STATE_SET "selected" 0.0; \
+            target: "bg_image"; \
+            target: "bottom_line"; \
+            target: "bottom_line2"; \
+            TARGET \
+         } \
+         program { name: "unselected"; \
+            signal: "elm,state,unselected"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "bg_image"; \
+            target: "bottom_line"; \
+            target: "bottom_line2"; \
+            TARGET \
+            transition: LINEAR 0.1; \
+         }
+
+#define GENLIST_PROGRAM_EXPAND_FADE( TARGET ) \
+   program { name: "bg_color_change"; \
+      signal: "bg_color_change"; \
+      action: STATE_SET "2depth" 0.0; \
+      target: "bg_image_clip"; \
+      after: "expand_start_fade"; \
+   } \
+   program { name: "expand_start_fade"; \
+      signal: "flip_item"; \
+      action: STATE_SET "fadeout" 0.0; \
+      target: "bg_image"; \
+      TARGET \
+      after: "expand_end_fade"; \
+   } \
+   program { name: "expand_end_fade"; \
+      action: STATE_SET "default" 0.0; \
+      transition: DECELERATE 0.3; \
+      target: "bg_image"; \
+      TARGET \
+   } \
+   program { name: "contract_fade"; \
+      signal: "elm,state,contract_flip"; \
+      action: STATE_SET "fadein" 0.0; \
+      target: "bg_image"; \
+      TARGET \
+      after: "contract_end_fade"; \
+   } \
+   program { name: "contract_end_fade"; \
+      action: STATE_SET "fadeout" 0.0; \
+      transition: ACCELERATE 0.3; \
+      target: "bg_image"; \
+      TARGET \
+   }
+
+#define GENLIST_PROGRAM_FLIP \
+         program { name: "flip_enabled"; \
+            signal:  "elm,state,flip,enabled"; \
+            source:  "elm"; \
+            action:  STATE_SET "flip_enabled" 0.0; \
+            target: "elm.flip.event_block"; \
+            after: "flip_enabled_next"; \
+         } \
+         program { name: "flip_enabled_next"; \
+            action:  STATE_SET "flip_enabled" 0.0; \
+            transition: DECELERATE 0.5; \
+            target: "elm.flip.content"; \
+            target: "elm.flip.icon"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal:  "elm,state,flip,disabled"; \
+            source:  "elm"; \
+            action:  STATE_SET "default" 0.0; \
+            transition: DECELERATE 0.5; \
+            target: "elm.flip.event_block"; \
+            target: "elm.flip.content"; \
+            target: "elm.flip.icon"; \
+         }
+
+#define GENLIST_PROGRAM_DEFAULT( TARGET ) \
+         program { name: "default"; \
+            signal: "elm,state,default"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         } \
+
+
+#define GENLIST_PROGRAMS_NORMAL( TARGET ) \
+         programs { \
+                       GENLIST_PROGRAM_DEFAULT( TARGET \
+                               target: "bottom_line"; \
+                               target: "bottom_line2"; \
+                               target: "bg_image"; \
+                               target: "elm.padding.left"; \
+                               target: "elm.padding.right"; \
+                       ) \
+            GENLIST_PROGRAM_DISABLED_BOTTOMLINE( TARGET ) \
+            GENLIST_PROGRAM_SELECT_BOTTOMLINE( TARGET ) \
+            GENLIST_PROGRAM_CLICK_SOUND( "bg_image" ) \
+            GENLIST_PROGRAM_EXPAND_FADE( target: "bottom_line"; target: "bottom_line2"; TARGET ) \
+            GENLIST_PROGRAM_FLIP \
+         }
+
+#define GENLIST_PROGRAMS_NORMAL_NO_BG_SOUND( TARGET ) \
+               programs { \
+                       GENLIST_PROGRAM_DISABLED_BOTTOMLINE( TARGET ) \
+                       GENLIST_PROGRAM_SELECT_BOTTOMLINE( TARGET ) \
+                       GENLIST_PROGRAM_EXPAND_FADE( target: "bottom_line"; target: "bottom_line2"; TARGET ) \
+                       GENLIST_PROGRAM_FLIP \
+               }
+
+//Use for BT keybord focus start
+#define GENLIST_PROGRAM_FOCUS \
+                program { name: "focused"; \
+                       signal: "elm,action,focus_highlight,show"; \
+                       source: "elm"; \
+                       action: STATE_SET "enabled" 0.0; \
+                       target: "focus_part"; \
+                } \
+                program { name: "unfocused"; \
+                       signal: "elm,action,focus_highlight,hide"; \
+                       source: "elm"; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "focus_part"; \
+                }
+
+#define GENLIST_PROGRAM_FOCUS_IMAGE \
+program { name: "action_focus"; \
+ signal: "elm,action,focus_highlight,show"; \
+ source: "elm"; \
+ action: STATE_SET "enabled" 0.0; \
+ target: "focus_bg"; \
+} \
+program { name: "action_unfocus"; \
+ signal: "elm,action,focus_highlight,hide"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "focus_bg"; \
+}
+
+
+#define GENLIST_PART_FOCUS_IMAGE \
+   GENLIST_PART_IMAGE("focus_part", \
+      mouse_events: 0; \
+      description { state: "default" 0.0; \
+         visible: 0; \
+         image { \
+            normal: GENLIST_LIST_ITEM_FOCUS_BG; \
+            border: 7 7 7 7; \
+         } \
+      } \
+      description { state: "enabled" 0.0; \
+         inherit: "default" 0.0; \
+         visible: 1; \
+      } \
+   )
+
+#define GENLIST_PART_FOCUS \
+   GENLIST_PART_IMAGE("focus_part", \
+      mouse_events: 0; \
+      description { state: "default" 0.0; \
+         visible: 0; \
+         image { \
+            normal: GENLIST_LIST_ITEM_FOCUS_BG; \
+            border: 7 7 7 7; \
+         } \
+      } \
+      description { state: "enabled" 0.0; \
+         inherit: "default" 0.0; \
+         visible: 1; \
+      } \
+   )
+//Use for BT keybord focus end
+
+
+   group { name: "elm/genlist/item/video/normal_list/default";
+          alias: "elm/genlist/item_compress/video/normal_list/default";
+          alias: "elm/genlist/tree/video/normal_list/default";
+          alias: "elm/genlist/tree_compress/video/normal_list/default";
+
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
+      data.item: "contents" "elm.thumbnail.icon elm.progressbar.icon elm.lock.icon elm.dropbox.icon";
+
+         images {
+         image: GENLIST_LIST_ITEM_FOCUS_BG COMP;
+      }
+
+      parts {
+         GENLIST_PART_BASE
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_CUSTOM_PADDING_LEFT
+         GENLIST_PART_PADDING_RIGHT
+         GENLIST_PART_CUSTOM_PADDING_TOP_2LINE
+         GENLIST_PART_CUSTOM_PADDING_BOTTOM_2LINE
+
+                GENLIST_PART_BG("elm.thumbnail.icon.bg", "elm.thumbnail.icon", GENLIST_LIST_THUMBNAIL_BG)
+         GENLIST_PART_ICON_BIG_L_CUSTOM_THUMBNAIL("elm.thumbnail.icon", "elm.padding.left")
+         GENLIST_PART_ICON_RT_CUSTOM_LOCK("elm.lock.icon", "elm.thumbnail.icon")
+         GENLIST_PART_ICON_RT_CUSTOM_DROPBOX("elm.dropbox.icon", "elm.thumbnail.icon")
+         GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.thumbnail.icon")
+         GENLIST_PART_LISTITEM_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN, "elm.padding.icon.right", "elm.padding.right", "elm.padding.top", "elm.text.2",)
+         GENLIST_PART_SUBITEM_TIME_BLOCK_LRB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB, "elm.padding.icon.right", "elm.padding.right", "elm.padding.bottom")
+         GENLIST_PART_CUSTOM_SUBITEM_LRB_ALIGN_1("elm.text.3", GENLIST_HEIGHT_2LINE_SUB, "elm.padding.icon.right", "elm.padding.right", "elm.padding.bottom")
+         GENLIST_PART_PROGRESS_BAR_ICON("elm.progressbar.icon", "elm.thumbnail.icon", "elm.thumbnail.icon")
+
+         GENLIST_PART_FLIP
+         GENLIST_PART_FOCUS
+        // GENLIST_PART_FOCUS_IMAGE
+      }
+      GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3"; )
+      GENLIST_PROGRAM_FOCUS
+      GENLIST_PROGRAM_CLICK_SOUND("elm.thumbnail.icon")
+      GENLIST_PROGRAM_CLICK_SOUND("elm.progressbar.icon")
+      GENLIST_PROGRAM_CLICK_SOUND("elm.text.1")
+      GENLIST_PROGRAM_CLICK_SOUND("elm.text.2")
+      GENLIST_PROGRAM_CLICK_SOUND("elm.text.3")
+   }
+
+#ifdef USE_VIDEO_DOWNLOAD
+/*video download title  item*/
+#define VD_TITLE_TEXT_COLOR       102 102 102 255
+#define VD_TITLE_TEXT_SIZE       32
+#define VD_TITLE_H      76
+#define VD_TITLE_BOTTOM_LINE_COLOR       102 102 102 255
+#define VD_TITLE_BOTTOM_LINE_H      4
+/*video download  genlist item*/
+#define VD_GENLIST_ITEM_H      230
+#define VD_GENLIST_ITEM_LEFT      24
+#define VD_GENLIST_ITEM_TOP      16
+#define VD_GENLIST_TEXT1_BOTTOM      6
+#define VD_GENLIST_TEXT2_BOTTOM      2
+#define VD_GENLIST_TEXT3_BOTTOM      15
+#define VD_GENLIST_ITEM_BOTTOM      16
+#define VD_GENLIST_ITEM_THUMBNAIL_W 132
+#define VD_GENLIST_ITEM_THUMBNAIL_H 196
+#define VD_GENLIST_ITEM_DOWNLAOD_ICON_W 72
+#define VD_GENLIST_ITEM_DOWNLAOD_ICON_H 72
+#define VD_GENLIST_ITEM_DOWNLAOD_ICON_L_W 15
+#define VD_GENLIST_ITEM_TEXT1_H        54
+#define VD_GENLIST_ITEM_SPACER_CENTER_TOP_H    59
+#define VD_GENLIST_ITEM_SPACER_CENTER_TOP_H2   19
+#define VD_GENLIST_ITEM_TEXT2_TOP_H 1
+#define VD_GENLIST_ITEM_TEXT2_H 40
+#define VD_GENLIST_ITEM_TEXT3_H 32
+#define VD_GENLIST_ITEM_TEXT4_TOP_H 6
+#define VD_GENLIST_ITEM_TEXT4_H 30
+#define VD_GENLIST_ITEM_TEXT9_H 70
+#define VD_GENLIST_ITEM_PROGRESSBAR_BOTTOM_H 6
+#define VD_GENLIST_ITEM_PROGRESSBAR_W 335
+#define VD_GENLIST_ITEM_PROGRESSBAR_H 11
+#define VD_GENLIST_ITEM_PROGRESSBAR_BG_W 381
+#define VD_GENLIST_ITEM_PROGRESSBAR_BG_H 7
+#define VD_GENLIST_ITEM_TEXT1_COLOR 0 0 0 255
+#define VD_GENLIST_ITEM_TEXT1_STYLE "Tizen:style=Regular"
+#define VD_GENLIST_ITEM_TEXT1_SIZE 35
+#define VD_GENLIST_ITEM_TEXT2_COLOR 102 102 102 255
+#define VD_GENLIST_ITEM_TEXT2_STYLE "Tizen:style=Regular"
+#define VD_GENLIST_ITEM_TEXT2_SIZE 28
+#define VD_GENLIST_ITEM_TEXT3_COLOR 14 104 173 255
+#define VD_GENLIST_ITEM_TEXT3_COLOR_2 79 79 79 255
+#define VD_GENLIST_ITEM_TEXT3_STYLE "Tizen:style=Regular"
+#define VD_GENLIST_ITEM_TEXT3_SIZE 25
+#define VD_GENLIST_ITEM_TEXT4_COLOR 14 104 173 255
+#define VD_GENLIST_ITEM_TEXT4_STYLE "Tizen:style=Regular"
+#define VD_GENLIST_ITEM_TEXT4_SIZE 25
+#define VD_GENLIST_ITEM_THUMBNAIL_BG "T01-2_video_thumbnail_view_bg.png"
+#define VD_GENLIST_ITEM_HD_SD_ICON_W 42
+#define VD_GENLIST_ITEM_HD_SD_ICON_H 32
+#define VD_HD_SD_ICON_PADDING_H 7
+
+styles {
+   style { name: "rent_text_style";
+               base: "font=Tizen:style=Regular font_size=30 color=#3673B6FF wrap=mixed";
+               tag:  "br" "\n";
+               tag:  "ps" "ps";
+               tag:  "tab" "\t";
+               tag:  "b" "+ font=Tizen:style=Regular";
+               tag:  "match" "+ color=#3F8DAD";
+   }
+}
+
+#define VD_GENLIST_PART_BASE( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         GENLIST_PART_PERSPECTIVE_POINT
+
+
+#define VD_TITLE_BOTTOM_LINE \
+           part { name: "bottom_line"; \
+              type: RECT; \
+              scale: 1; \
+              mouse_events: 0; \
+              description { state: "default" 0.0; \
+                 min: 0 VD_TITLE_BOTTOM_LINE_H; \
+                 fixed: 0 1; \
+                 visible: 1; \
+                 color: VD_TITLE_BOTTOM_LINE_COLOR; \
+                 rel1 { \
+                    relative: 1.0 0.0; \
+                    to_x: "elm.padding.left"; \
+                    to_y: "elm.padding.bottom"; \
+                    offset: 0 -(VD_TITLE_BOTTOM_LINE_H); \
+                 } \
+                 rel2 { \
+                    relative: 0.0 0.0; \
+                    to_x: "elm.padding.right"; \
+                    to_y: "elm.padding.bottom"; \
+                 } \
+              } \
+           }
+
+#define VD_TITLE_TEXT \
+      color: VD_TITLE_TEXT_COLOR; \
+      text { \
+        align: 0 0.5; \
+        min: 0 1; \
+        font: "Tizen:style=Bold"; \
+        size: VD_TITLE_TEXT_SIZE; \
+      }
+
+#define VD_TITLE_TEXT_PART(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         VD_TITLE_TEXT \
+      ) \
+   )
+
+#define VD_GENLIST_ITEM_PADDING_LEFT \
+           GENLIST_PART_EXPANDED_PAD \
+           GENLIST_PART_SPACER("elm.padding.left", \
+              GENLIST_DESCRIPTION_L("elm.swallow.pad",  \
+                 min: VD_GENLIST_ITEM_LEFT 0; \
+                 max: VD_GENLIST_ITEM_LEFT -1; \
+                 fixed: 1 0; \
+              ) \
+           )
+#define VD_GENLIST_ITEM_PADDING_TOP \
+        GENLIST_PART_SPACER("elm.padding.top", \
+           description { \
+              state: "default" 0.0; \
+              min: 0 VD_GENLIST_ITEM_TOP; \
+              max: -1 VD_GENLIST_ITEM_TOP; \
+              fixed: 0 1; \
+              rel1.to: "base"; \
+              rel2.to: "base"; \
+              rel2.relative: 1.0 0.0; \
+              align: 0.5 0.0; \
+           } \
+        )
+
+#define VD_GENLIST_ITEM_PADDING_BOTTOM \
+        GENLIST_PART_SPACER("elm.padding.bottom", \
+           description { state: "default" 0.0; \
+              min: 0 VD_GENLIST_ITEM_BOTTOM; \
+              max: -1 VD_GENLIST_ITEM_BOTTOM; \
+              fixed: 0 1; \
+              rel1.to: "base"; \
+              rel2.to: "base"; \
+              rel1.relative: 0.0 1.0; \
+              align: 0.5 1.0; \
+           } \
+        )
+
+#define VD_GENLIST_ITEM_THUMBNAIL(NAME, LEFT, RIGHT, TOP, BOTTOM) \
+       part { name: NAME"_bg"; \
+               mouse_events: 0; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       align: 0 0.5; \
+                       fixed: 1 1; \
+                       min: VD_GENLIST_ITEM_THUMBNAIL_W VD_GENLIST_ITEM_THUMBNAIL_H; \
+                       max: VD_GENLIST_ITEM_THUMBNAIL_W VD_GENLIST_ITEM_THUMBNAIL_H; \
+                       rel1 { \
+                               relative: 1 1; \
+                               to_x: LEFT; \
+                               to_y: TOP; \
+                       }\
+                       rel2 {\
+                               relative: 0 0;\
+                               to_x: RIGHT;\
+                               to_y: BOTTOM;\
+                       }\
+                       image { \
+                               normal: VD_GENLIST_ITEM_THUMBNAIL_BG; \
+                               border_scale:1; \
+                               border: 4 4 4 4; \
+                       } \
+               } \
+       }\
+       GENLIST_PART_ICON (NAME, \
+               description { state: "default" 0.0;\
+                       rel1 { \
+                               relative: 0 0; \
+                               offset: -4 -4; \
+                               to: NAME"_bg"; \
+                       }\
+                       rel2 {\
+                               relative: 1 1;\
+                               offset: 4 4; \
+                               to: NAME"_bg"; \
+                       }\
+               }\
+       )
+
+#define VD_GENLIST_ITEM_DOWNLOAD_ICON(NAME, RIGHT) \
+      GENLIST_PART_ICON(NAME, \
+        GENLIST_DESCRIPTION_R(RIGHT, \
+            min: VD_GENLIST_ITEM_DOWNLAOD_ICON_W VD_GENLIST_ITEM_DOWNLAOD_ICON_H; \
+             max: VD_GENLIST_ITEM_DOWNLAOD_ICON_W VD_GENLIST_ITEM_DOWNLAOD_ICON_H; \
+        ) \
+      )
+
+#define VD_GENLIST_ITEM_PLAY_ICON(NAME, RIGHT) \
+                 GENLIST_PART_ICON(NAME, \
+                GENLIST_DESCRIPTION_R(RIGHT, \
+                        min: VD_GENLIST_ITEM_DOWNLAOD_ICON_W VD_GENLIST_ITEM_DOWNLAOD_ICON_H; \
+                                max: VD_GENLIST_ITEM_DOWNLAOD_ICON_W VD_GENLIST_ITEM_DOWNLAOD_ICON_H; \
+                ) \
+                 )
+
+#define VD_GENLIST_ITEM_HD_SD_ICON( NAME, LEFT, TOP ) \
+       part { name: NAME; \
+                       scale: 1; \
+                       type: SWALLOW; \
+                       description { state: "default" 0.0; \
+                          fixed: 1 1; \
+                          min: VD_GENLIST_ITEM_HD_SD_ICON_W VD_GENLIST_ITEM_HD_SD_ICON_H; \
+                               max: VD_GENLIST_ITEM_HD_SD_ICON_W VD_GENLIST_ITEM_HD_SD_ICON_H; \
+                          align: 0.0 0.0; \
+                          rel1 { \
+                                 relative: 1 1; \
+                                 to_x: LEFT; \
+                                 to_y: TOP; \
+                                 offset: 0 VD_HD_SD_ICON_PADDING_H; \
+                          } \
+                          rel2 { \
+                                 relative: 1 1; \
+                                 to_x: LEFT; \
+                                 to_y: TOP; \
+                                 offset: 0 VD_HD_SD_ICON_PADDING_H; \
+                          } \
+                       } \
+            }
+
+#define VD_GENLIST_ITEM_PROGRESSBAR_ICON( NAME, LEFT, TOP, RIGHT ) \
+       part { name: NAME; \
+                       scale: 1; \
+                       type: SWALLOW; \
+                       description { state: "default" 0.0; \
+                          fixed: 0 1; \
+                          min: VD_GENLIST_ITEM_PROGRESSBAR_W VD_GENLIST_ITEM_PROGRESSBAR_H; \
+                          align: 0.0 0.0; \
+                          rel1 { \
+                                 relative: 1 1; \
+                                 to_x: LEFT; \
+                                 to_y: TOP; \
+                          } \
+                          rel2 { \
+                                 relative: 0 1; \
+                                 to_x: RIGHT; \
+                                 to_y: TOP; \
+                          } \
+                       } \
+            }
+
+#define VD_GENLIST_ITEM_PROGRESSBAR_ICON_BG( NAME, LEFT, BOTTOM ) \
+       part { name: NAME; \
+                       scale: 1; \
+                       type: RECT; \
+                       description { state: "default" 0.0; \
+                               fixed: 1 1; \
+                               min: VD_GENLIST_ITEM_PROGRESSBAR_BG_W VD_GENLIST_ITEM_PROGRESSBAR_BG_H; \
+                               max: VD_GENLIST_ITEM_PROGRESSBAR_BG_W VD_GENLIST_ITEM_PROGRESSBAR_BG_H; \
+                               align: 0.0 1.0; \
+                               rel1 { \
+                                       relative: 1 0; \
+                                       offset: 3 0; \
+                                       to_x: LEFT; \
+                                       to_y: BOTTOM; \
+                       } \
+                               rel2 { \
+                                       relative: 1 0; \
+                                       offset: 0 -2; \
+                                       to_x: LEFT; \
+                                       to_y: BOTTOM; \
+                               } \
+                       color:255 255 255 255; \
+                       } \
+            }
+
+#define GENLIST_PART_PADDING_T( NAME, TOP, HEIGHT ) \
+         GENLIST_PART_SPACER(NAME, \
+            description { state: "default" 0.0; \
+               fixed: 0 1; \
+               min: 0 HEIGHT; \
+               max: -1 HEIGHT; \
+               align: 0.5 1; \
+               rel1 { \
+                  relative: 0 1; \
+                  to_y: TOP; \
+               } \
+               rel2 { \
+                  relative: 1 1; \
+                  to_y: TOP; \
+               } \
+            } \
+         )
+
+#define VD_GENLIST_PARAM_SUBITEM(TEXT_COLOR, TEXT_STYLE, TEXT_SIZE, ALIGN_X) \
+   color: TEXT_COLOR; \
+   text { \
+      align: ALIGN_X 1.0; \
+      min: 0 1; \
+      font: TEXT_STYLE; \
+      size: TEXT_SIZE; \
+   }
+
+#define VD_GENLIST_ITEM_SUBITEM_LRB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM, TEXT_COLOR, TEXT_STYLE, TEXT_SIZE) \
+      GENLIST_PART_TEXT(NAME, \
+        GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+           min: 0 HEIGHT; \
+           fixed: 1 1;  \
+           align: 0 1; \
+           VD_GENLIST_PARAM_SUBITEM(TEXT_COLOR, TEXT_STYLE, TEXT_SIZE, 0) \
+        ) \
+        GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+      )
+
+#define VD_GENLIST_ITEM_SUBITEM_LRT(NAME, HEIGHT, LEFT, RIGHT, TOP, TEXT_COLOR, TEXT_STYLE, TEXT_SIZE) \
+                 GENLIST_PART_TEXT(NAME, \
+                GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \
+                       min: 0 HEIGHT; \
+                       fixed: 1 1;  \
+                       align: 0 0; \
+                       VD_GENLIST_PARAM_SUBITEM(TEXT_COLOR, TEXT_STYLE, TEXT_SIZE, 0) \
+                ) \
+                GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+                 )
+
+#define VD_GENLIST_ITEM_TEXTBLOCK_LRT(NAME, HEIGHT, LEFT, RIGHT, TOP) \
+                 GENLIST_PART_TEXTBLOCK(NAME, \
+                GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \
+                       min: 0 HEIGHT; \
+                       fixed: 1 1;  \
+                       align: 0 0; \
+                       GENLIST_PARAM_LISTITEM_TIME_TB \
+                ) \
+               GENLIST_DESCRIPTION_LISTITEM_TIME_OTHERS_TB \
+                 )
+
+#define VD_GENLIST_ITEM_SUBITEM_LRTP(NAME, HEIGHT, LEFT, RIGHT, TOP, PARAM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \
+                       min: 0 HEIGHT; \
+                       fixed: 1 1;  \
+                       align: 0 0; \
+         GENLIST_PARAM_SUBTITLE_TITLE_TB \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_TITLE_OTHERS_TB \
+   )
+
+
+#define VD_GENLIST_ITEM_TEXTBLOCK_LRTB(NAME, LEFT, RIGHT, TOP, BOTTOM, TEXT_STYLE) \
+                 GENLIST_PART_TEXTBLOCK(NAME, \
+                GENLIST_DESCRIPTION_LRTB(LEFT, RIGHT, TOP, BOTTOM, \
+                       min: VD_GENLIST_ITEM_PROGRESSBAR_W 30; \
+                       max: VD_GENLIST_ITEM_PROGRESSBAR_W 70; \
+                       fixed: 1 1;  \
+                       align: 0 0; \
+                       text { \
+                               min: 1 0; \
+                               style: TEXT_STYLE; \
+                       } \
+                ) \
+                GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+                 )
+
+#define VD_GENLIST_ITEM_SUBITEM_LRT_ALIGN_1(NAME, HEIGHT, LEFT, RIGHT, TOP, TEXT_COLOR, TEXT_STYLE, TEXT_SIZE) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_CUSTOM_LRT_ALIGN_1(LEFT, RIGHT, TOP, \
+         min: 0 HEIGHT; \
+         fixed: 1 1;  \
+         VD_GENLIST_PARAM_SUBITEM(TEXT_COLOR, TEXT_STYLE, TEXT_SIZE, 1) \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+   group { name: "elm/genlist/item/video/download_list/default";
+          alias: "elm/genlist/item_compress/video/download_list/default";
+          alias: "elm/genlist/tree/video/download_list/default";
+          alias: "elm/genlist/tree_compress/video/download_list/default";
+
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.text.4 elm.text.5";
+      data.item: "contents" "elm.thumbnail.icon elm.progressbar.icon elm.play.icon elm.download.icon elm.hd.sd.icon";
+
+      images {
+        image: VD_GENLIST_ITEM_THUMBNAIL_BG COMP;
+      }
+
+      parts {
+        VD_GENLIST_PART_BASE(VD_GENLIST_ITEM_H)
+       GENLIST_PART_BG_IMAGE
+        GENLIST_PART_BOTTOM_LINE
+        VD_GENLIST_ITEM_PADDING_LEFT
+        GENLIST_PART_PADDING_RIGHT
+        VD_GENLIST_ITEM_PADDING_TOP
+        VD_GENLIST_ITEM_PADDING_BOTTOM
+
+        VD_GENLIST_ITEM_THUMBNAIL("elm.thumbnail.icon", "elm.padding.left",
+                                  "elm.padding.right", "elm.padding.top",
+                                  "elm.padding.bottom")
+        GENLIST_PART_PADDING_L("elm.padding.thumbnail.right", "elm.thumbnail.icon")
+
+        VD_GENLIST_ITEM_DOWNLOAD_ICON("elm.download.icon", "elm.padding.right")
+
+        GENLIST_PART_PADDING_R("elm.padding.download.left", "elm.download.icon")
+
+       VD_GENLIST_ITEM_PLAY_ICON("elm.play.icon", "elm.padding.download.left")
+
+       GENLIST_PART_PADDING_PLAY_ICON_L("elm.padding.play.left", "elm.play.icon")
+       /*video title*/
+       VD_GENLIST_ITEM_SUBITEM_LRTP("elm.text.1", VD_GENLIST_ITEM_TEXT1_H,
+                            "elm.padding.thumbnail.right", "elm.padding.right",
+                            "elm.padding.top",)
+
+       GENLIST_PART_SUBITEM_LRT("elm.text.1.bottom", VD_GENLIST_TEXT1_BOTTOM,
+                                                               "elm.padding.thumbnail.right", "elm.padding.play.left", "elm.text.1")
+       /*video year*/
+       VD_GENLIST_ITEM_SUBITEM_LRT("elm.text.2", VD_GENLIST_ITEM_TEXT2_H,
+                                       "elm.padding.thumbnail.right", "elm.padding.download.left",
+                                       "elm.text.1", VD_GENLIST_ITEM_TEXT2_COLOR,
+                                       VD_GENLIST_ITEM_TEXT2_STYLE, VD_GENLIST_ITEM_TEXT2_SIZE)
+
+       GENLIST_PART_SUBITEM_LRT("elm.text.2.bottom", VD_GENLIST_TEXT2_BOTTOM,
+                                                               "elm.padding.thumbnail.right", "elm.padding.play.left", "elm.text.2")
+       /*HD/SD icon*/
+       VD_GENLIST_ITEM_HD_SD_ICON("elm.hd.sd.icon", "elm.padding.thumbnail.right", "elm.text.2.bottom")
+       GENLIST_PART_PADDING_L("elm.hd.sd.icon.right", "elm.hd.sd.icon")
+       /*Licence/Expired*/
+       VD_GENLIST_ITEM_SUBITEM_LRT("elm.text.3", VD_GENLIST_ITEM_TEXT2_H,
+                                       "elm.hd.sd.icon.right", "elm.padding.play.left",
+                                       "elm.text.2.bottom", VD_GENLIST_ITEM_TEXT2_COLOR,
+                                       VD_GENLIST_ITEM_TEXT2_STYLE, VD_GENLIST_ITEM_TEXT2_SIZE)
+       GENLIST_PART_SUBITEM_LRT("elm.text.3.bottom", VD_GENLIST_TEXT3_BOTTOM,
+                                                               "elm.padding.thumbnail.right", "elm.padding.play.left", "elm.text.3")
+       /*File size/running time*/
+       VD_GENLIST_ITEM_TEXTBLOCK_LRT("elm.text.4", VD_GENLIST_ITEM_TEXT3_H,
+                                       "elm.padding.thumbnail.right", "elm.padding.play.left",
+                                       "elm.text.3.bottom")
+
+       /*downloading progressbar*/
+       VD_GENLIST_ITEM_PROGRESSBAR_ICON("elm.progressbar.icon", "elm.padding.thumbnail.right", "elm.text.3.bottom", "elm.padding.play.left")
+       GENLIST_PART_PADDING_T("elm.padding.progressbar.bottom", "elm.progressbar.icon", VD_GENLIST_ITEM_PROGRESSBAR_BOTTOM_H)
+       /*downloading text, such as "0.3GB/1.5GB"*/
+       VD_GENLIST_ITEM_SUBITEM_LRT_ALIGN_1("elm.text.5", VD_GENLIST_ITEM_TEXT4_H,
+                                                       "elm.padding.thumbnail.right", "elm.padding.play.left",
+                                                       "elm.padding.progressbar.bottom", VD_GENLIST_ITEM_TEXT3_COLOR,
+                                                       VD_GENLIST_ITEM_TEXT3_STYLE, VD_GENLIST_ITEM_TEXT3_SIZE)
+
+       GENLIST_PART_FLIP
+       GENLIST_PART_FOCUS
+      }
+      GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3";
+                                               target: "elm.text.4"; target: "elm.text.5";)
+               GENLIST_PROGRAM_FOCUS
+    }
+
+     group { name: "elm/genlist/item/video/download_series_list/default";
+          alias: "elm/genlist/item_compress/video/download_series_list/default";
+          alias: "elm/genlist/tree/video/download_series_list/default";
+          alias: "elm/genlist/tree_compress/video/download_series_list/default";
+
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.text.4 elm.text.5";
+      data.item: "contents" "elm.progressbar.icon elm.play.icon elm.download.icon elm.hd.sd.icon";
+
+      parts {
+        VD_GENLIST_PART_BASE(VD_GENLIST_ITEM_H)
+       GENLIST_PART_BG_IMAGE
+        GENLIST_PART_BOTTOM_LINE
+        VD_GENLIST_ITEM_PADDING_LEFT
+        GENLIST_PART_PADDING_RIGHT
+        VD_GENLIST_ITEM_PADDING_TOP
+        VD_GENLIST_ITEM_PADDING_BOTTOM
+
+        VD_GENLIST_ITEM_DOWNLOAD_ICON("elm.download.icon", "elm.padding.right")
+
+        GENLIST_PART_PADDING_R("elm.padding.download.left", "elm.download.icon")
+
+       VD_GENLIST_ITEM_PLAY_ICON("elm.play.icon", "elm.padding.download.left")
+
+       GENLIST_PART_PADDING_PLAY_ICON_L("elm.padding.play.left", "elm.play.icon")
+
+       /*video title*/
+       VD_GENLIST_ITEM_SUBITEM_LRTP("elm.text.1", VD_GENLIST_ITEM_TEXT1_H,
+                            "elm.padding.left", "elm.padding.right",
+                            "elm.padding.top",)
+
+       GENLIST_PART_SUBITEM_LRT("elm.text.1.bottom", VD_GENLIST_TEXT1_BOTTOM,
+                                                               "elm.padding.left", "elm.padding.play.left", "elm.text.1")
+       /*video year*/
+       VD_GENLIST_ITEM_SUBITEM_LRT("elm.text.2", VD_GENLIST_ITEM_TEXT2_H,
+                                       "elm.padding.left", "elm.padding.download.left",
+                                       "elm.text.1", VD_GENLIST_ITEM_TEXT2_COLOR,
+                                       VD_GENLIST_ITEM_TEXT2_STYLE, VD_GENLIST_ITEM_TEXT2_SIZE)
+
+       GENLIST_PART_SUBITEM_LRT("elm.text.2.bottom", VD_GENLIST_TEXT2_BOTTOM,
+                                                               "elm.padding.left", "elm.padding.play.left", "elm.text.2")
+       /*HD/SD icon*/
+       VD_GENLIST_ITEM_HD_SD_ICON("elm.hd.sd.icon", "elm.padding.left", "elm.text.2.bottom")
+       GENLIST_PART_PADDING_L("elm.hd.sd.icon.right", "elm.hd.sd.icon")
+       /*Licence/Expired*/
+       VD_GENLIST_ITEM_SUBITEM_LRT("elm.text.3", VD_GENLIST_ITEM_TEXT2_H,
+                                       "elm.hd.sd.icon.right", "elm.padding.play.left",
+                                       "elm.text.2.bottom", VD_GENLIST_ITEM_TEXT2_COLOR,
+                                       VD_GENLIST_ITEM_TEXT2_STYLE, VD_GENLIST_ITEM_TEXT2_SIZE)
+       GENLIST_PART_SUBITEM_LRT("elm.text.3.bottom", VD_GENLIST_TEXT3_BOTTOM,
+                                                               "elm.padding.left", "elm.padding.play.left", "elm.text.3")
+       /*File size/running time*/
+       VD_GENLIST_ITEM_TEXTBLOCK_LRT("elm.text.4", VD_GENLIST_ITEM_TEXT3_H,
+                                       "elm.padding.left", "elm.padding.play.left",
+                                       "elm.text.3.bottom")
+
+       /*downloading progressbar*/
+       VD_GENLIST_ITEM_PROGRESSBAR_ICON("elm.progressbar.icon", "elm.padding.left", "elm.text.3.bottom", "elm.padding.play.left")
+       GENLIST_PART_PADDING_T("elm.padding.progressbar.bottom", "elm.progressbar.icon", VD_GENLIST_ITEM_PROGRESSBAR_BOTTOM_H)
+       /*downloading text, such as "0.3GB/1.5GB"*/
+       VD_GENLIST_ITEM_SUBITEM_LRT_ALIGN_1("elm.text.5", VD_GENLIST_ITEM_TEXT4_H,
+                                                       "elm.padding.left", "elm.padding.play.left",
+                                                       "elm.padding.progressbar.bottom", VD_GENLIST_ITEM_TEXT3_COLOR,
+                                                       VD_GENLIST_ITEM_TEXT3_STYLE, VD_GENLIST_ITEM_TEXT3_SIZE)
+
+       GENLIST_PART_FLIP
+       GENLIST_PART_FOCUS
+      }
+      GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3";
+                                               target: "elm.text.4"; target: "elm.text.5";)
+               GENLIST_PROGRAM_FOCUS
+    }
+
+
+    group { name: "elm/genlist/item/video/download_list/rent/default";
+          alias: "elm/genlist/item_compress/video/download_list/rent/default";
+          alias: "elm/genlist/tree/video/download_list/rent/default";
+          alias: "elm/genlist/tree_compress/video/download_list/rent/default";
+
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.text.4 elm.text.5 elm.text.6 elm.text.7 elm.text.8 elm.text.9";
+      data.item: "contents" "elm.thumbnail.icon elm.progressbar.icon elm.play.icon elm.download.icon";
+
+      images {
+        image: VD_GENLIST_ITEM_THUMBNAIL_BG COMP;
+      }
+
+      parts {
+        VD_GENLIST_PART_BASE(VD_GENLIST_ITEM_H)
+       GENLIST_PART_BG_IMAGE
+        GENLIST_PART_BOTTOM_LINE
+        VD_GENLIST_ITEM_PADDING_LEFT
+        GENLIST_PART_PADDING_RIGHT
+        VD_GENLIST_ITEM_PADDING_TOP
+        VD_GENLIST_ITEM_PADDING_BOTTOM
+
+        VD_GENLIST_ITEM_THUMBNAIL("elm.thumbnail.icon", "elm.padding.left",
+                                  "elm.padding.right", "elm.padding.top",
+                                  "elm.padding.bottom")
+        GENLIST_PART_PADDING_L("elm.padding.thumbnail.right", "elm.thumbnail.icon")
+
+        VD_GENLIST_ITEM_DOWNLOAD_ICON("elm.download.icon", "elm.padding.right")
+
+        GENLIST_PART_PADDING_R("elm.padding.download.left", "elm.download.icon")
+
+       VD_GENLIST_ITEM_PLAY_ICON("elm.play.icon", "elm.padding.download.left")
+
+       GENLIST_PART_PADDING_PLAY_ICON_L("elm.padding.play.left", "elm.play.icon")
+
+       GENLIST_PART_SUBITEM_LRT("elm.padding.center.top", VD_GENLIST_ITEM_SPACER_CENTER_TOP_H2,
+                                       "elm.padding.thumbnail.right", "elm.padding.play.left", "elm.padding.top")
+       VD_GENLIST_ITEM_SUBITEM_LRT("elm.text.1", VD_GENLIST_ITEM_TEXT1_H,
+                            "elm.padding.thumbnail.right", "elm.padding.right",
+                            "elm.padding.center.top", VD_GENLIST_ITEM_TEXT1_COLOR,
+                            VD_GENLIST_ITEM_TEXT1_STYLE, VD_GENLIST_ITEM_TEXT1_SIZE)
+
+       GENLIST_PART_SUBITEM_LRT("elm.text.1.bottom", VD_GENLIST_TEXT1_BOTTOM,
+                                                               "elm.padding.thumbnail.right", "elm.padding.play.left", "elm.text.1")
+
+       VD_GENLIST_ITEM_SUBITEM_LRT("elm.text.2", VD_GENLIST_ITEM_TEXT2_H,
+                                       "elm.padding.thumbnail.right", "elm.padding.download.left",
+                                       "elm.text.1", VD_GENLIST_ITEM_TEXT2_COLOR,
+                                       VD_GENLIST_ITEM_TEXT2_STYLE, VD_GENLIST_ITEM_TEXT2_SIZE)
+
+       VD_GENLIST_ITEM_SUBITEM_LRT_ALIGN_1("elm.text.7", VD_GENLIST_ITEM_TEXT2_H,
+                                                       "elm.padding.thumbnail.right", "elm.padding.play.left",
+                                                       "elm.text.1", VD_GENLIST_ITEM_TEXT2_COLOR,
+                                                       VD_GENLIST_ITEM_TEXT2_STYLE, VD_GENLIST_ITEM_TEXT2_SIZE)
+
+       VD_GENLIST_ITEM_PROGRESSBAR_ICON("elm.progressbar.icon", "elm.padding.thumbnail.right", "elm.text.1.bottom", "elm.padding.play.left")
+       GENLIST_PART_PADDING_T("elm.padding.progressbar.bottom", "elm.progressbar.icon", VD_GENLIST_ITEM_PROGRESSBAR_BOTTOM_H)
+
+       VD_GENLIST_ITEM_SUBITEM_LRT("elm.text.3", VD_GENLIST_ITEM_TEXT1_H,
+                        "elm.padding.thumbnail.right", "elm.padding.right",
+                        "elm.padding.center.top", VD_GENLIST_ITEM_TEXT1_COLOR,
+                        VD_GENLIST_ITEM_TEXT1_STYLE, VD_GENLIST_ITEM_TEXT1_SIZE)
+
+       VD_GENLIST_ITEM_TEXTBLOCK_LRT("elm.text.4", VD_GENLIST_ITEM_TEXT2_H,
+                                       "elm.padding.thumbnail.right", "elm.padding.right",
+                                       "elm.text.3")
+
+       VD_GENLIST_ITEM_TEXTBLOCK_LRTB("elm.text.9", "elm.padding.thumbnail.right",
+                                       "elm.padding.play.left", "elm.text.4",
+                                       "elm.padding.bottom", "rent_text_style")
+
+       VD_GENLIST_ITEM_SUBITEM_LRT_ALIGN_1("elm.text.8", VD_GENLIST_ITEM_TEXT2_H,
+                                                       "elm.padding.thumbnail.right", "elm.padding.play.left",
+                                                       "elm.text.3", VD_GENLIST_ITEM_TEXT2_COLOR,
+                                                       VD_GENLIST_ITEM_TEXT2_STYLE, VD_GENLIST_ITEM_TEXT2_SIZE)
+
+       VD_GENLIST_ITEM_SUBITEM_LRT("elm.text.5", VD_GENLIST_ITEM_TEXT4_H,
+                                       "elm.padding.thumbnail.right", "elm.padding.play.left",
+                                       "elm.padding.progressbar.bottom", VD_GENLIST_ITEM_TEXT4_COLOR,
+                                       VD_GENLIST_ITEM_TEXT4_STYLE, VD_GENLIST_ITEM_TEXT4_SIZE)
+
+       //GENLIST_PART_PADDING_L("elm.progressbar.icon.right", "elm.progressbar.icon")
+       VD_GENLIST_ITEM_SUBITEM_LRT_ALIGN_1("elm.text.6", VD_GENLIST_ITEM_TEXT4_H,
+                                                       "elm.padding.thumbnail.right", "elm.padding.play.left",
+                                                       "elm.padding.progressbar.bottom", VD_GENLIST_ITEM_TEXT4_COLOR,
+                                                       VD_GENLIST_ITEM_TEXT4_STYLE, VD_GENLIST_ITEM_TEXT4_SIZE)
+       //GENLIST_PART_PADDING_B("elm.padding.text5.top", "elm.text.5", VD_GENLIST_ITEM_TEXT4_TOP_H)
+
+       GENLIST_PART_FLIP
+      }
+      GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3";
+                                               target: "elm.text.4"; target: "elm.text.5"; target: "elm.text.6"; )
+    }
+
+       group { name: "elm/genlist/item/video/download_edit_list/default";
+               alias: "elm/genlist/item_compress/video/download_edit_list/default";
+               alias: "elm/genlist/tree/video/download_edit_list/default";
+               alias: "elm/genlist/tree_compress/video/download_edit_list/default";
+
+
+                 GENLIST_DATA_ITEM_NORMAL
+                 data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
+                 data.item: "contents" "elm.edit.icon.1 elm.thumbnail.icon elm.progressbar.icon elm.lock.icon elm.dropbox.icon";
+
+                 images {
+                        image: GENLIST_LIST_ITEM_FOCUS_BG COMP;
+                 }
+
+                 parts {
+                        VD_GENLIST_PART_BASE(VD_GENLIST_ITEM_H)
+                        GENLIST_PART_BG_IMAGE
+                        GENLIST_PART_BOTTOM_LINE
+                        VD_GENLIST_ITEM_PADDING_LEFT
+                        GENLIST_PART_PADDING_RIGHT
+                        VD_GENLIST_ITEM_PADDING_TOP
+                        VD_GENLIST_ITEM_PADDING_BOTTOM
+
+                        GENLIST_PART_ICON_CHECK_RADIO_L("elm.edit.icon.1", "elm.padding.left")
+                        VD_GENLIST_ITEM_THUMBNAIL("elm.thumbnail.icon", "elm.edit.icon.1",
+                                                                       "elm.padding.right", "elm.padding.top",
+                                                                       "elm.padding.bottom")
+                        GENLIST_PART_ICON_RT_CUSTOM_LOCK("elm.lock.icon", "elm.thumbnail.icon")
+                        GENLIST_PART_ICON_RT_CUSTOM_DROPBOX("elm.dropbox.icon", "elm.thumbnail.icon")
+                        GENLIST_PART_PADDING_L("elm.padding.icon2.right", "elm.thumbnail.icon")
+                        /*video title*/
+                        VD_GENLIST_ITEM_SUBITEM_LRTP("elm.text.1", VD_GENLIST_ITEM_TEXT1_H,
+                                            "elm.padding.icon2.right", "elm.padding.right",
+                                            "elm.padding.top",)
+                        VD_GENLIST_ITEM_SUBITEM_LRT("elm.text.2", VD_GENLIST_ITEM_TEXT3_H,
+                                                        "elm.padding.icon2.right", "elm.padding.right",
+                                                        "elm.text.1", VD_GENLIST_ITEM_TEXT3_COLOR_2,
+                                                        VD_GENLIST_ITEM_TEXT3_STYLE, VD_GENLIST_ITEM_TEXT3_SIZE)
+
+                        VD_GENLIST_ITEM_SUBITEM_LRT("elm.text.3", VD_GENLIST_ITEM_TEXT3_H,
+                                                        "elm.padding.icon2.right", "elm.padding.right",
+                                                        "elm.text.2", VD_GENLIST_ITEM_TEXT3_COLOR_2,
+                                                        VD_GENLIST_ITEM_TEXT3_STYLE, VD_GENLIST_ITEM_TEXT3_SIZE)
+
+                        GENLIST_PART_PROGRESS_BAR_ICON("elm.progressbar.icon", "elm.thumbnail.icon", "elm.thumbnail.icon")
+
+                        GENLIST_PART_FLIP
+                        GENLIST_PART_FOCUS
+                        //GENLIST_PART_FOCUS_IMAGE
+                 }
+                 GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3"; )
+                 GENLIST_PROGRAM_CHECK("elm.edit.icon.1", "elm.text.1", "elm.text.2", "elm.text.3")
+                 GENLIST_PROGRAM_FOCUS
+                 GENLIST_PROGRAM_CLICK_SOUND("elm.thumbnail.icon")
+                 GENLIST_PROGRAM_CLICK_SOUND("elm.progressbar.icon")
+                 GENLIST_PROGRAM_CLICK_SOUND("elm.text.1")
+                 GENLIST_PROGRAM_CLICK_SOUND("elm.text.2")
+                 GENLIST_PROGRAM_CLICK_SOUND("elm.text.3")
+          }
+
+       group { name: "elm/genlist/item/video/download_title/default";
+               alias: "elm/genlist/item_compress/video/download_title/default";
+               alias: "elm/genlist/tree/video/download_title/default";
+               alias: "elm/genlist/tree_compress/video/download_title/default";
+
+        GENLIST_DATA_ITEM_NORMAL
+
+             data.item: "texts" "elm.text";
+
+             parts {
+                        GENLIST_PART_BASE
+                    GENLIST_PART_BG_IMAGE
+                    GENLIST_PART_CUSTOM_1TEXT_PADDING_LEFT
+                    GENLIST_PART_PADDING_RIGHT
+                    GENLIST_PART_CUSTOM_1TEXT_PADDING_TOP
+                    GENLIST_PART_CUSTOM_PADDING_BOTTOM_2LINE
+
+                    VD_TITLE_BOTTOM_LINE
+                    VD_TITLE_TEXT_PART("elm.text", VD_TITLE_H,
+                           "elm.padding.left", "elm.padding.right",
+                           "elm.padding.top", "elm.padding.bottom"
+                    )
+             }
+          }
+#endif
+
+   group {name: "elm/genlist/item/video/search_list/default";
+         alias: "elm/genlist/item_compress/video/search_list/default";
+         alias: "elm/genlist/tree/video/search_list/default";
+         alias: "elm/genlist/tree_compress/video/search_list/default";
+
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
+      data.item: "contents" "elm.thumbnail.icon elm.progressbar.icon elm.lock.icon elm.dropbox.icon";
+         images {
+         image: GENLIST_LIST_ITEM_FOCUS_BG COMP;
+      }
+
+      parts {
+        GENLIST_PART_BASE
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_CUSTOM_PADDING_LEFT
+         GENLIST_PART_PADDING_RIGHT
+         GENLIST_PART_CUSTOM_PADDING_TOP_2LINE
+         GENLIST_PART_CUSTOM_PADDING_BOTTOM_2LINE
+
+        GENLIST_PART_BG("elm.thumbnail.icon.bg", "elm.thumbnail.icon", GENLIST_LIST_THUMBNAIL_BG)
+         GENLIST_PART_ICON_BIG_L_CUSTOM_THUMBNAIL("elm.thumbnail.icon", "elm.padding.left")
+         GENLIST_PART_ICON_RT_CUSTOM_LOCK("elm.lock.icon", "elm.thumbnail.icon")
+         GENLIST_PART_ICON_RT_CUSTOM_DROPBOX("elm.dropbox.icon", "elm.thumbnail.icon")
+         GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.thumbnail.icon")
+         GENLIST_PART_LISTITEM_TB_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN, "elm.padding.icon.right", "elm.padding.right", "elm.padding.top", "elm.text.2",)
+         GENLIST_PART_SUBITEM_TIME_BLOCK_LRB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB, "elm.padding.icon.right", "elm.padding.right", "elm.padding.bottom")
+         GENLIST_PART_CUSTOM_SUBITEM_LRB_ALIGN_1("elm.text.3", GENLIST_HEIGHT_2LINE_SUB, "elm.padding.icon.right", "elm.padding.right", "elm.padding.bottom")
+         GENLIST_PART_PROGRESS_BAR_ICON("elm.progressbar.icon", "elm.thumbnail.icon", "elm.thumbnail.icon")
+
+         GENLIST_PART_FLIP
+         GENLIST_PART_FOCUS
+         //GENLIST_PART_FOCUS_IMAGE
+      }
+      GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3"; )
+      GENLIST_PROGRAM_FOCUS
+      GENLIST_PROGRAM_CLICK_SOUND("elm.thumbnail.icon")
+      GENLIST_PROGRAM_CLICK_SOUND("elm.progressbar.icon")
+      GENLIST_PROGRAM_CLICK_SOUND("elm.text.1")
+      GENLIST_PROGRAM_CLICK_SOUND("elm.text.2")
+      GENLIST_PROGRAM_CLICK_SOUND("elm.text.3")
+   }
+
+   group { name: "elm/genlist/item/video/edit_list/default";
+          alias: "elm/genlist/item_compress/video/edit_list/default";
+          alias: "elm/genlist/tree/video/edit_list/default";
+          alias: "elm/genlist/tree_compress/video/edit_list/default";
+
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
+      data.item: "contents" "elm.edit.icon.1 elm.thumbnail.icon elm.progressbar.icon elm.lock.icon elm.dropbox.icon";
+
+         images {
+         image: GENLIST_LIST_ITEM_FOCUS_BG COMP;
+      }
+
+         parts {
+         GENLIST_PART_BASE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_CUSTOM_PADDING_LEFT_EDIT
+         GENLIST_PART_PADDING_RIGHT
+         GENLIST_PART_CUSTOM_PADDING_TOP_2LINE
+         GENLIST_PART_CUSTOM_PADDING_BOTTOM_2LINE
+
+         GENLIST_PART_ICON_CHECK_RADIO_L("elm.edit.icon.1", "elm.padding.left")
+         GENLIST_PART_PADDING_L("elm.padding.icon1.right", "elm.edit.icon.1")
+        GENLIST_PART_BG("elm.thumbnail.icon.bg", "elm.thumbnail.icon", GENLIST_LIST_THUMBNAIL_BG)
+         GENLIST_PART_ICON_BIG_L_CUSTOM_THUMBNAIL("elm.thumbnail.icon", "elm.padding.icon1.right")
+         GENLIST_PART_ICON_RT_CUSTOM_LOCK("elm.lock.icon", "elm.thumbnail.icon")
+         GENLIST_PART_ICON_RT_CUSTOM_DROPBOX("elm.dropbox.icon", "elm.thumbnail.icon")
+         GENLIST_PART_PADDING_L("elm.padding.icon2.right", "elm.thumbnail.icon")
+         GENLIST_PART_LISTITEM_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN, "elm.padding.icon2.right", "elm.padding.right", "elm.padding.top", "elm.text.2",)
+         GENLIST_PART_SUBITEM_TIME_BLOCK_LRB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB, "elm.padding.icon2.right", "elm.padding.right", "elm.padding.bottom")
+         GENLIST_PART_CUSTOM_SUBITEM_LRB_ALIGN_1("elm.text.3", GENLIST_HEIGHT_2LINE_SUB, "elm.padding.icon2.right", "elm.padding.right", "elm.padding.bottom")
+                GENLIST_PART_PROGRESS_BAR_ICON("elm.progressbar.icon", "elm.thumbnail.icon", "elm.thumbnail.icon")
+
+                GENLIST_PART_FLIP
+         GENLIST_PART_FOCUS
+         //GENLIST_PART_FOCUS_IMAGE
+      }
+      GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3"; )
+      GENLIST_PROGRAM_CHECK("elm.edit.icon.1", "elm.text.1", "elm.text.2", "elm.text.3")
+      GENLIST_PROGRAM_FOCUS
+      GENLIST_PROGRAM_CLICK_SOUND("elm.thumbnail.icon")
+      GENLIST_PROGRAM_CLICK_SOUND("elm.progressbar.icon")
+      GENLIST_PROGRAM_CLICK_SOUND("elm.text.1")
+      GENLIST_PROGRAM_CLICK_SOUND("elm.text.2")
+      GENLIST_PROGRAM_CLICK_SOUND("elm.text.3")
+   }
+
+       group { name: "elm/genlist/item/video/edit_folder/default";
+               alias: "elm/genlist/item_compress/video/edit_folder/default";
+               alias: "elm/genlist/tree/video/edit_folder/default";
+               alias: "elm/genlist/tree_compress/video/edit_folder/default";
+               GENLIST_DATA_ITEM_NORMAL
+               data.item: "texts" "elm.text.1 elm.text.2";
+               data.item: "contents" "elm.edit.icon.1 elm.thumbnail.icon elm.lock.icon";
+
+               images {
+                       image: GENLIST_LIST_ITEM_FOCUS_BG COMP;
+               }
+
+               parts {
+                       GENLIST_PART_BASE
+                       GENLIST_PART_BG_IMAGE
+                       GENLIST_PART_BOTTOM_LINE
+                       GENLIST_PART_CUSTOM_PADDING_LEFT_EDIT
+                       GENLIST_PART_PADDING_RIGHT
+                       GENLIST_PART_CUSTOM_PADDING_TOP_2LINE
+                       GENLIST_PART_CUSTOM_PADDING_BOTTOM_2LINE
+
+                       GENLIST_PART_ICON_CHECK_RADIO_L("elm.edit.icon.1", "elm.padding.left")
+                       GENLIST_PART_PADDING_L("elm.padding.icon1.right", "elm.edit.icon.1")
+                       GENLIST_PART_ICON_BIG_L_CUSTOM_FOLDER_ICON("elm.thumbnail.icon", "elm.padding.icon1.right")
+                       GENLIST_PART_ICON_RT_CUSTOM_LOCK("elm.lock.icon", "elm.thumbnail.icon")
+                       GENLIST_PART_PADDING_L("elm.padding.icon2.right", "elm.thumbnail.icon")
+                       GENLIST_PART_LISTITEM_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN, "elm.padding.icon2.right", "elm.padding.right", "elm.padding.top", "elm.text.2",)
+                       GENLIST_PART_SUBITEM_LRB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB, "elm.padding.icon2.right", "elm.padding.right", "elm.padding.bottom")
+
+                       GENLIST_PART_FLIP
+                       GENLIST_PART_FOCUS
+                       //GENLIST_PART_FOCUS_IMAGE
+               }
+               GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2";)
+               GENLIST_PROGRAM_CHECK("elm.edit.icon.1", "elm.text.1", "elm.text.2", "elm.text.2")
+               GENLIST_PROGRAM_FOCUS
+               GENLIST_PROGRAM_CLICK_SOUND("elm.thumbnail.icon")
+               GENLIST_PROGRAM_CLICK_SOUND("elm.text.1")
+               GENLIST_PROGRAM_CLICK_SOUND("elm.text.2")
+       }
+
+   group { name: "elm/genlist/item/video/1icon/default";
+          alias: "elm/genlist/item_compress/video/1icon/default";
+          alias: "elm/genlist/tree/video/1icon/default";
+          alias: "elm/genlist/tree_compress/video/1icon/default";
+
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "contents" "elm.icon";
+
+         images {
+         image: GENLIST_LIST_ITEM_FOCUS_BG COMP;
+      }
+
+      parts {
+         GENLIST_PART_BASE
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_CUSTOM_1ICON_PADDING_LEFT
+         GENLIST_PART_CUSTOM_1ICON_PADDING_RIGHT
+
+         GENLIST_PART_ICON("elm.icon", GENLIST_DESCRIPTION_LR(
+            "elm.padding.left", "elm.padding.right",
+            min: 0 GENLIST_HEIGHT_1LINE; )
+         )
+         GENLIST_PART_FLIP
+         GENLIST_PART_FOCUS
+         //GENLIST_PART_FOCUS_IMAGE
+      }
+      GENLIST_PROGRAMS_NORMAL_NO_BG_SOUND( target: "elm.icon"; )
+      GENLIST_PROGRAM_FOCUS
+   }
+
+   group { name: "elm/genlist/item/video/1icon.noline/default";
+          alias: "elm/genlist/item_compress/video/1icon.noline/default";
+          alias: "elm/genlist/tree/video/1icon.noline/default";
+          alias: "elm/genlist/tree_compress/video/1icon.noline/default";
+
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "contents" "elm.icon";
+
+      parts {
+         GENLIST_PART_BASE
+         GENLIST_PART_BG_IMAGE
+         //GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_CUSTOM_1ICON_PADDING_LEFT
+         GENLIST_PART_CUSTOM_1ICON_PADDING_RIGHT
+
+         GENLIST_PART_ICON("elm.icon", GENLIST_DESCRIPTION_LR(
+            "elm.padding.left", "elm.padding.right",
+            min: 0 GENLIST_HEIGHT_MIN_1LINE; )
+         )
+         //GENLIST_PART_FLIP
+      }
+      //GENLIST_PROGRAMS_NORMAL( target: "elm.icon"; )
+   }
+
+   group { name: "elm/genlist/item/video/1icon.thumbnail/default";
+          alias: "elm/genlist/item_compress/video/1icon.thumbnail/default";
+          alias: "elm/genlist/tree/video/1icon.thumbnail/default";
+          alias: "elm/genlist/tree_compress/video/1icon.thumbnail/default";
+
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "contents" "elm.icon";
+
+      parts {
+         GENLIST_PART_BASE
+         //GENLIST_PART_BG_IMAGE
+         //GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_CUSTOM_1ICON_PADDING_LEFT
+         GENLIST_PART_CUSTOM_1ICON_PADDING_RIGHT
+
+         GENLIST_PART_ICON("elm.icon", GENLIST_DESCRIPTION_LR(
+            "elm.padding.left", "elm.padding.right",
+            min: 0 GENLIST_HEIGHT_MIN_1LINE_THUMBNAIL; )
+         )
+         //GENLIST_PART_FLIP
+      }
+      //GENLIST_PROGRAMS_NORMAL( target: "elm.icon"; )
+   }
+
+   group { name: "elm/genlist/item/video/1icon.thumbnail.landscape/default";
+          alias: "elm/genlist/item_compress/video/1icon.thumbnail.landscape/default";
+          alias: "elm/genlist/tree/video/1icon.thumbnail.landscape/default";
+          alias: "elm/genlist/tree_compress/video/1icon.thumbnail.landscape/default";
+
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "contents" "elm.icon";
+
+      parts {
+         GENLIST_PART_BASE
+         //GENLIST_PART_BG_IMAGE
+         //GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_CUSTOM_1ICON_PADDING_LEFT
+         GENLIST_PART_CUSTOM_1ICON_PADDING_RIGHT
+
+         GENLIST_PART_ICON("elm.icon", GENLIST_DESCRIPTION_LR(
+            "elm.padding.left", "elm.padding.right",
+            min: 0 GENLIST_HEIGHT_MIN_1LINE_THUMBNAIL_LANDSCAPE; )
+         )
+         //GENLIST_PART_FLIP
+      }
+      //GENLIST_PROGRAMS_NORMAL( target: "elm.icon"; )
+   }
+   group { name: "elm/genlist/item/video/1icon.thumbnail.zoom/default";
+          alias: "elm/genlist/item_compress/video/1icon.thumbnail.zoom/default";
+          alias: "elm/genlist/tree/video/1icon.thumbnail.zoom/default";
+          alias: "elm/genlist/tree_compress/video/1icon.thumbnail.zoom/default";
+
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "contents" "elm.icon";
+
+      parts {
+         GENLIST_PART_BASE
+         GENLIST_PART_CUSTOM_1ICON_PADDING_LEFT
+         GENLIST_PART_CUSTOM_1ICON_PADDING_RIGHT
+
+         GENLIST_PART_ICON("elm.icon", GENLIST_DESCRIPTION_LR(
+            "elm.padding.left", "elm.padding.right",
+            min: 0 GENLIST_HEIGHT_MAX_1LINE_THUMBNAIL; )
+         )
+      }
+   }
+       /*only used for title.*/
+       group { name: "elm/genlist/item/video/1text/default";
+          alias: "elm/genlist/item_compress/video/1text/default";
+          alias: "elm/genlist/tree/video/1text/default";
+          alias: "elm/genlist/tree_compress/video/1text/default";
+
+      GENLIST_DATA_ITEM_NORMAL
+
+          data.item: "texts" "elm.text";
+
+         parts {
+                 GENLIST_PART_BASE
+                 GENLIST_PART_BG_IMAGE
+                 //GENLIST_PART_BOTTOM_LINE
+                 GENLIST_PART_CUSTOM_1TEXT_PADDING_LEFT
+                 GENLIST_PART_CUSTOM_1TEXT_PADDING_RIGHT
+                 GENLIST_PART_CUSTOM_1TEXT_PADDING_TOP
+                 GENLIST_PART_CUSTOM_1TEXT_PADDING_BOTTOM
+
+                 GENLIST_PART_RECENTLY_ITEM_("elm.text", GENLIST_HEIGHT_1LINE_RECENT,
+                        "elm.padding.left", "elm.padding.right",
+                        "elm.padding.top", "elm.padding.bottom",
+                 )
+                 //GENLIST_PART_FLIP
+          }
+          //GENLIST_PROGRAMS_NORMAL( target: "elm.text"; )
+       }
+
+   group { name: "elm/genlist/item/video/folder_list/default";
+          alias: "elm/genlist/item_compress/video/folder_list/default";
+          alias: "elm/genlist/tree/video/folder_list/default";
+          alias: "elm/genlist/tree_compress/video/folder_list/default";
+
+      GENLIST_DATA_ITEM_NORMAL
+         data.item: "texts" "elm.text.1 elm.text.2";
+         data.item: "contents" "elm.thumbnail.icon elm.lock.icon";
+
+         images {
+         image: GENLIST_LIST_ITEM_FOCUS_BG COMP;
+      }
+
+      parts {
+         GENLIST_PART_BASE
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_CUSTOM_PADDING_LEFT
+         GENLIST_PART_PADDING_RIGHT
+         GENLIST_PART_CUSTOM_PADDING_TOP_2LINE
+         GENLIST_PART_CUSTOM_PADDING_BOTTOM_2LINE
+
+         GENLIST_PART_ICON_BIG_L_CUSTOM_FOLDER_ICON("elm.thumbnail.icon", "elm.padding.left")
+         GENLIST_PART_ICON_RT_CUSTOM_LOCK("elm.lock.icon", "elm.thumbnail.icon")
+         GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.thumbnail.icon")
+         GENLIST_PART_LISTITEM_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN, "elm.padding.icon.right", "elm.padding.right", "elm.padding.top", "elm.text.2",)
+         GENLIST_PART_SUBITEM_LRB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB, "elm.padding.icon.right", "elm.padding.right", "elm.padding.bottom")
+
+         GENLIST_PART_FLIP
+         GENLIST_PART_FOCUS
+         //GENLIST_PART_FOCUS_IMAGE
+      }
+      GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2";)
+      GENLIST_PROGRAM_FOCUS
+      GENLIST_PROGRAM_CLICK_SOUND("elm.thumbnail.icon")
+      GENLIST_PROGRAM_CLICK_SOUND("elm.text.1")
+      GENLIST_PROGRAM_CLICK_SOUND("elm.text.2")
+   }
+
+//------------------for lite---------------------------------------------------------------------------//
+
+#define LITE_GENLIST_ICON_CUSTOM_VIDEO_PROGRESSBAR_H   4
+
+#define LITE_GENLIST_ICON_CUSTOM_BG_WIDTH      90
+#define LITE_GENLIST_ICON_CUSTOM_BG_HEIGHT     55
+
+#define LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH       55
+#define LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_HEIGHT      40
+
+#define LITE_GENLIST_PROGRESSBAR_L             0
+#define LITE_GENLIST_PROGRESSBAR_R             (LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH-LITE_GENLIST_PROGRESSBAR_L)
+
+
+#define LITE_GENLIST_ICON_PAD_L        10
+#define LITE_GENLIST_ICON_PAD_R        115
+#define LITE_GENLIST_ICON_PAD_T        8
+
+#define LITE_GENLIST_ICON_CUSTOM_FOLDER_WIDTH  24
+#define LITE_GENLIST_ICON_CUSTOM_FOLDER_HEIGHT 24
+
+#define LITE_GENLIST_PAD_CUSTOM_FOLDER_ICON_RIGHT      8
+#define LITE_GENLIST_PAD_CUSTOM_FOLDER_ICON_BOTTOM     8
+
+       group { name: "listview.thumbnail.layout";
+               images  {
+                       image: "player_library_list_thumbnail_default.png" COMP;
+               }
+               parts {
+                       part { name: "bg";
+                               type: SPACER;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       align: 0 0;
+                                       min: LITE_GENLIST_ICON_CUSTOM_BG_WIDTH LITE_GENLIST_ICON_CUSTOM_BG_HEIGHT;
+                                       max: LITE_GENLIST_ICON_CUSTOM_BG_WIDTH LITE_GENLIST_ICON_CUSTOM_BG_HEIGHT;
+                                       fixed: 0 1;
+                                       rel1    { relative: 0 0; }
+                                       rel2    { relative: 1 1; }
+                               }
+                       }
+
+                       part { name: "elm.padding.left";
+                               scale: 1;
+                               type: SPACER;
+                               description { state: "default" 0.0;
+                                       fixed: 1 0;
+                                       align: 0 0.3;
+                                       rel1 {
+                                               relative: 0 0;
+                                               to: "bg";
+                                       }
+                                       rel2 {
+                                               relative: 0 1;
+                                               to: "bg";
+                                       }
+                                       min: LITE_GENLIST_ICON_PAD_L 0;
+                               }
+                       }
+
+                       part { name: "elm.thumbnail.bg";
+                               scale: 1;
+                               type: IMAGE;
+                               description { state: "default" 0.0;
+                                       align: 0 0;
+                                       fixed: 1 1;
+                                       rel1 {
+                                               relative: 1 0;
+                                               to: "elm.padding.left";
+                                       }
+                                       rel2 {
+                                               relative: 1 0;
+                                               to: "elm.padding.left";
+                                       }
+                                       min: LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_HEIGHT;
+                                       max: LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_HEIGHT;
+                                       image.normal: "player_library_list_thumbnail_default.png";
+                               }
+                               description { state: "fadeout" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 0 0 0 10;
+                                       visible: 0;
+                               }
+                               description { state: "fadein" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+                       }
+
+                       part { name: "elm.thumbnail.icon";
+                               scale: 1;
+                               type: SWALLOW;
+                               description { state: "default" 0.0;
+                                       align: 0 0;
+                                       fixed: 1 1;
+                                       rel1 {
+                                               relative: 0 0;
+                                               to: "elm.thumbnail.bg";
+                                       }
+                                       rel2 {
+                                               relative: 1 1;
+                                               to: "elm.thumbnail.bg";
+                                       }
+                               }
+                               description { state: "fadeout" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 0 0 0 10;
+                                       visible: 0;
+                               }
+                               description { state: "fadein" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+                       }
+
+                       part { name: "elm.frame.top";
+                               type: RECT;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       align: 0.5 0.0;
+                                       rel1 {
+                                               relative: 0 0; to: "elm.thumbnail.icon";
+                                       }
+                                       rel2 {
+                                               relative: 1 0; to: "elm.thumbnail.icon";
+                                       }
+                                       fixed: 1 1;
+                                       min: LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH 1;
+                                       color: 255 255 255 128;
+                               }
+                       }
+
+                       part { name: "elm.frame.bottom";
+                               type: RECT;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       align: 0.5 1.0;
+                                       rel1 {
+                                               relative: 0 1; to: "elm.thumbnail.icon";
+                                       }
+                                       rel2 {
+                                               relative: 1 1; to: "elm.thumbnail.icon";
+                                       }
+                                       fixed: 1 1;
+                                       min: LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH 1;
+                                       color: 255 255 255 128;
+                               }
+                       }
+
+                       part { name: "elm.frame.left";
+                               type: RECT;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       align: 0.0 0.5;
+                                       rel1 {
+                                               relative: 0 0; to: "elm.thumbnail.icon";
+                                       }
+                                       rel2 {
+                                               relative: 0 1; to: "elm.thumbnail.icon";
+                                       }
+                                       fixed: 1 1;
+                                       min: 1 LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_HEIGHT;
+                                       color: 255 255 255 128;
+                               }
+                       }
+
+                       part { name: "elm.frame.right";
+                               type: RECT;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       align: 1.0 0.5;
+                                       rel1 {
+                                               relative: 1 0; to: "elm.thumbnail.icon";
+                                       }
+                                       rel2 {
+                                               relative: 1 1; to: "elm.thumbnail.icon";
+                                       }
+                                       fixed: 1 1;
+                                       min: 1 LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_HEIGHT;
+                                       color: 255 255 255 128;
+                               }
+                       }
+
+                       part { name: "elm.progressbar.icon";
+                               scale: 1;
+                               repeat_events: 0;
+                               type: SWALLOW;
+                               description { state: "default" 0.0;
+                                       min: LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH-2 LITE_GENLIST_ICON_CUSTOM_VIDEO_PROGRESSBAR_H;
+                                       max: LITE_GENLIST_ICON_CUSTOM_THUMBNAIL_WIDTH-2 LITE_GENLIST_ICON_CUSTOM_VIDEO_PROGRESSBAR_H;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 {
+                                               relative: 0 0.92 ;
+                                               to: "elm.thumbnail.icon";
+                                       }
+                                       rel2 {
+                                               relative: 1 1;
+                                               to: "elm.thumbnail.icon";
+                                       }
+                               }
+                       }
+
+                       part { name: "elm.folder.icon";
+                               scale: 1;
+                               repeat_events: 0;
+                               type: SWALLOW;
+                               description { state: "default" 0.0;
+                                       min: LITE_GENLIST_ICON_CUSTOM_FOLDER_WIDTH LITE_GENLIST_ICON_CUSTOM_FOLDER_HEIGHT;
+                                       max: LITE_GENLIST_ICON_CUSTOM_FOLDER_WIDTH LITE_GENLIST_ICON_CUSTOM_FOLDER_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 {
+                                               relative: 0 0.5;
+                                               to: "elm.thumbnail.icon";
+                                       }
+                                       rel2 {
+                                               relative: 1 1;
+                                               to: "elm.thumbnail.icon";
+                                       }
+                               }
+                       }
+
+                       part { name: "elm.folder.icon.ef";
+                               scale: 1;
+                               repeat_events: 0;
+                               type: SWALLOW;
+                               description { state: "default" 0.0;
+                                       min: LITE_GENLIST_ICON_CUSTOM_FOLDER_WIDTH LITE_GENLIST_ICON_CUSTOM_FOLDER_HEIGHT;
+                                       max: LITE_GENLIST_ICON_CUSTOM_FOLDER_WIDTH LITE_GENLIST_ICON_CUSTOM_FOLDER_HEIGHT;
+                                       fixed: 1 1;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                               to: "elm.folder.icon";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                               to: "elm.folder.icon";
+                                       }
+                               }
+                       }
+               }
+       }
diff --git a/res/edje/vp-genlist-no-item.edc b/res/edje/vp-genlist-no-item.edc
new file mode 100755 (executable)
index 0000000..4d0e4e5
--- /dev/null
@@ -0,0 +1,323 @@
+/*
+ * Copyright (c) 2020 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 "image_res.edc"
+#include "vp_font.edc"
+
+#define VP_EDC_NO_ITEM_IMAGE                       "T01-2_video_noitem.png"
+
+#define VP_GENLIST_NOITEM_TEXT_HEIGHT          32
+#define VP_GENLIST_NOITEM_ICON_HEIGHT          252
+#define VP_GENLIST_NOITEM_BUTTON_HEIGHT                80
+#define VP_GENLIST_NOITEM_BUTTON_WIDTH         688
+
+styles {
+       style { name: "signin_text_style";
+               base: "font=Tizen:style=Medium font_size=30 align=center valign=middle color=#000000 wrap=word";
+       }
+}
+
+styles {
+        style { name: "noitem_text_style";
+                base: "font=Tizen:style=Medium font_size=30 align=center valign=middle color=#808080 wrap=word";
+        }
+}
+
+collections {
+       group {
+               name: "listview.genlist.noitem.signin";
+               parts {
+                       part {
+                               name: "listview.genlist.noitem.signin.background";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       color: 248 246 239 255;
+                               }
+                       }
+
+                       part {
+                               name: "elm.padding.top";
+                               type: SPACER;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 290;
+                                       fixed: 0 1;
+                                       rel1 { relative: 0.0 0.0; to: "listview.genlist.noitem.signin.background"; }
+                                       rel2 { relative: 1.0 0.0; to: "listview.genlist.noitem.signin.background"; }
+                                       align: 0.5 0.0;
+                               }
+                       }
+
+                       part {
+                               name: "listview.genlist.noitem.signin.text.background";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 550 140;
+                                       max: 550 140;
+                                       fixed: 1 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 1.0; to_y: "elm.padding.top"; }
+                                       rel2 { relative: 1.0 1.0; to_y: "elm.padding.top"; }
+                                       visible: 0;
+                               }
+                       }
+
+                       part {
+                               name: "listview.genlist.noitem.signin.text";
+                               type: TEXTBLOCK;
+                               mouse_events: 0;
+                       scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "listview.genlist.noitem.signin.text.background"; }
+                                       rel2 { relative: 1.0 1.0; to: "listview.genlist.noitem.signin.text.background"; }
+                                       align: 0.5 0.5;
+                                       visible: 1;
+                       text {
+                                         style: "signin_text_style";
+                       }
+                               }
+            }
+
+                       part {
+                               name: "elm.padding.after.text";
+                               type: SPACER;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 106;
+                                       fixed: 0 1;
+                                       rel1 { relative: 0.0 1.0; to: "listview.genlist.noitem.signin.text.background";}
+                                       rel2 { relative: 1.0 1.0; to: "listview.genlist.noitem.signin.text.background";}
+                                       align: 0.5 0.0;
+                               }
+                       }
+
+                       part {
+                               name: "listview.genlist.noitem.signin.button.background";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: VP_GENLIST_NOITEM_BUTTON_WIDTH VP_GENLIST_NOITEM_BUTTON_HEIGHT;
+                                       max: VP_GENLIST_NOITEM_BUTTON_WIDTH VP_GENLIST_NOITEM_BUTTON_HEIGHT;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 1.0; to: "elm.padding.after.text"; }
+                                       rel2 { relative: 1.0 1.0; to: "elm.padding.after.text"; }
+                                       align: 0.5 0.0;
+                                       visible: 0;
+                                       color: 153 0 153 255;
+                               }
+                       }
+                       part {
+                               name: "listview.genlist.noitem.signin.button";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: VP_GENLIST_NOITEM_BUTTON_WIDTH VP_GENLIST_NOITEM_BUTTON_HEIGHT;
+                                       max: VP_GENLIST_NOITEM_BUTTON_WIDTH VP_GENLIST_NOITEM_BUTTON_HEIGHT;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 0.0; to: "listview.genlist.noitem.signin.button.background"; }
+                                       rel2 { relative: 1.0 1.0; to: "listview.genlist.noitem.signin.button.background"; }
+                                       align: 0.5 0.5;
+                               }
+                       }
+               }
+       }
+
+       group {
+               images {
+                       image: VP_EDC_NO_ITEM_IMAGE COMP;
+               }
+               name: "listview.genlist.noitem";
+               parts {
+                       part {
+                               name: "listview.genlist.noitem.background";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       color: 248 246 239 255;
+                               }
+                       }
+
+                       part {
+                               name: "elm.padding.top";
+                               type: SPACER;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 113;
+                                       fixed: 0 1;
+                                       rel1 { relative: 0.0 0.0; to: "listview.genlist.noitem.background";}
+                                       rel2 { relative: 1.0 0.0; to: "listview.genlist.noitem.background";}
+                                       align: 0.5 0.0;
+                               }
+                       }
+
+                       part {
+                               name: "listview.genlist.noitem.image.background";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: VP_GENLIST_NOITEM_ICON_HEIGHT VP_GENLIST_NOITEM_ICON_HEIGHT;
+                                       max: VP_GENLIST_NOITEM_ICON_HEIGHT VP_GENLIST_NOITEM_ICON_HEIGHT;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 1.0; to: "elm.padding.top"; }
+                                       rel2 { relative: 1.0 1.0; to: "elm.padding.top"; }
+                                       align: 0.5 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part {
+                               name: "listview.genlist.noitem.image";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: VP_GENLIST_NOITEM_ICON_HEIGHT VP_GENLIST_NOITEM_ICON_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       image {
+                                               normal: VP_EDC_NO_ITEM_IMAGE;
+                                       }
+                                       rel1 { relative: 0.0 0.0; to: "listview.genlist.noitem.image.background"; }
+                                       rel2 { relative: 1.0 1.0; to: "listview.genlist.noitem.image.background"; }
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "elm.padding.after.image";
+                               type: SPACER;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 16;
+                                       fixed: 0 1;
+                                       rel1 { relative: 0.0 1.0; to: "listview.genlist.noitem.image.background"; }
+                                       rel2 { relative: 1.0 1.0; to: "listview.genlist.noitem.image.background"; }
+                                       align: 0.5 0.0;
+                               }
+                       }
+
+                       part {
+                               name: "listview.genlist.noitem.text.background";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 550 120;
+                                       max: 550 120;
+                                       fixed: 1 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 1.0; to_y: "elm.padding.after.image"; }
+                                       rel2 { relative: 1.0 1.0; to_y: "elm.padding.after.image"; }
+                                       visible: 0;
+                               }
+                       }
+
+                       part {
+                               name: "listview.genlist.noitem.text";
+                               type: TEXTBLOCK;
+                               mouse_events: 0;
+                       scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "listview.genlist.noitem.text.background"; }
+                                       rel2 { relative: 1.0 1.0; to: "listview.genlist.noitem.text.background"; }
+                                       visible: 1;
+                                       align: 0.5 0.5;
+                       text {
+                                         style: "noitem_text_style";
+                       }
+                               }
+            }
+
+                       part {
+                               name: "elm.padding.after.text";
+                               type: SPACER;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 60;
+                                       fixed: 0 1;
+                                       rel1 { relative: 0.0 1.0; to: "listview.genlist.noitem.text.background";}
+                                       rel2 { relative: 1.0 1.0; to: "listview.genlist.noitem.text.background";}
+                                       align: 0.5 0.0;
+                               }
+                       }
+
+                       part {
+                               name: "listview.genlist.noitem.button.background";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: VP_GENLIST_NOITEM_BUTTON_WIDTH VP_GENLIST_NOITEM_BUTTON_HEIGHT;
+                                       max: VP_GENLIST_NOITEM_BUTTON_WIDTH VP_GENLIST_NOITEM_BUTTON_HEIGHT;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 1.0; to: "elm.padding.after.text"; }
+                                       rel2 { relative: 1.0 1.0; to: "elm.padding.after.text"; }
+                                       align: 0.5 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part {
+                               name: "listview.genlist.noitem.button";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: VP_GENLIST_NOITEM_BUTTON_WIDTH VP_GENLIST_NOITEM_BUTTON_HEIGHT;
+                                       max: VP_GENLIST_NOITEM_BUTTON_WIDTH VP_GENLIST_NOITEM_BUTTON_HEIGHT;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 0.0; to: "listview.genlist.noitem.button.background"; }
+                                       rel2 { relative: 1.0 1.0; to: "listview.genlist.noitem.button.background"; }
+                                       align: 0.5 0.5;
+                               }
+                       }
+               }
+       }
+}
+
+
diff --git a/res/edje/vp-images.edc b/res/edje/vp-images.edc
new file mode 100755 (executable)
index 0000000..d47b7ba
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2020 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 "edc_image_macro.edc"
+
+collections    {
+RESOURCE_IMAGE_LOSSY("turn_over/B15_turn_over_01.png")
+RESOURCE_IMAGE_LOSSY("turn_over/B15_turn_over_02.png")
+RESOURCE_IMAGE_LOSSY("turn_over/B15_turn_over_03.png")
+RESOURCE_IMAGE("icon/T01_2_button_expand_download.png")
+RESOURCE_IMAGE("icon/T01_2_button_expand_download_press.png")
+RESOURCE_IMAGE("icon/T01_2_button_expand_play.png")
+RESOURCE_IMAGE("icon/T01_2_button_expand_stop.png")
+RESOURCE_IMAGE("icon/T01_2_button_expand_cancel.png")
+RESOURCE_IMAGE("icon/T01_2_button_expand_cancel_press.png")
+
+RESOURCE_IMAGE("player_library_list_thumbnail_default.png")
+RESOURCE_IMAGE("icon/T01_2_icon_search.png")
+RESOURCE_IMAGE("sound_only.png")
+
+RESOURCE_IMAGE("icon/T01_2_icon_video.png")
+RESOURCE_IMAGE("icon/T01-2_video_noitem.png")
+RESOURCE_IMAGE("icon/T01-2_video_thumbnail_default.png")
+RESOURCE_IMAGE("icon/T02_icon_edit.png")
+RESOURCE_IMAGE("icon/U04_device_None_DNS.png")
+RESOURCE_IMAGE("icon/U04_device_TV.png")
+RESOURCE_IMAGE("icon/U04_device_PC.png")
+RESOURCE_IMAGE("icon/U04_device_STB.png")
+RESOURCE_IMAGE("icon/U04_device_Mobile.png")
+RESOURCE_IMAGE("icon/U04_device_Camera.png")
+RESOURCE_IMAGE("icon/U04_device_Camcorder.png")
+//RESOURCE_IMAGE("icon/U04_device_Tablet.png")
+RESOURCE_IMAGE("icon/T01_2_video_lock_45x45.png")
+RESOURCE_IMAGE("icon/T01_2_thumbnail_icon_drop_box.png")
+RESOURCE_IMAGE("icon/T01_Device_icon_index_refresh_bg.png")
+RESOURCE_IMAGE("icon/T01_Device_icon_index_refresh_focus_ef.png")
+
+//folder view
+RESOURCE_IMAGE("icon/player_folder_list_icon_folder.png")
+RESOURCE_IMAGE("icon/player_folder_list_icon_folder_ef.png")
+RESOURCE_IMAGE("icon/player_folder_list_icon_dropbox.png")
+RESOURCE_IMAGE("icon/player_folder_list_icon_dropbox_ef.png")
+RESOURCE_IMAGE("icon/T01_2_list_icon_inner_usb.png")
+RESOURCE_IMAGE("icon/T01_2_list_icon_sd_card.png")
+
+RESOURCE_IMAGE("toolbar/T01-2_controlbar_icon_video.png")
+RESOURCE_IMAGE("toolbar/T01-2_controlbar_icon_recorded.png")
+RESOURCE_IMAGE("toolbar/T01-2_btn_toolbar_back.png")
+RESOURCE_IMAGE("toolbar/T01-2_icon_toolbar_cancel.png")
+RESOURCE_IMAGE("toolbar/icon_delete.png")
+RESOURCE_IMAGE("toolbar/more_button_icon_add_to_your_personal_storage.png")
+RESOURCE_IMAGE("toolbar/more_button_icon_remove_from_your_personal_storage.png")
+RESOURCE_IMAGE("toolbar/T01-2_icon_toolbar_done.png")
+
+//Use for more button popup
+RESOURCE_IMAGE("toolbar/icon_signin.png")
+RESOURCE_IMAGE("toolbar/icon_download.png")
+RESOURCE_IMAGE("toolbar/icon_refresh.png")
+RESOURCE_IMAGE("toolbar/icon_sort_by.png")
+RESOURCE_IMAGE("toolbar/icon_view_as.png")
+RESOURCE_IMAGE("toolbar/icon_share_via.png")
+RESOURCE_IMAGE("toolbar/icon_nearbydevices.png")
+RESOURCE_IMAGE("T01_icon_soft_back.png");
+}
diff --git a/res/edje/vp-layout.edc b/res/edje/vp-layout.edc
new file mode 100755 (executable)
index 0000000..9a6db70
--- /dev/null
@@ -0,0 +1,392 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+   /*************************************************/
+   /* elm_layout -> video style                     */
+   /*************************************************/
+
+group {
+       name: "elm/layout/application/video";
+       parts {
+               part {
+                       name: "elm.swallow.bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 1.0 1.0;}
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.indicator";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 50;
+                               fixed: 0 1;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 0.0; }
+                               color: 0 0 0 255;
+                               visible: 1;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                               fixed: 0 1;
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.pixmap.bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                               color: 0 0 0 255;
+                               visible: 0;
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+
+               part {
+               name: "elm.swallow.pixmap";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.event";
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       repeat_events : 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                       }
+               }
+               part {
+                       name: "elm.swallow.subtitle";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 1;
+                       repeat_events : 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1.to_y: "elm.swallow.indicator";
+                               rel1.relative: 0.0 1.0;
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.volume.top";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 0 813;
+                               fixed: 0 1;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 0.0; }
+                               color: 0 255 0 128;
+                       }
+                       description {
+                               state: "landscape" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 336;
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.volume";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 616 104;
+                               fixed: 1 1;
+                               align: 0.5 0.0;
+                               rel1 { relative: 0.5 1.0; to_y : "elm.swallow.volume.top"; }
+                               rel2 { relative: 0.5 1.0; to_y : "elm.swallow.volume.top"; }
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.subtitle.sync";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                       }
+               }
+               part {
+                       name: "elm.swallow.controlbar";
+                       type: SWALLOW;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+       } /* parts */
+
+       programs {
+               program {
+                       signal: "signal.layout.pixmap.bg.show";
+                       source: "*";
+                       script {
+                               set_state(PART:"elm.swallow.pixmap.bg", "show", 0.0);
+                       }
+               }
+               program {
+                       signal: "signal.layout.pixmap.bg.hide";
+                       source: "*";
+                       script {
+                               set_state(PART:"elm.swallow.pixmap.bg", "default", 0.0);
+                       }
+               }
+               program {
+                       signal: "signal.layout.indicator.show";
+                       source: "*";
+                       script {
+                               set_state(PART:"elm.swallow.indicator", "default", 0.0);
+                       }
+               }
+               program {
+                       signal: "signal.layout.indicator.hide";
+                       source: "*";
+                       script {
+                               set_state(PART:"elm.swallow.indicator", "hide", 0.0);
+                       }
+               }
+               program {
+                       signal: "signal.volume.potrait.mode";
+                       source: "*";
+                       script {
+                               set_state(PART:"elm.swallow.volume.top", "default", 0.0);
+                       }
+               }
+               program {
+                       signal: "signal.volume.landscape.mode";
+                       source: "*";
+                       script {
+                               set_state(PART:"elm.swallow.volume.top", "landscape", 0.0);
+                       }
+               }
+
+       }
+} /* group */
+
+group {
+       name: "elm/layout/application/video_no_indicator";
+       parts {
+               part {
+                       name: "elm.swallow.bg";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 255;
+                       }
+               }
+               part {
+                       name: "elm.swallow.pixmap.bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                               color: 0 0 0 255;
+                               visible: 0;
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+
+               part {
+               name: "elm.swallow.pixmap";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.event";
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       repeat_events : 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                       }
+               }
+               part {
+                       name: "elm.swallow.subtitle";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       repeat_events : 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.subtitle.sync";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                       }
+               }
+               part {
+                       name: "elm.swallow.controlbar";
+                       type: SWALLOW;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.volume.top";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 0 813;
+                               fixed: 0 1;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 0.0; }
+                               color: 0 255 0 128;
+                       }
+                       description {
+                               state: "landscape" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 336;
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.volume";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 616 104;
+                               fixed: 1 1;
+                               align: 0.5 0.0;
+                               rel1 { relative: 0.5 1.0; to_y : "elm.swallow.volume.top"; }
+                               rel2 { relative: 0.5 1.0; to_y : "elm.swallow.volume.top"; }
+                       }
+               }
+       } /* parts */
+
+       programs {
+               program {
+                       signal: "signal.layout.pixmap.bg.show";
+                       source: "*";
+                       script {
+                               set_state(PART:"elm.swallow.pixmap.bg", "show", 0.0);
+                       }
+               }
+               program {
+                       signal: "signal.layout.pixmap.bg.hide";
+                       source: "*";
+                       script {
+                               set_state(PART:"elm.swallow.pixmap.bg", "default", 0.0);
+                       }
+               }
+               program {
+                       signal: "signal.volume.potrait.mode";
+                       source: "*";
+                       script {
+                               set_state(PART:"elm.swallow.volume.top", "default", 0.0);
+                       }
+               }
+               program {
+                       signal: "signal.volume.landscape.mode";
+                       source: "*";
+                       script {
+                               set_state(PART:"elm.swallow.volume.top", "landscape", 0.0);
+                       }
+               }
+       }
+} /* group */
+
+
diff --git a/res/edje/vp-main-layout.edc b/res/edje/vp-main-layout.edc
new file mode 100755 (executable)
index 0000000..0a51e80
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+
+#define VIDEO_STROE_DEFAULT_TOP_BG_IMAGE                       "title_line_top_video.png"
+#define VIDEO_STROE_DEFAULT_TOP_BG_MIN_SIZE_INC        72 6
+
+
+/*************************************************/
+/* elm_layout -> fundamental template style      */
+/*************************************************/
+
+collections {
+       group { name: "elm/layout/application/video/default";
+               images {
+                       image: VIDEO_STROE_DEFAULT_TOP_BG_IMAGE COMP;
+               }
+
+               parts {
+                       part { name: "elm.swallow.bg";
+                               type: RECT;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       rel1.offset: 0 0;
+                                       rel2.offset: -1 -1;
+                                       color: 248 246 239 255;
+                               }
+                       }
+
+                       part {
+                               name: "elm.swallow.content";
+                               //clip_to: "clipper";
+                               type: SWALLOW;
+                               scale: 1;
+
+                               description {
+                                       state: "default" 0.0;
+                               }
+                       }
+               }
+       }
+}
+
diff --git a/res/edje/vp-main-listview-internal.edc b/res/edje/vp-main-listview-internal.edc
new file mode 100755 (executable)
index 0000000..4ead0bc
--- /dev/null
@@ -0,0 +1,171 @@
+/*
+ * Copyright (c) 2020 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 "image_res.edc"
+#include "vp_font.edc"
+
+collections {
+       group {
+               name: "main.listview.internal";
+
+               parts {
+                       part {
+                               name: "main.listview.background";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 248 246 239 0;
+                               }
+                       }
+                       part {
+                               name: "main.listview.content";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "progress";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       color: 0 0 0 0;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name : "main.listview.tabbar";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0 0;
+                                       visible: 0;
+                                       min: 0 75;
+                                       color: 248 246 239 255;
+                                       fixed: 0 1;
+                                       rel1 { relative: 0.0 0.0;
+                                               to: "main.listview.content";
+                                       }
+                                       rel2 { relative: 1.0 0.0;
+                                               to: "main.listview.content";
+                                       }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "main.listview.selection.info";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       visible: 0;
+                                       rel1 { relative: 0.0 1.0; to: "main.listview.content"; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "gesture";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+               }
+
+               programs {
+                       program {
+                               signal: "signal.main.listview.internal.selection.info.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "main.listview.selection.info";
+                       }
+                       program {
+                               signal: "signal.main.listview.internal.selection.info.hide";
+                               source: "*";
+                               action: STATE_SET "hide" 0.0;
+                               target: "main.listview.selection.info";
+                       }
+                       program {
+                               name: "signal.main.listview.tabbar.show";
+                               signal: "signal.main.listview.tabbar.show";
+                               source: "elm";
+                               action: STATE_SET "show" 0.0;
+                               target: "main.listview.tabbar";
+                       }
+                       program {
+                               name: "signal.main.listview.tabbar.hide";
+                               signal: "signal.main.listview.tabbar.hide";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "main.listview.tabbar";
+                       }
+               }
+       } /* group */
+} /* collection */
+
diff --git a/res/edje/vp-main-listview-preview.edc b/res/edje/vp-main-listview-preview.edc
new file mode 100755 (executable)
index 0000000..56e8c29
--- /dev/null
@@ -0,0 +1,565 @@
+/*
+ * Copyright (c) 2020 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 "image_res.edc"
+#include "vp_font.edc"
+
+
+#define VP_EDC_PLAY_CIRCLE_ICON_PLAY                   "T01-2_control_circle_icon_play.png"
+
+#define PREVIEW_ICON_PREVIEW_WIDTH             720
+#define PREVIEW_ICON_PREVIEW_HEIGHT            406
+
+#define PREVIEW_ICON_PROGRESSBAR_H             11
+#define PREVIEW_ICON_PROGRESSBAR_W             668
+#define PREVIEW_ICON_PROGRESSBAR_L             26
+#define PREVIEW_ICON_PROGRESSBAR_R             (PREVIEW_ICON_PREVIEW_WIDTH-PREVIEW_ICON_PROGRESSBAR_L)
+#define PREVIEW_ICON_PROGRESSBAR_T             375
+#define PREVIEW_ICON_PROGRESSBAR_B             386
+
+//Define for landscape
+#define PREVIEW_PADDING_TOP                            10
+#define PREVIEW_PADDING_BOTTOM                 10
+#define PREVIEW_PADDING_RIGHT                  26
+
+#define PREVIEW_DETAIL_TEXT_LINE               50
+#define PREVIEW_DETAIL_TEXT_COLOR              0 0 0 255
+#define PREVIEW_DETAIL_TEXT_SIZE               30
+
+
+#define PREVIEW_ICON_PREVIEW_WIDTH_LANDSCAPE           640
+#define PREVIEW_ICON_PREVIEW_HEIGHT_LANDSCAPE          320
+
+#define PREVIEW_ICON_PROGRESSBAR_W_LANDSCAPE           606
+#define PREVIEW_ICON_PROGRESSBAR_L_LANDSCAPE           17
+#define PREVIEW_ICON_PROGRESSBAR_R_LANDSCAPE           (PREVIEW_ICON_PREVIEW_WIDTH_LANDSCAPE-PREVIEW_ICON_PROGRESSBAR_L_LANDSCAPE)
+#define PREVIEW_ICON_PROGRESSBAR_T_LANDSCAPE           289
+#define PREVIEW_ICON_PROGRESSBAR_B_LANDSCAPE           300
+
+
+#define GENLIST_PARAM_LISTITEM \
+   color: PREVIEW_DETAIL_TEXT_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "Tizen:style=Bold"; \
+      size: PREVIEW_DETAIL_TEXT_SIZE; \
+   }
+
+#define GENLIST_DESCRIPTION( left, right, top, bottom, param ) \
+      description { state: "default" 0.0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+
+#define GENLIST_DESCRIPTION_LRB( left, right, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0.5 1;\
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: bottom; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+
+#define GENLIST_PART_TEXT(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      repeat_events: 0; \
+      type: TEXT; \
+      DESCRIPION \
+    }
+
+
+#define PREVIEW_DEATIL_TEXT(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_LISTITEM \
+       ) \
+    )
+
+#define PREVIEW_DEATIL_TEXT_LRB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+               min: 0 HEIGHT; \
+               fixed: 0 1; \
+               GENLIST_PARAM_LISTITEM \
+      ) \
+   )
+
+collections {
+
+       sounds {
+          sample {
+                 name: "button-pressed" RAW;
+                 source: "button-pressed.wav";
+          }
+       }
+
+       group {
+               name: "listview.preview.movie.landspace.nocontent";
+               parts {
+                       part {
+                               name: "listview.preview.movie.nocontent.background";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       color: 248 246 239 255;
+                               }
+                       }
+
+                       part {
+                               name: "listview.preview.movie.nocontent.pixmap";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       min: PREVIEW_ICON_PREVIEW_WIDTH_LANDSCAPE PREVIEW_ICON_PREVIEW_HEIGHT_LANDSCAPE;
+                                       max: PREVIEW_ICON_PREVIEW_WIDTH_LANDSCAPE PREVIEW_ICON_PREVIEW_HEIGHT_LANDSCAPE;
+                                       fixed: 1 0;
+                                       align: 0.5 0.5;
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "listview.preview.movie.nocontent.background"; }
+                                       rel2 { relative: 1.0 1.0; to: "listview.preview.movie.nocontent.background"; }
+                               }
+                       }
+               }
+       }
+
+       group {
+               name: "listview.preview.movie.nocontent";
+               parts {
+                       part {
+                               name: "listview.preview.movie.nocontent.background";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       color: 248 246 239 255;
+                               }
+                       }
+
+                       part {
+                               name: "listview.preview.movie.nocontent.pixmap";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       min: PREVIEW_ICON_PREVIEW_WIDTH PREVIEW_ICON_PREVIEW_HEIGHT;
+                                       fixed: 1 0;
+                                       align: 0.5 0.5;
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "listview.preview.movie.nocontent.background"; }
+                                       rel2 { relative: 1.0 1.0; to: "listview.preview.movie.nocontent.background"; }
+                               }
+                       }
+               }
+       }
+
+
+       group {
+               name: "listview.preview.movie.landscape";
+               images {
+                       image: VP_EDC_PLAY_CIRCLE_ICON_PLAY COMP;
+               }
+
+               parts {
+                       part {
+                               name: "listview.preview.movie.landscape.background";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       color: 248 246 239 0;
+                               }
+                       }
+                       part {
+                               name: "listview.preview.movie.landscape.pixmap.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "listview.preview.movie.landscape.pixmap"; }
+                                       rel2 { relative: 1.0 1.0; to: "listview.preview.movie.landscape.pixmap"; }
+                                       color: 0 0 0 255;
+                               }
+                       }
+                       part {
+                               name: "listview.preview.movie.landscape.pixmap";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       min: PREVIEW_ICON_PREVIEW_WIDTH_LANDSCAPE PREVIEW_ICON_PREVIEW_HEIGHT_LANDSCAPE;
+                                       max: PREVIEW_ICON_PREVIEW_WIDTH_LANDSCAPE PREVIEW_ICON_PREVIEW_HEIGHT_LANDSCAPE;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "listview.preview.movie.landscape.background"; }
+                                       rel2 { relative: 0.5 1.0; to: "listview.preview.movie.landscape.background"; }
+                               }
+                       }
+
+                       part {
+                               name: "listview.preview.landscape.play.icon";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 154 154;
+                                       max: 154 154;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       visible: 1;
+                                       image {
+                                               normal: VP_EDC_PLAY_CIRCLE_ICON_PLAY;
+                                       }
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                               to: "listview.preview.movie.landscape.pixmap";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                               to: "listview.preview.movie.landscape.pixmap";
+                                       }
+
+                               }
+                       }
+
+                       part {
+                               name: "listview.preview.movie.landscape.progressbar";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 PREVIEW_ICON_PROGRESSBAR_H;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 {
+                                               relative: PREVIEW_ICON_PROGRESSBAR_L_LANDSCAPE/PREVIEW_ICON_PREVIEW_WIDTH_LANDSCAPE PREVIEW_ICON_PROGRESSBAR_T_LANDSCAPE/PREVIEW_ICON_PREVIEW_HEIGHT_LANDSCAPE;
+                                               to: "listview.preview.movie.landscape.pixmap";
+                                       }
+                                       rel2 {
+                                               relative: PREVIEW_ICON_PROGRESSBAR_R_LANDSCAPE/PREVIEW_ICON_PREVIEW_WIDTH_LANDSCAPE PREVIEW_ICON_PROGRESSBAR_B_LANDSCAPE/PREVIEW_ICON_PREVIEW_HEIGHT_LANDSCAPE;
+                                               to: "listview.preview.movie.landscape.pixmap";
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "listview.preview.movie.landscape.event";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "listview.preview.movie.landscape.pixmap"; }
+                                       rel2 { relative: 1.0 1.0; to: "listview.preview.movie.landscape.pixmap"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "listview.preview.movie.padding.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       max: 16 320;
+                                       min: 16 320;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       state: "default" 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "listview.preview.movie.landscape.pixmap"; }
+                                       rel2 { relative: 1.0 1.0; to: "listview.preview.movie.landscape.pixmap"; }
+                                       visible: 0;
+                               }
+                       }
+
+                       part {
+                               name: "elm.padding.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: PREVIEW_PADDING_RIGHT 0;
+                                       max: PREVIEW_PADDING_RIGHT -1;
+                                       fixed: 1 0;
+                                       align: 1.0 0.5;
+                                       rel1.to: "listview.preview.movie.landscape.background";
+                                       rel2.to: "listview.preview.movie.landscape.background";
+                                       rel1.relative: 1 0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part {
+                               name: "elm.padding.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 PREVIEW_PADDING_TOP;
+                                       max: -1 PREVIEW_PADDING_TOP;
+                                       fixed: 0 1;
+                                       rel1.to: "listview.preview.movie.landscape.background";
+                                       rel2.to: "listview.preview.movie.landscape.background";
+                                       rel2.relative: 1.0 0.0;
+                                       align: 0.5 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part {
+                               name: "elm.padding.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 PREVIEW_PADDING_BOTTOM;
+                                       max: -1 PREVIEW_PADDING_BOTTOM;
+                                       fixed: 0 1;
+                                       rel1.to: "listview.preview.movie.landscape.background";
+                                       rel2.to: "listview.preview.movie.landscape.background";
+                                       rel2.relative: 0.0 1.0;
+                                       align: 0.5 1.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       PREVIEW_DEATIL_TEXT("elm.text.title", PREVIEW_DETAIL_TEXT_LINE, "listview.preview.movie.padding.left", "elm.padding.right", "elm.padding.top", "elm.text.format")
+                       PREVIEW_DEATIL_TEXT_LRB("elm.text.format", PREVIEW_DETAIL_TEXT_LINE, "listview.preview.movie.padding.left", "elm.padding.right", "elm.text.date")
+                       PREVIEW_DEATIL_TEXT_LRB("elm.text.date", PREVIEW_DETAIL_TEXT_LINE, "listview.preview.movie.padding.left", "elm.padding.right", "elm.text.size")
+                       PREVIEW_DEATIL_TEXT_LRB("elm.text.size", PREVIEW_DETAIL_TEXT_LINE, "listview.preview.movie.padding.left", "elm.padding.right", "elm.text.resolution")
+                       PREVIEW_DEATIL_TEXT_LRB("elm.text.resolution", PREVIEW_DETAIL_TEXT_LINE, "listview.preview.movie.padding.left", "elm.padding.right", "elm.text.loaction")
+                       PREVIEW_DEATIL_TEXT_LRB("elm.text.loaction", PREVIEW_DETAIL_TEXT_LINE, "listview.preview.movie.padding.left", "elm.padding.right", "elm.padding.bottom")
+               }
+
+               programs {
+                       program { name: "play_button_press";
+                               action: PLAY_SAMPLE "button-pressed" 1.0;
+                       }
+
+                       program { name: "click_event";
+                               action: SIGNAL_EMIT "signal.listview.preview.movie.event.clicked" "";
+                       }
+
+                       program {
+                               name: "listview.preview.movie.event";
+                               source: "listview.preview.movie.landscape.event";
+                               signal: "mouse,clicked,1";
+                               script {
+                                               run_program(PROGRAM:"play_button_press");
+                               }
+                       }
+
+                       program {
+                               name: "listview.icon.click";
+                               source: "listview.preview.movie.landscape.event";
+                               signal: "mouse,clicked,1";
+                               after: "listview.preview.movie.event";
+                       }
+               }
+       }
+
+       group {
+               name: "listview.preview.movie";
+               images {
+                      image: VP_EDC_PLAY_CIRCLE_ICON_PLAY COMP;
+              }
+
+               parts {
+                       part {
+                               name: "listview.preview.movie.background";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       color: 0 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "listview.preview.movie.pixmap";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: PREVIEW_ICON_PREVIEW_WIDTH PREVIEW_ICON_PREVIEW_HEIGHT;
+                                       max: PREVIEW_ICON_PREVIEW_WIDTH PREVIEW_ICON_PREVIEW_HEIGHT;
+                                       fixed: 1 0;
+                                       align: 0.5 0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.0; to: "listview.preview.movie.background";}
+                                       rel2 { relative: 1.0 1.0; to: "listview.preview.movie.background";}
+                               }
+                       }
+
+                       part {
+                               name: "listview.preview.movie.event";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       color: 0 0 0 0;
+                                       rel1 { relative: 0.0 0.0; to: "listview.preview.movie.background";}
+                                       rel2 { relative: 1.0 1.0; to: "listview.preview.movie.background";}
+                               }
+                       }
+
+                       part {
+                               name: "listview.preview.play.icon";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 154 154;
+                                       max: 154 154;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       visible: 0;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                               to: "listview.preview.movie.pixmap";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                               to: "listview.preview.movie.pixmap";
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "listview.preview.play.icon.image";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       image {
+                                               normal: VP_EDC_PLAY_CIRCLE_ICON_PLAY;
+                                       }
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                               to: "listview.preview.play.icon";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                               to: "listview.preview.play.icon";
+                                       }
+                               }
+            }
+
+                       part {
+                               name: "listview.preview.movie.play.event";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                               to: "listview.preview.play.icon";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                               to: "listview.preview.play.icon";
+                                       }
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "listview.preview.movie.progressbar";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 PREVIEW_ICON_PROGRESSBAR_H;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 {
+                                               relative: PREVIEW_ICON_PROGRESSBAR_L/PREVIEW_ICON_PREVIEW_WIDTH PREVIEW_ICON_PROGRESSBAR_T/PREVIEW_ICON_PREVIEW_HEIGHT;
+                                               to: "listview.preview.movie.background";
+                                       }
+                                       rel2 {
+                                               relative: PREVIEW_ICON_PROGRESSBAR_R/PREVIEW_ICON_PREVIEW_WIDTH PREVIEW_ICON_PROGRESSBAR_B/PREVIEW_ICON_PREVIEW_HEIGHT;
+                                               to: "listview.preview.movie.background";
+                                       }
+                               }
+                       }
+               }
+
+               programs {
+                       program { name: "play_button_press";
+                               action: PLAY_SAMPLE "button-pressed" 1.0;
+                       }
+
+                       program { name: "click_event";
+                               action: SIGNAL_EMIT "signal.listview.preview.movie.event.clicked" "";
+                       }
+
+                       program {
+                               name: "listview.preview.movie.event";
+                               source: "listview.preview.movie.event";
+                               signal: "mouse,clicked,1";
+                               after: "play_button_press";
+                       }
+
+                       program {
+                               name: "listview.icon.click";
+                               source: "listview.preview.movie.play.event";
+                               signal: "mouse,clicked,1";
+                               after: "listview.preview.movie.event";
+                       }
+               }
+       }
+}
diff --git a/res/edje/vp-motion-popup.edc b/res/edje/vp-motion-popup.edc
new file mode 100755 (executable)
index 0000000..2966a17
--- /dev/null
@@ -0,0 +1,221 @@
+/*
+ * Copyright (c) 2020 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 "image_res.edc"
+#include "vp_font.edc"
+
+collections {
+       group { name: "popup_checkview";
+          parts {
+             part { name: "pad_t";
+                        type: SPACER;
+                scale : 1;
+                mouse_events: 0;
+                repeat_events: 1;
+                description { state: "default" 0.0;
+                   align: 0.5 0.0;
+                   min: 0 0;
+                   fixed: 0 1;
+                   rel1 {
+                      relative: 1.0 0.0;to_x: "pad_l";
+                   }
+                   rel2 {
+                      relative: 0.0 0.0;to_x: "pad_r";
+                   }
+                }
+             }
+             part { name: "pad_l";
+                        type: SPACER;
+                scale: 1;
+                description { state: "default" 0.0;
+                   min : 0 0;
+                   fixed: 1 0;
+                   rel1 {
+                      relative: 0.0 0.0;
+                   }
+                   rel2 {
+                      relative: 0.0 1.0;
+                   }
+                   align: 0.0 0.0;
+                }
+             }
+             part { name: "pad_r";
+                        type: SPACER;
+                scale: 1;
+                description { state: "default" 0.0;
+                   min : 0 0;
+                   fixed: 1 0;
+                   rel1 {
+                      relative: 1.0 0.0;
+                   }
+                   rel2 {
+                      relative: 1.0 1.0;
+                   }
+                   align: 1.0 0.0;
+                }
+             }
+             part { name:"elm.swallow.content";
+                type: SWALLOW;
+                scale : 1;
+                description { state: "default" 0.0;
+                   min: 648 0;
+                   align: 0.5 0.5;
+                   fixed: 1 0;
+                   rel1 {
+                      relative: 0.5 1.0;
+                      to: "pad_t";
+                   }
+                   rel2 {
+                      relative: 0.5 0.0;
+                      to: "pad_b";
+                   }
+                }
+             }
+             part { name: "pad_b";
+                        type: SPACER;
+                scale : 1;
+                mouse_events: 0;
+                description { state: "default" 0.0;
+                   align: 0.5 1.0;
+                   min: 0 84;
+                   fixed: 0 1;
+                   rel1 {
+                      relative: 1.0 1.0;to_x: "pad_l";
+                   }
+                   rel2 {
+                      relative: 0.0 1.0;to_x: "pad_r";
+                   }
+                }
+             }
+             part { name: "elm.swallow.end";
+                type: SWALLOW;
+                scale : 1;
+                mouse_events: 1;
+                repeat_events: 1;
+                description { state: "default" 0.0;
+                   align: 0.0 1.0;
+                   min: 64 64;
+                   max: 64 64;
+                   fixed: 1 1;
+                   rel1 {
+                      relative: 0.18 0.0;
+                      to: "pad_b";
+                   }
+                   rel2 {
+                      relative: 1.0 1.0;
+                      to: "pad_b";
+                   }
+                }
+             }
+             part { name: "pad_after_check";
+                type : RECT;
+                scale : 1;
+                mouse_events: 0;
+                description { state: "default" 0.0;
+                   align: 0.0 0.0;
+                   min: 16 64;
+                   fixed: 1 1;
+                   visible: 0;
+                   rel1 {
+                      relative: 1.0 0.0;to: "elm.swallow.end";
+                   }
+                   rel2 {
+                      relative: 1.0 1.0;to: "elm.swallow.end";
+                   }
+                }
+             }
+             part { name: "elm.text";
+                type: TEXT;
+                scale : 1;
+                description { state: "default" 0.0;
+                   text {
+                      font: "Tizen:style=Medium";
+                      size: 42;
+                      min: 0 0;
+                      align: 0.0 0.5;
+                   }
+                   color: 0 0 0 255;
+                   align: 0.0 0.5;
+                   rel1 {
+                      relative: 1.0 0.0;
+                      to_x: "pad_after_check";
+                      to_y: "elm.swallow.end";
+                   }
+                   rel2 {
+                      relative: 1.0 1.0;
+                      to_y: "elm.swallow.end";
+                   }
+                }
+             }
+          }
+       }
+
+       group { name: "popup_checkview_image";
+          inherit: "popup_checkview";
+          parts{
+             part{ name:"elm.swallow.content";
+                type: SWALLOW;
+                scale : 1;
+                description { state: "default" 0.0;
+                   min: 648 0;
+                   align: 0.5 0.5;
+                   fixed: 1 0;
+                   rel1 {
+                      relative: 0.5 1.0;
+                      to: "pad_t";
+                   }
+                   rel2 {
+                      relative: 0.5 0.0;
+                      to: "elm.swallow.icon.bg";
+                   }
+                }
+             }
+             part { name: "elm.swallow.icon.bg";
+                scale: 1;
+                description { state: "default" 0.0;
+                   align: 0.5 1.0;
+                   fixed: 1 1;
+                   visible: 0;
+                   min: 580 390;
+                   rel1 {
+                      relative: 0.5 0.0;
+                      to: "pad_b";
+                   }
+                   rel2 {
+                      relative: 0.5 0.0;
+                      to: "pad_b";
+                   }
+                }
+             }
+             part { name: "elm.swallow.icon";
+                type: SWALLOW;
+                scale: 1;
+                description { state: "default" 0.0;
+                   align: 0.5 0.5;
+                   fixed: 0 1;
+                   min: 580 390;
+                   rel1 {
+                      relative: 0.0 0.5;
+                      to: "elm.swallow.icon.bg";
+                   }
+                   rel2 {
+                      relative: 1.0 0.5;
+                      to: "elm.swallow.icon.bg";
+                   }
+                }
+             }
+          }
+       }
+}
diff --git a/res/edje/vp-naviframe.edc b/res/edje/vp-naviframe.edc
new file mode 100755 (executable)
index 0000000..4af6357
--- /dev/null
@@ -0,0 +1,396 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#define NAVIFRAME_TOP_LINE_COLOR  146 130 255 255
+#define SEARCHBAR_H_INC 69
+externals {
+          external: "elm";
+          external: "feedback";
+       }
+collections
+{
+       /*************************************************/
+       /* elm_layout -> searchbar style                 */
+       /*************************************************/
+plugins {
+       plugin {
+               name: "touch_sound_plugin";
+               source: "feedback";
+               param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+               }
+       }
+       base_scale: 2.6;
+       group {
+               name: "search_view_layout";
+               parts {
+                       part {
+                               name: "background";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       color: 255 255 255 0;
+                               }
+                       }
+                       part {
+                               name: "search_bar";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 58;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 0.0; to:"background"; }
+                                       rel2 { relative: 1.0 0.0; to:"background"; }
+                                       color: 255 255 255 0;
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.content";
+                               type: SWALLOW;
+                               scale: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.0;
+                                       fixed: 0 1;
+                                       rel1 { relative: 0.0 1.0; to_y:"search_bar"; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                       }
+               }
+       }
+
+       group {
+               name: "searchbar_video";
+               images{
+                       image: "T01_icon_soft_back_blabk.png" COMP;
+               }
+               parts {
+                       part {
+                               name: "bg";
+                               mouse_events: 0;
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 58;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       color: 255 255 255 255;
+                               }
+                       }
+                       part {
+                               name: "searchbar_video_title_rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 0.0; to: "bg"; }
+                                       rel2 { relative: 1.0 1.0;to:"bg"; }
+                                       color: 255 255 255 255;
+                               }
+                       }
+                       part {
+                               name: "searchbar_video_soft_back_button";
+                               type: RECT;
+                               scale: 1;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1{ relative: 0.0 0.1; to: "searchbar_video_title_rect"; }
+                                       rel2{ relative: 0.1 0.9; to: "searchbar_video_title_rect"; }
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 255 255 255 255;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       rel1{ relative: 0.0 0.1; to: "searchbar_video_title_rect"; }
+                                       rel2{ relative: 0.06 0.9; to: "searchbar_video_title_rect"; }
+                               }
+                       }
+                       part {
+                               name: "searchbar_video_soft_back_button_image";
+                               type: IMAGE;
+                               repeat_events : 1;
+                               description{ state: "default" 0.0;
+                               min : 40 40 ;
+                               max : 40 40 ;
+                               align: 0.5 0.5;
+                               rel1 { relative: 0 0; to: "searchbar_video_soft_back_button"; }
+                               rel2 { relative: 1 1; to: "searchbar_video_soft_back_button"; }
+                               image.normal: "T01_icon_soft_back_blabk.png";
+                               }
+                       }
+                       part {
+                               name: "searchbar_outer_rect";
+                               type: RECT;
+                               scale: 1;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.1 0.12; to: "searchbar_video_title_rect"; }
+                                       rel2 { relative: 0.95 0.83; to: "searchbar_video_title_rect"; }
+                                       color: 0 0 0 255;
+                               }
+                               description{
+                                       state: "landscape" 0.0;
+                                       rel1 { relative: 0.06 0.12; to: "searchbar_video_title_rect"; }
+                                       rel2 { relative: 0.97 0.83; to: "searchbar_video_title_rect"; }
+                                       color: 0 0 0 255;
+                               }
+                       }
+                       part {
+                               name: "searchbar_inner_rect";
+                               type: RECT;
+                               scale: 1;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.104 0.15; to: "searchbar_video_title_rect"; }
+                                       rel2 { relative: 0.947 0.80; to: "searchbar_video_title_rect"; }
+                                       color: 255 255 255 255;
+                               }
+                               description{
+                                       state: "landscape" 0.0;
+                                       rel1 { relative: 0.0625 0.15; to: "searchbar_video_title_rect"; }
+                                       rel2 { relative: 0.9675 0.80; to: "searchbar_video_title_rect"; }
+                                       color: 255 255 255 255;
+                               }
+                       }
+                       part {
+                               name: "searchbar_outer_line";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.98; to_y: "searchbar_video_title_rect"; }
+                                       rel2 { relative: 1.0 1.0; to: "searchbar_video_title_rect"; }
+                                       color: 0 0 0 255;
+                               }
+                       }
+                       part {
+                               name: "searchbar";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 SEARCHBAR_H_INC;
+                                       //fixed: 0 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 0.0 0.05; to: "searchbar_inner_rect"; }
+                                       rel2 { relative: 0.9 1.0;  to: "searchbar_inner_rect"; }
+                               }
+                               description {
+                                       state: "visible" 0.0;
+                                       inherit: "default" 0.0;
+                                       align: 0.0 0.0;
+                               }
+                       }
+                       part {
+                               name: "searchbar_clear_btn";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.5;
+                                       color: 0 0 0 255;
+                                       rel1 { relative: 0.8 0.0; to_y: "searchbar"; }
+                                       rel2 { relative: 1.0 1.0; to_y: "searchbar"; }
+                               }
+                               description{
+                                       state: "landscape" 0.0;
+                                       color: 0 0 0 255;
+                                       rel1 { relative: 0.9 0.05; to: "searchbar_inner_rect"; }
+                                       rel2 { relative: 1.0 1.0; to: "searchbar_inner_rect"; }
+                               }
+                       }
+                       part {
+                               name: "progress";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.5;
+                                       color: 0 255 0 0;
+                                       rel1 { relative: 0.0 1.0; to: "searchbar_video_title_rect"; }
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "show_portrait";
+                               signal: "elm,state,show,portrait";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               //target: "searchbar_video_title_rect";
+                               target: "searchbar_video_soft_back_button";
+                               target: "searchbar_outer_rect";
+                               target: "searchbar_inner_rect";
+                       }
+                       program {
+                               name: "show_landscape";
+                               signal: "elm,state,show,landscape";
+                               source: "elm";
+                               action: STATE_SET "landscape" 0.0;
+                               //target: "searchbar_video_title_rect";
+                               target: "searchbar_video_soft_back_button";
+                               target: "searchbar_outer_rect";
+                               target: "searchbar_inner_rect";
+                       }
+                       program {
+                               name: "show_clear_button_portrait";
+                               signal: "elm,state,show,clear_button,portrait";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "searchbar_clear_btn";
+                       }
+                       program {
+                               name: "show_clear_button_landscape";
+                               signal: "elm,state,show,clear_button,landscape";
+                               source: "elm";
+                               action: STATE_SET "landscape" 0.0;
+                               target: "searchbar_clear_btn";
+                       }
+                       program{
+                               name: "searchbar_video_send_signal";
+                               signal: "mouse,up,1"; //mouse,down,1 // mouse,up,1
+                               source: "searchbar_video_soft_back_button";
+                               action: SIGNAL_EMIT "elm,action,click" "back_button_callback";
+                               target: "searchbar_video_soft_back_button";
+                       }
+                       program{
+                               name: "touch_snd";
+                               source: "searchbar_video_soft_back_button";
+                               signal: "mouse,clicked,1";
+                               action: RUN_PLUGIN "touch_sound_plugin";
+                               }
+                       program{
+                               name: "touch_snd_clear";
+                               source: "searchbar_clear_btn";
+                               signal: "mouse,clicked,1";
+                               action: RUN_PLUGIN "touch_sound_plugin";
+                               }
+                       program {
+                               name: "show_searchbar";
+                               signal: "elm,state,show,searchbar";
+                               source: "elm";
+                               action: STATE_SET "visible" 0.0;
+                               target: "searchbar";
+                       }
+                       program {
+                               name: "show_searchbar_with_animation";
+                               signal: "elm,state,show,searchbar,animation";
+                               source: "elm";
+                               action: STATE_SET "visible" 0.0;
+                               transition: DECELERATE 0.3;
+                               target: "searchbar";
+                       }
+                       program {
+                               name: "hide_searchbar";
+                               signal: "elm,state,hide,searchbar";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "searchbar";
+                       }
+                       program {
+                               name: "hide_searchbar_with_animation";
+                               signal: "elm,state,hide,searchbar,animation";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               transition: ACCELERATE 0.3;
+                               target: "searchbar";
+                       }
+               }
+       }
+
+       group {
+               name: "download.series.view";
+               parts {
+                       part {
+                               name, "background";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state, "default" 0.0;
+                                       visible: 1;
+                                       color: 248 246 239 255;
+                               }
+                               description {
+                                       state, "rotate" 0.0;
+                                       visible: 1;
+                                       min: 1280 0;
+                                       max: 1280 10000;
+                               }
+                       }
+                       part {
+                               name: "content";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                               }
+                               description {
+                                       state: "rotate" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+                       }
+                       part {
+                               name: "progress";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                               }
+                               description {
+                                       state: "rotate" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "view,rotate";
+                               signal: "view,rotate";
+                               source: "elm";
+                               action: STATE_SET "rotate" 0.0;
+                               target: "background";
+                               target: "content";
+                               target: "progress";
+                       }
+                       program {
+                               name: "view,default";
+                               signal: "view,default";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "background";
+                               target: "content";
+                               target: "progress";
+                       }
+               }
+       }
+}
diff --git a/res/edje/vp-nocontents.edc b/res/edje/vp-nocontents.edc
new file mode 100755 (executable)
index 0000000..6bb163d
--- /dev/null
@@ -0,0 +1,428 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#define NOCONTENT_TEXT_BLOCK_TEXT_SIZE_INC 32*0.444
+#define NOCONTENT_TEXT_BLOCK_STYLE_COLOR_INC 173 170 165 255
+
+#define NOCONTENT_BG_COLOR_INC               0 0 0 0
+#define NOCONTENT_MIDDLE_PADDING_INC         38*0.444
+#define NOCONTENT_IMAGE_COLOR_INC            128 128 128 255
+
+#define NOCONTENT_TEXT_BLOCK_TEXT_SIZE_INC   36*0.444
+#define NOCONTENT_HELP_TEXT_BLOCK_TEXT_SIZE_INC 25*0.444
+#define NOCONTENT_IMAGE_WIDTH_HEIGHT_INC     112 112   //252 252
+#define NOCONTENT_TEXT_STYLE_BG_MIN_INC      0 68*0.444
+#define NOCONTENT_BASE_SEARCH_PADDING_INC    40*0.444
+#define NOCONTENT_PORTRAIT_HELP_TEXT_STYLE_BG_MIN_INC 0 152*0.444
+#define NOCONTENT_LANDSCAPE_HELP_TEXT_STYLE_BG_MIN_INC 0 78*0.444
+#define NOCONTENT_SWALLOW_AREA_MIN_INC       0 80*0.444
+#define NOCONTENT_PORTRAIT_AFTER_HELP_TEXT_PADDING_INC 70*0.444 90*0.444
+#define NOCONTENT_LANDSCAPE_AFTER_HELP_TEXT_PADDING_INC 180*0.444 16*0.444
+#define NOCONTENT_PORTRAIT_AFTER_TEXT_PADDING_INC    70*0.444 96*0.444
+#define NOCONTENT_LANDSCAPE_AFTER_TEXT_PADDING_INC    180*0.444 16*0.444
+#define NOCONTENT_BASE_PORTRAIT_MIN_WIDTH_HEIGHT_INC 0 460*0.444
+#define NOCONTENT_BASE_LANDS_MIN_WIDTH_HEIGHT_INC 0 460*0.444
+#define NOCONTENT_BASE_PORTRAIT_MIN_WIDTH_HEIGHT_WITH_TEXT 0 920*0.444
+#define NOCONTENT_BASE_LANDS_MIN_WIDTH_HEIGHT_WITH_TEXT 0 570*0.444
+#define NOCONTENT_PORTRAIT_BUTTON_PADDING_INC 16*0.444 80*0.444
+#define NOCONTENT_LANDSCAPE_BUTTON_PADDING_INC 180*0.444 80*0.444
+
+//#define MP_LIST_NO_CONTENT_IMAGE  "T02_video_noitem.png"
+styles{
+style { name: "nocontent_style";
+        base: "font=Tizen:style=Bold font_size="NOCONTENT_TEXT_BLOCK_TEXT_SIZE_INC" align=center color=#000000 wrap=mixed ellipsis=1.0";
+        tag:  "br" "\n";
+        tag:  "hilight" "+ font=Tizen:style=Bold";
+        tag:  "b" "+ font=Tizen:style=Bold";
+        tag:  "tab" "\t";
+}
+style { name: "nocontent_style_dim";
+        base: "font=Tizen:style=Bold font_size="NOCONTENT_TEXT_BLOCK_TEXT_SIZE_INC" align=center color=#000000 wrap=mixed ellipsis=1.0";
+        tag:  "br" "\n";
+        tag:  "hilight" "+ font=Tizen:style=Bold";
+        tag:  "b" "+ font=Tizen:style=Bold";
+        tag:  "tab" "\t";
+}
+style { name: "nocontent_help_text";
+        base: "font=Tizen:style=Regular font_size="NOCONTENT_HELP_TEXT_BLOCK_TEXT_SIZE_INC" align=center color=#000000 wrap=mixed ellipsis=1.0";
+        tag:  "br" "\n";
+        tag:  "hilight" "+ font=Tizen:style=Regular";
+        tag:  "b" "+ font=Tizen:style=Regular";
+        tag:  "tab" "\t";
+}
+}
+
+group { name: "nocontents_layout";
+   parts {
+      part { name: "contents";
+         type: SWALLOW;
+         description { state: "default" 0.0;
+         }
+      }
+      part { name: "access";
+         type: RECT;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            rel1.to: "contents";
+            rel2.to: "contents";
+            color: 0 0 0 0;
+         }
+      }
+   }
+}
+
+group {
+       name: "elm/layout/nocontents/video";
+       alias: "elm/nocontents/base/full";
+       alias: "elm/nocontents/base/default";
+       alias: "elm/nocontents/base/text";
+       
+       script {
+               public center_align = 0;
+               public landscape_mode = 0;
+       }
+
+   parts {
+      part { name: "bg";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 0 1;
+            min: NOCONTENT_BASE_PORTRAIT_MIN_WIDTH_HEIGHT_INC;
+            rel1 {
+               relative: 0.0 0.0; offset:0 222;        //0 500;
+            }
+            rel2 {
+               relative: 1.0 0.0;offset:0 222; //0 500;
+            }
+         }
+         description { state: "help_txt_port_centre_align";
+            inherit: "default" 0.0;
+            min: NOCONTENT_BASE_PORTRAIT_MIN_WIDTH_HEIGHT_WITH_TEXT;
+         }
+         description { state: "landscape" 0.0;
+            inherit: "default" 0.0;
+              rel1 {
+               relative: 0.0 0.0; offset:0 280*0.444;
+            }
+            rel2 {
+               relative: 1.0 0.0;offset:0 280*0.444;
+            }
+            min: NOCONTENT_BASE_LANDS_MIN_WIDTH_HEIGHT_INC;
+         }
+         description { state: "help_txt_lands_centre_align";
+            inherit: "landscape" 0.0;
+            min: NOCONTENT_BASE_LANDS_MIN_WIDTH_HEIGHT_WITH_TEXT;
+         }
+      }
+      part { name: "nocontents.image";
+               type: SWALLOW;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            min: 252 252;
+            align: 0.5 0.0;
+            rel1 {
+               relative: 0.5 275/1109;
+               to: "bg";
+            }
+            rel2 {
+               relative: 0.5 275/1109;
+               to: "bg";
+            }
+            color: 255 255 255 255;
+            aspect: 1.0 1.0;
+            aspect_preference: BOTH;
+         }
+      }
+      part { name: "elm.text";
+         type: TEXTBLOCK;
+         description { state: "default" 0.0;
+            min: 0 68;
+            align: 0.5 0.0;
+            fixed: 0 1;
+            rel1 {
+               relative: 0.0 1.0;
+               to_y: "nocontents.image";
+            }
+            rel2 {
+               relative: 1.0 1.0;
+               to_y: "nocontents.image";
+            }
+            text {
+               style: "nocontent_style";
+               min: 0 1;
+               max: 0 1;
+            }
+         }
+         description { state: "disabled" 1.0;
+            inherit: "default" 0.0;
+            text {
+               style: "nocontent_style_dim";
+               min: 0 1;
+               max: 0 1;
+            }
+         }
+      }
+      part { name: "padding_after_text";
+         mouse_events: 0;
+         type: SPACER;
+         description { state: "default" 0.0;
+            align: 0.0 0.0;
+            min: 70 5;
+            fixed: 1 1;
+            rel1 {
+               relative: 0.0 1.0;
+               to_y: "elm.text";
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               to_y: "elm.text";
+            }
+         }
+         description { state: "landscape" 0.0;
+            inherit: "default" 0.0;
+            min: 180 16;
+         }
+      }
+      part { name: "elm.help.text";
+         type: TEXTBLOCK;
+         description { state: "default" 0.0;
+            align: 0.0 0.0;
+            min: NOCONTENT_PORTRAIT_HELP_TEXT_STYLE_BG_MIN_INC;
+            fixed: 1 1;
+            rel1 {
+               relative: 1.0 1.0;
+               to: "padding_after_text";
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               to_x: "pad_after_help_text";
+               to_y: "padding_after_text";
+            }
+            text {
+               style: "nocontent_help_text";
+               align: 0.0 0.5;
+               min: 0 1;
+               max: 0 1;
+            }
+         }
+         description { state: "landscape" 0.0;
+            inherit: "default" 0.0;
+            min: NOCONTENT_LANDSCAPE_HELP_TEXT_STYLE_BG_MIN_INC;
+         }
+      }
+      part { name: "pad_after_help_text";
+         mouse_events: 0;
+         type: SPACER;
+         description { state: "default" 0.0;
+            align: 1.0 0.0;
+            min: 70 25;
+            fixed: 1 1;
+            rel1 {
+               relative: 1.0 1.0;
+               to_y: "elm.help.text";
+            }
+            rel2 {
+               relative: 1.0 1.0;
+               to_y: "elm.help.text";
+            }
+         }
+         description { state: "landscape" 0.0;
+            inherit: "default" 0.0;
+            min: 180 5;
+         }
+      }
+      part { name: "swallow_area";
+         type: SWALLOW;
+         description { state: "default" 0.0;
+            min: NOCONTENT_SWALLOW_AREA_MIN_INC;
+            fixed: 1 1;
+            align: 0.5 0.0;
+            rel1 {
+              relative: 0.0 1.0; to_x: "bg"; to_y: "pad_after_help_text"; offset: 16 0;
+            }
+            rel2 {
+               relative: 1.0 1.0; to_x: "bg"; to_y: "pad_after_help_text"; offset: -16 0;
+            }
+         }
+        description { state: "landscape" 0.0;
+            inherit: "default";
+            rel1 {
+               relative: 1.0 1.0;
+               to_x: "padding_after_text";
+               to_y: "pad_after_help_text";
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               to: "pad_after_help_text";
+            }
+         }
+      }
+   }
+   programs {
+      program { name: "landscape_mode";
+         source: "elm";
+         signal: "elm,state,orient,90";
+         script {
+            set_int(landscape_mode, 1);
+            if (get_int(center_align) == 1)
+               set_state(PART:"bg", "help_txt_lands_centre_align", 0.0);
+            else
+               set_state(PART:"bg", "landscape", 0.0);
+            set_state(PART:"elm.help.text", "landscape", 0.0);
+            set_state(PART:"padding_after_text", "landscape", 0.0);
+            set_state(PART:"pad_after_help_text", "landscape", 0.0);
+            set_state(PART:"swallow_area", "landscape", 0.0);
+         }
+      }
+      program { name: "landscape_mode2";
+         source: "elm";
+         signal: "elm,state,orient,270";
+         script {
+            set_int(landscape_mode, 1);
+            if (get_int(center_align) == 1)
+               set_state(PART:"bg", "help_txt_lands_centre_align", 0.0);
+            else
+               set_state(PART:"bg", "landscape", 0.0);
+            set_state(PART:"elm.help.text", "landscape", 0.0);
+            set_state(PART:"padding_after_text", "landscape", 0.0);
+            set_state(PART:"pad_after_help_text", "landscape", 0.0);
+            set_state(PART:"swallow_area", "landscape", 0.0);
+         }
+      }
+      program { name: "portrait_mode";
+         source: "elm";
+         signal: "elm,state,orient,0";
+         script {
+            set_int(landscape_mode, 0);
+            if (get_int(center_align) == 1)
+               set_state(PART:"bg", "help_txt_port_centre_align", 0.0);
+            else
+               set_state(PART:"bg", "default", 0.0);
+            set_state(PART:"elm.help.text", "default", 0.0);
+            set_state(PART:"padding_after_text", "default", 0.0);
+            set_state(PART:"pad_after_help_text", "default", 0.0);
+            set_state(PART:"swallow_area", "default", 0.0);
+         }
+      }
+      program { name: "portrait_mode2";
+         source: "elm";
+         signal: "elm,state,orient,180";
+         script {
+            set_int(landscape_mode, 0);
+            if (get_int(center_align) == 1)
+               set_state(PART:"bg", "help_txt_port_centre_align", 0.0);
+            else
+               set_state(PART:"bg", "default", 0.0);
+            set_state(PART:"elm.help.text", "default", 0.0);
+            set_state(PART:"padding_after_text", "default", 0.0);
+            set_state(PART:"pad_after_help_text", "default", 0.0);
+            set_state(PART:"swallow_area", "default", 0.0);
+         }
+      }
+      program { name: "disabled";
+            signal: "text,disabled";
+            source: "";
+            action: STATE_SET "disabled" 0.0;
+            target: "elm.text";
+      }
+      program { name: "align_center";
+         signal: "align.center";
+         source: "elm";
+         script {
+            if (get_int(landscape_mode) == 1)
+               set_state(PART:"bg", "help_txt_lands_centre_align", 0.0);
+            else
+               set_state(PART:"bg", "help_txt_port_centre_align", 0.0);
+            set_int(center_align, 1);
+         }
+      }
+   }
+}
+
+   group {
+      name: "elm/layout/nocontents/main_navi_video_search_result";
+
+     parts {
+      part { name: "bg";
+         type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: NOCONTENT_BG_COLOR_INC;
+                       rel1 { relative: 0.0 0.0;}
+                       rel2 { relative: 1.0 1.0;}
+         }
+      }
+
+      part { name: "elm.text";
+        type: TEXT;
+        description { state: "default" 0.0;
+           fixed: 0 1;
+           align: 0.5 0.5;
+           visible: 1;
+           rel1 { relative: 0.0 0.0; to: "bg";}
+           rel2 { relative: 1.0 1.0; to: "bg";}
+                  color: 18 18 18 255;
+           text {
+              size: 36;
+           }
+        }
+     }
+    }
+   }
+
+   group {
+      name: "elm/layout/nocontents/sub_navi_video_search_result";
+      styles{
+         style { name: "nocontent_style_text_sub";
+            base: "font=Tizen:style=Roman font_size="NOCONTENT_TEXT_BLOCK_TEXT_SIZE_INC" align=center color=#ffffff wrap=word";
+            tag:  "br" "\n";
+            tag:  "hilight" "+ font=Tizen:style=Bold";
+            tag:  "b" "+ font=Tizen:style=Bold";
+            tag:  "tab" "\t";
+         }
+      }
+
+      parts {
+      part { name: "bg";
+         type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: NOCONTENT_BG_COLOR_INC;
+                       rel1 { relative: 0.0 0.0;}
+                       rel2 { relative: 1.0 1.0;}
+         }
+      }
+
+      part { name: "elm.text";
+        type: TEXTBLOCK;
+        description {
+                  state: "default" 0.0;
+           fixed: 0 1;
+           align: 0.5 0.28;
+           visible: 1;
+           rel1 { relative: 0.0 0.0; to: "bg";}
+           rel2 { relative: 1.0 1.0; to: "bg";}
+           color: NOCONTENT_TEXT_BLOCK_STYLE_COLOR_INC;
+           text {
+              style: "nocontent_style_text_sub";
+              min: 0 0;
+              max: 0 1;
+           }
+        }
+     }
+    }
+  }
diff --git a/res/edje/vp-numberinfo.edc b/res/edje/vp-numberinfo.edc
new file mode 100755 (executable)
index 0000000..fc43164
--- /dev/null
@@ -0,0 +1,688 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#define NUMBER_INFO_BACKGROUND_COLOR_INC                       189 187 181 255
+#define NUMBER_INFO_TEXT_COLOR_INC                                     77 77 77 255//248 246 239 255
+#define NUMBER_INFO_VER_PADDING_INC                            50
+#define NUMBER_INFO_LEFT_PADDING_INC                           16
+#define NUMBER_INFO_TEXT_FONT_SIZE_INC                         30
+#define GROUP_INDEX_HEIGHT                                     51//28
+#define GROUP_INDEX_PADDING_H                                  7
+#define GROUP_INDEX_PADDING_W                                  15
+
+#define SELECT_ALL_PART_H                                                                              84
+#define SELECT_ALL_PART_PADDING_L                               15
+#define SELECT_ALL_PART_PADDING_R                               15
+#define SELECT_ALL_TXT_PADDING_R                                       15
+#define SELECT_ALL_ICON_SIZE                                           40
+#define SELECT_ALL_PART_PADDING_T                               0
+#define SELECT_ALL_PART_PADDING_B                               0
+#define SELECT_ALL_PART_INDEX_H                                1
+
+
+sounds {
+       sample {
+               name: "button-pressed" RAW;
+               source: "button-pressed.wav";
+       }
+}
+
+group {
+       name: "count_info_groupindex";
+
+       parts {
+               part {
+                       name: "bg";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 32;
+                               max: 480 51;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                               visible: 1;
+                               color: 179 179 179 255;
+                       }
+               }
+               part {
+                       name: "elm.swallow.groupindex";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to: "bg"; }
+                               rel2 { relative: 1.0 1.0; to: "bg"; }
+                       }
+               }
+       }
+}
+
+group {
+       name: "count_info";
+
+       parts {
+               part {
+                       name: "base";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 GROUP_INDEX_HEIGHT;
+                               max: -1 GROUP_INDEX_HEIGHT;
+                               align: 0.5 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 0.0; }
+                               visible: 1;
+                               color: 179 179 179 255;
+                       }
+               }
+               part {
+                       name: "text.bg";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                          state: "default" 0.0;
+                          //fixed: 0 1;
+                          align: 0.5 0.5;
+                          color: 21 108 148 255;
+                          rel1 { relative: 0.0 0.0; to: "base"; }
+                          rel2 { relative: 1.0 1.0; to: "base"; }
+                       }
+               }
+               part { name: "pad.left";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: GROUP_INDEX_PADDING_W 0;
+                               max: GROUP_INDEX_PADDING_W -1;
+                               fixed: 1 0;
+                               align: 0.0 0.5;
+                               //rel2.relative: 0.0 1.0;
+                               rel1 { relative: 0.0 0.0; to: "text.bg"; }
+                               rel2 { relative: 0.0 1.0; to: "text.bg"; }
+                               visible: 0;
+                       }
+               }
+               part { name: "pad.right";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: GROUP_INDEX_PADDING_W 0;
+                               max: GROUP_INDEX_PADDING_W -1;
+                               fixed: 1 0;
+                               align: 1.0 0.5;
+                               //rel1.relative: 1 0;
+                               rel1 { relative: 1.0 0.0; to: "text.bg"; }
+                               rel2 { relative: 1.0 1.0; to: "text.bg"; }
+                               visible: 0;
+                       }
+               }
+               part { name: "pad.top";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 GROUP_INDEX_PADDING_H;
+                               max: -1 GROUP_INDEX_PADDING_H;
+                               fixed: 0 1;
+                               align: 0.5 0.0;
+                               //rel2.relative: 1.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "text.bg"; }
+                               rel2 { relative: 1.0 0.0; to: "text.bg"; }
+                               visible: 0;
+                       }
+               }
+               part { name: "pad.bottom";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 GROUP_INDEX_PADDING_H;
+                               max: -1 GROUP_INDEX_PADDING_H;
+                               fixed: 0 1;
+                               align: 0.5 1.0;
+                               //rel1.relative: 0.0 1.0;
+                               rel1 { relative: 0.0 1.0; to: "text.bg"; }
+                               rel2 { relative: 1.0 1.0; to: "text.bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 0.0;
+                               fixed: 1 0;
+                               rel1 {  relative: 1 1;
+                                               to_x: "pad.left";
+                                       to_y: "pad.top";
+                               }
+                               rel2 {  relative: 0 0;
+                                               to_x: "pad.right";
+                                               to_y: "pad.bottom";
+                               }
+                               //rel1 { relative: 0.0 0.0; to: "pad.right"; }
+                               //rel2 { relative: 1.0 1.0; to: "pad.bottom"; }
+
+                               color: 21 108 148 255;
+
+                               text {
+                                       align: 0.0 0.5;
+                                       min: 0 1;
+                                       size: 27;
+                               }
+                       }
+               }
+               part {
+                       name: "index.bar";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                          state: "default" 0.0;
+                          min: 0 2;
+                          max: -1 2;
+                          fixed: 0 1;
+                          align: 0.5 1.0;
+                          color: 217 217 217 255;
+                          rel1 { relative: 0.0 1.0; to: "text.bg";}
+                          rel2 { relative: 1.0 1.0; to: "base";}
+                          visible: 1;
+                       }
+               }
+       }
+}
+
+
+group {
+       name: "device.count_info";
+
+       parts {
+               part {
+                       name: "base";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 76;
+                               max: -1 76;
+                               align: 0.5 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 0.0; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "text.bg";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                          state: "default" 0.0;
+                          min: 0 72;
+                          max: -1 72;
+                          //fixed: 0 1;
+                          align: 0.5 0.5;
+                          color: 21 108 148 255;
+                          rel1 { relative: 0.0 0.0; to: "base"; }
+                          rel2 { relative: 1.0 1.0; to: "base"; }
+                       }
+               }
+               part { name: "pad.left";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: GROUP_INDEX_PADDING_W 0;
+                               max: GROUP_INDEX_PADDING_W -1;
+                               fixed: 1 0;
+                               align: 0.0 0.5;
+                               //rel2.relative: 0.0 1.0;
+                               rel1 { relative: 0.0 0.0; to: "text.bg"; }
+                               rel2 { relative: 0.0 1.0; to: "text.bg"; }
+                               visible: 0;
+                       }
+               }
+               part { name: "pad.right";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: GROUP_INDEX_PADDING_W 0;
+                               max: GROUP_INDEX_PADDING_W -1;
+                               fixed: 1 0;
+                               align: 1.0 0.5;
+                               //rel1.relative: 1 0;
+                               rel1 { relative: 1.0 0.0; to: "text.bg"; }
+                               rel2 { relative: 1.0 1.0; to: "text.bg"; }
+                               visible: 0;
+                       }
+               }
+               part { name: "pad.top";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 GROUP_INDEX_PADDING_H;
+                               max: -1 GROUP_INDEX_PADDING_H;
+                               fixed: 0 1;
+                               align: 0.5 0.0;
+                               //rel2.relative: 1.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "text.bg"; }
+                               rel2 { relative: 1.0 0.0; to: "text.bg"; }
+                               visible: 0;
+                       }
+               }
+               part { name: "pad.bottom";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 GROUP_INDEX_PADDING_H;
+                               max: -1 GROUP_INDEX_PADDING_H;
+                               fixed: 0 1;
+                               align: 0.5 1.0;
+                               //rel1.relative: 0.0 1.0;
+                               rel1 { relative: 0.0 1.0; to: "text.bg"; }
+                               rel2 { relative: 1.0 1.0; to: "text.bg"; }
+                               visible: 0;
+                       }
+               }
+               part { name: "pad.icon.top";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 GROUP_INDEX_PADDING_H;
+                               max: -1 GROUP_INDEX_PADDING_H;
+                               fixed: 0 1;
+                               align: 0.5 0.0;
+                               //rel2.relative: 1.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "text.bg"; }
+                               rel2 { relative: 1.0 0.0; to: "text.bg"; }
+                               visible: 0;
+                       }
+               }
+               part { name: "pad.icon.bottom";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 GROUP_INDEX_PADDING_H;
+                               max: -1 GROUP_INDEX_PADDING_H;
+                               fixed: 0 1;
+                               align: 0.5 1.0;
+                               //rel1.relative: 0.0 1.0;
+                               rel1 { relative: 0.0 1.0; to: "text.bg"; }
+                               rel2 { relative: 1.0 1.0; to: "text.bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.bg";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               //min: 63 63;
+                               //max: 63 63;
+                               fixed: 1 1;
+                               align: 1.0 0.0;
+                               rel1 {  relative: 0 1;
+                                               to_x: "pad.right";
+                                       to_y: "pad.icon.top";
+                               }
+                               rel2 {  relative: 0 0;
+                                               to_x: "pad.right";
+                                               to_y: "pad.icon.bottom";
+                               }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.icon";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.5 0.5;
+                               rel1 { relative: 0.0 0.0; to: "elm.swallow.bg"; }
+                               rel2 { relative: 1.0 1.0; to: "elm.swallow.bg"; }
+                       }
+               }
+               part {
+                       name: "elm.swallow.progress";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.5 0.5;
+                               rel1 { relative: 0.0 0.0; to: "elm.swallow.bg"; }
+                               rel2 { relative: 1.0 1.0; to: "elm.swallow.bg"; }
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 0.0;
+                               fixed: 1 0;
+                               rel1 {  relative: 1 1;
+                                               to_x: "pad.left";
+                                       to_y: "pad.top";
+                               }
+                               rel2 {  relative: 0 0;
+                                               to_x: "elm.swallow.bg";
+                                               to_y: "pad.bottom";
+                               }
+
+                               color: 21 108 148 255;
+
+                               text {
+                                       align: 0.0 0.5;
+                                       min: 0 1;
+                                       size: 27;
+                               }
+                       }
+               }
+               part {
+                       name: "index.bar";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                          state: "default" 0.0;
+                          min: 0 4;
+                          max: -1 4;
+                          fixed: 0 1;
+                          align: 0.5 1.0;
+                          color: 217 217 217 255;
+                          rel1 { relative: 0.0 1.0; to: "text.bg";}
+                          rel2 { relative: 1.0 1.0; to: "base";}
+                          visible: 1;
+                       }
+               }
+       }
+       programs {
+               program { name: "image_clicked";
+                       source: "elm.swallow.icon";
+                       signal: "mouse,clicked,1";
+                       action: PLAY_SAMPLE "button-pressed" 1.0;
+               }
+       }
+}
+
+group {
+       name: "number_info";
+       parts {
+               part {
+                       name: "bg";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                          state: "default" 0.0;
+                          min: 0 NUMBER_INFO_VER_PADDING_INC;
+                          fixed: 0 1;
+                          align: 0.5 0.5;
+//                        color: NUMBER_INFO_BACKGROUND_COLOR_INC;
+                          color: 255 255 255 255;
+                          rel1 { relative: 0.0 0.0; }
+                          rel2 { relative: 1.0 1.0; }
+                       }
+               }
+               part { name: "padding_left";
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                          state: "default" 0.0;
+                          min: 27 0;
+                          align: 0.0 0.5;
+                          rel1.to: "bg";
+                          rel2 {
+                                 to: "bg";
+                                 relative: 0.0 1.0;
+                          }
+                          fixed: 1 0;
+                          visible: 0;
+                       }
+                }
+                part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                          state: "default" 0.0;
+                          rel1 { relative: 0.0 0.0; to: "bg"; }
+                          rel2 { relative: 1.0 1.0; to: "bg"; }
+//                        color: NUMBER_INFO_TEXT_COLOR_INC;
+                          color: 240 240 240 255;
+                          text {
+                               size: 24;
+                          }
+                       }
+               }
+       }
+}
+
+group {
+       name: "select.all.layout";
+
+       parts {
+               part {
+                       name: "base";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 SELECT_ALL_PART_H;
+                               max: -1 SELECT_ALL_PART_H;
+                               align: 0.5 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 0.0; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "text.bg";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 0 1;
+                               min: 0 (SELECT_ALL_PART_H-SELECT_ALL_PART_INDEX_H);
+                               max: -1 (SELECT_ALL_PART_H-SELECT_ALL_PART_INDEX_H);
+                               align: 0.5 0.5;
+                               color: 255 255 255 255;
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2 { relative: 1.0 1.0; to: "base"; }
+                       }
+               }
+               part { name: "pad.left";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: SELECT_ALL_PART_PADDING_L 0;
+                               max: SELECT_ALL_PART_PADDING_L -1;
+                               fixed: 1 0;
+                               align: 0.0 0.5;
+                               //rel2.relative: 0.0 1.0;
+                               rel1 { relative: 0.0 0.0; to: "text.bg"; }
+                               rel2 { relative: 0.0 1.0; to: "text.bg"; }
+                               visible: 0;
+                       }
+               }
+               part { name: "pad.right";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: SELECT_ALL_PART_PADDING_R 0;
+                               max: SELECT_ALL_PART_PADDING_R -1;
+                               fixed: 1 0;
+                               align: 1.0 0.5;
+                               //rel1.relative: 1 0;
+                               rel1 { relative: 1.0 0.0; to: "text.bg"; }
+                               rel2 { relative: 1.0 1.0; to: "text.bg"; }
+                               visible: 0;
+                       }
+               }
+               part { name: "pad.top";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 SELECT_ALL_PART_PADDING_T;
+                               max: -1 SELECT_ALL_PART_PADDING_T;
+                               fixed: 0 1;
+                               align: 0.5 0.0;
+                               //rel2.relative: 1.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "text.bg"; }
+                               rel2 { relative: 1.0 0.0; to: "text.bg"; }
+                               visible: 0;
+                       }
+               }
+               part { name: "pad.bottom";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 SELECT_ALL_PART_PADDING_B;
+                               max: -1 SELECT_ALL_PART_PADDING_B;
+                               fixed: 0 1;
+                               align: 0.5 1.0;
+                               //rel1.relative: 0.0 1.0;
+                               rel1 { relative: 0.0 1.0; to: "text.bg"; }
+                               rel2 { relative: 1.0 1.0; to: "text.bg"; }
+                               visible: 0;
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.bg";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: SELECT_ALL_ICON_SIZE SELECT_ALL_ICON_SIZE;
+                               max: SELECT_ALL_ICON_SIZE SELECT_ALL_ICON_SIZE;
+                               fixed: 1 1;
+                               align: 1.0 0.5;
+                               rel1 {  relative: 0 1.0;
+                                               to_x: "pad.right";
+                                       to_y: "pad.top";
+                               }
+                               rel2 {  relative: 0 0.0;
+                                               to_x: "pad.right";
+                                               to_y: "pad.bottom";
+                               }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.icon";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.5 0.5;
+                               rel1 { relative: 0.0 0.0; to: "elm.swallow.bg"; }
+                               rel2 { relative: 1.0 1.0; to: "elm.swallow.bg"; }
+                       }
+               }
+
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 0.5;
+                               fixed: 1 0;
+                               rel1 {  relative: 1 1;
+                                               to_x: "pad.left";
+                                       to_y: "pad.top";
+                               }
+                               rel2 {  relative: 0 0;
+                                               to_x: "elm.swallow.bg";
+                                               to_y: "pad.bottom";
+                               }
+
+                               color: 8 8 8 255;
+
+                               text {
+                                       align: 0.0 0.5;
+                                       min: 0 1;
+                                       size: 30;
+                               }
+                       }
+               }
+
+               part {
+                       name: "index.bar";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                          state: "default" 0.0;
+                          min: 0 SELECT_ALL_PART_INDEX_H;
+                          max: -1 SELECT_ALL_PART_INDEX_H;
+                          fixed: 0 1;
+                          align: 0.5 1.0;
+                          color: 217 217 217 255;
+                          rel1 { relative: 0.0 1.0; to: "text.bg";}
+                          rel2 { relative: 1.0 1.0; to: "base";}
+                          visible: 1;
+                       }
+               }
+
+       }
+       /*programs {
+               program { name: "image_clicked";
+                       source: "elm.icon";
+                       signal: "mouse,clicked,1";
+                       action: PLAY_SAMPLE "button-pressed" 1.0;
+               }
+       }*/
+}
+
diff --git a/res/edje/vp-progressbar-list.edc b/res/edje/vp-progressbar-list.edc
new file mode 100755 (executable)
index 0000000..71bfff1
--- /dev/null
@@ -0,0 +1,599 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#define PROGRESSBAR_TITLE_FONT_SIZE_INC 28
+#define PROGRESSBAR_STATUS_TEXT_FONT_SIZE_INC 20
+
+#define PROGRESSBAR_LIST_PROGRESS_STYLE_TEXT_COLOR_INC          0 0 0 255
+#define PROGRESSBAR_LIST_PROGRESS_STYLE_STATUS_TEXT_COLOR_INC          224 224 224 255
+#define PROGRESSBAR_LIST_PROCESS_WIDTH_INC 66
+#define PROGRESSBAR_LIST_PROCESS_HEIGHT_INC 66
+#define PROGRESSBAR_LIST_PROCESS_SMALL_INC 35
+#define PROGRESSBAR_LIST_PROCESS_SMALL_IMAGE "32x32"
+#define PROGRESSBAR_LIST_PROGRESS_HEIGHT_INC 8
+
+#define        GALLERY_EDC_IMAGE_LIST_PROGRESS_BG                                      "T01-2_progress_bg.png"
+#define        GALLERY_EDC_IMAGE_LIST_PROGRESS_BAR                                     "T01-2_progress_bar.png"
+
+   group { name: "elm/progressbar/horizontal/video/list_progress";
+      images {
+         image: GALLERY_EDC_IMAGE_LIST_PROGRESS_BG COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROGRESS_BAR COMP;
+      }
+      parts {
+         part { name: "elm.padding.left";
+            type: RECT;
+            scale: 1;
+            description {
+               state: "default" 0.0;
+               min: 0 0;
+               fixed: 1 0;
+               rel1 {
+                  relative: 0.0  0.0;
+                  offset: 0 0;
+               }
+               rel2 {
+                  relative: 0.0  1.0;
+                  offset: 0 0;
+               }
+               color: 0 0 0 0;
+               align: 0.0 0.0;
+            }
+         }
+         part { name: "elm.padding.right";
+            type: RECT;
+            scale: 1;
+            description {
+               state: "default" 0.0;
+               min: 0 0;
+               fixed: 1 0;
+               rel1 {
+                  relative: 1.0  0.0;
+                  offset: 0 0;
+               }
+               rel2 {
+                  relative: 1.0  1.0;
+                  offset:   0   0;
+               }
+               color: 0 0 0 0;
+               align: 1.0 0.0;
+            }
+         }
+       part { name: "elm.background.progressbar";
+            type: RECT;
+            mouse_events: 0;
+            scale: 1;
+            description {
+               state: "default" 0.0;
+               rel1 {
+                  to_x: "elm.padding.left";
+                  relative: 1.0 0.0;
+                  offset: 0 0;
+               }
+               rel2 {
+                  to_x: "elm.padding.right";
+                  relative: 0.0 1.0;
+                  offset: 0 0;
+               }
+            }
+         }
+         part { name: "elm.swallow.bar";
+            mouse_events: 0;
+            scale: 1;
+            type: SWALLOW;
+            description {
+               min: 1 PROGRESSBAR_LIST_PROGRESS_HEIGHT_INC;
+               max: 99999 PROGRESSBAR_LIST_PROGRESS_HEIGHT_INC;
+               state: "default" 0.0;
+               rel1 {
+                  to: "elm.background.progressbar";
+                  relative: 0.0 0.0;
+               }
+               rel2 {
+                  to: "elm.background.progressbar";
+                  relative: 1.0 1.0;
+               }
+            }
+         }
+         part { name: "elm.swallow.content";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               visible: 0;
+               align: 0.0 0.5;
+               rel1 {
+                  offset: 0 0;
+                  to_y: "elm.background.progressbar";
+               }
+               rel2 {
+                  offset: 0 -1;
+                  relative: 0.0 1.0;
+                  to_y: "elm.background.progressbar";
+               }
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               aspect: 1.0 1.0;
+               aspect_preference: VERTICAL;
+               rel2.offset: 4 -1;
+            }
+         }
+         part { name: "elm.text";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               visible: 0;
+               fixed: 1 1;
+               align: 0.0 0.5;
+               rel1.to_x: "elm.swallow.content";
+               rel1.relative: 1.0 0.0;
+               rel2.to_x: "elm.swallow.content";
+               rel2.relative: 1.0 1.0;
+               color: PROGRESSBAR_LIST_PROGRESS_STYLE_TEXT_COLOR_INC;
+               text {
+                  font: "Tizen:style=Medium";
+                  size: PROGRESSBAR_STATUS_TEXT_FONT_SIZE_INC;
+                  min: 0 0;
+                  align: 0.0 0.5;
+               }
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               visible: 0;
+               text.min: 1 1;
+            }
+         }
+         part { name: "background";
+            mouse_events: 0;
+            scale: 1;
+            clip_to: "elm.background.progressbar";
+            description {
+               state: "default" 0.0;
+               rel1 {
+                  to: "elm.swallow.bar";
+                  relative: 0.0 0.0;
+               }
+               rel2 {
+                  to: "elm.swallow.bar";
+                  relative: 1.0 1.0;
+               }
+               image {
+                  normal: GALLERY_EDC_IMAGE_LIST_PROGRESS_BG;
+                  border: 6 6 0 0;
+                  border_scale: 1;
+               }
+            }
+         }
+         part { name: "elm.text.status";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               visible: 0;
+               rel1 {
+                  to: "background";
+                  relative: 0.5 0.5;
+               }
+               rel2 {
+                  to: "background";
+                  relative: 0.5 0.5;
+               }
+               text {
+                  font: "Tizen:style=Medium";
+                  size: PROGRESSBAR_STATUS_TEXT_FONT_SIZE_INC;
+                  min: 0 0;
+                  align: 0.5 0.0;
+               }
+               color: PROGRESSBAR_LIST_PROGRESS_STYLE_TEXT_COLOR_INC;
+            }
+            description { state: "show" 0.0;
+               inherit: "default" 0.0;
+               visible: 0;
+               text.min: 1 1;
+            }
+         }
+         part { name: "elm.progress.progressbar";
+            mouse_events: 0;
+            scale: 1;
+            clip_to: "elm.background.progressbar";
+            description {
+               state: "default" 0.0;
+               min: 0 0;
+               fixed: 1 1;
+               rel1 {
+                  to: "elm.swallow.bar";
+                  relative: 0.0 0.0;
+                  offset: -2 0;
+               }
+               rel2 {
+                  to_y: "elm.swallow.bar";
+                  to_x: "elm.cur.progressbar";
+                  offset: 2 -1;
+               }
+               image {
+                  normal: GALLERY_EDC_IMAGE_LIST_PROGRESS_BAR;
+                  border: 6 6 0 0;
+                  border_scale: 1;
+               }
+            }
+            description {
+               state: "invert" 0.0;
+               inherit: "default" 0.0;
+               rel1 {
+                  to_y: "elm.swallow.bar";
+                  to_x: "elm.cur.progressbar";
+               }
+               rel2 {
+                  to: "elm.swallow.bar";
+                  relative: 1.0 1.0;
+               }
+            }
+            description {
+               state: "state_begin" 0.0;
+               inherit: "default" 0.0;
+               rel1 {
+                  to: "elm.swallow.bar";
+                  relative: 0.0 0.0;
+               }
+               rel2 {
+                  to: "elm.swallow.bar";
+                  relative: 0.1 1.0;
+               }
+            }
+            description {
+               state: "state_end" 0.0;
+               inherit: "default" 0.0;
+               rel1 {
+                  to: "elm.swallow.bar";
+                  relative: 0.9 0.0;
+               }
+               rel2 {
+                  to: "elm.swallow.bar";
+                  relative: 1.0 1.0;
+               }
+            }
+         }
+         part { name: "text-bar";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            clip_to: "progress-rect";
+            //effect: SOFT_SHADOW;
+            scale: 0;
+            description { state: "default" 0.0;
+               align: 0.0 0.0;
+               fixed: 1 1;
+               visible: 0;
+               rel1.to: "elm.text.status";
+               rel1.offset: -1 -1;
+               rel2.to: "elm.text.status";
+               text {
+                  text_source: "elm.text.status";
+                  font: "Tizen:style=Medium";
+                  size: PROGRESSBAR_STATUS_TEXT_FONT_SIZE_INC;
+                  min: 0 0;
+                  align: 0.0 0.0;
+               }
+               color: PROGRESSBAR_LIST_PROGRESS_STYLE_STATUS_TEXT_COLOR_INC;
+            }
+            description { state: "show" 0.0;
+               inherit: "default" 0.0;
+               visible: 0;
+               text.min: 1 1;
+            }
+         }
+         part { name: "elm.cur.progressbar";
+            mouse_events: 0;
+            scale: 1;
+            dragable {
+               confine: "background";
+               x: 1 1 1;
+               y: 0 0 0;
+            }
+            description { state: "default" 0.0;
+               min: 0 28;
+               fixed: 1 1;
+               visible: 0;
+               rel1 {
+                  to: "background";
+                  relative: 0 0;
+               }
+               rel2.to: "background";
+           }
+         }
+         part { name: "progress-rect";
+            type: RECT;
+            mouse_events: 0;
+            scale: 1;
+            description {
+               state: "default" 0.0;
+               rel1.to: "elm.progress.progressbar";
+               rel2.to: "elm.progress.progressbar";
+            }
+         }
+      }
+      programs {
+         program { name: "label_show";
+            signal: "elm,state,text,visible";
+            source: "elm";
+            action:  STATE_SET "visible" 0.0;
+            target: "elm.text";
+         }
+         program { name: "label_hide";
+            signal: "elm,state,text,hidden";
+            source: "elm";
+            action:  STATE_SET "default" 0.0;
+            target: "elm.text";
+         }
+         program { name: "icon_show";
+            signal: "elm,state,icon,visible";
+            source: "elm";
+            action:  STATE_SET "visible" 0.0;
+            target: "elm.swallow.content";
+         }
+         program { name: "icon_hide";
+            signal: "elm,state,icon,hidden";
+            source: "elm";
+            action:  STATE_SET "default" 0.0;
+            target: "elm.swallow.content";
+         }
+         program { name: "units_show";
+            signal: "elm,state,units,visible";
+            source: "elm";
+            action:  STATE_SET "show" 0.0;
+            target: "text-bar";
+            target: "elm.text.status";
+         }
+         program { name: "units_hide";
+            signal: "elm,state,units,hidden";
+            source: "elm";
+            action:  STATE_SET "default" 0.0;
+            target: "text-bar";
+            target: "elm.text.status";
+         }
+         program { name: "slide_to_end";
+            action:  STATE_SET "state_end" 0.0;
+            transition: LINEAR 0.5;
+            target: "elm.progress.progressbar";
+            after: "slide_to_begin";
+         }
+         program { name: "slide_to_begin";
+            signal: "elm,state,slide,begin";
+            action: STATE_SET "state_begin" 0.0;
+            target: "elm.progress.progressbar";
+            transition: LINEAR 0.5;
+            after: "slide_to_end";
+         }
+         program { name: "start_pulse";
+            signal: "elm,state,pulse,start";
+            source: "elm";
+           // after: "slide_to_end";
+         }
+         program { name: "stop_pulse";
+            signal: "elm,state,pulse,stop";
+            source: "elm";
+            action: ACTION_STOP;
+            target: "slide_to_begin";
+            target: "slide_to_end";
+            target: "start_pulse";
+            //after: "state_pulse";
+         }
+         program { name: "state_pulse";
+            signal: "elm,state,pulse";
+            source: "elm";
+            action: STATE_SET "state_begin" 0.0;
+            target: "elm.progress.progressbar";
+            after: "units_hide";
+         }
+         program { name: "state_fraction";
+            signal: "elm,state,fraction";
+            source: "elm";
+            action: ACTION_STOP;
+            target: "slide_to_begin";
+            target: "slide_to_end";
+            target: "start_pulse";
+            action: STATE_SET "default" 0.0;
+            target: "elm.progress.progressbar";
+         }
+         program { name: "set_invert_on";
+            signal: "elm,state,inverted,on";
+            source: "elm";
+            action:  STATE_SET "invert" 0.0;
+            target: "elm.progress.progressbar";
+         }
+         program { name: "set_invert_off";
+            signal: "elm,state,inverted,off";
+            source: "elm";
+            action:  STATE_SET "default" 0.0;
+            target: "elm.progress.progressbar";
+         }
+      }
+   }
+
+
+/*
+#define PROGRESS_BG_DESC( param_num ) \
+   description { state: "pulse" 0.#param_num; \
+      inherit: "default" 0.0; \
+      image { \
+         normal: GALLERY_EDC_IMAGE_LIST_PROCESS_##param_num; \
+      } \
+   }
+
+#define   PROGRESSING_DELAY    0.03
+
+   group { name: "elm/progressbar/horizontal/gallery/list_process";
+      images {
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_01 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_02 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_03 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_04 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_05 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_06 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_07 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_08 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_09 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_10 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_11 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_12 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_13 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_14 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_15 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_16 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_17 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_18 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_19 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_20 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_21 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_22 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_23 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_24 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_25 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_26 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_27 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_28 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_29 COMP;
+         image: GALLERY_EDC_IMAGE_LIST_PROCESS_30 COMP;
+      }
+      parts {
+         part { name: "elm.background.progressbar";
+            mouse_events: 0;
+            scale: 1;
+            type: RECT;
+            description {
+               state: "default" 0.0;
+            }
+         }
+         part { name: "elm.swallow.bar";
+            mouse_events: 0;
+            scale: 1;
+            type: SWALLOW;
+            description { state: "default" 0.0;
+               min: 0 0;
+               max: 0 0;
+               visible: 0;
+            }
+         }
+         part { name: "elm.swallow.content";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 0;
+               max: 0 0;
+               visible: 0;
+            }
+         }
+         part { name: "background";
+            mouse_events: 0;
+            scale: 1;
+            clip_to: "elm.background.progressbar";
+            description {
+               state: "default" 0.0;
+               min: PROGRESSBAR_LIST_PROCESS_WIDTH_INC PROGRESSBAR_LIST_PROCESS_HEIGHT_INC;
+               max: PROGRESSBAR_LIST_PROCESS_WIDTH_INC PROGRESSBAR_LIST_PROCESS_HEIGHT_INC;
+               visible: 1;
+               aspect: 1.0 1.0;
+               aspect_preference: BOTH;
+               image {
+                  normal: GALLERY_EDC_IMAGE_LIST_PROCESS_01;
+               }
+            }
+            description { state: "pulse" 0.0;
+               inherit: "default" 0.0;
+               image {
+                  normal: GALLERY_EDC_IMAGE_LIST_PROCESS_01;
+               }
+            }
+            PROGRESS_BG_DESC( 01 )
+            PROGRESS_BG_DESC( 02 )
+            PROGRESS_BG_DESC( 03 )
+            PROGRESS_BG_DESC( 04 )
+            PROGRESS_BG_DESC( 05 )
+            PROGRESS_BG_DESC( 06 )
+            PROGRESS_BG_DESC( 07 )
+            PROGRESS_BG_DESC( 08 )
+            PROGRESS_BG_DESC( 09 )
+            PROGRESS_BG_DESC( 10 )
+            PROGRESS_BG_DESC( 11 )
+            PROGRESS_BG_DESC( 12 )
+            PROGRESS_BG_DESC( 13 )
+            PROGRESS_BG_DESC( 14 )
+            PROGRESS_BG_DESC( 15 )
+            PROGRESS_BG_DESC( 16 )
+            PROGRESS_BG_DESC( 17 )
+            PROGRESS_BG_DESC( 18 )
+            PROGRESS_BG_DESC( 19 )
+            PROGRESS_BG_DESC( 20 )
+            PROGRESS_BG_DESC( 21 )
+            PROGRESS_BG_DESC( 22 )
+            PROGRESS_BG_DESC( 23 )
+            PROGRESS_BG_DESC( 24 )
+            PROGRESS_BG_DESC( 25 )
+            PROGRESS_BG_DESC( 26 )
+            PROGRESS_BG_DESC( 27 )
+            PROGRESS_BG_DESC( 28 )
+            PROGRESS_BG_DESC( 29 )
+            PROGRESS_BG_DESC( 30 )
+         }
+      }
+      script {
+         public pulse_state;
+      }
+      programs {
+         program { name: "continue_pulse";
+            script {
+               new Float:state;
+               state = get_float(pulse_state);
+               set_state(PART:"background", "pulse", state);
+               state += 0.01;
+               if( state > 0.30 )
+                  state = 0.01;
+               set_float(pulse_state, state);
+            }
+               after: "delay";
+         }
+         program { name: "delay";
+            action: STATE_SET "pulse" 0.10;
+            target: "background";
+            in: PROGRESSING_DELAY 0.0;
+            after: "continue_pulse";
+         }
+         program { name: "start_pulse";
+            signal: "elm,state,pulse,start";
+            source: "elm";
+            script {
+               set_float(pulse_state, 0.0);
+            }
+            after: "continue_pulse";
+         }
+         program { name: "stop_pulse";
+            signal: "elm,state,pulse,stop";
+            source: "elm";
+            action: ACTION_STOP;
+            target: "continue_pulse";
+            target: "delay";
+            target: "start_pulse";
+            after: "init_pulse";
+         }
+         program { name: "init_pulse";
+            action: STATE_SET "default" 0.0;
+            target: "background";
+         }
+      }
+   }
+*/
diff --git a/res/edje/vp-remove-list-internal.edc b/res/edje/vp-remove-list-internal.edc
new file mode 100755 (executable)
index 0000000..4324976
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#define GRAY_RECT_COLOR                        128 128 128 128
+#define SPEEDBOX_OFFSET_Y              225
+
+
+#include "image_res.edc"
+#include "vp_font.edc"
+
+collections {
+       group {
+               name: "main.listview.internal";
+
+               parts {
+                       part {
+                               name: "main.listview.background";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 248 246 239 255;
+                               }
+                       }
+                       part {
+                               name: "main.listview.content";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "main.listview.selection.info";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       visible: 0;
+                                       rel1 { relative: 0.0 1.0; to: "main.listview.content"; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+               }
+
+               programs {
+                       program {
+                               signal: "signal.main.listview.internal.selection.info.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "main.listview.selection.info";
+                       }
+                       program {
+                               signal: "signal.main.listview.internal.selection.info.hide";
+                               source: "*";
+                               action: STATE_SET "hide" 0.0;
+                               target: "main.listview.selection.info";
+                       }
+               }
+       } /* group */
+} /* collection */
+
diff --git a/res/edje/vp-scroller-custom.edc b/res/edje/vp-scroller-custom.edc
new file mode 100755 (executable)
index 0000000..cb2ed7c
--- /dev/null
@@ -0,0 +1,574 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#define SCROLLER_DEFAULT_SCROLLBAR_COLOR_INC 248 246 239 255
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE "00_scroll_bar_v.png"
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_IMAGE "00_scroll_bar_h.png"
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_BG_IMAGE       "title_line_top_video.png"
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE_BORDER 0 0 12 14
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_IMAGE_BORDER 0 0 0 0
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_MIN_SIZE_INC 18 72
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_MAX_SIZE_INC 18 99999
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_MIN_SIZE_INC 72 6
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_MAX_SIZE_INC 99999 18
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_PADDING_SIZE 6
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_PADDING_SIZE 6
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_IMAGE "00_scroll_bar.png"
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_IMAGE "00_scroll_bar.png"
+#define SCROLLER_MATCHLIST_SCROLLBAR_BG_IMAGE_BORDER 13 13 10 15
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_PADDING_SIZE 6
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_PADDING_SIZE 16
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_MIN_SIZE_INC 16 238
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_MAX_SIZE_INC 16 99999
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_MIN_SIZE_INC 180 16
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_MAX_SIZE_INC 99999 16
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_RUNNER_BORDER 0 0 4 4
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_RUNNER_BORDER 4 4 0 0
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_IMAGE_BORDER 5 10 5 10
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_IMAGE_BORDER 5 10 5 10
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_OVER1 6 6 6 0
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_OVER2 6 6 6 0
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_OVER1 6 6 6 0
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_OVER2 6 6 6 0
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_IMAGE "00_scroll_bar.png"
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_IMAGE "00_scroll_bar.png"
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_PADDING_SIZE 6
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_PADDING_SIZE 16
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_MIN_SIZE_INC 16 238
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_MAX_SIZE_INC 16 99999
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_MIN_SIZE_INC 180 16
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_MAX_SIZE_INC 99999 16
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_RUNNER_BORDER 0 0 4 4
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_RUNNER_BORDER 4 4 0 0
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_IMAGE_BORDER 5 10 5 10
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_IMAGE_BORDER 5 10 5 10
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_OVER1 6 6 6 0
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_OVER2 6 6 6 0
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_OVER1 6 6 6 0
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_OVER2 6 6 6 0
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_MIN_SIZE_INC 36 234
+#define SCROLLER_HANDLER_SCROLLBAR_HBAR_MIN_SIZE_INC 234 36
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_MIDDLE_MIN_SIZE_INC 36 37
+#define SCROLLER_HANDLER_SCROLLBAR_HBAR_MIDDLE_MIN_SIZE_INC 37 36
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_BOTTOM_BORDER 10 10 0 10
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_RIGHT_BORDER 0 10 10 10
+
+
+/*
+ * vim:ts=3
+*/
+group { name: "elm/scroller/base/video/default";
+
+   data {
+      item: "focus_highlight" "on";
+   }
+
+   script {
+      public sbvis_v, sbvis_h, sbalways_v, sbalways_h, sbvis_timer;
+      public sh_v, sh_h, edge_timer;
+      public timer0(val) {
+         new v;
+         v = get_int(sbvis_v);
+         if (v) {
+            v = get_int(sbalways_v);
+            if (!v) {
+               emit("do-hide-vbar", "");
+               set_int(sbvis_v, 0);
+            }
+         }
+         v = get_int(sbvis_h);
+         if (v) {
+            v = get_int(sbalways_h);
+            if (!v) {
+               emit("do-hide-hbar", "");
+               set_int(sbvis_h, 0);
+            }
+         }
+         set_int(sbvis_timer, 0);
+         return 0;
+      }
+      public timer2(val) {
+         emit("do-hide-vshadow", "");
+         emit("do-hide-hshadow", "");
+         set_int(edge_timer, 0);
+         return 0;
+      }
+   }
+
+   images {
+      image: SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE COMP;
+      image: SCROLLER_DEFAULT_SCROLLBAR_HBAR_IMAGE COMP;
+      image: SCROLLER_DEFAULT_SCROLLBAR_HBAR_BG_IMAGE COMP;
+   }
+   parts {
+      part { name: "bg";
+         type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.offset: 0 0;
+            rel2.offset: -1 -1;
+            color: 255 255 255 0;
+         }
+      }
+      part { name: "clipper";
+         type: RECT;
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "bg";
+            rel2.to: "bg";
+            rel1.offset: 0 0;
+            rel2.offset: -1 -1;
+         }
+      }
+
+      part { name: "elm.swallow.content";
+         clip_to: "clipper";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "bg";
+            rel2.to: "bg";
+            rel1.offset: 0 0;
+            rel2.offset: -1 -1;
+         }
+      }
+
+      part { name: "sb_vbar_clip_master";
+         type: RECT;
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+         }
+         description { state: "hidden" 0.0;
+            visible: 0;
+            color: 255 255 255 0;
+         }
+      }
+
+      part { name: "sb_vbar_clip";
+         clip_to: "sb_vbar_clip_master";
+         type: RECT;
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+         }
+         description { state: "hidden" 0.0;
+            visible: 0;
+            color: 255 255 255 0;
+         }
+      }
+
+      part { name: "sb_vbar_top_padding";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 SCROLLER_DEFAULT_SCROLLBAR_VBAR_PADDING_SIZE;
+            max: 0 SCROLLER_DEFAULT_SCROLLBAR_VBAR_PADDING_SIZE;
+            rel1.relative: 1.0 0.0;
+            rel2.relative: 1.0 0.0;
+            rel1.to: "elm.swallow.content";
+            rel2.to: "elm.swallow.content";
+            fixed: 1 1;
+            align: 1.0 0.0;
+         }
+      }
+      part { name: "sb_vbar_bottom_padding";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 SCROLLER_DEFAULT_SCROLLBAR_VBAR_PADDING_SIZE;
+            max: 0 SCROLLER_DEFAULT_SCROLLBAR_VBAR_PADDING_SIZE;
+            rel1.relative: 1.0 1.0;
+            rel2.relative: 1.0 1.0;
+            rel1.to: "elm.swallow.content";
+            rel2.to: "elm.swallow.content";
+            fixed: 1 1;
+            align: 1.0 1.0;
+         }
+      }
+      part { name: "sb_vbar";
+         type: RECT;
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            visible: 0;
+            min: SCROLLER_DEFAULT_SCROLLBAR_VBAR_MIN_SIZE_INC;
+            align: 1.0 0.0;
+            rel1 {
+               relative: 1.0 1.0;
+               offset:   0 0;
+               to_y:     "sb_vbar_top_padding";
+               to_x:     "bg";
+            }
+            rel2 {
+               relative: 1.0 0.0;
+               offset:   -1 1;
+               to_y:     "sb_vbar_bottom_padding";
+               to_x:     "bg";
+            }
+         }
+      }
+      part { name: "elm.dragable.vbar";
+         clip_to: "sb_vbar_clip";
+         mouse_events: 0;
+         scale: 1;
+         dragable {
+            x: 0 0 0;
+            y: 1 1 0;
+            confine: "sb_vbar";
+         }
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            min: SCROLLER_DEFAULT_SCROLLBAR_VBAR_MIN_SIZE_INC;
+            max: SCROLLER_DEFAULT_SCROLLBAR_VBAR_MAX_SIZE_INC;
+            rel1 {
+               relative: 0.5  0.5;
+               offset:   0    0;
+               to: "sb_vbar";
+            }
+            rel2 {
+               relative: 0.5  0.5;
+               offset:   0    0;
+               to: "sb_vbar";
+            }
+            image {
+               normal: SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE;
+               border: SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE_BORDER;
+               border_scale: 1;
+               middle: DEFAULT;
+            }
+         }
+      }
+
+
+      part { name: "sb_hbar_clip_master";
+         type: RECT;
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+         }
+         description { state: "hidden" 0.0;
+            visible: 0;
+            color: 255 255 255 0;
+         }
+      }
+      part { name: "sb_hbar_clip";
+         clip_to: "sb_hbar_clip_master";
+         type: RECT;
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+         }
+         description { state: "hidden" 0.0;
+            visible: 0;
+            color: 255 255 255 0;
+         }
+      }
+      part { name: "sb_hbar_left_padding";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: SCROLLER_DEFAULT_SCROLLBAR_HBAR_PADDING_SIZE 0;
+            max: SCROLLER_DEFAULT_SCROLLBAR_HBAR_PADDING_SIZE 0;
+            rel1.relative: 0.0 1.0;
+            rel2.relative: 0.0 1.0;
+            rel1.to: "elm.swallow.content";
+            rel2.to: "elm.swallow.content";
+            fixed: 1 1;
+            align: 0.0 1.0;
+         }
+      }
+      part { name: "sb_hbar_right_padding";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: SCROLLER_DEFAULT_SCROLLBAR_HBAR_PADDING_SIZE 0;
+            max: SCROLLER_DEFAULT_SCROLLBAR_HBAR_PADDING_SIZE 0;
+            rel1.relative: 1.0 1.0;
+            rel2.relative: 1.0 1.0;
+            rel1.to: "elm.swallow.content";
+            rel2.to: "elm.swallow.content";
+            fixed: 1 1;
+            align: 1.0 1.0;
+         }
+      }
+
+
+      part { name: "sb_hbar";
+         type: RECT;
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            visible: 0;
+            min: SCROLLER_DEFAULT_SCROLLBAR_HBAR_MIN_SIZE_INC;
+            align: 0.0 0.0;
+            rel1 {
+               relative: 0.0 0.0;
+               to_x:     "sb_hbar_left_padding";
+               to_y:     "bg";
+            }
+            rel2 {
+               relative: 1.0 0.0;
+               offset:   -1 -1;
+               to_x:     "sb_hbar_right_padding";
+               to_y:     "bg";
+            }
+         }
+      }
+
+        part { name: "sb_hbar.bg";
+               type: IMAGE;
+               scale: 1;
+               mouse_events: 0;
+               description {
+                       state: "default" 0.0;
+                       fixed: 0 1;
+                       visible: 1;
+                       min: SCROLLER_DEFAULT_SCROLLBAR_HBAR_MIN_SIZE_INC;
+                       align: 0.0 0.0;
+                       rel1 {
+                               relative: 0.0 0.0;
+                                       //offset:   0 0;
+                                       to_x:     "bg";
+                                       to_y:     "bg";
+                       }
+                       rel2 {
+                               relative: 1.0 0.0;
+                               //offset:   -1 -1;
+                               to_x:     "bg";
+                               to_y:     "bg";
+                       }
+
+                       image { normal: SCROLLER_DEFAULT_SCROLLBAR_HBAR_BG_IMAGE; }
+               }
+       }
+
+      part { name: "elm.dragable.hbar";
+       type: RECT;
+         clip_to: "sb_hbar_clip";
+         mouse_events: 0;
+         scale: 1;
+         dragable {
+            x: 1 1 0;
+            y: 0 0 0;
+            confine: "sb_hbar";
+         }
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            min: SCROLLER_DEFAULT_SCROLLBAR_HBAR_MIN_SIZE_INC;
+            max: SCROLLER_DEFAULT_SCROLLBAR_HBAR_MAX_SIZE_INC;
+            rel1 {
+               relative: 0.0  0.0;
+               offset:   0    0;
+               to: "sb_hbar";
+            }
+            rel2 {
+               relative: 1.0 1.0;
+               offset:   0    0;
+               to: "sb_hbar";
+            }
+            color: SCROLLER_DEFAULT_SCROLLBAR_COLOR_INC;
+            visible: 1;
+         }
+      }
+
+
+      part { name: "disabler";
+         type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "clipper";
+            rel2.to: "clipper";
+            color: 0 0 0 0;
+            visible: 0;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            color: 128 128 128 128;
+         }
+      }
+   }
+   programs {
+      program { name: "load";
+         signal: "load";
+         source: "";
+         script {
+            set_state(PART:"sb_hbar_clip", "hidden", 0.0);
+            set_state(PART:"sb_vbar_clip", "hidden", 0.0);
+            set_int(sbvis_h, 0);
+            set_int(sbvis_v, 0);
+            set_int(sbalways_v, 0);
+            set_int(sbalways_h, 0);
+            set_int(sbvis_timer, 0);
+            emit("reload", "elm");
+         }
+      }
+
+      program { name: "vbar_show";
+         signal: "elm,action,show,vbar";
+         source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "sb_vbar_clip_master";
+      }
+      program { name: "vbar_hide";
+         signal: "elm,action,hide,vbar";
+         source: "elm";
+         action:  STATE_SET "hidden" 0.0;
+         target: "sb_vbar_clip_master";
+      }
+      program { name: "vbar_show_always";
+         signal: "elm,action,show_always,vbar";
+         source: "elm";
+         script {
+            new v;
+            //v = get_int(sbvis_v);
+            v = get_int(sbalways_v);
+            if (!v) {
+               set_int(sbalways_v, 1);
+               emit("do-show-vbar", "");
+               set_int(sbvis_v, 1);
+            }
+         }
+      }
+      program { name: "vbar_show_notalways";
+         signal: "elm,action,show_notalways,vbar";
+         source: "elm";
+         script {
+            new v;
+            v = get_int(sbalways_v);
+            if (v) {
+               set_int(sbalways_v, 0);
+               v = get_int(sbvis_v);
+               if (!v) {
+                  emit("do-hide-vbar", "");
+                  set_int(sbvis_v, 0);
+               }
+            }
+         }
+      }
+      program { name: "sb_vbar_show";
+         signal: "do-show-vbar";
+         source: "";
+         action:  STATE_SET "default" 0.0;
+         transition: LINEAR 0.5;
+         target: "sb_vbar_clip";
+      }
+      program { name: "sb_vbar_hide";
+         signal: "do-hide-vbar";
+         source: "";
+         action:  STATE_SET "hidden" 0.0;
+         transition: LINEAR 0.5;
+         target: "sb_vbar_clip";
+      }
+
+      program { name: "hbar_show";
+         signal: "elm,action,show,hbar";
+         source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "sb_hbar_clip_master";
+      }
+      program { name: "hbar_hide";
+         signal: "elm,action,hide,hbar";
+         source: "elm";
+         action:  STATE_SET "hidden" 0.0;
+         target: "sb_hbar_clip_master";
+      }
+      program { name: "hbar_show_always";
+         signal: "elm,action,show_always,hbar";
+         source: "elm";
+         script {
+            new v;
+           // v = get_int(sbvis_h);
+            v = get_int(sbalways_h);
+            if (!v) {
+               set_int(sbalways_h, 1);
+               emit("do-show-hbar", "");
+               set_int(sbvis_h, 1);
+            }
+         }
+      }
+      program { name: "hbar_show_notalways";
+         signal: "elm,action,show_notalways,hbar";
+         source: "elm";
+         script {
+            new v;
+            v = get_int(sbalways_h);
+            if (v) {
+               set_int(sbalways_h, 0);
+               v = get_int(sbvis_h);
+               if (!v) {
+                  emit("do-hide-hbar", "");
+                  set_int(sbvis_h, 0);
+               }
+            }
+         }
+      }
+      program { name: "sb_hbar_show";
+         signal: "do-show-hbar";
+         source: "";
+         action:  STATE_SET "default" 0.0;
+         transition: LINEAR 0.5;
+         target: "sb_hbar_clip";
+      }
+      program { name: "sb_hbar_hide";
+         signal: "do-hide-hbar";
+         source: "";
+         action:  STATE_SET "hidden" 0.0;
+         transition: LINEAR 0.5;
+         target: "sb_hbar_clip";
+      }
+
+      program { name: "scroll";
+         signal: "elm,action,scroll";
+         source: "elm";
+         script {
+            new v;
+           // v = get_int(sbvis_v);
+            v = get_int(sbalways_v);
+            if (!v) {
+               emit("do-show-vbar", "");
+               set_int(sbvis_v, 1);
+            }
+            //v = get_int(sbvis_h);
+            v = get_int(sbalways_h);
+            if (!v) {
+               emit("do-show-hbar", "");
+               set_int(sbvis_h, 1);
+            }
+            v = get_int(sbvis_timer);
+            if (v > 0) cancel_timer(v);
+            v = timer(1.0, "timer0", 0);
+            set_int(sbvis_timer, v);
+         }
+      }
+      program { name: "disable";
+         signal: "elm,state,disabled";
+         source: "elm";
+         action: STATE_SET "disabled" 0.0;
+         target: "disabler";
+      }
+      program { name: "enable";
+         signal: "elm,state,enabled";
+         source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "disabler";
+      }
+   }
+}
diff --git a/res/edje/vp-search-view-internal.edc b/res/edje/vp-search-view-internal.edc
new file mode 100755 (executable)
index 0000000..c0de815
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#define GRAY_RECT_COLOR                        128 128 128 128
+#define SPEEDBOX_OFFSET_Y              225
+
+
+#include "image_res.edc"
+#include "vp_font.edc"
+
+collections {
+       group {
+               name: "search.view.internal";
+
+               parts {
+                       part {
+                               name: "search.view.background";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "search.view.content";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "search.view.dimming";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       color: 0 0 0 128;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 0 0 0 128;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+               }
+
+               programs {
+                       program {
+                               signal: "signal.search.view.internal.dimming.show";
+                               source: "";
+                               action: STATE_SET "show" 0.0;
+                               target: "search.view.dimming";
+                       }
+                       program {
+                               signal: "signal.search.view.internal.dimming.hide";
+                               source: "";
+                               action: STATE_SET "hide" 0.0;
+                               target: "search.view.dimming";
+                       }
+               }
+       } /* group */
+} /* collection */
+
diff --git a/res/edje/vp-speedbox-popup.edc b/res/edje/vp-speedbox-popup.edc
new file mode 100755 (executable)
index 0000000..28fb8b2
--- /dev/null
@@ -0,0 +1,347 @@
+/*
+ * Copyright (c) 2020 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 "image_res.edc"
+#include "vp_font.edc"
+
+#define SPEED_BOX_BG_COLOR 0 0 0 77
+#define SPEED_BOX_PRESS_BG_COLOR 42 137 194 255
+#define SPEED_BOX_LINE_COLOR 200 200 200 255
+
+collections {
+       group {
+               name: "speedbox";
+               parts {
+
+                       part {
+                               name: "speedbox.bg.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "speedbox.bg";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       image {normal: "white/common/T01-2_popup_bg.png"; border: 10 10 10 10;}
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "speedbox.step.1";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 112 99;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.5 1.0; to: "speedbox.bg";}
+                                       rel2 { relative: 0.5 1.0; to: "speedbox.bg";}
+                                       color: SPEED_BOX_BG_COLOR;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "focus" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       color: SPEED_BOX_PRESS_BG_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "speedbox.step.2";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 112 99;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.5 0.0; to: "speedbox.step.1";}
+                                       rel2 { relative: 0.5 0.0; to: "speedbox.step.1";}
+                                       color: SPEED_BOX_BG_COLOR;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "focus" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       color: SPEED_BOX_PRESS_BG_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "speedbox.step.3";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 112 99;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.5 0.0; to: "speedbox.step.2";}
+                                       rel2 { relative: 0.5 0.0; to: "speedbox.step.2";}
+                                       color: SPEED_BOX_BG_COLOR;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "focus" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       color: SPEED_BOX_PRESS_BG_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "speedbox.step.1.line";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 110 1;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.5 0.0; to: "speedbox.step.1";}
+                                       rel2 { relative: 0.5 0.0; to: "speedbox.step.1";}
+                                       color: SPEED_BOX_LINE_COLOR;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "speedbox.step.2.line";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 110 1;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.5 0.0; to: "speedbox.step.2";}
+                                       rel2 { relative: 0.5 0.0; to: "speedbox.step.2";}
+                                       color: SPEED_BOX_LINE_COLOR;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "speedbox.step.1.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "speedbox.step.1";}
+                                       rel2 { relative: 1.0 1.0; to: "speedbox.step.1";}
+                                       color: FONT_PLAYBACK_SPEED_BTN_COLOR;
+                                       text {
+                                               font: FONT_PLAYBACK_SPEED_FONT;
+                                               size: FONT_PLAYBACK_SPEED_BTN_SIZE;
+                                               text: "x2";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "speedbox.step.2.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "speedbox.step.2";}
+                                       rel2 { relative: 1.0 1.0; to: "speedbox.step.2";}
+                                       color: FONT_PLAYBACK_SPEED_BTN_COLOR;
+                                       text {
+                                               font: FONT_PLAYBACK_SPEED_FONT;
+                                               size: FONT_PLAYBACK_SPEED_BTN_SIZE;
+                                               text: "x3";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "speedbox.step.3.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "speedbox.step.3";}
+                                       rel2 { relative: 1.0 1.0; to: "speedbox.step.3";}
+                                       color: FONT_PLAYBACK_SPEED_BTN_COLOR;
+                                       text {
+                                               font: FONT_PLAYBACK_SPEED_FONT;
+                                               size: FONT_PLAYBACK_SPEED_BTN_SIZE;
+                                               text: "x4";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+               } /* parts */
+               programs {
+                       program {
+                               signal: "signal.speedbox.visible.on";
+                               source: "*";
+                               after: "set.speedbox.visible.on";
+                       }
+
+                       program {
+                               signal: "signal.speedbox.visible.off";
+                               source: "*";
+                               after: "set.speedbox.visible.off";
+                       }
+
+                       program {
+                               name: "set.speedbox.visible.on";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+
+                               target: "speedbox.bg.rect";
+                               target: "speedbox.bg";
+                               target: "speedbox.step.1";
+                               target: "speedbox.step.2";
+                               target: "speedbox.step.3";
+                               target: "speedbox.step.1.line";
+                               target: "speedbox.step.2.line";
+                               target: "speedbox.step.1.txt";
+                               target: "speedbox.step.2.txt";
+                               target: "speedbox.step.3.txt";
+                       }
+
+                       program {
+                               name: "set.speedbox.visible.off";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "speedbox.bg.rect";
+                               target: "speedbox.bg";
+                               target: "speedbox.step.1";
+                               target: "speedbox.step.2";
+                               target: "speedbox.step.3";
+                               target: "speedbox.step.1.line";
+                               target: "speedbox.step.2.line";
+                               target: "speedbox.step.1.txt";
+                               target: "speedbox.step.2.txt";
+                               target: "speedbox.step.3.txt";
+                       }
+                       program {
+                               signal: "signal.speedbox.set.mode.1";
+                               source: "*";
+                               script {
+                                       set_state(PART:"speedbox.step.1", "focus", 0.0);
+                                       set_state(PART:"speedbox.step.2", "show", 0.0);
+                                       set_state(PART:"speedbox.step.3", "show", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.speedbox.set.mode.2";
+                               source: "*";
+                               script {
+                                       set_state(PART:"speedbox.step.1", "show", 0.0);
+                                       set_state(PART:"speedbox.step.2", "focus", 0.0);
+                                       set_state(PART:"speedbox.step.3", "show", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.speedbox.set.mode.3";
+                               source: "*";
+                               script {
+                                       set_state(PART:"speedbox.step.1", "show", 0.0);
+                                       set_state(PART:"speedbox.step.2", "show", 0.0);
+                                       set_state(PART:"speedbox.step.3", "focus", 0.0);
+                               }
+                       }
+
+               } /* programs */
+       } /* groups */
+} /* collections */
diff --git a/res/edje/vp-thumbnail-view.edc b/res/edje/vp-thumbnail-view.edc
new file mode 100755 (executable)
index 0000000..55145fc
--- /dev/null
@@ -0,0 +1,1882 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+//portrait
+#define GRID_LEFT_PAD_INC                                      7
+#define GRID_TOP_PAD_INC                                       4
+#define GRID_CENTER_PAD_INC                                    6
+#define GRID_MAINTEXT_CENTER_PAD_INC           4
+
+#define GRID_THUMB_TOP                                         10
+#define GRID_THUMB_HEIGHT                                      289
+#define        GRID_THUMB_ITEM_WIDTH                           350
+#define GRID_THUMB_ITEM_HEIGHT                         270
+
+#define THUMB_ICON_CUSTOM_WIDTH                                350
+#define THUMB_ICON_CUSTOM_HEIGHT                       210
+
+//landspace
+#define GRID_LEFT_PAD_INC_LANDSPACE                                            6
+#define GRID_TOP_PAD_INC_LANDSPACE                                             10
+
+#define GRID_THUMB_HEIGHT_LANDSPACE                                            200
+#define        GRID_THUMB_ITEM_WIDTH_LANDSPACE                                 314
+#define GRID_THUMB_ITEM_HEIGHT_LANDSPACE                               255
+#define GRID_CENTER_PAD_INC_LANDSPACE                                  4
+
+
+#define THUMB_ICON_CUSTOM_WIDTH_LANDSPACE                              314
+#define THUMB_ICON_CUSTOM_HEIGHT_LANDSPACE                             186
+
+//share
+#define GRID_TEXT_TITLE_HEIGHT                         34
+#define GRID_TEXT_SUB_TITLE_HEIGHT                     27
+#define GRID_ICON_CUSTOM_LOCK_WIDTH                    45
+#define GRID_ICON_CUSTOM_LOCK_HEIGHT           45
+#define GRID_ICON_CUSTOM_DROPBOX_WIDTH                         40
+#define GRID_ICON_CUSTOM_DROPBOX_LOCK_HEIGHT           40
+
+
+#define GRID_PARAM_ICON_RT_CUSTOM_LOCK \
+      min: GRID_ICON_CUSTOM_LOCK_WIDTH GRID_ICON_CUSTOM_LOCK_HEIGHT;\
+      max: GRID_ICON_CUSTOM_LOCK_WIDTH GRID_ICON_CUSTOM_LOCK_HEIGHT;
+
+#define GRID_PARAM_ICON_RT_CUSTOM_DROPBOX \
+      min: GRID_ICON_CUSTOM_DROPBOX_WIDTH GRID_ICON_CUSTOM_DROPBOX_LOCK_HEIGHT;\
+      max: GRID_ICON_CUSTOM_DROPBOX_WIDTH GRID_ICON_CUSTOM_DROPBOX_LOCK_HEIGHT;
+
+
+#define GRID_PART_ICON_RT_CUSTOM_LOCK(NAME, REL_TO) \
+       part { name: NAME; \
+               scale: 1; \
+               repeat_events: 0; \
+               type: SWALLOW; \
+               description { state: "default" 0.0; \
+                  GRID_PARAM_ICON_RT_CUSTOM_LOCK \
+                  fixed: 1 1; \
+                  align: 1.0 0.0; \
+                  rel1 { \
+                         relative: 1.0 0.0;\
+                         to: REL_TO; offset:0 4;\
+                       } \
+                  rel2 { \
+                         to: REL_TO; offset:-4 0;\
+                  } \
+                  GENGRID_ITEM_SELECT_VI_EFFECT \
+               } \
+       }
+
+#define GRID_PART_ICON_RT_CUSTOM_DROPBOX(NAME, REL_TO) \
+       part { name: NAME; \
+               scale: 1; \
+               repeat_events: 0; \
+               type: SWALLOW; \
+               description { state: "default" 0.0; \
+                  GRID_PARAM_ICON_RT_CUSTOM_DROPBOX \
+                  fixed: 1 1; \
+                  align: 0.0 1.0; \
+                  rel1 { \
+                         relative: 0.0 1.0;\
+                         to: REL_TO; offset:10 0;\
+                       } \
+                  rel2 { \
+                         to: REL_TO; offset:0 -20;\
+                  } \
+                  GENGRID_ITEM_SELECT_VI_EFFECT \
+               } \
+        }
+
+#define GENGRID_ITEM_SELECT_VI_EFFECT \
+} \
+description { state: "pressed" 0.0; \
+   inherit: "default" 0.0; \
+   map { \
+         on: 1; \
+         perspective: "persp1"; \
+         smooth: 0; \
+   } \
+} \
+description { state: "selected" 0.0; \
+   inherit: "default" 0.0; \
+   map { \
+         on: 1; \
+         perspective: "persp"; \
+         smooth: 1; \
+   }
+
+#define GENGRID_PROGRAM_ITEM_SELECT_VI_EFFECT( TARGET ) \
+         program { name: "vi_pressed"; \
+                action: STATE_SET "pressed" 0.0; \
+                TARGET \
+                after: "vi_zoom_in"; \
+         } \
+         program { name: "vi_zoom_in"; \
+                action: STATE_SET "selected" 0.0; \
+                TARGET \
+                transition: SIN_FAC 0.167 1.1; \
+         } \
+         program { name: "vi_zoom_out"; \
+                action: STATE_SET "pressed" 0.0; \
+                TARGET \
+                transition: SIN_FAC 0.167 1.1; \
+                after: "vi_default"; \
+         } \
+         program { name: "vi_default"; \
+                action: STATE_SET "default" 0.0; \
+                TARGET \
+         }
+
+
+
+//progress
+#define THUMBNAIL_PROGRESSBAR_H                                        11
+#define THUMBNAIL_PROGRESSBAR_W                                        326
+#define THUMBNAIL_PROGRESSBAR_L                                        12
+#define THUMBNAIL_PROGRESSBAR_R                                        (THUMB_ICON_CUSTOM_WIDTH-THUMBNAIL_PROGRESSBAR_L)
+#define THUMBNAIL_PROGRESSBAR_T                                188
+#define THUMBNAIL_PROGRESSBAR_B                                199
+
+
+#define THUMBNAIL_PROGRESSBAR_W_LANDSPACE              290
+#define THUMBNAIL_PROGRESSBAR_L_LANDSPACE              12
+#define THUMBNAIL_PROGRESSBAR_R_LANDSPACE              (THUMB_ICON_CUSTOM_WIDTH_LANDSPACE-THUMBNAIL_PROGRESSBAR_L_LANDSPACE)
+#define THUMBNAIL_PROGRESSBAR_T_LANDSPACE              164
+#define THUMBNAIL_PROGRESSBAR_B_LANDSPACE              175
+
+/*Download item*/
+#define DWONLOAD_TEXT_PADDING_H        2
+#define DWONLOAD_GRID_THUMB_W  350
+#define DWONLOAD_GRID_THUMB_H  291
+#define DWONLOAD_GRID_THUMB_ITEM_W     350
+#define DWONLOAD_GRID_THUMB_ITEM_H     281
+#define DWONLOAD_GRID_THUMB_ICON_W     DWONLOAD_GRID_THUMB_ITEM_W
+#define DWONLOAD_GRID_THUMB_ICON_H     210
+/*button*/
+#define GRID_THUMB_BUTTON_SIZE         72
+#define GRID_THUMB_BUTTON_PADDING      16
+//left button
+#define GRID_THUMB_BUTTON_LEFT_SX      ((DWONLOAD_GRID_THUMB_ITEM_W-(GRID_THUMB_BUTTON_SIZE*2+GRID_THUMB_BUTTON_PADDING))/2)
+#define GRID_THUMB_BUTTON_LEFT_SY      104
+#define GRID_THUMB_BUTTON_LEFT_EX      (GRID_THUMB_BUTTON_LEFT_SX+GRID_THUMB_BUTTON_SIZE)
+#define GRID_THUMB_BUTTON_LEFT_EY      (GRID_THUMB_BUTTON_LEFT_SY+GRID_THUMB_BUTTON_SIZE)
+//right button
+#define GRID_THUMB_BUTTON_RIGHT_SX     (GRID_THUMB_BUTTON_LEFT_EX+GRID_THUMB_BUTTON_PADDING)
+#define GRID_THUMB_BUTTON_RIGHT_SY     GRID_THUMB_BUTTON_LEFT_SY
+#define GRID_THUMB_BUTTON_RIGHT_EX     (GRID_THUMB_BUTTON_RIGHT_SX+GRID_THUMB_BUTTON_SIZE)
+#define GRID_THUMB_BUTTON_RIGHT_EY     GRID_THUMB_BUTTON_LEFT_EY
+//progressbar
+#define GRID_THUMB_PROGRESSBAR_W       326
+#define GRID_THUMB_PROGRESSBAR_SX      12
+#define GRID_THUMB_PROGRESSBAR_SY      188
+#define GRID_THUMB_PROGRESSBAR_EX      (DWONLOAD_GRID_THUMB_ICON_W-GRID_THUMB_PROGRESSBAR_SX)
+#define GRID_THUMB_PROGRESSBAR_EY      199
+/*Download item -- landscape*/
+#define LS_DWONLOAD_GRID_THUMB_W       314
+#define LS_DWONLOAD_GRID_THUMB_H       271
+#define LS_DWONLOAD_GRID_THUMB_ITEM_W  314
+#define LS_DWONLOAD_GRID_THUMB_ITEM_H  271
+#define LS_DWONLOAD_GRID_THUMB_ICON_W  LS_DWONLOAD_GRID_THUMB_ITEM_W
+#define LS_DWONLOAD_GRID_THUMB_ICON_H  190
+//left button
+#define LS_GRID_THUMB_BUTTON_LEFT_SX   ((LS_DWONLOAD_GRID_THUMB_ITEM_W-(GRID_THUMB_BUTTON_SIZE*2+GRID_THUMB_BUTTON_PADDING))/2)
+#define LS_GRID_THUMB_BUTTON_LEFT_SY   82
+#define LS_GRID_THUMB_BUTTON_LEFT_EX   (LS_GRID_THUMB_BUTTON_LEFT_SX+GRID_THUMB_BUTTON_SIZE)
+#define LS_GRID_THUMB_BUTTON_LEFT_EY   (LS_GRID_THUMB_BUTTON_LEFT_SY+GRID_THUMB_BUTTON_SIZE)
+//right button
+#define LS_GRID_THUMB_BUTTON_RIGHT_SX  (LS_GRID_THUMB_BUTTON_LEFT_EX+GRID_THUMB_BUTTON_PADDING)
+#define LS_GRID_THUMB_BUTTON_RIGHT_SY  LS_GRID_THUMB_BUTTON_LEFT_SY
+#define LS_GRID_THUMB_BUTTON_RIGHT_EX  (LS_GRID_THUMB_BUTTON_RIGHT_SX+GRID_THUMB_BUTTON_SIZE)
+#define LS_GRID_THUMB_BUTTON_RIGHT_EY  LS_GRID_THUMB_BUTTON_LEFT_EY
+//progressbar
+#define  LS_GRID_THUMB_PROGRESSBAR_W   290
+#define  LS_GRID_THUMB_PROGRESSBAR_SX  12
+#define  LS_GRID_THUMB_PROGRESSBAR_SY  164
+#define  LS_GRID_THUMB_PROGRESSBAR_EX  (LS_DWONLOAD_GRID_THUMB_ICON_W-LS_GRID_THUMB_PROGRESSBAR_SX)
+#define  LS_GRID_THUMB_PROGRESSBAR_EY  175
+
+#define GENGIID_LIST_SUB_TEXT_SIZE        25
+#define GENGIID_PART_MATCH_TIME_TAG_COLOR                   "+ color=#0E68AD"
+#define GENGIID_LIST_SUB_TIME_DEFAULT_COLOR_STYLE           "#4F4F4FFF"
+
+#define STYLE_TAG \
+      tag:  "br" "\n";\
+      tag:  "ps" "ps";\
+      tag:  "tab" "\t";\
+      tag:  "b" "+ font=Tizen:style=Bold";\
+
+#define STYLE_TIME_TAG_MATCH \
+      tag:  "match" GENGIID_PART_MATCH_TIME_TAG_COLOR; \
+
+styles {
+   style { name: "gengrid_style_list_time_text_unread";
+      base: "font=Tizen:style=Regular font_size="GENGIID_LIST_SUB_TEXT_SIZE" color="GENGIID_LIST_SUB_TIME_DEFAULT_COLOR_STYLE" ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TIME_TAG_MATCH
+   }
+}
+
+
+collections {
+
+sounds {
+   sample {
+      name: "button-pressed" RAW;
+      source: "button-pressed.wav";
+   }
+}
+
+/*grid layout*/
+group { name: "video_thumbnail_grid_layout";
+       parts{
+               part{
+                       name: "pad.left";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: GRID_LEFT_PAD_INC GRID_THUMB_HEIGHT;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 0.0 0.0; }
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part{
+                       name: "item_0";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: GRID_THUMB_ITEM_WIDTH GRID_THUMB_HEIGHT;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 0.0; to: "pad.left";}
+                               rel2 { relative: 1.0 0.0; to: "pad.left";}
+                               align: 0.0 0.0;
+                       }
+               }
+               part{
+                       name: "pad.center.1";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: GRID_CENTER_PAD_INC GRID_THUMB_HEIGHT;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 0.0; to_x: "item_0";}
+                               rel2 { relative: 1.0 1.0; to_x: "item_0";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part{
+                       name: "item_1";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: GRID_THUMB_ITEM_WIDTH GRID_THUMB_HEIGHT;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 0.0; to: "pad.center.1";}
+                               rel2 { relative: 1.0 0.0; to: "pad.center.1";}
+                               align: 0.0 0.0;
+                       }
+               }
+       }
+}
+
+/*grid item*/
+group { name: "video_thumbnail_grid_item";
+       images {
+               //image : "00_thumbs_line_bg.png" COMP;
+               image : "00_thumbs_bg_focus.png" COMP;
+               //image : "00_thumbs_loading_bg.png" COMP;
+       }
+       script {
+          public selected = 0;
+       }
+       parts{
+               part{
+                       name: "bg";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 1;
+                       description { state: "default" 0.0;
+                               fixed: 1 1;
+                               color: 0 0 0 0;
+                               GENGRID_ITEM_SELECT_VI_EFFECT
+                       }
+               }
+               part { name: "persp";
+                  type: RECT;
+                  description { state: "default" 0.0;
+                         min: 32 32;
+                         max: 32 32;
+                         fixed: 1 1;
+                         align: 0.5 0.5;
+                         color: 0 0 0 0;
+                         visible: 1;
+                         perspective {
+                                zplane: -70;
+                                focal: 1000;
+                         }
+                  }
+               }
+               part { name: "persp1";
+                  type: RECT;
+                  description { state: "default" 0.0;
+                         min: 32 32;
+                         max: 32 32;
+                         fixed: 1 1;
+                         align: 0.5 0.5;
+                         color: 0 0 0 0;
+                         visible: 1;
+                         perspective {
+                                zplane: 0;
+                                focal: 1000;
+                         }
+                  }
+               }
+               part{
+                       name: "pad.top";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: THUMB_ICON_CUSTOM_WIDTH GRID_THUMB_TOP;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part{
+                       name: "elm.swallow.icon.bg";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to: "elm.swallow.icon";}
+                               rel2 { relative: 1.0 1.0; to: "elm.swallow.icon";}
+                               color: 0 0 0 255;
+                               GENGRID_ITEM_SELECT_VI_EFFECT
+                       }
+               }
+               part{
+                       name: "elm.swallow.icon";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description { state: "default" 0.0;
+                               min: THUMB_ICON_CUSTOM_WIDTH THUMB_ICON_CUSTOM_HEIGHT;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 1.0; to: "pad.top";}
+                               rel2 { relative: 1.0 1.0; to: "pad.top";}
+                               align: 0.0 0.0;
+                               GENGRID_ITEM_SELECT_VI_EFFECT
+                       }
+               }
+               part {
+                       name: "elm.progressbar.icon";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 THUMBNAIL_PROGRESSBAR_H;
+                               fixed: 0 1;
+                               align: 0.5 1.0;
+                               rel1 {
+                                       relative: THUMBNAIL_PROGRESSBAR_L/THUMB_ICON_CUSTOM_WIDTH THUMBNAIL_PROGRESSBAR_T/THUMB_ICON_CUSTOM_HEIGHT;
+                                       to: "elm.swallow.icon";
+                               }
+                               rel2 {
+                                       relative: THUMBNAIL_PROGRESSBAR_R/THUMB_ICON_CUSTOM_WIDTH THUMBNAIL_PROGRESSBAR_B/THUMB_ICON_CUSTOM_HEIGHT;
+                                       to: "elm.swallow.icon";
+                               }
+                               GENGRID_ITEM_SELECT_VI_EFFECT
+                       }
+               }
+               GRID_PART_ICON_RT_CUSTOM_LOCK("elm.lock.icon", "elm.swallow.icon")
+               GRID_PART_ICON_RT_CUSTOM_DROPBOX("elm.dropbox.icon", "elm.swallow.icon")
+               part { name: "focus_bg";
+                       type: IMAGE;
+                       description { state: "default" 0.0;
+                               visible: 0;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       to: "elm.swallow.icon";
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to: "elm.swallow.icon";
+                               }
+                               image.normal: "00_thumbs_bg_focus.png";
+                               image.border: 13 13 13 13;
+                       }
+                       description { state: "pressed" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part{
+                       name: "pad";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: THUMB_ICON_CUSTOM_WIDTH GRID_MAINTEXT_CENTER_PAD_INC;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 1.0; to: "elm.swallow.icon";}
+                               rel2 { relative: 1.0 1.0; to: "elm.swallow.icon";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part { name: "elm.text.1";
+                       type: TEXT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 1.0; to: "pad";}
+                               rel2 { relative: 1.0 1.0; to: "pad";}
+                               fixed: 1 1;
+                               min: THUMB_ICON_CUSTOM_WIDTH GRID_TEXT_TITLE_HEIGHT;
+                               align: 0.0 0.0;
+                               color: 0 0 0 255;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       align: 0.0 0.5;
+                                       size: 32;
+                               }
+                       }
+               }
+               part{
+                       name: "pad_after_text1";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: THUMB_ICON_CUSTOM_WIDTH GRID_MAINTEXT_CENTER_PAD_INC;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 1.0; to: "elm.text.1";}
+                               rel2 { relative: 1.0 1.0; to: "elm.text.1";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part { name: "elm.text.2";
+                       type: TEXTBLOCK;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 1.0; to: "pad_after_text1";}
+                               rel2 { relative: 1.0 1.0; to: "pad_after_text1";}
+                               fixed: 1 1;
+                               min: THUMB_ICON_CUSTOM_WIDTH GRID_TEXT_SUB_TITLE_HEIGHT;
+                               align: 0.0 0.0;
+                               text {
+                                  min: 0 1;
+                                  style: "gengrid_style_list_time_text_unread";
+                               }
+
+                       }
+               }
+       }
+       programs {
+               GENGRID_PROGRAM_ITEM_SELECT_VI_EFFECT(
+                  target: "elm.swallow.icon";
+                  target: "bg";
+                  target: "elm.swallow.icon.bg";
+                  target: "elm.progressbar.icon";
+                  target: "elm.lock.icon";
+                  target: "elm.dropbox.icon";
+               )
+               program {
+                       name: "mouse_down";
+                       signal: "mouse,down,1";
+                       source: "bg";
+                       action: SIGNAL_EMIT "down" "*";
+                       script {
+                          if (!get_int(selected)) {
+                                 set_int(selected, 1);
+                                 run_program(PROGRAM:"vi_pressed");
+                          }
+                       }
+               }
+               program {
+                       name: "mouse_up";
+                       signal: "mouse,up,1";
+                       source: "bg";
+                       action: SIGNAL_EMIT "up" "*";
+                       script {
+                          if (get_int(selected)) {
+                                 set_int(selected, 0);
+                                 run_program(PROGRAM:"vi_zoom_out");
+                          }
+                       }
+               }
+               program {
+                       name: "clicked";
+                       signal: "mouse,clicked,1";
+                       source: "bg";
+                       action: SIGNAL_EMIT "clicked" "*";
+               }
+               program { name: "touch_snd";
+                       signal: "mouse,clicked,1";
+                       source: "bg";
+                       action: PLAY_SAMPLE "button-pressed" 1.0;
+               }
+       }
+}
+
+/*download grid layout*/
+group { name: "download_thumbnail_grid_layout";
+       parts{
+               part{
+                       name: "pad.left";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 40 513;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 0.0 0.0; }
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part{
+                       name: "item_0";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 306 513;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 0.0; to: "pad.left";}
+                               rel2 { relative: 1.0 0.0; to: "pad.left";}
+                               align: 0.0 0.0;
+                       }
+               }
+
+               part{
+                       name: "pad.center.1";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 28 513;
+                               max: 28 513;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 0.0; to: "item_0";}
+                               rel2 { relative: 1.0 1.0; to: "item_0";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part{
+                       name: "item_1";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 306 513;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 0.0; to: "pad.center.1";}
+                               rel2 { relative: 1.0 0.0; to: "pad.center.1";}
+                               align: 0.0 0.0;
+                       }
+               }
+
+       }
+}
+
+/*download grid item*/
+group { name: "download_thumbnail_grid_item";
+       images {
+               image : "00_thumbs_bg_focus.png" COMP;
+       }
+       parts{
+               part{
+                       name: "bg";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 1;
+                       description { state: "default" 0.0;
+                               fixed: 1 1;
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part{
+                       name: "pad.top";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 306 12;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part{
+                       name: "icon.bg";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 306 317;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 1.0; to: "pad.top";}
+                               rel2 { relative: 1.0 1.0; to: "pad.top";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part{
+                       name: "elm.swallow.icon";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 1;
+                       description { state: "default" 0.0;
+                               min: 212 317;
+                               max: 212 317;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 0.0; to: "icon.bg";}
+                               rel2 { relative: 1.0 1.0; to: "icon.bg";}
+                               align: 0.5 0.0;
+                       }
+               }
+
+               part {
+                       name: "button.left";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: GRID_THUMB_BUTTON_SIZE GRID_THUMB_BUTTON_SIZE;
+                               fixed: 1 1;
+                               align: 0.0 0.0;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       to: "elm.swallow.icon";
+                                       offset: 50 -80;
+                               }
+                               rel2 {
+                                       relative: 0.0 1.0;
+                                       to: "elm.swallow.icon";
+                                       offset: 122 -8;
+                               }
+                       }
+               }
+
+               part {
+                       name: "button.right";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: GRID_THUMB_BUTTON_SIZE GRID_THUMB_BUTTON_SIZE;
+                               fixed: 1 1;
+                               align: 0.0 0.0;
+                               rel1 {
+                                       relative: 1.0 1.0;
+                                       to: "elm.swallow.icon";
+                                       offset: -84 -80;
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to: "elm.swallow.icon";
+                                       offset: -12 -8;
+                               }
+                       }
+               }
+
+               part {
+                       name: "elm.progressbar.icon";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 THUMBNAIL_PROGRESSBAR_H;
+                               fixed: 0 1;
+                               align: 0.0 0.0;
+                               rel1 {
+                                       relative: 1.0 0.0;
+                                       to: "elm.swallow.icon";
+                                       offset: 12 -22;
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to: "elm.swallow.icon";
+                                       offset: -12 -11;
+                               }
+                       }
+               }
+
+               part { name: "focus_bg";
+                       type: IMAGE;
+                       description { state: "default" 0.0;
+                               visible: 0;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       to: "elm.swallow.icon";
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to: "elm.swallow.icon";
+                               }
+                               image.normal: "00_thumbs_bg_focus.png";
+                               image.border: 13 13 13 13;
+                       }
+                       description { state: "pressed" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part{
+                       name: "pad";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 306 3;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 1.0; to: "icon.bg";}
+                               rel2 { relative: 1.0 1.0; to: "icon.bg";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part { name: "elm.text.1";
+                       type: TEXT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 1.0; to: "pad";}
+                               rel2 { relative: 1.0 1.0; to: "pad";}
+                               fixed: 1 1;
+                               min: 306 34;
+                               align: 0.0 0.0;
+                               color: 0 0 0 255;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       align: 0.0 0.5;
+                                       size: 35;
+                               }
+                       }
+               }
+               part{ name: "elm.text.1.pad";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 0 7;
+                               fixed: 0 1;
+                               rel1 { relative: 0.0 1.0; to: "elm.text.1";}
+                               rel2 { relative: 1.0 1.0; to: "elm.text.1";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part { name: "elm.text.year";
+                       type: TEXT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 1.0; to: "elm.text.1.pad";}
+                               rel2 { relative: 1.0 1.0; to: "elm.text.1.pad";}
+                               fixed: 1 1;
+                               min: 306 32;
+                               align: 0.0 0.0;
+                               color: 102 102 102 255;
+                               text {
+                                       align: 0.0 0.5;
+                                       font: "Tizen:style=Regular";
+                                       size: 28;
+                               }
+                       }
+               }
+               part{ name: "elm.text.year.pad";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 0 3;
+                               fixed: 0 1;
+                               rel1 { relative: 0.0 1.0; to: "elm.text.year";}
+                               rel2 { relative: 1.0 1.0; to: "elm.text.year";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part { name: "elm.sdhd.bg";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 1.0; to: "elm.text.year.pad";}
+                               rel2 { relative: 1.0 1.0; to: "elm.text.year.pad";}
+                               fixed: 1 1;
+                               min: 306 32;
+                               align: 0.0 0.0;
+                               visible: 0;
+                       }
+               }
+               part{ name: "elm.swallow.sdhd";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 42 32;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 0.0; to: "elm.sdhd.bg";}
+                               rel2 { relative: 0.0 1.0; to: "elm.sdhd.bg";}
+                               align: 0.0 0.0;
+                       }
+               }
+               part{ name: "elm.text.sdhd";
+                       type: TEXT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 0 32;
+                               fixed: 0 1;
+                               rel1 { relative: 1.0 0.0; to: "elm.swallow.sdhd"; offset: 12 0;}
+                               rel2 { relative: 1.0 1.0; to: "elm.sdhd.bg";}
+                               align: 0.0 0.0;
+                               color: 102 102 102 255;
+                               text {
+                                       align: 0.0 0.5;
+                                       font: "Tizen:style=Regular";
+                                       size: 28;
+                               }
+                       }
+               }
+               part{ name: "elm.sdhd.pad";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 0 9;
+                               fixed: 0 1;
+                               rel1 { relative: 0.0 1.0; to: "elm.sdhd.bg";}
+                               rel2 { relative: 1.0 1.0; to: "elm.sdhd.bg";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part { name: "elm.text.2";
+                       type: TEXT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 1.0; to: "elm.sdhd.pad";}
+                               rel2 { relative: 1.0 1.0; to: "elm.sdhd.pad";}
+                               fixed: 1 1;
+                               min: 306 28;
+                               align: 0.0 0.0;
+                               color: 14 104 173 255;
+                               text {
+                                       align: 0.0 0.5;
+                                       font: "Tizen:style=Rugular";
+                                       size: 25;
+                               }
+                       }
+               }
+               part {
+                       name: "download.progressbar";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 THUMBNAIL_PROGRESSBAR_H;
+                               fixed: 0 1;
+                               align: 0.0 0.0;
+                               rel1 {
+                                       relative: 0 1.0;
+                                       to: "elm.sdhd.pad";
+                                       offset: 0 2;
+                               }
+                               rel2 {
+                                       relative: 1 1.0;
+                                       offset: 0 THUMBNAIL_PROGRESSBAR_H+2;
+                                       to: "elm.sdhd.pad";
+                               }
+                       }
+               }
+               part { name: "downloading.text.2";
+                       type: TEXT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 1.0; to: "download.progressbar"; offset:0 3;}
+                               rel2 { relative: 1.0 1.0; to: "download.progressbar"; offset:0 3;}
+                               fixed: 1 1;
+                               min: 306 28;
+                               align: 0.0 0.0;
+                               color: 14 104 173 255;
+                               text {
+                                       align: 1.0 0.5;
+                                       font: "Tizen:style=Bold";
+                                       size: 25;
+                               }
+                       }
+               }
+       }
+
+       programs {
+               program {
+                       name: "mouse_down";
+                       signal: "mouse,down,1";
+                       source: "elm.swallow.icon";
+                       action: SIGNAL_EMIT "down" "*";
+               }
+               program { signal: "mouse,down,1";
+                       source: "elm.swallow.icon";
+                       action: STATE_SET "pressed" 0.0;
+                       target: "focus_bg";
+                       after: "mouse_down";
+               }
+               program {
+                       name: "mouse_up";
+                       signal: "mouse,up,1";
+                       source: "elm.swallow.icon";
+                       action: SIGNAL_EMIT "up" "*";
+               }
+               program { signal: "mouse,up,1";
+                       source: "elm.swallow.icon";
+                       action: STATE_SET "default" 0.0;
+                       target: "focus_bg";
+                       after: "mouse_up";
+               }
+               program {
+                       name: "clicked";
+                       signal: "mouse,clicked,1";
+                       source: "elm.swallow.icon";
+                       action: SIGNAL_EMIT "clicked" "*";
+               }
+               program { name: "touch_snd";
+                       signal: "mouse,clicked,1";
+                       source: "elm.swallow.icon";
+                       action: PLAY_SAMPLE "button-pressed" 1.0;
+                       after: "clicked";
+               }
+       }
+}
+
+
+/*landspace  grid layout*/
+group { name: "video_thumbnail_grid_layout_landspace";
+       parts{
+               part{
+                       name: "pad.left";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: GRID_LEFT_PAD_INC_LANDSPACE GRID_THUMB_HEIGHT_LANDSPACE;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 0.0 0.0; }
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part{
+                       name: "pad.top";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: GRID_LEFT_PAD_INC_LANDSPACE GRID_TOP_PAD_INC_LANDSPACE;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 0.0 0.0; }
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part{
+                       name: "item_0";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: GRID_THUMB_ITEM_WIDTH_LANDSPACE GRID_THUMB_ITEM_HEIGHT_LANDSPACE;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 1.0; to_x: "pad.left"; to_y: "pad.top";}
+                               rel2 { relative: 1.0 1.0; to_x: "pad.left"; to_y: "pad.top";}
+                               align: 0.0 0.0;
+                       }
+               }
+
+               part{
+                       name: "pad.center.1";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: GRID_CENTER_PAD_INC_LANDSPACE GRID_THUMB_ITEM_HEIGHT_LANDSPACE;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 0.0; to: "item_0";}
+                               rel2 { relative: 1.0 1.0; to: "item_0";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part{
+                       name: "item_1";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: GRID_THUMB_ITEM_WIDTH_LANDSPACE GRID_THUMB_ITEM_HEIGHT_LANDSPACE;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 0.0; to: "pad.center.1";}
+                               rel2 { relative: 1.0 1.0; to: "pad.center.1";}
+                               align: 0.0 0.0;
+                       }
+               }
+
+               part{
+                       name: "pad.center.2";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: GRID_CENTER_PAD_INC_LANDSPACE GRID_THUMB_ITEM_HEIGHT_LANDSPACE;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 0.0; to: "item_1";}
+                               rel2 { relative: 1.0 1.0; to: "item_1";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part{
+                       name: "item_2";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: GRID_THUMB_ITEM_WIDTH_LANDSPACE GRID_THUMB_ITEM_HEIGHT_LANDSPACE;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 0.0; to: "pad.center.2";}
+                               rel2 { relative: 1.0 1.0; to: "pad.center.2";}
+                               align: 0.0 0.0;
+                       }
+               }
+
+               part{
+                       name: "pad.center.3";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: GRID_CENTER_PAD_INC_LANDSPACE GRID_THUMB_ITEM_HEIGHT_LANDSPACE;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 0.0; to: "item_2";}
+                               rel2 { relative: 1.0 1.0; to: "item_2";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part{
+                       name: "item_3";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: GRID_THUMB_ITEM_WIDTH_LANDSPACE GRID_THUMB_ITEM_HEIGHT_LANDSPACE;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 0.0; to: "pad.center.3";}
+                               rel2 { relative: 1.0 1.0; to: "pad.center.3";}
+                               align: 0.0 0.0;
+                       }
+               }
+
+       }
+}
+
+/*grid item*/
+group { name: "video_thumbnail_grid_item_landspace";
+       images {
+               //image : "00_thumbs_line_bg.png" COMP;
+               image : "00_thumbs_bg_focus.png" COMP;
+               //image : "00_thumbs_loading_bg.png" COMP;
+       }
+       script {
+          public selected = 0;
+       }
+       parts{
+               part{
+                       name: "bg";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 1;
+                       description { state: "default" 0.0;
+                               fixed: 1 1;
+                               color: 0 0 0 0;
+                               GENGRID_ITEM_SELECT_VI_EFFECT
+                       }
+               }
+               part { name: "persp";
+                  type: RECT;
+                  description { state: "default" 0.0;
+                         min: 32 32;
+                         max: 32 32;
+                         fixed: 1 1;
+                         align: 0.5 0.5;
+                         color: 0 0 0 0;
+                         visible: 1;
+                         perspective {
+                                zplane: -70;
+                                focal: 1000;
+                         }
+                  }
+               }
+               part { name: "persp1";
+                  type: RECT;
+                  description { state: "default" 0.0;
+                         min: 32 32;
+                         max: 32 32;
+                         fixed: 1 1;
+                         align: 0.5 0.5;
+                         color: 0 0 0 0;
+                         visible: 1;
+                         perspective {
+                                zplane: 0;
+                                focal: 1000;
+                         }
+                  }
+               }
+               part{
+                       name: "pad.top";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part{
+                       name: "elm.swallow.icon.bg";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to: "elm.swallow.icon";}
+                               rel2 { relative: 1.0 1.0; to: "elm.swallow.icon";}
+                               color: 0 0 0 255;
+                               GENGRID_ITEM_SELECT_VI_EFFECT
+                       }
+               }
+               part{
+                       name: "elm.swallow.icon";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description { state: "default" 0.0;
+                               min: GRID_THUMB_ITEM_WIDTH_LANDSPACE THUMB_ICON_CUSTOM_HEIGHT_LANDSPACE;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 1.0; to: "pad.top";}
+                               rel2 { relative: 1.0 1.0; to: "pad.top";}
+                               align: 0.0 0.0;
+                               GENGRID_ITEM_SELECT_VI_EFFECT
+                       }
+               }
+               part {
+                       name: "elm.progressbar.icon";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 THUMBNAIL_PROGRESSBAR_H;
+                               fixed: 0 1;
+                               align: 0.5 1.0;
+                               rel1 {
+                                       relative: THUMBNAIL_PROGRESSBAR_L_LANDSPACE/GRID_THUMB_ITEM_WIDTH_LANDSPACE THUMBNAIL_PROGRESSBAR_T_LANDSPACE/THUMB_ICON_CUSTOM_HEIGHT_LANDSPACE;
+                                       to: "elm.swallow.icon";
+                               }
+                               rel2 {
+                                       relative: THUMBNAIL_PROGRESSBAR_R_LANDSPACE/GRID_THUMB_ITEM_WIDTH_LANDSPACE THUMBNAIL_PROGRESSBAR_B_LANDSPACE/THUMB_ICON_CUSTOM_HEIGHT_LANDSPACE;
+                                       to: "elm.swallow.icon";
+                               }
+                               GENGRID_ITEM_SELECT_VI_EFFECT
+                       }
+               }
+               GRID_PART_ICON_RT_CUSTOM_LOCK("elm.lock.icon", "elm.swallow.icon")
+               GRID_PART_ICON_RT_CUSTOM_DROPBOX("elm.dropbox.icon", "elm.swallow.icon")
+               part { name: "focus_bg";
+                       type: IMAGE;
+                       description { state: "default" 0.0;
+                               visible: 0;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       to: "elm.swallow.icon";
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to: "elm.swallow.icon";
+                               }
+                               image.normal: "00_thumbs_bg_focus.png";
+                               image.border: 13 13 13 13;
+                       }
+                       description { state: "pressed" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part{
+                       name: "pad";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: THUMB_ICON_CUSTOM_WIDTH_LANDSPACE GRID_CENTER_PAD_INC_LANDSPACE;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 1.0; to: "elm.swallow.icon";}
+                               rel2 { relative: 1.0 1.0; to: "elm.swallow.icon";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part { name: "elm.text.1";
+                       type: TEXT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 1.0; to: "pad";}
+                               rel2 { relative: 1.0 1.0; to: "pad";}
+                               fixed: 1 1;
+                               min: THUMB_ICON_CUSTOM_WIDTH_LANDSPACE GRID_TEXT_TITLE_HEIGHT;
+                               align: 0.0 0.0;
+                               color: 0 0 0 255;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       align: 0.0 0.5;
+                                       size: 32;
+                               }
+                       }
+               }
+               part{
+                       name: "pad_after_text1";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: THUMB_ICON_CUSTOM_WIDTH_LANDSPACE GRID_CENTER_PAD_INC_LANDSPACE;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 1.0; to: "elm.text.1";}
+                               rel2 { relative: 1.0 1.0; to: "elm.text.1";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part { name: "elm.text.2";
+                       type: TEXTBLOCK;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 1.0; to: "pad_after_text1";}
+                               rel2 { relative: 1.0 1.0; to: "pad_after_text1";}
+                               fixed: 1 1;
+                               min: THUMB_ICON_CUSTOM_WIDTH_LANDSPACE GRID_TEXT_SUB_TITLE_HEIGHT;
+                               align: 0.0 0.0;
+                               text {
+                                  min: 0 1;
+                                  style: "gengrid_style_list_time_text_unread";
+                               }
+                       }
+               }
+       }
+       programs {
+               GENGRID_PROGRAM_ITEM_SELECT_VI_EFFECT(
+                  target: "elm.swallow.icon";
+                  target: "bg";
+                  target: "elm.swallow.icon.bg";
+                  target: "elm.progressbar.icon";
+                  target: "elm.lock.icon";
+                  target: "elm.dropbox.icon";
+               )
+               program {
+                       name: "mouse_down";
+                       signal: "mouse,down,1";
+                       source: "bg";
+                       action: SIGNAL_EMIT "down" "*";
+                       script {
+                          if (!get_int(selected)) {
+                                 set_int(selected, 1);
+                                 run_program(PROGRAM:"vi_pressed");
+                          }
+                       }
+               }
+               program {
+                       name: "mouse_up";
+                       signal: "mouse,up,1";
+                       source: "bg";
+                       action: SIGNAL_EMIT "up" "*";
+                       script {
+                          if (get_int(selected)) {
+                                 set_int(selected, 0);
+                                 run_program(PROGRAM:"vi_zoom_out");
+                          }
+                       }
+               }
+               program {
+                       name: "clicked";
+                       signal: "mouse,clicked,1";
+                       source: "bg";
+                       action: SIGNAL_EMIT "clicked" "*";
+               }
+               program { name: "touch_snd";
+                       signal: "mouse,clicked,1";
+                       source: "bg";
+                       action: PLAY_SAMPLE "button-pressed" 1.0;
+               }
+       }
+}
+/*download landspace  grid layout*/
+group { name: "download_thumbnail_grid_layout_landspace";
+       parts{
+               part{
+                       name: "pad.left";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 28 485;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 0.0 0.0; }
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part{
+                       name: "pad.top";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 1280 10;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 0.0 0.0; }
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part{
+                       name: "item_0";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 266 475;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 1.0; to_x: "pad.left"; to_y: "pad.top";}
+                               rel2 { relative: 1.0 1.0; to_x: "pad.left"; to_y: "pad.top";}
+                               align: 0.0 0.0;
+                       }
+               }
+
+               part{
+                       name: "pad.center.1";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 53 475;
+                               max: 53 475;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 0.0; to: "item_0";}
+                               rel2 { relative: 1.0 1.0; to: "item_0";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part{
+                       name: "item_1";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 266 475;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 0.0; to: "pad.center.1";}
+                               rel2 { relative: 1.0 1.0; to: "pad.center.1";}
+                               align: 0.0 0.0;
+                       }
+               }
+
+               part{
+                       name: "pad.center.2";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 53 475;
+                               max: 53 475;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 0.0; to: "item_1";}
+                               rel2 { relative: 1.0 1.0; to: "item_1";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part{
+                       name: "item_2";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 266 475;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 0.0; to: "pad.center.2";}
+                               rel2 { relative: 1.0 1.0; to: "pad.center.2";}
+                               align: 0.0 0.0;
+                       }
+               }
+
+               part{
+                       name: "pad.center.3";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 53 475;
+                               max: 53 475;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 0.0; to: "item_2";}
+                               rel2 { relative: 1.0 1.0; to: "item_2";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part{
+                       name: "item_3";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 266 475;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 0.0; to: "pad.center.3";}
+                               rel2 { relative: 1.0 1.0; to: "pad.center.3";}
+                               align: 0.0 0.0;
+                       }
+               }
+
+       }
+}
+/*download landscape grid item*/
+group { name: "download_thumbnail_grid_item_landspace";
+       images {
+               image : "00_thumbs_bg_focus.png" COMP;
+       }
+       parts{
+               part{
+                       name: "bg";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 1;
+                       description { state: "default" 0.0;
+                               fixed: 1 1;
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part{
+                       name: "pad.top";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part{
+                       name: "icon.bg";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 266 301;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 1.0; to: "pad.top";}
+                               rel2 { relative: 1.0 1.0; to: "pad.top";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part{
+                       name: "elm.swallow.icon";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 1;
+                       description { state: "default" 0.0;
+                               min: 202 301;
+                               max: 202 301;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 0.0; to: "icon.bg";}
+                               rel2 { relative: 1.0 1.0; to: "icon.bg";}
+                               align: 0.5 0.0;
+                       }
+               }
+
+               part {
+                       name: "button.left";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: GRID_THUMB_BUTTON_SIZE GRID_THUMB_BUTTON_SIZE;
+                               fixed: 1 1;
+                               align: 0.0 0.0;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       to: "elm.swallow.icon";
+                                       offset: 40 -80;
+                               }
+                               rel2 {
+                                       relative: 0.0 1.0;
+                                       to: "elm.swallow.icon";
+                                       offset: 112 -8;
+                               }
+                       }
+               }
+
+               part {
+                       name: "button.right";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: GRID_THUMB_BUTTON_SIZE GRID_THUMB_BUTTON_SIZE;
+                               fixed: 1 1;
+                               align: 0.0 0.0;
+                               rel1 {
+                                       relative: 1.0 1.0;
+                                       to: "elm.swallow.icon";
+                                       offset:-84 -80;
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to: "elm.swallow.icon";
+                                       offset:-12 -8;
+                               }
+                       }
+               }
+
+               part {
+                       name: "elm.progressbar.icon";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 THUMBNAIL_PROGRESSBAR_H;
+                               fixed: 0 1;
+                               align: 0.0 0.0;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       to: "elm.swallow.icon";
+                                       offset: 12 -22;
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to: "elm.swallow.icon";
+                                       offset: -12 -11;
+                               }
+                       }
+               }
+
+               part { name: "focus_bg";
+                       type: IMAGE;
+                       description { state: "default" 0.0;
+                               visible: 0;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       to: "elm.swallow.icon";
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to: "elm.swallow.icon";
+                               }
+                               image.normal: "00_thumbs_bg_focus.png";
+                               image.border: 13 13 13 13;
+                       }
+                       description { state: "pressed" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part{
+                       name: "pad";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 266 3;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 1.0; to: "icon.bg";}
+                               rel2 { relative: 1.0 1.0; to: "icon.bg";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part { name: "elm.text.1";
+                       type: TEXT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 1.0; to: "pad";}
+                               rel2 { relative: 1.0 1.0; to: "pad";}
+                               fixed: 1 1;
+                               min: 266 34;
+                               align: 0.0 0.0;
+                               color: 0 0 0 255;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       align: 0.0 0.5;
+                                       size: 35;
+                               }
+                       }
+               }
+               part{ name: "elm.text.1.pad";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 0 7;
+                               fixed: 0 1;
+                               rel1 { relative: 0.0 1.0; to: "elm.text.1";}
+                               rel2 { relative: 1.0 1.0; to: "elm.text.1";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part { name: "elm.text.year";
+                       type: TEXT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 1.0; to: "elm.text.1.pad";}
+                               rel2 { relative: 1.0 1.0; to: "elm.text.1.pad";}
+                               fixed: 1 1;
+                               min: 266 32;
+                               align: 0.0 0.0;
+                               color: 102 102 102 255;
+                               text {
+                                       align: 0.0 0.5;
+                                       font: "Tizen:style=Regular";
+                                       size: 28;
+                               }
+                       }
+               }
+               part{ name: "elm.text.year.pad";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 0 3;
+                               fixed: 0 1;
+                               rel1 { relative: 0.0 1.0; to: "elm.text.year";}
+                               rel2 { relative: 1.0 1.0; to: "elm.text.year";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part { name: "elm.sdhd.bg";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 1.0; to: "elm.text.year.pad";}
+                               rel2 { relative: 1.0 1.0; to: "elm.text.year.pad";}
+                               fixed: 1 1;
+                               min: 266 32;
+                               align: 0.0 0.0;
+                               visible: 0;
+                       }
+               }
+               part{ name: "elm.swallow.sdhd";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 42 32;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 0.0; to: "elm.sdhd.bg";}
+                               rel2 { relative: 0.0 1.0; to: "elm.sdhd.bg";}
+                               align: 0.0 0.0;
+                       }
+               }
+               part{ name: "elm.text.sdhd";
+                       type: TEXT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 0 32;
+                               fixed: 0 1;
+                               rel1 { relative: 1.0 0.0; to: "elm.swallow.sdhd"; offset: 12 0;}
+                               rel2 { relative: 1.0 1.0; to: "elm.sdhd.bg";}
+                               align: 0.0 0.0;
+                               color: 102 102 102 255;
+                               text {
+                                       align: 0.0 0.5;
+                                       font: "Tizen:style=Regular";
+                                       size: 28;
+                               }
+                       }
+               }
+               part{ name: "elm.sdhd.pad";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 0 9;
+                               fixed: 0 1;
+                               rel1 { relative: 0.0 1.0; to: "elm.sdhd.bg";}
+                               rel2 { relative: 1.0 1.0; to: "elm.sdhd.bg";}
+                               align: 0.0 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part { name: "elm.text.2";
+                       type: TEXT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 1.0; to: "elm.sdhd.pad";}
+                               rel2 { relative: 1.0 1.0; to: "elm.sdhd.pad";}
+                               fixed: 1 1;
+                               min: 266 28;
+                               align: 0.0 0.0;
+                               color: 14 104 173 255;
+                               text {
+                                       align: 0.0 0.5;
+                                       font: "Tizen:style=Bold";
+                                       size: 25;
+                               }
+                       }
+               }
+               part {
+                       name: "download.progressbar";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 THUMBNAIL_PROGRESSBAR_H;
+                               fixed: 0 1;
+                               align: 0.0 0.0;
+                               rel1 {
+                                       relative: 0 1;
+                                       to: "elm.sdhd.pad";
+                                       offset:0 2;
+                               }
+                               rel2 {
+                                       relative: 1 1;
+                                       offset: 0 THUMBNAIL_PROGRESSBAR_H+2;
+                                       to: "elm.sdhd.pad";
+                               }
+                       }
+               }
+               part { name: "downloading.text.2";
+                       type: TEXT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 1.0; to: "download.progressbar";}
+                               rel2 { relative: 1.0 1.0; to: "download.progressbar";}
+                               fixed: 1 1;
+                               min: 266 28;
+                               align: 0.0 0.0;
+                               color: 14 104 173 255;
+                               text {
+                                       align: 1.0 0.5;
+                                       font: "Tizen:style=Bold";
+                                       size: 25;
+                               }
+                       }
+               }
+       }
+
+       programs {
+               program {
+                       name: "mouse_down";
+                       signal: "mouse,down,1";
+                       source: "elm.swallow.icon";
+                       action: SIGNAL_EMIT "down" "*";
+               }
+               program { signal: "mouse,down,1";
+                       source: "elm.swallow.icon";
+                       action: STATE_SET "pressed" 0.0;
+                       target: "focus_bg";
+                       after: "mouse_down";
+               }
+               program {
+                       name: "mouse_up";
+                       signal: "mouse,up,1";
+                       source: "elm.swallow.icon";
+                       action: SIGNAL_EMIT "up" "*";
+               }
+               program { signal: "mouse,up,1";
+                       source: "elm.swallow.icon";
+                       action: STATE_SET "default" 0.0;
+                       target: "focus_bg";
+                       after: "mouse_up";
+               }
+               program {
+                       name: "clicked";
+                       signal: "mouse,clicked,1";
+                       source: "elm.swallow.icon";
+                       action: SIGNAL_EMIT "clicked" "*";
+               }
+               program { name: "touch_snd";
+                       signal: "mouse,clicked,1";
+                       source: "elm.swallow.icon";
+                       action: PLAY_SAMPLE "button-pressed" 1.0;
+                       after: "clicked";
+               }
+       }
+}
+
+group
+{
+       name:"thumbnail_preload_image";
+       parts
+       {
+               part
+               {
+                       name:"base";
+                       type:RECT;
+                       scale: 1;
+                       description
+                       {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                               color: 8 8 8 0;
+                       }
+               }
+
+               part
+               {
+                       name:"bg";
+                       type:RECT;
+                       scale: 1;
+                       description
+                       {
+                               state: "default" 0.0;
+                               align: 0.5 0.5;
+                               rel1 { relative: 0.0 0.0; to:"base";}
+                               rel2 { relative: 1.0 1.0; to:"base";}
+                               color: 8 8 8 0;
+                       }
+               }
+
+               part
+               {
+                       name:"file_icon_clipper";
+                       type:RECT;
+                       scale: 1;
+                       description
+                       {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to:"bg";}
+                               rel2 { relative: 1.0 1.0; to:"bg";}
+                       }
+               }
+
+               part
+               {
+                       name:"thumbnail";
+                       type:SWALLOW;
+                       clip_to: "file_icon_clipper";
+                       scale: 1;
+                       description
+                       {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to:"file_icon_clipper";}
+                               rel2 { relative: 1.0 1.0; to:"file_icon_clipper";}
+                       }
+               }
+       }
+}
+
+}
+
diff --git a/res/edje/vp-toolbar.edc b/res/edje/vp-toolbar.edc
new file mode 100755 (executable)
index 0000000..951d910
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+group { name: "elm/toolbar/2buttons";
+   parts {
+      part { name: "bg";
+         type: SPACER;
+         description {
+            state: "default" 0.0;
+            rel1 { relative: 0.0 0.0; }
+            rel2 { relative: 1.0 1.0; }
+         }
+      }
+      part { name: "bg.button.1";
+         type: SPACER;
+         description {
+            state: "default" 0.0;
+            rel1 { relative: 0.0 0.0; to: "bg"; }
+            rel2 { relative: 0.5 1.0; to: "bg"; }
+         }
+      }
+      part { name: "bg.button.2";
+         type: SPACER;
+         description {
+            state: "default" 0.0;
+            rel1 { relative: 0.5 0.0; to: "bg"; }
+            rel2 { relative: 1.0 1.0; to: "bg"; }
+         }
+      }
+      part { name: "elm.swallow.button.1";
+         type: SWALLOW;
+         description {
+            state: "default" 0.0;
+            rel1 { relative: 0.0 0.0; to: "bg.button.1"; }
+            rel2 { relative: 1.0 1.0; to: "bg.button.1"; }
+         }
+      }
+      part { name: "elm.swallow.button.2";
+         type: SWALLOW;
+         description {
+            state: "default" 0.0;
+            rel1 { relative: 0.0 0.0; to: "bg.button.2"; }
+            rel2 { relative: 1.0 1.0; to: "bg.button.2"; }
+         }
+      }
+   }
+}
diff --git a/res/edje/vp_font.edc b/res/edje/vp_font.edc
new file mode 100755 (executable)
index 0000000..29bb8f1
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#define FONT_BOLD_TYPE                 "Tizen:style=Bold"
+#define FONT_MEDIUM_TYPE                       "Tizen:style=Medium"
+#define FONT_REGULAR_TYPE              "Tizen:style=Regular"
+#define FONT_ROMAN_TYPE                        "Tizen:style=Roman"
+
+#define FONT_COLOR                             255 255 255 255
+
+#define FONT_START_COLOR               255 255 255 255
+#define FONT_END_COLOR                 142 142 142 255
+#define FONT_TRIM_START_COLOR  56 56 56 255
+#define FONT_TRIM_END_COLOR            255 255 255 255
+#define FONT_BOOKMARK_TITLE            249 249 249 255
+
+#define FONT_PLAYBACK_SPEED_COLOR              255 255 255 255
+#define FONT_PLAYBACK_SPEED_BTN_COLOR  255 255 255 255
+
+#define FONT_PLAYBACK_SPEED_SIZE       90
+#define FONT_PLAYBACK_SPEED_BTN_SIZE   36
+
+#define FONT_PLAYBACK_SPEED_FONT       FONT_REGULAR_TYPE
+#define FONT_PLAYBACK_SPEED_BTN_FONT   FONT_REGULAR_TYPE
+
+
+#define TITLE_FONT_SIZE                28
+#define TEXT_TRIM_SIZE         25
diff --git a/res/images/00_check_bg_dim.png b/res/images/00_check_bg_dim.png
new file mode 100755 (executable)
index 0000000..ff8f7dd
Binary files /dev/null and b/res/images/00_check_bg_dim.png differ
diff --git a/res/images/00_focus.png b/res/images/00_focus.png
new file mode 100755 (executable)
index 0000000..4f46811
Binary files /dev/null and b/res/images/00_focus.png differ
diff --git a/res/images/00_grid_select_check.png b/res/images/00_grid_select_check.png
new file mode 100755 (executable)
index 0000000..29b10ff
Binary files /dev/null and b/res/images/00_grid_select_check.png differ
diff --git a/res/images/00_list_group_bg.png b/res/images/00_list_group_bg.png
new file mode 100755 (executable)
index 0000000..612fbc5
Binary files /dev/null and b/res/images/00_list_group_bg.png differ
diff --git a/res/images/00_list_group_bg_press.png b/res/images/00_list_group_bg_press.png
new file mode 100755 (executable)
index 0000000..01edbc1
Binary files /dev/null and b/res/images/00_list_group_bg_press.png differ
diff --git a/res/images/00_popup_list_press.png b/res/images/00_popup_list_press.png
new file mode 100755 (executable)
index 0000000..a19964e
Binary files /dev/null and b/res/images/00_popup_list_press.png differ
diff --git a/res/images/00_scroll_bar.png b/res/images/00_scroll_bar.png
new file mode 100755 (executable)
index 0000000..9930bbf
Binary files /dev/null and b/res/images/00_scroll_bar.png differ
diff --git a/res/images/00_scroll_bar_h.png b/res/images/00_scroll_bar_h.png
new file mode 100755 (executable)
index 0000000..5f00760
Binary files /dev/null and b/res/images/00_scroll_bar_h.png differ
diff --git a/res/images/00_scroll_bar_v.png b/res/images/00_scroll_bar_v.png
new file mode 100755 (executable)
index 0000000..a777740
Binary files /dev/null and b/res/images/00_scroll_bar_v.png differ
diff --git a/res/images/00_sweep_list_bg.png b/res/images/00_sweep_list_bg.png
new file mode 100755 (executable)
index 0000000..1606042
Binary files /dev/null and b/res/images/00_sweep_list_bg.png differ
diff --git a/res/images/00_thumbs_bg_focus.png b/res/images/00_thumbs_bg_focus.png
new file mode 100755 (executable)
index 0000000..681c3ba
Binary files /dev/null and b/res/images/00_thumbs_bg_focus.png differ
diff --git a/res/images/00_thumbs_line_bg.png b/res/images/00_thumbs_line_bg.png
new file mode 100755 (executable)
index 0000000..ae1338b
Binary files /dev/null and b/res/images/00_thumbs_line_bg.png differ
diff --git a/res/images/00_thumbs_loading_bg.png b/res/images/00_thumbs_loading_bg.png
new file mode 100755 (executable)
index 0000000..f3e8bd0
Binary files /dev/null and b/res/images/00_thumbs_loading_bg.png differ
diff --git a/res/images/00_winset_list_progress_bg.png b/res/images/00_winset_list_progress_bg.png
new file mode 100755 (executable)
index 0000000..5e83560
Binary files /dev/null and b/res/images/00_winset_list_progress_bg.png differ
diff --git a/res/images/00_winset_thumbs_bg.png b/res/images/00_winset_thumbs_bg.png
new file mode 100755 (executable)
index 0000000..8f132c9
Binary files /dev/null and b/res/images/00_winset_thumbs_bg.png differ
diff --git a/res/images/00_winset_thumbs_focus_bg.png b/res/images/00_winset_thumbs_focus_bg.png
new file mode 100755 (executable)
index 0000000..5170036
Binary files /dev/null and b/res/images/00_winset_thumbs_focus_bg.png differ
diff --git a/res/images/T01-2_control_circle_icon_play.png b/res/images/T01-2_control_circle_icon_play.png
new file mode 100755 (executable)
index 0000000..ccc48b0
Binary files /dev/null and b/res/images/T01-2_control_circle_icon_play.png differ
diff --git a/res/images/T01-2_hold_icon_lock.png b/res/images/T01-2_hold_icon_lock.png
new file mode 100755 (executable)
index 0000000..0fb24c1
Binary files /dev/null and b/res/images/T01-2_hold_icon_lock.png differ
diff --git a/res/images/T01-2_icon_toolbar_cancel.png b/res/images/T01-2_icon_toolbar_cancel.png
new file mode 100755 (executable)
index 0000000..7fbe2e0
Binary files /dev/null and b/res/images/T01-2_icon_toolbar_cancel.png differ
diff --git a/res/images/T01-2_progress_bar.png b/res/images/T01-2_progress_bar.png
new file mode 100755 (executable)
index 0000000..c3809cf
Binary files /dev/null and b/res/images/T01-2_progress_bar.png differ
diff --git a/res/images/T01-2_progress_bg.png b/res/images/T01-2_progress_bg.png
new file mode 100755 (executable)
index 0000000..a3df036
Binary files /dev/null and b/res/images/T01-2_progress_bg.png differ
diff --git a/res/images/T01-2_progress_bg_02.png b/res/images/T01-2_progress_bg_02.png
new file mode 100755 (executable)
index 0000000..f242a99
Binary files /dev/null and b/res/images/T01-2_progress_bg_02.png differ
diff --git a/res/images/T01-2_video_noitem.png b/res/images/T01-2_video_noitem.png
new file mode 100755 (executable)
index 0000000..d273ad4
Binary files /dev/null and b/res/images/T01-2_video_noitem.png differ
diff --git a/res/images/T01-2_video_thumbnail_view_bg.png b/res/images/T01-2_video_thumbnail_view_bg.png
new file mode 100755 (executable)
index 0000000..1e98fd0
Binary files /dev/null and b/res/images/T01-2_video_thumbnail_view_bg.png differ
diff --git a/res/images/T01_Nocontents_multimedia.png b/res/images/T01_Nocontents_multimedia.png
new file mode 100755 (executable)
index 0000000..d8d0ee8
Binary files /dev/null and b/res/images/T01_Nocontents_multimedia.png differ
diff --git a/res/images/T01_check.png b/res/images/T01_check.png
new file mode 100755 (executable)
index 0000000..b5f5a66
Binary files /dev/null and b/res/images/T01_check.png differ
diff --git a/res/images/T01_checkbox.png b/res/images/T01_checkbox.png
new file mode 100755 (executable)
index 0000000..928d234
Binary files /dev/null and b/res/images/T01_checkbox.png differ
diff --git a/res/images/T01_grid_select_check.png b/res/images/T01_grid_select_check.png
new file mode 100755 (executable)
index 0000000..55b1f5e
Binary files /dev/null and b/res/images/T01_grid_select_check.png differ
diff --git a/res/images/T01_icon_soft_back.png b/res/images/T01_icon_soft_back.png
new file mode 100755 (executable)
index 0000000..f8e4d01
Binary files /dev/null and b/res/images/T01_icon_soft_back.png differ
diff --git a/res/images/T01_icon_soft_back_blabk.png b/res/images/T01_icon_soft_back_blabk.png
new file mode 100755 (executable)
index 0000000..7a548a4
Binary files /dev/null and b/res/images/T01_icon_soft_back_blabk.png differ
diff --git a/res/images/T01_toolbar_bg.png b/res/images/T01_toolbar_bg.png
new file mode 100755 (executable)
index 0000000..e02c6c6
Binary files /dev/null and b/res/images/T01_toolbar_bg.png differ
diff --git a/res/images/T01_toolbar_press.png b/res/images/T01_toolbar_press.png
new file mode 100755 (executable)
index 0000000..851583e
Binary files /dev/null and b/res/images/T01_toolbar_press.png differ
diff --git a/res/images/T01_video_list_progress_bar.png b/res/images/T01_video_list_progress_bar.png
new file mode 100755 (executable)
index 0000000..cc9c1bc
Binary files /dev/null and b/res/images/T01_video_list_progress_bar.png differ
diff --git a/res/images/core_theme_bg_01.png b/res/images/core_theme_bg_01.png
new file mode 100755 (executable)
index 0000000..be3057d
Binary files /dev/null and b/res/images/core_theme_bg_01.png differ
diff --git a/res/images/download/T01-2_video_thumbnail_view_default.png b/res/images/download/T01-2_video_thumbnail_view_default.png
new file mode 100755 (executable)
index 0000000..2995668
Binary files /dev/null and b/res/images/download/T01-2_video_thumbnail_view_default.png differ
diff --git a/res/images/download/T01-2_video_thumbnail_view_default_h.png b/res/images/download/T01-2_video_thumbnail_view_default_h.png
new file mode 100755 (executable)
index 0000000..a3b65ac
Binary files /dev/null and b/res/images/download/T01-2_video_thumbnail_view_default_h.png differ
diff --git a/res/images/download/T01-2_video_thumbnail_view_hd.png b/res/images/download/T01-2_video_thumbnail_view_hd.png
new file mode 100755 (executable)
index 0000000..4e88707
Binary files /dev/null and b/res/images/download/T01-2_video_thumbnail_view_hd.png differ
diff --git a/res/images/download/T01-2_video_thumbnail_view_hd_press.png b/res/images/download/T01-2_video_thumbnail_view_hd_press.png
new file mode 100755 (executable)
index 0000000..62ac33b
Binary files /dev/null and b/res/images/download/T01-2_video_thumbnail_view_hd_press.png differ
diff --git a/res/images/download/T01-2_video_thumbnail_view_sd.png b/res/images/download/T01-2_video_thumbnail_view_sd.png
new file mode 100755 (executable)
index 0000000..904d535
Binary files /dev/null and b/res/images/download/T01-2_video_thumbnail_view_sd.png differ
diff --git a/res/images/download/T01-2_video_thumbnail_view_sd_press.png b/res/images/download/T01-2_video_thumbnail_view_sd_press.png
new file mode 100755 (executable)
index 0000000..01f8368
Binary files /dev/null and b/res/images/download/T01-2_video_thumbnail_view_sd_press.png differ
diff --git a/res/images/genlist/00_focus.png b/res/images/genlist/00_focus.png
new file mode 100755 (executable)
index 0000000..4f46811
Binary files /dev/null and b/res/images/genlist/00_focus.png differ
diff --git a/res/images/genlist/00_list_group_bg.png b/res/images/genlist/00_list_group_bg.png
new file mode 100755 (executable)
index 0000000..612fbc5
Binary files /dev/null and b/res/images/genlist/00_list_group_bg.png differ
diff --git a/res/images/genlist/00_list_group_bg_press.png b/res/images/genlist/00_list_group_bg_press.png
new file mode 100755 (executable)
index 0000000..01edbc1
Binary files /dev/null and b/res/images/genlist/00_list_group_bg_press.png differ
diff --git a/res/images/genlist/00_popup_list_press.png b/res/images/genlist/00_popup_list_press.png
new file mode 100755 (executable)
index 0000000..a19964e
Binary files /dev/null and b/res/images/genlist/00_popup_list_press.png differ
diff --git a/res/images/icon/T01-2_video_noitem.png b/res/images/icon/T01-2_video_noitem.png
new file mode 100755 (executable)
index 0000000..bbe66f3
Binary files /dev/null and b/res/images/icon/T01-2_video_noitem.png differ
diff --git a/res/images/icon/T01-2_video_thumbnail_default.png b/res/images/icon/T01-2_video_thumbnail_default.png
new file mode 100755 (executable)
index 0000000..4ed4630
Binary files /dev/null and b/res/images/icon/T01-2_video_thumbnail_default.png differ
diff --git a/res/images/icon/T01_2_button_expand_cancel.png b/res/images/icon/T01_2_button_expand_cancel.png
new file mode 100755 (executable)
index 0000000..7dfcde3
Binary files /dev/null and b/res/images/icon/T01_2_button_expand_cancel.png differ
diff --git a/res/images/icon/T01_2_button_expand_cancel_press.png b/res/images/icon/T01_2_button_expand_cancel_press.png
new file mode 100755 (executable)
index 0000000..2570325
Binary files /dev/null and b/res/images/icon/T01_2_button_expand_cancel_press.png differ
diff --git a/res/images/icon/T01_2_button_expand_download.png b/res/images/icon/T01_2_button_expand_download.png
new file mode 100755 (executable)
index 0000000..d24de02
Binary files /dev/null and b/res/images/icon/T01_2_button_expand_download.png differ
diff --git a/res/images/icon/T01_2_button_expand_download_press.png b/res/images/icon/T01_2_button_expand_download_press.png
new file mode 100755 (executable)
index 0000000..d2e5a06
Binary files /dev/null and b/res/images/icon/T01_2_button_expand_download_press.png differ
diff --git a/res/images/icon/T01_2_button_expand_play.png b/res/images/icon/T01_2_button_expand_play.png
new file mode 100755 (executable)
index 0000000..0dc5c72
Binary files /dev/null and b/res/images/icon/T01_2_button_expand_play.png differ
diff --git a/res/images/icon/T01_2_button_expand_stop.png b/res/images/icon/T01_2_button_expand_stop.png
new file mode 100755 (executable)
index 0000000..7e2cb4e
Binary files /dev/null and b/res/images/icon/T01_2_button_expand_stop.png differ
diff --git a/res/images/icon/T01_2_icon_search.png b/res/images/icon/T01_2_icon_search.png
new file mode 100755 (executable)
index 0000000..5967c64
Binary files /dev/null and b/res/images/icon/T01_2_icon_search.png differ
diff --git a/res/images/icon/T01_2_icon_video.png b/res/images/icon/T01_2_icon_video.png
new file mode 100755 (executable)
index 0000000..97614e1
Binary files /dev/null and b/res/images/icon/T01_2_icon_video.png differ
diff --git a/res/images/icon/T01_2_list_icon_inner_usb.png b/res/images/icon/T01_2_list_icon_inner_usb.png
new file mode 100755 (executable)
index 0000000..87807d4
Binary files /dev/null and b/res/images/icon/T01_2_list_icon_inner_usb.png differ
diff --git a/res/images/icon/T01_2_list_icon_sd_card.png b/res/images/icon/T01_2_list_icon_sd_card.png
new file mode 100755 (executable)
index 0000000..516cfa5
Binary files /dev/null and b/res/images/icon/T01_2_list_icon_sd_card.png differ
diff --git a/res/images/icon/T01_2_thumbnail_icon_drop_box.png b/res/images/icon/T01_2_thumbnail_icon_drop_box.png
new file mode 100755 (executable)
index 0000000..51da85f
Binary files /dev/null and b/res/images/icon/T01_2_thumbnail_icon_drop_box.png differ
diff --git a/res/images/icon/T01_2_video_lock_45x45.png b/res/images/icon/T01_2_video_lock_45x45.png
new file mode 100755 (executable)
index 0000000..49dffa0
Binary files /dev/null and b/res/images/icon/T01_2_video_lock_45x45.png differ
diff --git a/res/images/icon/T01_Device_icon_index_refresh_bg.png b/res/images/icon/T01_Device_icon_index_refresh_bg.png
new file mode 100755 (executable)
index 0000000..f84c234
Binary files /dev/null and b/res/images/icon/T01_Device_icon_index_refresh_bg.png differ
diff --git a/res/images/icon/T01_Device_icon_index_refresh_focus_ef.png b/res/images/icon/T01_Device_icon_index_refresh_focus_ef.png
new file mode 100755 (executable)
index 0000000..ac29676
Binary files /dev/null and b/res/images/icon/T01_Device_icon_index_refresh_focus_ef.png differ
diff --git a/res/images/icon/T02_icon_edit.png b/res/images/icon/T02_icon_edit.png
new file mode 100755 (executable)
index 0000000..0c531fc
Binary files /dev/null and b/res/images/icon/T02_icon_edit.png differ
diff --git a/res/images/icon/U04_device_Camcorder.png b/res/images/icon/U04_device_Camcorder.png
new file mode 100755 (executable)
index 0000000..b4a7ec6
Binary files /dev/null and b/res/images/icon/U04_device_Camcorder.png differ
diff --git a/res/images/icon/U04_device_Camera.png b/res/images/icon/U04_device_Camera.png
new file mode 100755 (executable)
index 0000000..796b765
Binary files /dev/null and b/res/images/icon/U04_device_Camera.png differ
diff --git a/res/images/icon/U04_device_Mobile.png b/res/images/icon/U04_device_Mobile.png
new file mode 100755 (executable)
index 0000000..f2e7825
Binary files /dev/null and b/res/images/icon/U04_device_Mobile.png differ
diff --git a/res/images/icon/U04_device_None_DNS.png b/res/images/icon/U04_device_None_DNS.png
new file mode 100755 (executable)
index 0000000..adeba27
Binary files /dev/null and b/res/images/icon/U04_device_None_DNS.png differ
diff --git a/res/images/icon/U04_device_PC.png b/res/images/icon/U04_device_PC.png
new file mode 100755 (executable)
index 0000000..24b7475
Binary files /dev/null and b/res/images/icon/U04_device_PC.png differ
diff --git a/res/images/icon/U04_device_STB.png b/res/images/icon/U04_device_STB.png
new file mode 100755 (executable)
index 0000000..55ea8a9
Binary files /dev/null and b/res/images/icon/U04_device_STB.png differ
diff --git a/res/images/icon/U04_device_TV.png b/res/images/icon/U04_device_TV.png
new file mode 100755 (executable)
index 0000000..a981577
Binary files /dev/null and b/res/images/icon/U04_device_TV.png differ
diff --git a/res/images/icon/player_folder_list_icon_dropbox.png b/res/images/icon/player_folder_list_icon_dropbox.png
new file mode 100755 (executable)
index 0000000..8d932c1
Binary files /dev/null and b/res/images/icon/player_folder_list_icon_dropbox.png differ
diff --git a/res/images/icon/player_folder_list_icon_dropbox_ef.png b/res/images/icon/player_folder_list_icon_dropbox_ef.png
new file mode 100755 (executable)
index 0000000..994f451
Binary files /dev/null and b/res/images/icon/player_folder_list_icon_dropbox_ef.png differ
diff --git a/res/images/icon/player_folder_list_icon_folder.png b/res/images/icon/player_folder_list_icon_folder.png
new file mode 100755 (executable)
index 0000000..7c25416
Binary files /dev/null and b/res/images/icon/player_folder_list_icon_folder.png differ
diff --git a/res/images/icon/player_folder_list_icon_folder_ef.png b/res/images/icon/player_folder_list_icon_folder_ef.png
new file mode 100755 (executable)
index 0000000..1cba630
Binary files /dev/null and b/res/images/icon/player_folder_list_icon_folder_ef.png differ
diff --git a/res/images/org.tizen.video-player.png b/res/images/org.tizen.video-player.png
new file mode 100755 (executable)
index 0000000..c7c5875
Binary files /dev/null and b/res/images/org.tizen.video-player.png differ
diff --git a/res/images/org.tizen.videos.png b/res/images/org.tizen.videos.png
new file mode 100755 (executable)
index 0000000..c7c5875
Binary files /dev/null and b/res/images/org.tizen.videos.png differ
diff --git a/res/images/player_library_list_thumbnail_default.png b/res/images/player_library_list_thumbnail_default.png
new file mode 100755 (executable)
index 0000000..b1a672d
Binary files /dev/null and b/res/images/player_library_list_thumbnail_default.png differ
diff --git a/res/images/sound_only.png b/res/images/sound_only.png
new file mode 100755 (executable)
index 0000000..0849699
Binary files /dev/null and b/res/images/sound_only.png differ
diff --git a/res/images/title_line_top_video.png b/res/images/title_line_top_video.png
new file mode 100755 (executable)
index 0000000..1de6f49
Binary files /dev/null and b/res/images/title_line_top_video.png differ
diff --git a/res/images/toolbar/T01-2_btn_toolbar_back.png b/res/images/toolbar/T01-2_btn_toolbar_back.png
new file mode 100755 (executable)
index 0000000..995afaf
Binary files /dev/null and b/res/images/toolbar/T01-2_btn_toolbar_back.png differ
diff --git a/res/images/toolbar/T01-2_controlbar_icon_recorded.png b/res/images/toolbar/T01-2_controlbar_icon_recorded.png
new file mode 100755 (executable)
index 0000000..2d74180
Binary files /dev/null and b/res/images/toolbar/T01-2_controlbar_icon_recorded.png differ
diff --git a/res/images/toolbar/T01-2_controlbar_icon_video.png b/res/images/toolbar/T01-2_controlbar_icon_video.png
new file mode 100755 (executable)
index 0000000..a9cc464
Binary files /dev/null and b/res/images/toolbar/T01-2_controlbar_icon_video.png differ
diff --git a/res/images/toolbar/T01-2_icon_toolbar_cancel.png b/res/images/toolbar/T01-2_icon_toolbar_cancel.png
new file mode 100755 (executable)
index 0000000..7fbe2e0
Binary files /dev/null and b/res/images/toolbar/T01-2_icon_toolbar_cancel.png differ
diff --git a/res/images/toolbar/T01-2_icon_toolbar_done.png b/res/images/toolbar/T01-2_icon_toolbar_done.png
new file mode 100755 (executable)
index 0000000..6bd6608
Binary files /dev/null and b/res/images/toolbar/T01-2_icon_toolbar_done.png differ
diff --git a/res/images/toolbar/icon_delete.png b/res/images/toolbar/icon_delete.png
new file mode 100755 (executable)
index 0000000..c7e7719
Binary files /dev/null and b/res/images/toolbar/icon_delete.png differ
diff --git a/res/images/toolbar/icon_download.png b/res/images/toolbar/icon_download.png
new file mode 100755 (executable)
index 0000000..ceb91db
Binary files /dev/null and b/res/images/toolbar/icon_download.png differ
diff --git a/res/images/toolbar/icon_nearbydevices.png b/res/images/toolbar/icon_nearbydevices.png
new file mode 100755 (executable)
index 0000000..1611c96
Binary files /dev/null and b/res/images/toolbar/icon_nearbydevices.png differ
diff --git a/res/images/toolbar/icon_refresh.png b/res/images/toolbar/icon_refresh.png
new file mode 100755 (executable)
index 0000000..2c75e64
Binary files /dev/null and b/res/images/toolbar/icon_refresh.png differ
diff --git a/res/images/toolbar/icon_share_via.png b/res/images/toolbar/icon_share_via.png
new file mode 100755 (executable)
index 0000000..eb9bc07
Binary files /dev/null and b/res/images/toolbar/icon_share_via.png differ
diff --git a/res/images/toolbar/icon_signin.png b/res/images/toolbar/icon_signin.png
new file mode 100755 (executable)
index 0000000..8d2df75
Binary files /dev/null and b/res/images/toolbar/icon_signin.png differ
diff --git a/res/images/toolbar/icon_sort_by.png b/res/images/toolbar/icon_sort_by.png
new file mode 100755 (executable)
index 0000000..595fdf5
Binary files /dev/null and b/res/images/toolbar/icon_sort_by.png differ
diff --git a/res/images/toolbar/icon_view_as.png b/res/images/toolbar/icon_view_as.png
new file mode 100755 (executable)
index 0000000..cfc0b77
Binary files /dev/null and b/res/images/toolbar/icon_view_as.png differ
diff --git a/res/images/toolbar/more_button_icon_add_to_your_personal_storage.png b/res/images/toolbar/more_button_icon_add_to_your_personal_storage.png
new file mode 100755 (executable)
index 0000000..c41cf8c
Binary files /dev/null and b/res/images/toolbar/more_button_icon_add_to_your_personal_storage.png differ
diff --git a/res/images/toolbar/more_button_icon_remove_from_your_personal_storage.png b/res/images/toolbar/more_button_icon_remove_from_your_personal_storage.png
new file mode 100755 (executable)
index 0000000..d33fa44
Binary files /dev/null and b/res/images/toolbar/more_button_icon_remove_from_your_personal_storage.png differ
diff --git a/res/images/turn_over/B15_turn_over_01.png b/res/images/turn_over/B15_turn_over_01.png
new file mode 100755 (executable)
index 0000000..2bc3166
Binary files /dev/null and b/res/images/turn_over/B15_turn_over_01.png differ
diff --git a/res/images/turn_over/B15_turn_over_02.png b/res/images/turn_over/B15_turn_over_02.png
new file mode 100755 (executable)
index 0000000..d8d7c84
Binary files /dev/null and b/res/images/turn_over/B15_turn_over_02.png differ
diff --git a/res/images/turn_over/B15_turn_over_03.png b/res/images/turn_over/B15_turn_over_03.png
new file mode 100755 (executable)
index 0000000..81481d8
Binary files /dev/null and b/res/images/turn_over/B15_turn_over_03.png differ
diff --git a/res/images/video_preview.png b/res/images/video_preview.png
new file mode 100755 (executable)
index 0000000..0bb31ab
Binary files /dev/null and b/res/images/video_preview.png differ
diff --git a/res/images/video_preview_l.png b/res/images/video_preview_l.png
new file mode 100755 (executable)
index 0000000..6b1b6c6
Binary files /dev/null and b/res/images/video_preview_l.png differ
diff --git a/res/images/white/common/00_button_01.png b/res/images/white/common/00_button_01.png
new file mode 100755 (executable)
index 0000000..66044c9
Binary files /dev/null and b/res/images/white/common/00_button_01.png differ
diff --git a/res/images/white/common/00_button_01_press.png b/res/images/white/common/00_button_01_press.png
new file mode 100755 (executable)
index 0000000..ef77037
Binary files /dev/null and b/res/images/white/common/00_button_01_press.png differ
diff --git a/res/images/white/common/00_popup_bubble_bg.png b/res/images/white/common/00_popup_bubble_bg.png
new file mode 100755 (executable)
index 0000000..cacc248
Binary files /dev/null and b/res/images/white/common/00_popup_bubble_bg.png differ
diff --git a/res/images/white/common/00_popup_scroll.9.png b/res/images/white/common/00_popup_scroll.9.png
new file mode 100755 (executable)
index 0000000..59fa0ff
Binary files /dev/null and b/res/images/white/common/00_popup_scroll.9.png differ
diff --git a/res/images/white/common/00_popup_tail_bottom.png b/res/images/white/common/00_popup_tail_bottom.png
new file mode 100755 (executable)
index 0000000..a37b8be
Binary files /dev/null and b/res/images/white/common/00_popup_tail_bottom.png differ
diff --git a/res/images/white/common/00_popup_tail_left.png b/res/images/white/common/00_popup_tail_left.png
new file mode 100755 (executable)
index 0000000..593c109
Binary files /dev/null and b/res/images/white/common/00_popup_tail_left.png differ
diff --git a/res/images/white/common/00_popup_tail_right.png b/res/images/white/common/00_popup_tail_right.png
new file mode 100755 (executable)
index 0000000..0b451f7
Binary files /dev/null and b/res/images/white/common/00_popup_tail_right.png differ
diff --git a/res/images/white/common/00_popup_tail_top.png b/res/images/white/common/00_popup_tail_top.png
new file mode 100755 (executable)
index 0000000..d99ce87
Binary files /dev/null and b/res/images/white/common/00_popup_tail_top.png differ
diff --git a/res/images/white/common/00_winset_control_toolbar_bg.png b/res/images/white/common/00_winset_control_toolbar_bg.png
new file mode 100755 (executable)
index 0000000..d21ae34
Binary files /dev/null and b/res/images/white/common/00_winset_control_toolbar_bg.png differ
diff --git a/res/images/white/common/01_scroller.png b/res/images/white/common/01_scroller.png
new file mode 100755 (executable)
index 0000000..88ee4ab
Binary files /dev/null and b/res/images/white/common/01_scroller.png differ
diff --git a/res/images/white/common/T01-2_popup_arrow.png b/res/images/white/common/T01-2_popup_arrow.png
new file mode 100755 (executable)
index 0000000..1644c53
Binary files /dev/null and b/res/images/white/common/T01-2_popup_arrow.png differ
diff --git a/res/images/white/common/T01-2_popup_bg.png b/res/images/white/common/T01-2_popup_bg.png
new file mode 100755 (executable)
index 0000000..3ff02f1
Binary files /dev/null and b/res/images/white/common/T01-2_popup_bg.png differ
diff --git a/res/po/CMakeLists.txt b/res/po/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..07058e3
--- /dev/null
@@ -0,0 +1,27 @@
+# for i18n
+
+SET(POFILES ar.po az.po bg.po ca.po cs.po da.po de.po el_GR.po en_PH.po en.po en_US.po es_ES.po es_US.po et.po eu.po fi.po fr_CA.po 
+fr.po ga.po gl.po hi.po hr.po hu.po hy.po is.po it_IT.po ja_JP.po ka.po kk.po ko_KR.po lt.po lv.po mk.po nb.po nl.po pl.po pt_BR.po 
+pt_PT.po ro.po ru_RU.po sk.po sl.po sr.po sv.po tr_TR.po uk.po uz.po zh_CN.po zh_HK.po zh_TW.po)
+
+
+SET(MSGFMT "/usr/bin/msgfmt")
+
+FOREACH(pofile ${POFILES})
+       SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
+       MESSAGE("PO: ${pofile}")
+       GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+       GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+       SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+       ADD_CUSTOM_COMMAND(
+                       OUTPUT ${moFile}
+                       COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+                       DEPENDS ${absPofile}
+       )
+       INSTALL(FILES ${moFile}
+                       DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
+       SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+MESSAGE(".mo files: ${moFiles}")
+ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
diff --git a/res/po/ar.po b/res/po/ar.po
new file mode 100755 (executable)
index 0000000..d02a509
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "تنزيل"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "سيتم تنزيل مجلد واحد."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "سيتم تنزيل فيديو واحد."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "سيتم تنزيل كل المجلدات."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "سيتم تنزيل كل مقاطع الفيديو."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "سيتم تنزيل %d من المجلدات."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "سيتم تنزيل %d من مقاطع الفيديو."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "تم إيقاف تشغيل بيانات الهاتف المحمول. بدلاً من ذلك، اتصل بشبكة Wi-Fi، أو شغّل بيانات الهاتف المحمول وحاول مرة أخرى."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "خاص"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "ب."
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "ج.ب"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "ك.ب"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "الموقع"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "م.ب"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "غير معروف"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "موافق"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "مجلد واحد"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "مقطع فيديو واحد"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "الكل"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "من الجهاز"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "من Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "آخر تعديل"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "المحتوى المطلوب عرضه"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "البحث"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "مشاركة"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "سيتم حذف مجلد واحد."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "جارٍ الحذف..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "سيتم عرض مقاطع فيديو التي تم تسجيلها باستخدام الكاميرا هنا."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d مقاطع فيديو"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "فيديو"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "ما من مقاطع فيديو"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "التفاصيل"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "المجلد"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "اللائحة"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "مضاف مؤخرا"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "تمت مشاهدتها مؤخراً"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "تغيير الاسم"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "الحجم"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "فرز حسب"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "العنوان"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "النوع"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "عرض كـ"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "سيتم حذف جميع مقاطع الفيديو."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "سيتم حذف %d مجلدات."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "سيتم حذف %d مقاطع فيديو."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "سيتم حذف هذا المجلد."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "مجلدات %d"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "الضبط"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "يتعذر تشغيل الفيديو"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "محاذاة"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "حجم الخط"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "ضبط التكرار"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "العناوين الفرعية (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "سيتم حذف كل المجلدات."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "وسط"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "كبير"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "إلى اليسار"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "متوسطة"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "إلى اليمين"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "صغير"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "اسم الملف مستخدم بالفعل"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "إغلاق"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "تم الوصول إلى أقصى عدد من الحروف."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "إيقاف"
+
+msgid "IDS_COM_SK_OK"
+msgstr "موافق"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "غير مفعل"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "إنعاش"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "الموقع"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "تم الحذف."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "إزالة من الخاص"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "نقل إلى الخاص"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "المدخل خالي."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "تنسيق"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "يتعذر تشغيل الصوت أثناء المكالمة."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "هذا الملف غير متاح أثناء عدم الاتصال الشبكة. تحقق من اتصال الشبكة وحاول مرة أخرى."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "سيتم نقل العنصر المحدد إلى %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "سيتم نقل العناصر المحددة إلى %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "جاري الحذف..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "جاري النقل..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "فشل النقل إلى التخزين الشخصي."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "فشل النقل إلى التخزين العادي."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "الرسالة"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "مجلدات"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "بريد إلكتروني"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "التاريخ (الأحدث)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "تم تحديد %d"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "حذف مقاطع الفيديو"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "حذف مقطع الفيديو"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "نقل"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "خط الطول"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "المدى"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "بعد تسجيل مقاطع فيديو باستخدام الكاميرا، سيتم عرض مقاطع الفيديو"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "إلغاء"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "بعد إيقاف الكل"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "تكرار الحالية"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "تكرار الكل"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "الدقة"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "حذف"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "مسح الكل"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "هذا الملف يعتمد بيانات الصوت فقط. تشغيل الصوت الآن."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "هذا الملف يعتمد بيانات الفيديو فقط. تشغيل الفيديو الآن."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "إعادة تسمية"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "سماعات رأس"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "غير معروف"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "خطأ"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "البلوتوث"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "البطارية ضعيفة."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "فشل التوصيل."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "هذا الملف غير موجود."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "يمكنك استخدام %s أكثر من مرة واحدة. هل تريد الحصول على ترخيص آخر؟"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "جهاز صوت"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "تمت الإضافة."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "بحث"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "تتعذر الإضافة."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "إفتراضي"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "تنزيل"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "غير مفعل"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "مفعل"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "سيتم حذف مقطع فيديو واحد."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "حرف غير صالح"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "لا توجد نتائج للبحث"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "تحديد"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "آخر تعديل"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "تم"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "التاريخ"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "المدى"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "الاسم"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "الاسم (من أ إلى ي)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "الفيديو"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "تم تجاوز الحد الأقصى لعدد المرفقات (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "تحديد الكل"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "وحدة تخزين الجهاز"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "بطاقة SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "نقل"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "مفعل"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "مشاركة عبر"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "حدث خطأ في الشبكة. حاول مرة أخرى."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "تشغيل التالي تلقائيا"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "جاري المعالجة..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "تم بلوغ الحد الأقصى لعدد الأحرف."
+
+msgid "IDS_COM_SK_YES"
+msgstr "نعم"
+
+msgid "IDS_COM_SK_NO"
+msgstr "لا"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "حذف"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "مسح الكل"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "لا يوجد نتيجة للبحث"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "اختيار عنصر"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "تحديد العناصر"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "إلغاء"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "تم"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "إلغاء"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "حذف"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "موقع التخزين"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "التاريخ"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "تحديد الفيديو"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi مباشر"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "حدث خطأ اتصال."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "ك.ب"
+
+msgid "IDS_COM_BODY_B"
+msgstr "ب."
+
+msgid "IDS_COM_BODY_MB"
+msgstr "م.ب"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "ج.ب"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "تم التنزيل."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "تزامن"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "الخط"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "لاشيء"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "سماعات رأس"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "يمكنك استخدام %s مرة أخرى. هل تريد البدء الآن؟"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "يمكنك استخدام %s مرتين آخرتين. هل تريد البدء الآن؟"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "تم حظر %s في الوقت الحالي. هل تريد إلغاء الحظر؟"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "لا يمكنك استخدام %s لمرات أكثر من ذلك. هل تريد الحصول على ترخيص آخر؟"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "لقد أوشكت صلاحية %s على الانتهاء. هل تريد الحصول على ترخيص آخر؟"
+
diff --git a/res/po/az.po b/res/po/az.po
new file mode 100755 (executable)
index 0000000..38c2890
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Yüklə"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 qovluq yüklənəcək."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video yüklənəcək."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Bütün qovluqlar yüklənəcək."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Bütün videolar yüklənəcək."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d qovluq yüklənəcək."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d video yüklənəcək."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobil tarif söndürüldü. Əvəzinə Wi-Fi şəbəkəsinə qoşulun və ya Mobil tarifi aktivləşdirin və yenidən cəhd edin."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Şəxsi"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "QB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Yeri"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Naməlum"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 qovluq"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Hamısını"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Cihazdan"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropbox-dan"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Son dəyişmə"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Göstərmək üçün məzmun"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Axtar"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Paylaş"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 qovluq silinəcək."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Silinir..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kamera vasitəsilə videoları çəkdikdən sonra onlar burada görünəcək."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d video"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Video yoxdur"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Təfsilatlar"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Qovluq"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Siyahı"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Son əlavələr"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Bu yaxınlarda baxılmış"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Adını dəyişdir"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Ölçü"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Çeşidlə"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Başlıq"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Növ"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Fərqli bax"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Bütün videolar silinəcək."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d qovluq silinəcək."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d video silinəcək."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Bu qovluq silinəcək."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d qovluq"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Parametrlər"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videonu göstərmək mümkün deyil"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Nizamlama"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Şriftin ölçüsü"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Parametri təkrarla"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Yarım başlıqlar (bağlı)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Bütün qovluqlar silinəcək."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Mərkəz"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Böyük"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Sol"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Orta"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Sağ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Kiçik"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Fayl adı artıq istifadədədir"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Bağla"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Simvol sayı maksimuma çatıb."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Dayandır"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Söndür"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Yenilǝ"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Yeri"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Silindi."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Şəxsi rejimdən sil"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Şəxsiyə köçür"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Boş qeyd."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Zəng zamanı videonu göstərmək mümkün deyildir."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Bu fayl oflayn mümkün deyil. Şəbəkə bağlantısını yoxlayın və yenidən cəhd edin"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Seçilən element %s-a köçürüləcəkdir."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Seçilən elementlər %s-a köçürüləcəkdir."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Silinir..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Göndərilmə..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Fərdi yaddaşa köçürmək mümkün olmadı."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Normal yaddaşa köçürmək mümkün olmadı."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mesaj"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Qovluqlar"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Epoçt"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Tarix (ən son)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d seçilmişdir"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Videoları sil"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Videonu sil"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Köçür"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Uzunluq"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "En"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Kamera vasitəsilə videoları çəkdikdən sonra videolar göstəriləcək."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Ləğv et"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Bitəndə dayandır"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "İndikini təkrarla"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Hamısını təkrarla"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rezolyusiya"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Sil"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Hamısı silindi"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Bu fayl yalnız audio məlumatı dəstəkləyir. İndi səsləndirilən audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Bu fayl yalnız video məlumatı dəstəkləyir. İndi görüntülənən video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Adını dəyiş"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Qulaqlıqlar"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Naməlum"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Xəta"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Batareya zəifdir."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Əlaqə mümkün olmadı."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Bu fayl movcud deyil."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Siz 1 dəfə də %s istifadə edə bilərsiniz. Başqa bir lisenziya alınsın?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audio cihaz"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Əlavə edildi."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Axtarın"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Əlavə etmək mümkün deyil."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "İlkin təyin olunan"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Yükləyin"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Söndür"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Qoş"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video silinəcək."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Yalnış simvol"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Axtarış nəticəsi yoxdur"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Seç"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Son dəyişdirilmə"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Tamam"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Tarix"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "En"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ad"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Ad (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Qoşmaların sayı maksimumu (%d) keçmişdir."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Hamısını seç"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Cihazın yaddaşı"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD kart"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Göndər"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Qoş"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Paylaş"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Şəbəkə xətası baş verdi. Yenidən cəhd edin."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Növbətini avto-göstər"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Emal edilir..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Simvolların sayı maksimuma çatıb."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Bəli"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Xeyr"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Sil"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Hamısı silindi"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Axtarış nəticəsi yoxdur"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Element seç"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Elementləri seç"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Ləğv et"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "HAZIR"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "LƏĞV ET"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "SİL"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Yaddaş yeri"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Tarix"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Video seçin"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Bağlantıda səhv oldu."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "QB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Yükləndi."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sinxronlaşdır"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Şrift"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Yoxdur"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Qulaqlıqlar"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Siz 1 dəfə də %s istifadə edə bilərsiniz. İndi başlasın?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Siz 2 dəfə də %s istifadə edə bilərsiniz. İndi başlasın?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s hazırda kilidlənib. Kilid açılsın?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Siz artıq %s istifadə edə bilməzsiniz. Başqa bir lisenziya alınsın?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s vaxtı bitmək üzrədir. Başqa bir lisenziya alınsın?"
+
diff --git a/res/po/bg.po b/res/po/bg.po
new file mode 100755 (executable)
index 0000000..390b7f0
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Изтегляне"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 папка ще бъде изтеглена."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 видео ще бъде изтеглено."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Всички папки ще бъдат изтеглени."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Всички видеоклипове ще бъдат изтеглени."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d папки ще бъдат изтеглени."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d видеоклипа ще бъдат изтеглени."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Мобилните данни са изключени. Вместо това се свържете към Wi-Fi мрежа или включете мобилните данни и опитайте отново."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Лична"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Позиция"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Няма информация"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 папка"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 видео"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Всички"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "От устройството"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "От Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Последна промяна"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Съдържание за показване"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Търсене"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Споделяне"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 папка ще бъде изтрита."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Изтриване..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "След като заснемете видеоклипове с камерата, те ще се покажат тук."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d клипа"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Видеоклип"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Няма видео"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Детайли"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Папка"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Списък"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Последно добавени"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Последно разглеждани"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Преименуване"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Размер"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Сортиране по"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Заглавие"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Тип"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Преглед като"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Всички видеоклипове ще бъдат изтрити."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d папки ще бъдат изтрити."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d видеоклипа ще бъдат изтрити."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Тази папка ще бъде изтрита."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d папки"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Не може да се възпр. видео"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Подравняване"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Р-р шрифт"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Настройка за повторение"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитри (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Всички папки ще бъдат изтрити."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Център"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Голям"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Отляво"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Средно"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Отдясно"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Малък"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Името на файла вече се използва."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Затваряне"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Достигнат максимален брой знаци."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Стоп"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Изключено"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Презар."
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Позиция"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Изтрито."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Премахване от Лични"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Преместване в Лична"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Празен запис"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Формат"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Не може да се възпроизвежда видео по време на разговор."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Този файл е недостъпен офлайн. Проверете връзката с мрежата и опитайте отново."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Избраният елемент ще бъде преместен в %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Избраните елементи ще бъдат преместени в %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Премахване..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Преместване"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Преместването в персоналното място за съхранение е неуспешно."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Преместването в стандартното място за съхранение е неуспешно."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Съобщ-ие"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Папки"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Имейл"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Дата (най-нови)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d избрани"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Изтриване клипове"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Изтриване на видео"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Преместване"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Геогр. дължина"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Геогр. ширина"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "След като заснемете клипове с камерата, те ще се покажат."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Отказ"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Спри след всички"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Повтаряне на текущо"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Повторение на всички"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Разделителна способност"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Изтрий"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Изтриване на всички"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Само аудио данни, поддържани от този файл. В момента се възпроизвежда аудио."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Само видео данни, поддържани от този файл. В момента се възпроизвежда видео."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Преименуване"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Слушалки"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Няма информация"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Грешка."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Изтощена батерия."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Неуспешно свързване."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Файлът не съществува."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Можете да използвате %s още 1 път. Вземане на друг лиценз?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Аудио устройство"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Добавен."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Сканиране"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Не може да се добави."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "По подразбиране"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Изтегли"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Изключено"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Включено"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "Ще бъде изтрит 1 видеоклип."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Невалиден знак"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Няма резултати от търсенето"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Избор"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Последна промяна"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Готово"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Дата"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Геогр. ширина"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Име"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Име (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Видеоклипове"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Максималният брой на прикачени файлове (%d) е надвишен."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Избор на всичко"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Памет на устройството"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD карта"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Премести"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Включено"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Споделяне с"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Възникна мрежова грешка. Опитайте отново."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Авт. възпр. следващ"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Обработване..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Достигнат е максималният брой символи."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Да"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Не"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Изтриване"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Изтриване на всички"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Няма резултати"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Изберете елемент"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Изберете елементи"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Отказ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ГОТОВО"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ОТКАЗ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ИЗТРИВАНЕ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Място за съхранение"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Дата"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Избор на видео"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Грешка при свързване."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Изтеглен."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Синхронизирай"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Шрифт"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Няма"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Слушалки"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Можете да използвате %s още 1 път. Стартиране сега?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Можете да използвате %s още 2 пъти. Стартиране сега?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s в момента е заключено. Отключване?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Не можете да използвате %s повече. Вземане на друг лиценз?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s предстои да изтече. Вземане на друг лиценз?"
+
diff --git a/res/po/ca.po b/res/po/ca.po
new file mode 100755 (executable)
index 0000000..6279bd9
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Descarregar"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Es descarregarà 1 carpeta."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Es descarregarà 1 vídeo."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Es descarregaran totes les carpetes."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Es descarregaran tots els vídeos."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Es descarregaran %d carpetes."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Es descarregaran %d vídeos."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Dades mòbils desactivades. Connecti's a una xarxa Wi-Fi o activi les dades mòbils i torni-ho a intentar."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privat"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Ubicació"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Desconegut"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Acceptar"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 carpeta"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 vídeo"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Tot"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Des del dispositiu"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Des de Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Última modificació"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Contingut per mostrar"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Cercar"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Compartir"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "S'esborrarà 1 carpeta."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Esborrant..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Després de gravar vídeos amb la càmera, es mostraran aquí."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d vídeos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Vídeo"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "No hi ha vídeos"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalls"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Carpeta"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Llista"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Afegits fa poc"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Vist fa poc"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Canviar nom"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Mida"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Ordenar per"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Títol"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tipus"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Veure com a"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "S'esborraran tots els vídeos"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "S'esborraran %d carpetes"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "S'esborraran %d vídeos"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "S'esborrarà aquesta carpeta"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d carpetes"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ajustaments"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "No es pot reproduir el vídeo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alineació"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Mida font"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repetir ajustament"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítols"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "S'esborraran totes les carpetes"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centre"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Gran"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Esquerra"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Mitjana"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Dreta"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Petita"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "El nom de fitxer està en ús."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Tancar"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "S'ha assolit el nombre màxim de caràcters"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Aturar"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Acceptar"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Desactivat"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Actualitzar"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Ubicació"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Esborrat"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Esborrar de Privat"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Moure a Privat"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "L'entrada és buida"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "No es pot reproduir un vídeo durant una trucada"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Aquest fitxer no està disponible quan està desconnectat. Comprovi la connexió de xarxa i torni-ho a intentar."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "L'element seleccionat es mourà a %s"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Els elements seleccionats es mouran a %s"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Eliminant..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Movent..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Error en moure a l'emmagatzematge personal."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Error en moure a l'emmagatzematge normal."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Missatge"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Carpetes"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Correu elec"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Data (més recents)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d seleccionat"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Esborrar vídeos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Esborrar vídeo"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Moure"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitud"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Després de gravar vídeos amb la càmera, es mostraran els vídeos"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Cancel·lar"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Aturar després tot"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir tot"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolució"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Esborr"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Esborrar tot"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Aquest fitxer només admet dades d'àudio. Ara està reproduint àudio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Aquest fitxer només admet dades de vídeo. Ara està reproduint vídeo."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Canviar nom"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Auriculars"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Desconegut"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Error"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Bateria baixa"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Error de connexió"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Aquest fitxer no existeix"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Pot utilitzar %s 1 vegada més. Obtenir una altra llicència?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Dispositiu d’àudio"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Afegit"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Escanejar"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "No es pot afegir"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Predeterminat"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Descarregar"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Desactivat"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Activat"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "S'esborrarà 1 vídeo."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Caràcter no vàlids"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "No hi ha cap resultat de cerca"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Seleccionar"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Última modificació"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Fet"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nom"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nom (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Vídeos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "S'ha excedit el nombre màxim d'adjunts (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Seleccionar tot"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Emmagatzematge de dispositiu"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Targeta SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Moure"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Activat"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Compartir mitjançant"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "S'ha produït un error de xarxa. Torni a intentar-ho."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Rep. aut. següent"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Processant..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "S'ha assolit el nombre màxim de caràcters."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Sí"
+
+msgid "IDS_COM_SK_NO"
+msgstr "No"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Esborrar"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Esborrar tot"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "No hi ha resultats de cerca"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Seleccionar element"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Seleccionar elements"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "REALITZAT"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL·LAR"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ESBORRAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Ubicació d'emmagatzematge"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Data"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Seleccionar vídeo"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Error de connexió"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Descarregat"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sincronitzar"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Font"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Cap"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Auriculars"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Pot utilitzar %s 1 vegada més. Començar ara?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Pot utilitzar %s 2 vegades més. Començar ara?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s bloquejat actualment. Desbloquejar?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "No pot utilitzar %s cap vegada més. Obtenir una altra llicència?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s és a punt de caducar. Obtenir una altra llicència?"
+
diff --git a/res/po/cs.po b/res/po/cs.po
new file mode 100755 (executable)
index 0000000..a0943ca
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Stáhnout"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Bude stažena 1 složka."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Bude staženo 1 video."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Budou staženy všechny složky."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Budou stažena všechna videa."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Bude staženo %d složek."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Bude staženo %d videí."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobilní data jsou vypnutá. Připojte se k síti Wi-Fi nebo zapněte Mobilní data a opakujte akci."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Soukromé"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Místo"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Neznámé"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 složka"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Vše"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Ze zařízení"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Z Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Naposledy změněno"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Obsah k zobrazení"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Hledat"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Sdílet"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 složka bude odstraněna."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Odstraňování..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Až nahrajete videa pomocí fotoaparátu, zobrazí se zde."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videoklipů"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Žádná videa"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Podrobnosti"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Složka"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Seznam"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Posl. přidané"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Poslední zobrazené"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Přejmenovat"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Velikost"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Seřadit podle"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Název"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Typ"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Zobrazit jako"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Budou odstraněny všechny videoklipy."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Bude odstraněno %d složek."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Bude odstraněno %d videoklipů."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Složka bude odstraněna."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "Počet složek: %d"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Nastavení"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Video nelze přehrát"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Zarovnání"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Velikost písma"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Nastavení opakování"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titulky (skryté)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Budou odstraněny všechny složky."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Na střed"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Velké"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Doleva"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Střední"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Doprava"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Malé"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Název souboru je již použit."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Zavřít"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Bylo dosaženo maximálního počtu znaků."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stop"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Vypnuto"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Obnovit"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Místo"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Odstraněno."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Odebrat ze složky Soukromé"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Přesunout do složky Soukromé"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Prázdná položka."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formát"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Během hovoru nelze přehrát videoklip."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Soubor není v režimu offline dostupný. Zkontrolujte připojení k síti a opakujte akci."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Vybraná položka bude přesunuta do %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Vybrané položky budou přesunuty do %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Odebírání..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Probíhá přesouvání"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Nepodařilo se přesunout video do osobního úložiště."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Nepodařilo se přesunout video do normálního úložiště."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Zpráva"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Složky"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Datum (nejnovější)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "Vybráno: %d"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Odstranit videa"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Odstranit video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Přesunout"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Zeměpisná délka"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Zeměpisná šířka"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Až nahrajete videa pomocí fotoaparátu, videa se zobrazí."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Zruš."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Zast. po přeh. všech"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Opakovat aktuální"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Opakovat vše"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rozlišení"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Odstr."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Odstranit vše"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Tento soubor podporuje pouze zvuková data. Nyní se přehrává zvuk."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Tento soubor podporuje pouze obrazová data. Nyní se přehrává video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Přejmenovat"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Sluchátka"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Neznámé"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Chyba."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Vybitá baterie."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Připojení se nezdařilo."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Soubor neexistuje."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%s můžete použít již pouze jednou. Chcete získat další licenci?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Zvukové zařízení"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Přidáno."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Načíst"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Nelze přidat."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Výchozí"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Stáhnout"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Vypnuto"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Zapnuto"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video bude odstraněno."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Neplatný znak"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Žádné výsledky"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Vybrat"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Naposledy změněno"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Hot."
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Zeměpisná šířka"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Jméno"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Název (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videa"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Byl překročen maximální počet příloh (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Vybrat vše"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Paměť zařízení"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD karta"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Přesunout"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Zapnuto"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Sdílet přes"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Došlo k chybě sítě. Opakujte akci."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Automaticky další"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Probíhá zpracování..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Bylo dosaženo maximálního počtu znaků."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Ano"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ne"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Odstranit"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Odstranit vše"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Žádný výsledek hledání"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Vybrat položku"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Vyberte položky"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Storno"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "HOTOVO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ZRUŠIT"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ODSTRANIT"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Místo uložení"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Datum"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Vybrat videoklip"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Chyba připojení."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Staženo."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synchronizace"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Písmo"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Žádná"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Sluchátka"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%s můžete použít již pouze jednou. Spustit?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%s můžete použít ještě dvakrát. Spustit?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s je nyní zamknut. Odemknout?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "%s již nemůžete použít. Chcete získat další licenci?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s brzy vyprší. Chcete získat další licenci?"
+
diff --git a/res/po/da.po b/res/po/da.po
new file mode 100755 (executable)
index 0000000..18caa3f
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Der vil blive downloadet 1 mappe."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Der vil blive downloadet 1 video."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Alle mapper vil blive downloadet."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Alle videoer vil blive downloadet."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Der vil blive downloadet %d mapper."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Der vil blive downloadet %d videoer."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobile data er slået fra. Opret forbindelse til et Wi-Fi-netværk i stedet, eller slå Mobile data til, og prøv igen."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privat"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Placering"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Ukendt"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 mappe"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Alle"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Fra enhed"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Fra Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Sidst ændret"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Indhold, du vil vise"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Søg"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Del"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Der vil blive slettet 1 mappe."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Sletter ..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Når du har optaget videoer ved hjælp af kameraet, vil de blive vist her."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videoer"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Videoklip"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Ingen videoer"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detaljer"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Mappe"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Liste"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Nyligt tilføjet"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Senest set"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Omdøb"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Størrelse"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sortér efter"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titel"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Type"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Se som"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Alle videoer vil blive slettet."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d mapper bliver slettet."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videoer vil blive slettet."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Denne mappe vil blive slettet."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d mapper"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Indstillinger"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Kan ej afspille video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Justering"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Skriftstørrelse"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Gentag indstilling"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Undertekster (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Alle mapper bliver slettet."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centrer"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Stor"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Venstre"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Mellem"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Højre"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Lille"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Filnavn allerede i brug."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Luk"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Det maksimale antal tegn er nået."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stop"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Fra"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Opdater"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Placering"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Slettet."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Fjern fra Privat"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Flyt til Privat"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Posten er tom."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Kan ikke afspille videoen under samtale."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Denne fil er ikke tilgængelig, mens du er offline. Kontrollér netværksforbindelsen, og prøv igen."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Det valgte element vil blive flyttet til %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "De valgte elementer vil blive flyttet til %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Fjerner..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Flytter ..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Kunne ikke flytte til personligt lager."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Kunne ikke flytte til normalt lager."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Besked"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Mapper"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Dato (nyeste)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d valgt"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Slet videoer"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Slet videoklip"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Flyt"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Længdegrad"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Breddegrad"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Når du har optaget videoer ved hjælp af kameraet, vises videoerne."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Afbr."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop efter alle"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Gentag aktuel"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Gentag alle"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Opløsning"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Slet"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Slet alle"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Kun lyddata understøttes af denne fil. Spiller lyd nu."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Kun videodata understøttes af denne fil. Spiller video nu."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Omdøb"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Høretelefoner"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Ukendt"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Fejl."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Lavt batteriniveau."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Forbindelsen\nmislykkedes."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Fil findes ikke."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Du kan bruge %s én gang til. Få en anden licens?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Lydenhed"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Tilføjet."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Scanning"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Der kan ikke tilføjes."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Standard"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Fra"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Til"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video bliver slettet."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Ugyldigt tegn"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Ingen søgeresultater"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Vælg"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Sidst ændret"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Udført"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dato"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Breddegrad"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Navn"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Navn (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Det maksimale antal vedhæftede filer (%d) er overskredet."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Vælg alle"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Enhedslager"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-kort"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Flyt"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Til"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Del via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Der opstod en netværksfejl. Prøv igen."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Autospil næste"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Behandler ..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Det maksimale antal tegn er nået."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Ja"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nej"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Slet"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Slet alle"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Intet søgeresultat"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Vælg element"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Vælg elementer"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Annullér"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "UDFØRT"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULLER"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "SLET"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Lagerplacering"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Dato"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Vælg video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Forbindelsesfejl."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Downloadet."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synkroniser"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Skrifttype"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Ingen"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Høretelefoner"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Du kan bruge %s én gang til. Start nu?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Du kan bruge %s 2 gange til. Start nu?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s er i øjeblikket låst. Lås op?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Du kan ikke bruge %s flere gange. Få en anden licens?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s er ved at udløbe. Få en anden licens?"
+
diff --git a/res/po/de.po b/res/po/de.po
new file mode 100755 (executable)
index 0000000..79c727c
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 Ordner wird heruntergeladen."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 Video wird heruntergeladen."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Alle Ordner werden heruntergeladen."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Alle Videos werden heruntergeladen."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d Ordner werden heruntergeladen."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d Videos werden heruntergeladen."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobile Daten sind deaktiviert. Stellen Sie stattdessen eine Verbindung mit einem WLAN her oder aktivieren Sie mobile Daten und versuchen Sie es erneut."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privat"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Standort"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Unbekannt"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 Ordner"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 Video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Alle"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Vom Gerät"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Aus Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Letzte Änderung"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Anzuzeigender Inhalt"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Suche"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Senden"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 Ordner wird gelöscht."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Wird gelöscht..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nach dem Aufnehmen von Videos mit der Kamera werden diese Videos hier angezeigt."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d Videos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Keine Videos"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Ordner"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Liste"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Zul. hinzug."
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Kürzlich angesehen"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Umbenennen"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Größe"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sortieren nach"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titel"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Typ"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Ansicht"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Alle Videos werden gelöscht."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d Ordner werden gelöscht."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d Videos werden gelöscht."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Dieser Ordner wird gelöscht."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d Ordner"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Einstellungen"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videowiedergabe nicht möglich."
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Ausrichtung"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Schriftgröße"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Einstellung wiederholen"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Untertitel (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Alle Ordner werden gelöscht."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Mitte"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Groß"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Links"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Mittel"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Rechts"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Klein"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Dateiname wird bereits verwendet."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Schließen"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximal zulässige Zeichenanzahl erreicht."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stopp"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Deaktiviert"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Aktualisieren"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Standort"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Gelöscht"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Aus Privat entfernen"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Nach Privat verschieben"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Eintrag ist leer"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Video kann während eines Anrufs nicht wiedergegeben werden"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Die Datei ist offline nicht verfügbar. Überprüfen Sie die Netzwerkverbindung, und versuchen Sie es erneut."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Das ausgewählte Element wird zu %s verschoben."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Die ausgewählten Elemente werden zu %s verschoben."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Entferne..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Verschiebevorgang aktiv..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Verschieben in den persönlichen Speicher nicht möglich."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Verschieben in den normalen Speicher nicht möglich."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Nachr."
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Ordner"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-Mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Datum (neueste)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d ausgewählt"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Löschen von Videos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Video löschen"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Verschieben"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Länge"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Breite"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Nach dem Aufnehmen von Videos mit der Kamera werden die Videos angezeigt."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Abbr."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Nach allen anh."
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Aktuelles wiederh."
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Alle wiederholen"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Auflösung"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Lösch."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Alle löschen"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Für diese Datei werden nur Audiodaten unterstützt. Audio wird jetzt wiedergegeben."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Für diese Datei werden nur Videodaten unterstützt. Video wird jetzt wiedergegeben."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Umbenennen"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Kopfhörer"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Unbekannt"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Fehler"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Akku fast leer"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Verbindung fehlgeschlagen"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Datei nicht vorhanden"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Sie können %s noch 1 Mal verwenden. Neue Lizenz erwerben?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audiogerät"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Hinzugefügt"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Suchen"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Hinzufügen nicht möglich"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Standard"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Herunterladen"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Aus"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Ein"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 Video wird gelöscht."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Ungültiges Zeichen"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Keine Suchergebnisse"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Auswählen"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Zuletzt geändert"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Fertig"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Breite"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Name"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Name (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Maximale Anzahl von Anhängen (%d) überschritten."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Alle auswählen"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Gerätespeicher"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-Karte"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Verschieben"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Ein"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Senden via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ein Netzwerkfehler ist aufgetreten. Versuchen Sie es erneut."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Automatisch nächste Datei"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Verarbeitung läuft ..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximale Anzahl von Zeichen erreicht."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Ja"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nein"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Löschen"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Alle löschen"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Kein Suchergebnis"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Element auswählen"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Elemente auswählen"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Abbruch"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "FERTIG"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ABBRECHEN"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "LÖSCHEN"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Speicherort"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Datum"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Wählen Sie ein Video aus"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Verbindungsfehler"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Heruntergeladen"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synchronisieren"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Schriftart"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Ohne"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Kopfhörer"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Sie können %s noch 1 Mal verwenden. Jetzt starten?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Sie können %s noch 2 Mal verwenden. Jetzt starten?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s derzeit gesperrt. Entsperren?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Sie können %s nicht mehr verwenden. Neue Lizenz erwerben?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s läuft demnächst ab. Neue Lizenz erwerben?"
+
diff --git a/res/po/el_GR.po b/res/po/el_GR.po
new file mode 100755 (executable)
index 0000000..5327fbf
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Λήψη"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Θα γίνει λήψη 1 φακέλου."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Θα γίνει λήψη 1 βίντεο."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Θα γίνει λήψη όλων των φακέλων."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Θα γίνει λήψη όλων των βίντεο."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Θα γίνει λήψη %d φακέλων."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Θα γίνει λήψη %d βίντεο."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Τα δεδομένα κινητής τηλεφωνίας απενεργοποιήθηκαν. Συνδεθείτε σε ένα δίκτυο Wi-Fi ή ενεργοποιήστε τα δεδομένα κινητής τηλεφωνίας και δοκιμάστε ξανά."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Προσωπικό"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Τοποθεσία"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Άγνωστο"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 φάκελος"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 βίντεο"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Όλα"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Από τη συσκευή"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Από το Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Τελευταία τροποποίηση"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Περιεχόμενο για εμφάνιση"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Αναζήτηση"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Κοινή χρήση"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 φάκελος θα διαγραφεί."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Διαγραφή..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Αφού τραβήξετε βίντεο με την κάμερα, τα βίντεο θα εμφανιστούν εδώ."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d βίντεο"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Βίντεο"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Δεν υπάρχουν βίντεο"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Λεπτομέρειες"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Φάκελος"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Λίστα"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Πρόσφ. προσθ."
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Προβλήθηκαν πρόσφατα"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Μετονομασία"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Μέγεθος"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Ταξινόμηση κατά"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Τίτλος"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Είδος"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Προβολή ως"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Θα διαγραφούν όλα τα βίντεο."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Θα διαγραφούν %d φάκελοι."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Θα διαγραφούν %d βίντεο."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Ο φάκελος θα διαγραφεί."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d φάκελοι"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ρυθμίσεις"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Αδύν. η αναπαρ. του βίντεο"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Στοίχιση"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Μέγ. γραμματοσειράς"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Επανάληψη ρύθμισης"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Υπότιτλοι (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Θα διαγραφούν όλοι οι φάκελοι."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Σεντρ"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Μεγάλο"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Αριστερό"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Μεσαίο"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Δεξιά"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Μικρό"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Το όνομα αρχείου χρησιμοποιείται ήδη."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Κλείσιμο"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Ο μέγιστος αριθμός χαρακτήρων συμπληρώθηκε."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Διακοπή"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Ανενεργό"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Ανανέωση"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Τοποθεσία"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Διαγράφηκε."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Κατάργηση από το φάκελο «Απόρρητο»"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Μετακίνηση στο φάκελο «Ιδιωτικό»"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Κενή καταχώρηση."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Μορφή"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Δεν είναι δυνατή η αναπαραγωγή βίντεο κατά την κλήση."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Το αρχείο δεν είναι διαθέσιμο εκτός σύνδεσης. Ελέγξτε τη σύνδεση δικτύου σας και δοκιμάστε ξανά."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Το επιλεγμένο στοιχείο θα μετακινηθεί στο %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Τα επιλεγμένα στοιχεία θα μετακινηθούν στο %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Αφαίρεση..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Μετακίνηση..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Απέτυχε η μετακίνηση στον προσωπικό χώρο αποθήκευσης."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Απέτυχε η μετακίνηση στον κανονικό χώρο αποθήκευσης."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Μήνυμα"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Φάκελοι"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Ημερ. (πιο πρόσφ.)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d επιλέχθηκαν"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Διαγραφή βίντεο"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Διαγραφή βίντεο"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Μετακίνηση"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Γεωγραφικό μήκος"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Γεωγραφικό πλάτος"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Τα στοιχεία θα εμφανιστούν, μετά την εγγραφή βίντεο μέσω της κάμερας."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Άκυρο"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Όλα και μετά διακοπή"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Επανάληψη τρέχοντος"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Επανάληψη όλων"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Ανάλυση"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Διαγρ."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Διαγραφή όλων"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Υποστηρίζονται μόνο δεδομένα ήχου από αυτό το αρχείο. Γίνεται αναπαραγωγή του ήχου."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Υποστηρίζονται μόνο δεδομένα βίντεο από αυτό το αρχείο. Γίνεται αναπαραγωγή του βίντεο."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Μετονομασία"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Ακουστικά"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Άγνωστο"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Σφάλμα."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Χαμηλή μπαταρία."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Αποτυχία σύνδεσης. Επανάληψη;"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Δεν υπάρχει αρχείο."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Μπορείτε να χρησιμοποιήσετε το %s 1 φορά ακόμα. Λήψη νέας άδειας;"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Συσκευή ήχου"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Προστέθηκε."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Σάρωση"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Δεν είναι δυνατή η προσθήκη."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Προεπιλογή"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Λήψη"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Ανενεργό"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Ενεργό"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 βίντεο θα διαγραφεί."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Μη έγκυρος χαρακτήρας"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Δεν υπάρχουν αποτελέσματα αναζήτησης"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Επιλογή"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Τελευταία τροποποίηση"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Τέλος"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Ημερομηνία"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Γεωγραφικό πλάτος"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Όνομα"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Όνομα (Α-Ω)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Βίντεο"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Έγινε υπέρβαση του μέγιστου αριθμού συνημμένων (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Επιλογή όλων"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Χώρος αποθήκευσης συσκευής"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Κάρτα SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Μετακίνηση"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Ενεργό"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Κοινή χρήση μέσω"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Προέκυψε σφάλμα δικτύου. Δοκιμάστε ξανά."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Αυτ. αναπ. επόμ."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Επεξεργασία..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Συμπληρώθηκε ο μέγιστος αριθμός χαρακτήρων."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Ναι"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Όχι"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Διαγραφή"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Διαγραφή όλων"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Δεν υπ. απ. αναζ."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Επιλογή στοιχείου"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Επιλογή στοιχείων"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Ακύρωση"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ΤΕΛΟΣ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ΑΚΥΡΟ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ΔΙΑΓΡΑΦΗ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Θέση αποθήκευσης"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Ημερομηνία"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Επιλογή βίντεο"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Σφάλμα σύνδεσης."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Η λήψη ολοκληρώθηκε."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Συγχρονισμός"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Γραμματοσειρά"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Κανένα"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Ακουστικά"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Μπορείτε να χρησιμοποιήσετε το %s 1 φορά ακόμα. Έναρξη τώρα;"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Μπορείτε να χρησιμοποιήσετε το %s 2 φορές ακόμα. Έναρξη τώρα;"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "Το %s έχει προσωρινά ξεκλειδωθεί. Ξεκλείδωμα;"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Δεν μπορείτε να χρησιμοποιήσετε το %s άλλη φορά. Λήψη νέας άδειας;"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "Το %s κοντεύει να λήξει. Λήψη νέας άδειας;"
+
diff --git a/res/po/en.po b/res/po/en.po
new file mode 100755 (executable)
index 0000000..b5e3a6a
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 folder will be downloaded."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video will be downloaded."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "All folders will be downloaded."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "All videos will be downloaded."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d folders will be downloaded."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d videos will be downloaded."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobile data turned off. Connect to Wi-Fi network instead, or turn on Mobile data and try again."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Private"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 folder"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "All"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "From device"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "From Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Last modified"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Content to display"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Search"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Share"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 folder will be deleted."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Deleting..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you record videos using the camera, they will be shown here."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "No videos"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Folder"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "List"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Recently added"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Recently viewed"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Rename"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Size"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sort by"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Title"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Type"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "View as"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "All videos will be deleted."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d folders will be deleted."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videos will be deleted."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "This folder will be deleted."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d folders"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Unable to play video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alignment"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Font size"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repeat setting"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "All folders will be deleted."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centre"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Large"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Left"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medium"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Right"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Small"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "File name already in use."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Close"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximum number of characters reached."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stop"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Refresh"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Deleted."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Remove from Private"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Move to Private"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Entry is empty."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Unable to play video during call."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "This file is unavailable while offline. Check network connection and try again."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "The selected item will be moved to %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "The selected items will be moved to %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Removing..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Moving..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Failed to move to personal storage."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Failed to move to normal storage."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Message"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Folders"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Date (most recent)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d selected"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Delete videos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Delete video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Move"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "After you record videos using the camera, videos will be shown."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Cancel"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop after all"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repeat current"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repeat all"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolution"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Delete"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Delete all"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Only audio data supported by this file. Now playing audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Only video data supported by this file. Now playing video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Rename"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Headphones"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Error."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Low battery."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Connection failed."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "This file does not exist."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "You can use %s 1 more time. Get another licence?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audio device"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Added."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Scan"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Unable to add."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Default"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "On"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video will be deleted."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Invalid character"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "No search results"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Select"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Last modified"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Done"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Date"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Name"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Name (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Maximum number of attachments (%d) exceeded."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Select all"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Device storage"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD card"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Move"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "On"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Share via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "A network error has occurred. Try again."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Auto play next"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Processing..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximum number of characters reached."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Yes"
+
+msgid "IDS_COM_SK_NO"
+msgstr "No"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Delete all"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "No search result"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Select item"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Select items"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "DONE"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "DELETE"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Storage location"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Date"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Select video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Connection error."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Downloaded."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synchronise"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Font"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "None"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Headphones"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "You can use %s 1 more time. Start now?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "You can use %s 2 more times. Start now?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s currently locked. Unlock?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "You cannot use %s any more times. Get another licence?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s is about to expire. Get another licence?"
+
diff --git a/res/po/en_PH.po b/res/po/en_PH.po
new file mode 100755 (executable)
index 0000000..394e810
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 folder will be downloaded."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video will be downloaded."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "All folders will be downloaded."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "All videos will be downloaded."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d folders will be downloaded."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d videos will be downloaded."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobile data turned off. Connect to Wi-Fi network instead, or turn on Mobile data and try again."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Private"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 folder"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "All"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "From device"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "From Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Last modified"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Content to display"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Search"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Share"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 folder will be deleted."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Deleting..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you record videos using the camera, they will be shown here."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "No videos"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Folder"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "List"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Recently added"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Recently viewed"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Rename"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Size"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sort by"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Title"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Type"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "View as"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "All videos will be deleted."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d folders will be deleted."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videos will be deleted."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "This folder will be deleted."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d folders"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Unable to play video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alignment"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Font size"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repeat setting"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "All folders will be deleted."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Center"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Large"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Left"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medium"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Right"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Small"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "File name already in use."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Close"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximum number of characters reached."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stop"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Refresh"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Deleted."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Remove from Private"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Move to Private"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Entry is empty."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Unable to play video during call."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "This file is unavailable while offline. Check network connection and try again."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "The selected item will be moved to %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "The selected items will be moved to %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Removing..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Moving..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Failed to move to personal storage."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Failed to move to normal storage."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Message"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Folders"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Date (most recent)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d selected"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Delete videos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Delete video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Move"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "After you record videos using the camera, videos will be shown."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Cancel"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop after all"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repeat current"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repeat all"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolution"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Delete"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Delete all"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Only audio data supported by this file. Now playing audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Only video data supported by this file. Now playing video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Rename"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Headphones"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Error."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Low battery."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Connection failed."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "This file does not exist."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "You can use %s 1 more time. Get another license?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audio device"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Added."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Scan"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Unable to add."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Default"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "On"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video will be deleted."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Invalid character"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "No search results"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Select"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Last modified"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Done"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Date"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Name"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Name (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Maximum number of attachments (%d) exceeded."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Select all"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Device storage"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD card"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Move"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "On"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Share via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "A network error has occurred. Try again."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Auto play next"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Processing..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximum number of characters reached."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Yes"
+
+msgid "IDS_COM_SK_NO"
+msgstr "No"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Delete all"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "No search result"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Select item"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Select items"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "DONE"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "DELETE"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Storage location"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Date"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Select video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Connection Error."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Downloaded."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synchronize"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Font"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "None"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Headphones"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "You can use %s 1 more time. Start now?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "You can use %s 2 more times. Start now?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s currently locked. Unlock?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "You cannot use %s any more times. Get another license?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s is about to expire. Get another license?"
+
diff --git a/res/po/en_US.po b/res/po/en_US.po
new file mode 100755 (executable)
index 0000000..0c28bad
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 folder will be downloaded."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video will be downloaded."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "All folders will be downloaded."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "All videos will be downloaded."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d folders will be downloaded."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d videos will be downloaded."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobile data off. Connect to Wi-Fi network instead, or turn on Mobile data and try again."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Private"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 folder"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "All"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "From device"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "From Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Last modified"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Content to show"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Search"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Share"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 folder will be deleted."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Deleting..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you record videos using the camera, they will be shown here."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "No videos"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Folder"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "List"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Recently added"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Recently viewed"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Rename"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Size"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sort by"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Title"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Type"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "View as"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "All videos will be deleted."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d folders will be deleted."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videos will be deleted."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "This folder will be deleted."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d folders"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Unable to play video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alignment"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Font size"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repeat setting"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "All folders will be deleted."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Center"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Large"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Left"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medium"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Right"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Small"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "File name already in use."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Close"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximum number of characters reached."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stop"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Refresh"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Deleted."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Remove from Private"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Move to Private"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Entry is empty."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Unable to play video during call."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "This file is unavailable while offline. Check network connection and try again."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "The selected item will be moved to %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "The selected items will be moved to %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Removing..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Moving..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Failed to move to personal storage."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Failed to move to normal storage."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Message"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Folders"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Date (most recent)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d selected"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Delete videos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Delete video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Move"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "After you record videos using the camera, videos will be shown."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Cancel"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop after all"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repeat current"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repeat all"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolution"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Delete"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Delete all"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Only audio data supported by this file. Now playing audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Only video data supported by this file. Now playing video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Rename"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Headphones"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Error"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Low battery."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Connection failed."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "This file does not exist."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "You can use %s 1 more time. Get another license?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audio device"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Added."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Scan"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Unable to add."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Default"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "On"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video will be deleted."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Invalid character"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "No search results"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Select"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Last modified"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Done"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Date"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Name"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Name (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Maximum number of attachments (%d) exceeded."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Select all"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Device storage"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD card"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Move"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "On"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Share via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "A network error has occurred. Try again."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Auto play next"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Processing..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximum number of characters reached."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Yes"
+
+msgid "IDS_COM_SK_NO"
+msgstr "No"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Delete all"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "No search result"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Select item"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Select items"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "DONE"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "DELETE"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Storage location"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Date"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Select video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Connection error."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Downloaded."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synchronize"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Font"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "None"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Headphones"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "You can use %s 1 more time. Start now?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "You can use %s 2 more times. Start now?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s currently locked. Unlock?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "You cannot use %s any more times. Get another license?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s is about to expire. Get another license?"
+
diff --git a/res/po/es_ES.po b/res/po/es_ES.po
new file mode 100755 (executable)
index 0000000..caab9a0
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Descargar"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Se descargará 1 carpeta."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Se descargará 1 vídeo."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Se descargarán todas las carpetas."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Se descargarán todos los vídeos."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Se descargarán %d carpetas."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Se descargarán %d vídeos."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Los datos móviles están desactivados. En su lugar, conéctese a una red Wi-Fi o active los datos móviles y vuelva a intentarlo."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privado"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Ubicación"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Desconocido"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Aceptar"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 carpeta"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 vídeo"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Todo"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Desde el dispositivo"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Desde Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Modificado por última vez"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Contenido para mostrar"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Buscar"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Compartir"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Se eliminará 1 carpeta."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Eliminando..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Después de grabar vídeos con la cámara, se mostrarán aquí."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d vídeos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Vídeo"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Sin vídeos"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalles"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Carpeta"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Lista"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Añad recient"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Vistos recientemente"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Renombrar"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Tamaño"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Ordenar por"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Título"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tipo"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Ver como"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Se eliminarán todos los vídeos"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Se eliminarán %d carpetas"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Se eliminarán %d vídeos"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Esta carpeta se eliminará"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d carpetas"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ajustes"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "No se puede reproducir vídeo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alineación"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tamaño de fuente"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repetir ajuste"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Se eliminarán todas las carpetas"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centro"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Izquierda"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medio"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Derecha"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pequeño"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "El nombre de archivo ya está en uso."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Cerrar"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Alcanzado el número máximo de caracteres"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Parar"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Aceptar"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Desactivar"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Actualizar"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Ubicación"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Eliminado"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Eliminar de Privado"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Mover a Privado"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Entrada vacía"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formato"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "No se puede reproducir vídeo durante la llamada"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Este archivo no está disponible cuando está fuera de línea. Compruebe su conexión de red y vuélvalo a intentar."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "El elemento seleccionado se moverá a %s"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Los elementos seleccionados se moverán a %s"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Eliminando..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Moviendo..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Error al mover al almacenamiento personal."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Error al mover al almacenamiento normal."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mensaje"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Carpetas"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Correo elect"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Fecha (reciente)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d seleccionado(s)"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Eliminar vídeos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Eliminar vídeo"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Mover"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitud"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Después de grabar vídeos con la cámara, se mostrarán los vídeos"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Detener después todo"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir todo"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolución"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Elim."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Eliminar todo"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Este archivo solo admite datos de audio. Ahora se reproduce audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Este archivo solo admite datos de vídeo. Ahora se reproduce vídeo."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Cambiar nombre"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Auriculares"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Desconocido"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Error"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Batería baja"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Error de conexión"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "El archivo no existe"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Puede usar %s 1 vez más. ¿Obtener otra licencia?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Dispositivo de audio"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Añadido"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Buscar"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "No se puede añadir"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Predeterminado"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Descargar"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Desactivado"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Activado"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "Se eliminará 1 vídeo."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Carácter no válido"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "No se han encontrado resultados"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Seleccionar"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Última modificación"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Hecho"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Fecha"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nombre"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nombre (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Vídeos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Se ha superado el número máximo de adjuntos (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Seleccionar todo"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Almacenamiento del dispositivo"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Tarjeta SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Mover"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Activado"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Compartir"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Se ha producido un error de red. Vuelva a intentarlo."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Reproducción continua"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Procesando..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Número máximo de caracteres alcanzado."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Sí"
+
+msgid "IDS_COM_SK_NO"
+msgstr "No"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Eliminar todo"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Sin resultados"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Seleccionar elemento"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Seleccionar elementos"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "HECHO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ELIMINAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Ubicación almacenamiento"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Fecha"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Seleccionar vídeo"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Error de conexión"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Descargado"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sincronizar"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Fuente"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "No"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Auriculares"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Puede usar %s 1 vez más. ¿Iniciar ahora?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Puede usar %s 2 veces más. ¿Iniciar ahora?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s está bloqueado actualmente. ¿Desbloquear?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "No puede usar %s más veces. ¿Obtener otra licencia?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s está a punto de caducar. ¿Obtener otra licencia?"
+
diff --git a/res/po/es_US.po b/res/po/es_US.po
new file mode 100755 (executable)
index 0000000..1daca19
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Descargar"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Se descargará 1 carpeta."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Se descargará 1 video."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Se descargarán todas las carpetas."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Se descargarán todos los videos."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Se descargarán %d carpetas."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Se descargarán %d videos."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Los datos móviles están desactivados. Conéctese a una red Wi-Fi o active Datos móviles e inténtelo de nuevo."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privado"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Ubicación"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Desconocido"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Aceptar"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 carpeta"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Todo"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Desde el dispositivo"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Desde Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Modificado por última vez"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Contenido para mostrar"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Buscar"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Compartir"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Se eliminará 1 carpeta."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Eliminando..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Después de  grabar videos con la cámara, los videos se mostrarán aquí."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Sin videos"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalles"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Carpeta"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Lista"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Añadido reciente"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Visto recientemente"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Renombrar"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Tamaño"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Ordenar por"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Título"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tipo"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Ver como"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Se eliminarán todos los videos."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Se eliminarán %d carpetas."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Se eliminarán %d videos."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Esta carpeta se eliminará."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d carpetas"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ajustes"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "No se puede reproducir video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alineación"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tamaño de fuente"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repetir configuración"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Se eliminarán todas las carpetas."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Central"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Izquierda"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medio"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Derecha"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pequeño"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Nombre de archivo ya existe."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Cerrar"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Se ha alcanzado el número máximo de caracteres."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Detener"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Aceptar"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Desactivado"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Actualizar"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Ubicación"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Eliminado."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Eliminar de Privado"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Mover a Privado"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Entrada vacía."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formato"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "No es posible reproducir video durante la llamada."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Este archivo no está disponible sin conexión. Verifique su conexión de red e inténtelo de nuevo."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "El elemento seleccionado se moverá a %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Los elementos seleccionados se moverán a %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Eliminando..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Moviendo…"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Error al mover al almacenamiento personal."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Error al mover al almacenamiento normal."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mensaje"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Carpetas"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Correo"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Fecha (reciente)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d seleccionado(s)"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Eliminar videos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Eliminar video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Mover"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitud"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Se mostrarán los videos después de ser grabados con Cámara."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Detener desp. todo"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir todo"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolución"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Eliminar todo"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Este archivo sólo admite datos de audio. Ahora se reproduce audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Este archivo sólo admite datos de video. Ahora se reproduce video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Renombrar"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Auricular"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Desconocido"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Error."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Batería baja."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Error de conexión."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "El archivo no existe."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Puedes usar %s 1 vez más. ¿Deseas obtener otra licencia?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Dispositivo de audio"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Añadido."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Buscar"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "No es posible añadir."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Predeterminado"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Descargar"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Desactivado"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Activado"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "Se eliminará 1 video."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Carácter no válido"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "No se han encontrado resultados"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Seleccionar"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Modificado por última vez"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Aceptar"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Fecha"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nombre"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nombre (A a Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Se excedió el número máximo de archivos adjuntos (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Todo"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Almacenamiento del dispositivo"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Tarjeta de memoria"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Mover"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Activado"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Compartir vía"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Se produjo un error de red. Inténtelo de nuevo."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Reproducción continua"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Procesando..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Se alcanzó el número máximo de caracteres."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Sí"
+
+msgid "IDS_COM_SK_NO"
+msgstr "No"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Eliminar todo"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Sin resultados"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Seleccionar elemento"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Seleccionar archivos"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "REALIZADO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ELIMINAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Ubicación de almacenam."
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Fecha"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Seleccionar video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Directo"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Error de conexión."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Descargado."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sincronizar"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Fuente"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Ninguno"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Auricular"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Puedes usar %s 1 vez más. ¿Iniciar ahora?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Puedes usar %s 2 veces más. ¿Iniciar ahora?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s bloqueado actualmente. ¿Desbloquear?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Ya no puedes usar %s. ¿Deseas obtener otra licencia?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s está por caducar. ¿Deseas obtener otra licencia?"
+
diff --git a/res/po/et.po b/res/po/et.po
new file mode 100755 (executable)
index 0000000..5d48e95
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Laadi alla"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 kaust laaditakse alla."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video laaditakse alla."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Kõik kaustad laaditakse alla."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Kõik videod laaditakse alla."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d kausta laaditakse alla."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d videot laaditakse alla."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobiilne andmeside on välja lülitatud. Looge selle asemel ühendus Wi-Fi võrguga või lülitage mobiilne andmeside sisse ja proovige uuesti."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privaatne"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Asukoht"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Tundmatu"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 kaust"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Kõik"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Seadmest"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropboxist"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Viimati muudetud"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Sisu, mida kuvada"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Otsi"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Jaga"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 kaust kustutatakse."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Kustutamine..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Videod kuvatakse pärast nende salvestamist kaameraga."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videot"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Videoid pole"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Üksikasjad"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Kaust"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Loend"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Hiljuti lisatud"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Hiljuti vaadatud"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Nimeta ümber"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Suurus"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sortimisalus"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Pealkiri"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tüüp"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Kuva:"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Koik videod kustutatakse."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d kausta kustutatakse."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videot kustutatakse."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "See kaust kustutatakse."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d kaustad"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Seaded"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videot ei saa esitada"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Joondamine"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Fondi suurus"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Korduse seadistus"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtiitrid (peittiitrid)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Koik kaustad kustutatakse."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Keskel"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Suur"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Vasakul"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Keskmine"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Paremal"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Väike"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Failinimi on juba kasutusel"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Sulge"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Lubatud arv märke on täis."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Lõpeta"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Väljas"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Värskenda"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Asukoht"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Kustutatud."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Eemalda kaustast Privaatne"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Teisalda kausta Privaatne"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Kirje on tuhi."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Vorminda"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Kõne ajal ei saa videot esitada."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "See fail pole võrguühenduseta olekus saadaval. Kontrollige võrguühendust ja proovige uuesti."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Valitud uksus teisaldatakse asukohta %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Valitud uksused teisaldatakse asukohta %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Eemaldamine..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Teisaldamine..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Isiklikku mällu teisaldamine nurjus."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Tavamällu teisaldamine nurjus."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Sõnum"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Kaustad"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-kiri"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Kuupäev (hilis)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d valitud"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Kustuta videod"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Kustuta video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Teisalda"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Pikkuskraad"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Laiuskraad"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Videod kuvatakse parast nende salvestamist kaameraga."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Tühis."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Lõpeta pärast kõiki"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Korda praegust"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Korda kõik"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Eraldusvõime"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Kust."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Kustuta kõik"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "See fail toetab ainult heliandmeid. Nüüd esitatakse heli."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "See fail toetab ainult videoandmeid. Nüüd esitatakse videot."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Nimeta ümber"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Kõrvaklapid"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Tundmatu"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Tõrge"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Aku on peaaegu tühi."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Ühendamine nurjus."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Seda faili pole olemas."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Te saate kasutada %s veel 1 korra. Kas hankida teine litsents?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Heliseade"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Lisatud."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Otsi"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Ei saa lisada."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Vaikimisi"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Laadi alla"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Väljas"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Sees"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video kustutatakse."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Lubamatu tähemärk"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Otsingutulemeid pole"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Vali"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Viimati muudetud"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Valmis"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Kuupäev"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Laiuskraad"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nimi"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nimi (A‒Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videod"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Manuste maksimaalne arv (%d) on ületatud."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Vali kõik"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Seadme mälu"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-kaart"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Teisalda"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Sees"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Jaga:"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ilmnes võrgutõrge. Proovige uuesti."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Esita järgm. auto."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Töötlemine..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Tähemärkide maksimaalne arv on saavutatud."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Jah"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ei"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Kustuta"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Kustuta kõik"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Otsing ei andnud"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Vali üksus"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Vali üksusi"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Tühista"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "VALMIS"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "TÜHISTA"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "KUSTUTA"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Salvestamise asukoht"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Kuupäev"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Valige video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Ühenduse tõrge."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Alla laetud."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sünkrooni"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Font"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Puudub"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Kõrvaklapid"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Te saate kasutada %s veel 1 korra. Kas alustada kohe?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Te saate kasutada %s veel 2 korda. Kas alustada kohe?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s praegu lukustatud. Kas avada?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Te ei saa kasutada %s enam ühtegi korda. Kas hankida teine litsents?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s aegub peagi. Kas hankida teine litsents?"
+
diff --git a/res/po/eu.po b/res/po/eu.po
new file mode 100755 (executable)
index 0000000..df258ca
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Deskargatu"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Karpeta 1 deskargatuko da."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Bideo 1 deskargatuko da."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Karpeta guztiak deskargatuko dira."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Bideo guztiak deskargatuko dira."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d karpeta deskargatuko dira."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d bideo deskargatuko dira."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Datu mugikorrak itzalita. Konektatu Wi-Fi sare batera edo piztu datu mugikorrak eta saiatu berriz."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Pribatua"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Kokalekua"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Ezezaguna"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Ados"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "Karpeta 1"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "Bideo 1"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Guztiak"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Gailutik"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropbox-etik"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Azken aldaketa"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Erakusteko edukia"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Bilatu"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Partekatu"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Karpeta 1 ezabatuko da."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Ezabatzen..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kamera erabiliz bideoak grabatu ondoren, hemen erakutsiko dira."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d bideo"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Bideoa"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Ez dago bideorik"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Xehetasunak"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Karpeta"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Zerrenda"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Berriki gehituak"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Berriki ikusitakoak"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Berrizendatu"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Tamaina"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sailkatu honela"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Izenburua"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Mota"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Ikusi honela"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Bideo guztiak ezabatuko dira"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d karpeta ezabatuko dira"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d bideo ezabatuko dira"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Karpeta hau ezabatuko da"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d karpeta"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ezarpenak"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Ezin da bideoa erreproduzitu"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Lerrokatzea"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Letraren neurria"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Errepikatu ezarpena"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Azpitituluak (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Karpeta guztiak ezabatuko dira"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Erdikoa"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Handia"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Ezkerra"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Ertaina"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Eskuinekoa"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Txikia"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Fitxategi izena aurretik erabiltzen ari zara."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Itxi"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Gehienezko karaktere kopurura heldu zara."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Gelditu"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Ados"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Desaktibatuta"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Eguneratu"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Kokalekua"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Ezabatua"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Kendu Pribatutik"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Mugitu pribatura"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Sarrera hutsik dago"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formateatu"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Ezin da bideoa erreproduzitu deia egiten ari den bitartean"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Fitxategi hau ez dago erabilgarri lineaz kanpo. Egiaztatu sare konexioa eta saiatu berriz."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Hautatutako gaia %s-(e)ra mugituko da"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Hautatutako elementuak %s-(e)ra mugituko dira"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Ezabatzen..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Mugitzen..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Huts egin da biltegi pertsonalera mugitzean."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Huts egin da ohiko biltegira mugitzean."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mezua"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Karpetak"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Helb. elek."
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Data (berriena)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d aukeratuta"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Ezabatu bideoak"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Ezabatu bideoa"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Mugitu"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitudea"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitudea"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Kamera erabiliz bideoak grabatu ondoren, bideoak erakutsiko dira"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Ezez."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Eten denen ondoren"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Errepikatu hau"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Errepikatu dena"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Bereizmena"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Ezab."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Dena(k) ezabatu"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Fitxategi honek audio datuak baino ez ditu onartzen. Audioa erreproduzitzen."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Fitxategi honek bideo datuak baino ez ditu onartzen. Bideoa erreproduzitzen."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Berrizendatu"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Aurikularrak"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Ezezaguna"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Akatsa"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Bateria gutxi"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Konektatzerakoan errorea"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Fitxategia ez dago"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%s erabili dezakezu beste behin. Lortu beste lizentzia bat?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audio gailua"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Gehituta"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Eskaneatzea"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Ezin da gehitu"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Lehenetsia"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Deskargatu"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Desaktibatuta"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Aktibatuta"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "Bideo 1 ezabatuko da."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Karaktere baliogabea"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Ez dago bilaketaren emaitzarik"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Hautatu"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Azken aldaketa"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Egina"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitudea"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Izena"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Izena (Atik Zra)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Bideoak"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Eranskinen gehieneko kopurua (%d) gainditu duzu."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Hautatu guztiak"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Gailu biltegia"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD txartela"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Mugitu"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Aktibatuta"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Partekatu honen bidez"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Sare errorea gertatu da. Saiatu berriz."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Errep. hur. auto."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Prozesatzen..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Gehieneko karaktere kopurura iritsi zara."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Bai"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ez"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Ezabatu"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Dena(k) ezabatu"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Ez dago bilaketa emaitzarik"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Elementua aukeratu"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Aukeratu elementuak"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Ezeztatu"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "EGINA"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "UTZI"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "EZABATU"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Biltegiratze kokapena"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Data"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Hautatu bideoa"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Konexio errorea"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Deskargatuta"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sinkronizatu"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Letra"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Bat ere ez"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Aurikularrak"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%s erabili dezakezu beste behin. Hasi orain?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%s erabili dezakezu beste 2 aldiz. Hasi orain?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s blokeatuta dago orain. Desblokeatu?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Ezin duzu beste %s elementu gehiago erabili. Lortu beste lizentzia bat?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s iraungitzear dago. Lortu beste lizentzia bat?"
+
diff --git a/res/po/fi.po b/res/po/fi.po
new file mode 100755 (executable)
index 0000000..fbd9688
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Lataa"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 kansio ladataan."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video ladataan."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Kaikki kansiot ladataan."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Kaikki videot ladataan."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d kansiota ladataan."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d videota ladataan."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobiilidata on poistettu käytöstä. Muodosta sen sijaan yhteys Wi-Fi-verkon kautta tai ota mobiilidata käyttöön ja yritä uudelleen."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Yksityinen"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "t"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Gt"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kt"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Sijainti"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "Mt"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Tuntematon"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 kansio"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Kaikki"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Laitteesta"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropboxista"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Muutettu viimeksi"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Näytettävä sisältö"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Hae"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Jaa"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 kansio poistetaan."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Poistetaan..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kun olet tallentanut kameralla videoita, ne näytetään täällä."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videota"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Ei videoita"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Lisätiedot"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Kansio"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Luettelo"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Viim. lisätyt"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Viimeksi katsotut"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Nimeä uudelleen"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Koko"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Lajitteluperuste"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Otsikko"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tyyppi"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Näyttötapa"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Kaikki videot poistetaan."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d kansiota poistetaan."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videota poistetaan."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Tämä kansio poistetaan."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d kansiota"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Asetukset"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videota ei voi toistaa"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Kohdistus"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Fonttikoko"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Toistoasetus"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Tekstitys (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Kaikki kansiot poistetaan."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Keskelle"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Suuri"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Vasemmalle"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Keskisuuri"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Oikealle"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pieni"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Tiedoston nimi jo käytössä."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Sulje"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Merkkien enimmäismäärä saavutettu."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Lopeta"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Pois"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Päivitä"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Sijainti"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Poistettu."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Poista Yksityiset-kansiosta"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Siirrä Yksityiset-kansioon"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Tyhjä tieto"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Muoto"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Puhelun aikana ei voi toistaa videota."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Tätä tiedostoa ei voi käyttää offline-tilassa. Tarkista verkkoyhteys ja yritä uudelleen."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Valittu kohde siirretään kohteeseen %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Valitut kohteet siirretään kohteeseen %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Poistetaan..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Siirretään..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Siirtäminen henkilökohtaiseen tallennustilaan epäonnistui."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Siirtäminen normaaliin tallennustilaan epäonnistui."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Viesti"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Kansiot"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Sähköposti"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Päiväys (uusimmat)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d valittu"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Poista videot"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Poista video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Siirrä"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Pituusaste"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Leveysaste"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Videot näytetään, kun olet tallentanut videoita kameralla."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Per."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Pysäytä kaikk. jälk."
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Toista nykyinen"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Toista kaikki"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Tarkkuus"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Poista"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Poista kaikki"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Tiedosto tukee vain äänitietoja. Toistetaan ääntä."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Tiedosto tukee vain videotietoja. Toistetaan videota."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Nimeä uudelleen"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Kuulokkeet"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Tuntematon"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Virhe"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Akku on loppumassa."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Yhdistäminen epäonnistui."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Tiedostoa ei ole."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Voit käyttää kohdetta %s vielä 1 kerran. Hankitaanko toinen lisenssi?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Äänilaite"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Lisätty."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Hae"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Lisääminen ei onnistu."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Oletus"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Lataa"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Pois"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Päälle"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video poistetaan."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Virheellinen merkki"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Ei hakutuloksia"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Valitse"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Muutettu viimeksi"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Valmis"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Päivämäärä"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Leveysaste"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nimi"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nimi (A–Ö)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videot"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Liitteiden enimmäismäärä (%d) on ylitetty."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Valitse kaikki"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Laitteen muisti"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-kortti"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Siirrä"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Päällä"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Jakotapa"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Verkkovirhe. Yritä uudelleen."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Toista seur. aut."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Käsitellään..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Merkkien enimmäismäärä on saavutettu."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Kyllä"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ei"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Poista"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Poista kaikki"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Ei hakutuloksia"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Valitse kohde"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Valitse kohteet"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Peruuta"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "VALMIS"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "PERUUTA"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "POISTA"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Tallennuspaikka"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Päivämäärä"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Valitse video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Yhteysvirhe"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "kt"
+
+msgid "IDS_COM_BODY_B"
+msgstr "t"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "Mt"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "Gt"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Ladattu."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synkronoi"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Fontti"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Ei mitään"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Kuulokkeet"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Voit käyttää kohdetta %s vielä 1 kerran. Aloitetaanko nyt?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Voit käyttää kohdetta %s vielä 2 kertaa. Aloitetaanko nyt?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s on tällä hetkellä lukittu. Poistetaanko lukitus?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Kohdetta %s ei enää voi käyttää. Hankitaanko toinen lisenssi?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s on vanhentumassa. Hankitaanko toinen lisenssi?"
+
diff --git a/res/po/fr.po b/res/po/fr.po
new file mode 100755 (executable)
index 0000000..9775952
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Télécharger"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 dossier va être téléchargé."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 vidéo va être téléchargée."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Tous les dossiers vont être téléchargés."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Toutes les vidéos vont être téléchargées."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d dossiers vont être téléchargés."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d vidéos vont être téléchargées."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Données mobiles désactivées. Connectez-vous à un réseau Wi-Fi ou activez les données mobiles, puis réessayez."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privé"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "o"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Go"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "Ko"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Localisation"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "Mo"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Inconnu"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 dossier"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 vidéo"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Tout"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "À partir de l'appareil"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "À partir de Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Dernière modification"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Contenu à afficher"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Rechercher"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Partager"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 dossier va être supprimé."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Suppression en cours..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Les vidéos enregistrées avec l'appareil photo seront affichées ici."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d vidéos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Vidéo"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Aucune vidéo"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Détails"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Dossier"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Liste"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Ajout récent"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Visionnées récemment"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Renommer"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Taille"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Trier par"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titre"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Type"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Afficher en tant que"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Toutes les vidéos seront supprimées."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d dossiers seront supprimés."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d vidéos seront supprimées."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Ce dossier sera supprimé."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d dossiers"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Paramètres"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Impossible de lire la vidéo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alignement"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Taille de police"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Répéter le paramètre"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Sous-titres (codés)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Tous les dossiers seront supprimés."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centre"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grand"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Gauche"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Moyen"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Droit"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Petit"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Le nom de fichier est déjà utilisé."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Fermer"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Nb max de caractères atteint"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Arrêter"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Désactivé"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Actualiser"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Localisation"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Supprimé"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Supprimer de Privé"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Déplacer dans Privé"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Entrée vide"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Impossible de lire la vidéo pendant un appel."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Ce fichier est indisponible en mode hors-ligne. Vérifiez la connexion réseau et réessayez."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "L'élément sélectionné sera déplacé vers %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Les éléments sélectionnés seront déplacés vers %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Suppression..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Déplacement..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Déplacement vers l'espace de stockage personnel impossible."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Déplacement vers l'espace de stockage normal impossible."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Message"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Dossiers"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Date (+ récent)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d sélectionné(es)"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Supprimer les vidéos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Supprimer la vidéo"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Déplacer"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Les vidéos enregistrées avec l'appareil photo seront affichées."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Annul."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Arrêter après tout"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Répéter élém. actuel"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Tout répéter"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Résolution"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Suppr."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Tout supprimer"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Seules les données audio sont prises en charge par ce fichier. Audio en cours de lecture."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Seules les données vidéo sont prises en charge par ce fichier. Vidéo en cours de lecture."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Renommer"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Écouteurs"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Inconnu"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Erreur"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Batterie faible"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Échec de connexion au réseau."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Fichier inexistant"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Vous pouvez utiliser %s encore 1 fois. Obtenir une autre licence ?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Périphérique audio"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Ajouté"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Rechercher"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Impossible à ajouter."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Par défaut"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Télécharger"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Désactivé"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Activé"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 vidéo sera supprimée."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Caractère non valide"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Aucun résultat trouvé"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Sélectionner"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Dernière modification"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Date"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nom"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nom (A à Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Vidéos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Le nombre maximal de pièces jointes (%d) a été dépassé."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Sélectionner tout"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Espace sur l'appareil"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Carte SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Déplacer"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Activé"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Partager via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Une erreur réseau s'est produite. Réessayez."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Lire suivant auto"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "En cours..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Nombre maximal de caractères atteint."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Oui"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Non"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Tout supprimer"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Aucun résultat"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Sélectionnez votre choix"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Sélectionner éléments"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Annuler"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULER"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "SUPPRIMER"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Emplacement de stockage"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Date"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Sélectionner une vidéo"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Erreur de connexion"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "Ko"
+
+msgid "IDS_COM_BODY_B"
+msgstr "o"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "Mo"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "Go"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Téléchargement terminé"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synchroniser"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Police"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Aucun(e)"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Écouteurs"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Vous pouvez utiliser %s encore 1 fois. Démarrer maintenant ?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Vous pouvez utiliser %s encore 2 fois. Démarrer maintenant ?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s est actuellement verrouillé. Déverrouiller ?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Vous ne pouvez plus utiliser %s. Obtenir une autre licence ?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s est sur le point d'expirer. Obtenir une autre licence ?"
+
diff --git a/res/po/fr_CA.po b/res/po/fr_CA.po
new file mode 100755 (executable)
index 0000000..86d42b2
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Télécharger"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 dossier va être téléchargé."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 vidéo va être téléchargée."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Tous les dossiers vont être téléchargés."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Toutes les vidéos vont être téléchargées."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d dossiers vont être téléchargés."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d vidéos vont être téléchargées."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Données mobiles désactivées. Connectez-vous à un réseau wifi ou activez les données mobiles, puis réessayez."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privé"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "O"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Go"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "Ko"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Localisation"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "Mo"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Inconnu"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 dossier"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 vidéo"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Tous"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "À partir de l'appareil"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "À partir de Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Dernière modification"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Contenu à afficher"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Rechercher"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Partager"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 dossier va être supprimé."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Suppression en cours..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Les vidéos enregistrées avec l'appareil photo seront affichées ici."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d vidéos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Vidéo"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Aucune vidéo"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Détails"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Dossier"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Liste"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Ajouté récem."
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Stylet"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Renommer"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Taille"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Trier par"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titre"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Type"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Afficher en tant que"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Toutes les vidéos seront supprimées."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d dossiers seront supprimés."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d vidéos seront supprimées."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Ce dossier sera supprimé."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d dossiers"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Réglages"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Impossible de lire la vidéo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alignement"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Taille de police"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Répéter le paramètre"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Sous-titres"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Tous les dossiers seront supprimés."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centre"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grand"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Gauche"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Moyen"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Droit"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Petit"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Le nom de fichier est déjà utilisé."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Fermer"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Nb max de caractères atteint."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Arrêter"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Désactivé"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Actualiser"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Localisation"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Supprimé."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Supprimer de Privé"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Déplacer dans Privé"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Entrée vide"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Impossible de jouer la vidéo pendant un appel."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Ce fichier est indisponible en mode hors-ligne. Vérifiez la connexion réseau et réessayez."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "L'élément sélectionné sera déplacé vers %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Les éléments sélectionnés seront déplacés vers %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Retrait..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Déplacement..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Déplacement vers l'espace de stockage personnel impossible."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Déplacement vers l'espace de stockage normal impossible."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Message"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Dossiers"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Courriel"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Date (+ récent)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d sélect."
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Supprimer les vidéos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Supprimer la vidéo"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Déplacer"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Les vidéos enregistrées avec l'appareil photo seront affichées."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Annuler"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Arrêter après tout"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Répéter élém. actuel"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Tout répéter"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Résolution"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Suppr."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Supprimer tout"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Seules les données audios sont prises en charge par ce fichier. Audio en cours de lecture."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Seules les données vidéos sont prises en charge par ce fichier. Vidéo en cours de lecture."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Renommer"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Écouteurs"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Inconnu"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Erreur."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Pile faible"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Échec de connexion réseau."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Fichier inexistant"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Vous pouvez utiliser %s encore 1 fois. Obtenir une autre licence ?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Périphérique audio"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Ajouté."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Rechercher"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Impossible à ajouter."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Par défaut"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Télécharger"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Désactivé"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Activé"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 vidéo sera supprimée."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Caractère non valide"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Aucun résultat de recherche"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Sélectionner"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Dernière modification"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Date"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nom"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nom (A à Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Vidéos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Le nombre maximal de pièces jointes (%d) a été dépassé."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Sélectionner tout"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Espace sur l'appareil"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Carte SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Déplacer"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Activé"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Partager via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Une erreur réseau s'est produite. Réessayez."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Lire auto. suiv."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Traitement…"
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Nombre maximal de caractères atteint."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Oui"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Non"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Supprimer tout"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Aucun résultat"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Sélectionner un élément"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Sélectionner éléments"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Annuler"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULER"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "SUPPRIMER"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Emplacement de stockage"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Date"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Sélectionner une vidéo"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wifi direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Erreur de connexion."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "Ko"
+
+msgid "IDS_COM_BODY_B"
+msgstr "O"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "Mo"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "Go"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Télécharg."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synchroniser"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Police"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Aucun"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Écouteurs"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Vous pouvez utiliser %s encore 1 fois. Démarrer maintenant ?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Vous pouvez utiliser %s encore 2 fois. Démarrer maintenant ?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s est actuellement verrouillé. Déverrouiller ?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Vous ne pouvez plus utiliser %s. Obtenir une autre licence ?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s est sur le point d'expirer. Obtenir une autre licence ?"
+
diff --git a/res/po/ga.po b/res/po/ga.po
new file mode 100755 (executable)
index 0000000..49f89fa
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Íoslódáil"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Íoslódálfar 1 fhillteán."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Íoslódálfar 1 fhíseán."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Íoslódálfar gach fillteán."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Íoslódálfar gach físeán."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Íoslódálfar %d fillteán."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Íoslódálfar %d físeán."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Sonraí móibíleacha casta as. Nasc le líonra Wi-Fi ina ionad, nó cas Sonraí móibíleacha air agus triail arís."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Príobháideach"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Suíomh"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Anaithnid"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 Fhillteán"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 fhíseán"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Gach"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Ó ghléas"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Ó Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Mionathrú is déanaí"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Inneachar le taispeáint"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Cuardaigh"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Comhroinn"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Scriosfar 1 fhillteán."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Scriosadh..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Tar éis duit físeáin a thaifeadadh leis an gceamara, taispeánfar anseo iad."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d físeán"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Físeán"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Níl físeáin ann"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Sonraí"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Fillteán"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Liostaigh"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Curtha leis le déanaí"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Amharc orthu le déanaí"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Athainmnigh"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Méid"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sórt de réir"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Teideal"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Cineál"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Amharc air mar"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Scriosfar gach físeán"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Scriosfar %d fillteán"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Scriosfar %d físeán"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Scriosfar an fillteán seo"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d fillteán"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Socruithe"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Ní féidir físeán a sheinm"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Ailíniú"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Méid cló"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Socrú athsheanma"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Fotheidil (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Scriosfar gach fillteán"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Lárnach"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Mór"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Clé"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Meánach"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Deas"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Beag"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Comhadainm in úsáid cheana."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Dún"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Uaslíon na gcarachtar bainte amach."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stop"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "As"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Athnuaigh"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Suíomh"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Scriosta."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Bain ó Phríobháideach"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Bog chuig Príobháideach"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Tá an iontráil folamh"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formáid"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Ní féidir físeán a sheinm le linn glao."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "N‎íl an comhad seo ar fáil fad is atá tú as líne. Seiceáil do nasc líonra le do thoil agus triail arís."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Bogfar an mhír roghnaithe chuig %s"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Bogfar na míreanna roghnaithe chuig %s"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Ag baint..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Ag bogadh..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Theip ar bhogadh chuig stóras pearsanta."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Theip ar bhogadh chuig gnáthstóras."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Teachtai"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Fillteáin"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "R-phost"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Dáta (is déanaí)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d roghnaithe"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Scrios físeáin"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Scrios físeán"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Bog"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Domhanfad"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Leithead"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Tar éis duit físeáin a thaifeadadh ag úsáid an cheamara, taispeánfar na físeáin"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Cealú"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop tar eis gach"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Athdhean cuid reatha"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Athdhéan gach"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Taifeach"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Scrios"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Scrios gach"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Níl tacú sa chomhad seo ach do shonraí fuaime. Fuaim á seinm anois."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Níl tacú sa chomhad seo ach do shonraí físe. Físeán á sheinm anois."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Athainmnigh"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Cluasáin"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Anaithnid"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Earráid."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Ceallra lag."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Theip ar nascadh."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Níl an comhad seo ann"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Is féidir leat %s a úsáid uair amháin eile. Faigh ceadúnas eile?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Gléas fuaime"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Curtha leis."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Scan"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Ní féidir cur leis."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Réamhshocrú"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Íoslódáil"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "As"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Air"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "Scriosfar 1 fhíseán."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Carachtar neamhbhailí"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Níl torthaí cuardaigh ann"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Roghnaigh"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Mionathrú is déanaí"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Déanta"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dáta"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Leithead"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ainm"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Ainm (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Físeáin"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Uaslíon na gceangaltán (%d) sáraithe."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Roghnaigh gach"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Stóras gléis"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Cárta SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Bog"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Air"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Comhroinn le"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Tharla earráid líonra. Triail arís."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "U. sheinn ar lean"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Ag próiseáil..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Uaslíon na gcarachtar bainte amach."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Déan é"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ná déan é"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Scrios"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Scrios gach"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Níl toradh cuardaigh ann"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Roghnaigh mír"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Roghnaigh míreanna"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cealaigh"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "DÉANTA"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CUIR AR CEAL"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "SCRIOS"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Suíomh stórais"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Dáta"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Roghnaigh físeán"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Earráid le nasc."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Íoslódáilte."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sioncronaigh"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Cló"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Dada"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Cluasáin"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Is féidir leat %s a úsáid uair amháin eile. Tosaigh anois?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Is féidir leat %s a úsáid 2 uaire eile. Tosaigh anois?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "Tá %s glasáilte faoi láthair. Díghlasáil?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Ní féidir leat %s a úsáid arís. Faigh ceadúnas eile?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "Tá %s ar tí dul as feidhm. Faigh ceadúnas eile?"
+
diff --git a/res/po/gl.po b/res/po/gl.po
new file mode 100755 (executable)
index 0000000..eb0a884
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Descargar"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Descargarase 1 carpeta."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Descargarase 1 vídeo."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Descargaranse todas as carpetas."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Descargaranse todos os vídeos."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Descargaranse %d carpetas."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Descargaranse %d vídeos."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Os datos móbiles están desactivados. Conéctate a unha rede Wi-Fi no seu lugar ou activa os datos móbiles e téntao de novo."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privado"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Localización"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Descoñecido"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Aceptar"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 carpeta"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 vídeo"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Todas"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Do dispositivo"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "De Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Modificado por última vez"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Contido a amosar"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Buscar"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Compartir"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Eliminarase 1 carpeta."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Eliminando..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Despois de gravar vídeos coa cámara, amosaranse aquí."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d vídeos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Vídeo"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Non hai vídeos"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalles"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Carpeta"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Lista"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Engadido recen."
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Vistos recentemente"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "C. nome"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Tamaño"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Ordenar por"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Título"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tipo"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Ver como"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Eliminaranse todos os vídeos"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Eliminaranse %d carpetas"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Eliminaranse %d vídeos"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Eliminarase esta carpeta"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d carpetas"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Axustes"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Imposible reproducir vídeo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Aliñamento"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tamaño da fonte"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Axustes de repetición"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítulos"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Eliminaranse todas as carpetas"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centro"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Esquerda"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Media"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Dereita"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pequeno"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Nome do arquivo xa en uso."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Pechar"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Número máximo de caracteres alcanzado"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Deter"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Aceptar"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Desactivado"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Actualizar"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Localización"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Eliminado"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Eliminar de Privado"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Mover a Privado"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "A entrada está baleira"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formatar"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Non se pode reproducir vídeo durante a chamada"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Este arquivo non está dispoñible mentres estás fóra de liña. Comproba a conexión de rede e téntao de novo."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "O elemento seleccionado moverase a %s"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Os elementos seleccionados moveranse a %s"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Eliminando..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Movendo..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Non se puido mover ao almacenamento persoal."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Non se puido mover ao almacenamento normal."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mensaxe"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Carpetas"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Correo e."
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Data (recente)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d seleccionados"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Eliminar vídeos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Eliminar vídeo"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Mover"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Lonxitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Despois de gravar vídeos mediante a cámara, estes amosaranse"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Deter despo. de todo"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir todos"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolución"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Elim"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Eliminar todo"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Este arquivo só admite datos de audio. Reprodución de audio en curso."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Este arquivo só admite datos de vídeo. Reprodución de vídeo en curso."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Cambiar nome"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Auriculares"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Descoñecido"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Erro"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Batería baixa"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Erro na conexión"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "O arquivo non existe"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Podes utilizar %s 1 vez máis. Desexas obter outra licenza?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Dispositivo de son"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Engadido"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Buscar"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Non se pode engadir"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Predeterminada"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Descargar"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Desactivado"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Activado"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "Eliminarase 1 vídeo."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Carácter non válido"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Non hai resultados da busca"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Seleccionar"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Modificado por última vez"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Feito"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nome"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nome (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Vídeos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Superouse o número máximo de adxuntos (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Seleccionar todo"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Almacenamento do dispositivo"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Tarxeta SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Mover"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Activado"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Compartir mediante"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Produciuse un erro de rede. Téntao de novo."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Reprod seg autom"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Procesando..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Alcanzouse o número máximo de carácteres."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Si"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Non"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Eliminar todo"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Sen resultado da busca"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Seleccionar elemento"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Seleccionar elementos"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "FEITO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ELIMINAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Localización almacenam."
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Data"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Seleccionar vídeo"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Erro de conexión"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Descargado"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sincronizar"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Fonte"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Ningún"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Auriculares"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Podes utilizar %s 1 vez máis. Desexas comezar agora?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Podes utilizar %s 2 veces máis. Desexas comezar agora?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s está bloqueado actualmente. Desexas desbloquealo?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Non podes utilizar %s ningunha vez máis. Desexas obter outra licenza?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s está a piques de caducar. Desexas obter outra licenza?"
+
diff --git a/res/po/hi.po b/res/po/hi.po
new file mode 100755 (executable)
index 0000000..9631894
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "डाउनलोड"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 फोल्डर डाउनलोड किया जाएगा।"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 वीडियो डाउनलोड किया जाएगा।"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "सभी फोल्डर्स डाउनलोड किए जाएँगे।"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "सभी वीडियो डाउनलोड किए जाएँगे।"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d फोल्डर्स डाउनलोड किए जाएँगे।"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d वीडियोज डाउनलोड किए जाएँगे।"
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "मोबाइल डाटा बंद किया गया। इसके बजाय किसी Wi-Fi नेटवर्क से कनेक्ट करें या मोबाइल डाटा चालू करें और फिर से प्रयास करें।"
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "निजी"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "स्थान"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "अज्ञात"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "ओके"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 फोल्डर"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 वीडियो"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "सभी"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "डिवाइस से"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "ड्रॉपबॉक्स से"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "अंतिम बार संशोधित"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "प्रदर्शन के लिए सामग्री"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "खोजें"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "साझा करें"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 फोल्डर हटाया जाएगा।"
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "हटाया जा रहा है..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "आपके द्वारा कैमरे का उपयोग करके वीडियोज रिकॉर्ड करने के बाद, वे यहाँ दिखाई जाएँगे।"
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d वीडियोज़"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "वीडियो"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "कोई वीडियो नहीं"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "विवरण"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "फोल्डर"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "सूची"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "हाल ही में जोड़ें गए"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "हाल ही में देखा गया"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "नाम बदलें"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "आकार"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "इसके द्वारा क्रमबद्ध करें"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "शीर्षक"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "प्रकार"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "इस रूप में देखें"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "सभी वीडियो हटाए जाएँगे"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d फोल्‍डर्स हटाए जाएँगे"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d वीडियोज हटाए जायेंगे।"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "यह फोल्डर हटाया जाएगा।"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d फोल्डर्स"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "सेटिंग्स"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "वीडियो चलाने में असमर्थ"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "संरेखण"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "फॉन्ट आकार"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "दोहराव सेटिंग"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "उपशीर्षक (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "सभी फोल्‍डर्स हटाए जाएँगे।"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "केंद्र"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "बड़ा"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "बाएँ"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "मध्यम"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "दाएँ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "छोटा"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "फाइल नाम पहले से ही उपयोग में है।"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "बंद करें"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "वर्णो की संख्‍या अधिकतम पहुँची।"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "रोकें"
+
+msgid "IDS_COM_SK_OK"
+msgstr "ओके"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "बंद"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "रीफ्रेश"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "स्थान"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "हटाया।"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "निजी से निकालें"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "निजी पर ले जाएँ"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "प्रविष्टि खाली है"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "फॉर्मेट"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "कॉल के दौरान वीडियो चलाने में असमर्थ।"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "ड्रॉपबॉक्स"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "यह फाइल ऑफलाइन में अनुपलब्ध है। नेटवर्क कनेक्‍शन जाँचें और फिर से प्रयास करें।"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "चुनी हुई मद %s में ले जाई जाएँगी"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "चुनी हुई मदें %s में ले जाई जाएँगी"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "हटा रहा है..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "ले जा रहा है..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "व्यक्गित स्टोरेज पर ले जाने में विफल।"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "सामान्य स्टोरेज पर ले जाने में विफल।"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "सन्देश"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "फोल्डर्स"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "ईमेल"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "तिथि (सबसे नवीनतम)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d चयनित"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "वीडियोज हटाएँ"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "वीडियो हटाएँ"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "ले जाएँ"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "देशांतर"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "अक्षांश"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "आपके द्वारा कैमरे का उपयोग करके वीडियो रिकॉर्ड करने के बाद, वीडियो दिखाए जाएंगे।"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "रद्द"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "सब के बाद रोकें"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "वर्तमान को दोहराएँ"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "सभी दोहराएँ"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "रिजॉल्यूशन"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "हटाएँ"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "सभी हटाएँ"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "इस फाइल के द्वारा केवल ऑडियो डाटा समर्थित है। अब ऑडियो चलाया जा रहा है।"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "इस फ़ाइल के द्वारा केवल वीडियो डाटा समर्थित है। अब वीडियो चलाया जा रहा है।"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "नाम बदलें"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "हेडफोन्‍स"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "अज्ञात"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "त्रुटि।"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "ब्लूटूथ"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "बैटरी कम है।"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "कनेक्शन विफल।"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "यह फाइल मौजूद नहीं है।"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "आप %s का उपयोग 1 बार और कर सकते हैं। लाइसेंस प्राप्त करें?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "ऑडियो डिवाइस"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "जोड़ा गया।"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "स्‍कैन करें"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "जोड़ने में असमर्थ।"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "डिफॉल्ट"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "डाउनलोड करें"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "बंद"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "चालू"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 वीडियो हटाया जाएगा।"
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "अमान्य वर्ण"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "कोई खोज परिणाम नहीं"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "चयन करें"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "अंतिम बार संशोधित"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "पूर्ण"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "तिथि"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "अक्षांश"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "नाम"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "नाम (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "वीडियो"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "संलग्नक की अधिकतम संख्या (%d) पार हुई।"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "सभी चुनें"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "डिवाइस स्टोरेज"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD कार्ड"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "ले जाएँ"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "चालू"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "इसके द्वारा साझा करें"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "नेटवर्क त्रुटि उत्पन्न हुई है। फिर से प्रयास करें।"
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "अगला स्वतः चलाना"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "प्रक्रिया हो रही है..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "वर्णों की अधिकतम संख्या पूरी हो गई।"
+
+msgid "IDS_COM_SK_YES"
+msgstr "हाँ"
+
+msgid "IDS_COM_SK_NO"
+msgstr "नहीं"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "हटाएँ"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "सभी हटाएँ"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "खोज का कोई परिणाम नहीं"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "मद चुनें"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "मद चुनें"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "रद्द"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "पूर्ण"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "रद्द करें"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "हटाएँ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "संग्रहण स्‍थान"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "तिथि"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "वीडियो चुनें"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "कनेक्‍शन त्रुटी।"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "डाउनलोड हुआ।"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "सिंक्रोनाइज"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "फॉन्ट"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "कुछ नहीं"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "हेडफोन्‍स"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "आप %s का उपयोग 1 बार और कर सकते हैं। अभी प्रारंभ करें?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "आप %s का उपयोग 2 बार और कर सकते हैं। अभी प्रारंभ करें?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s वर्तमान में लॉक किया गया। अनलॉक करें?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "आप %s का उपयोग इसके बाद नहीं कर सकते हैं। लाइसेंस प्राप्त करें?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s समाप्त होने वाला है। लाइसेंस प्राप्त करें?"
+
diff --git a/res/po/hr.po b/res/po/hr.po
new file mode 100755 (executable)
index 0000000..60bb737
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Preuzmi"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Preuzet će se 1 mapa."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Preuzet će se 1 videozapis."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Preuzet će se sve mape."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Preuzet će se svi videozapisi."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Preuzet će se ovoliko mapa: %d."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Preuzet će se ovoliko videozapisa: %d."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobilni su podaci isključeni. Spojite se na Wi-Fi mrežu ili uključite Mobilne podatke i pokušajte ponovno."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privatno"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "U redu"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 mapa"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Sve"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "S uređaja"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "S Dropboxa"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Zadnja promjena"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Prikaz sadržaja"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Traži"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Dijeli"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 će se mapa izbrisati."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Brisanje..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nakon što kamerom snimite videozapise, prikazat će se ovdje."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videa"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Nema videa"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalji"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Mapa"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Popis"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Nedavno dodano"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Nedavno pogledano"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Preimenuj"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Veličina"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sortiraj"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Naslov"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Vrsta"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Prikaži kao"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Svi će videi biti obrisani."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d će se mapa obrisati."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videa bit će obrisano."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Ova će mapa biti obrisana."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d mapa"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Postavke"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nemoguće reproduc. videozapis"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Poravnanje"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Veličina slova"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Postavka ponavljanja"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titlovi (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Sve mape će se obrisati."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centralno"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Velika"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Lijevo"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Srednja"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Desno"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mala"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Već postoji naziv datoteke."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Prekid"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maks. broj znakova."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Zaustavi"
+
+msgid "IDS_COM_SK_OK"
+msgstr "U redu"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Isključeno"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Aktualiziraj"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Obrisano."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Ukloni iz Privatnog"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Premjesti u Privatno"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Unos prazan."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Tijekom razgovora nemoguća video reprodukcija."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Datoteka nije dostupna dok ste izvan mreže. Provjerite mrežnu vezu i pokušajte ponovno."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Odabrana stavka bit će premještena u %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Odabrane stavke bit će premještene u %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Uklanjanje..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Premještanje..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Neuspješno premještanje na osobnu memoriju."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Neuspješno premještanje na normalnu memoriju."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Poruka"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Mape"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Datum (najnoviji)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d odabrano"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Izbriši videozapise"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Obriši video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Premjesti"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Geo. duljina"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Geo. širina"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Vaši videozapisi bit će prikazani ovdje."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Prekid"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stati nakon svega"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Ponovi trenutno"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Ponovi sve"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rezolucija"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Obriši sve"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Datoteka podržava samo audio podatke. Sada reproducira zvuk."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Datoteka podržava samo video podatke. Sada reproducira video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Promjeni ime"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Slušalice"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Greška."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Baterija skoro prazna."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Spajanje neuspješno."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Datoteka ne postoji."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%s možete koristiti još jednom. Preuzeti drugu licencu?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audio uređaj"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Dodano."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Skeniraj"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Nije moguće dodati."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Zadano"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Skidanje"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Isključeno"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Uključeno"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 će videozapis biti izbrisan."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Neispravan znak"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Nema traženih rezultata"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Odaberi"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Zadnja promjena"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Geo. širina"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ime"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Naziv (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Premašen je maksimalni broj privitaka (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Odaberi sve"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Memorija uređaja"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD kartica"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Premjesti"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Uključeno"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Dijeli preko"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Došlo je do mrežne pogreške. Pokušajte ponovno."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Auto. rep. idući"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Procesiranje..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Dosegnut maksimalan broj znakova."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Da"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ne"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Obriši sve"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Nema traženih rezultata"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Odaberite stavku"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Odaberite stavke"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Prekid"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "GOTOVO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ODUSTANI"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "IZBRIŠI"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Mjesto spremanja"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Datum"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Odaberite video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Greška veze."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Skinuto."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sinkronizacija"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Slova"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Ništa"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Slušalice"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%s možete koristiti još jednom. Početak?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%s možete koristiti još dvaput. Početak?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s je trenutno zaključan. Otključati?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Ne možete više koristiti %s. Preuzeti drugu licencu?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s će uskoro isteći. Preuzeti drugu licencu?"
+
diff --git a/res/po/hu.po b/res/po/hu.po
new file mode 100755 (executable)
index 0000000..c0b8d86
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Letöltés"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Letölt 1 mappát."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Letölt 1 videót."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Az összes mappát letölti."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Az összes videót letölti."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Letölt %d mappát."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Letölt %d videót."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "A mobil internetkapcsolat ki van kapcsolva. Kapcsolódjon Wi-Fi-hálózathoz, vagy kapcsolja be a mobil internetkapcsolatot, és próbálja újra."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privát"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Hely"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Ismeretlen"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 mappa"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 videó"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Mind"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Az eszközről"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "A Dropboxból"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Legutóbbi módosítás"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Megjelenítendő tartalom"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Keresés"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Megosztás"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 mappát törölni fog."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Törlés..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Itt jelennek majd meg a fényképezővel rögzített videók."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videó"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Videó"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Nincs videó"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Részletek"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Mappa"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Lista"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Legut. ho.adott"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Legutóbb megtekintett"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Átnevez"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Méret"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Rendezés szempontja"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Cím"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Típus"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Megjelenítés módja"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Minden videót törölni fog."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Törölni fogja a(z) %d mappát."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videót törölni fog."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Törölni fogja a mappát."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d mappa"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Beállítások"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nem lehet lejátszani a videót"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Igazítás"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Betűméret"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Ismétlési beállítás"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Feliratok (hangfelirat)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Minden mappát törölni fog."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Középső"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Nagy"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Balra"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Közepes"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Jobbra"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Kicsi"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Ilyen fájlnév már van."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Bezárás"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Nincs hely több karakternek."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Leállít"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Ki"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Frissít"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Hely"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Törölve."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Eltávolítás a Privátból"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Áthelyezés a Privátba"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "A bejegyzés üres."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formátum"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Hívás közben nem lehet videót lejátszani."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Offline állapotban ez a fájl nem elérhető. Ellenőrizze a hálózati kapcsolatot, és próbálja újra."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "A kijelölt tételt a(z) %s mappába helyezi."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "A kijelölt tételeket a(z) %s mappába helyezi."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Eltávolítás..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Áthelyezés..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Nem sikerült áthelyezni a személyes tárhelyre."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Nem sikerült áthelyezni a normál tárhelyre."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Üzenet"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Mappák"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Dátum (legújabb)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d kiválasztva"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Videók törlése"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Videó törlése"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Áthelyezés"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Hosszúság"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Szélesség"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Ha majd készít videofelvételeket a fényképező használatával, azok megjelennek itt."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Mégse"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Mégis leállítja"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Aktuális ismétlése"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Összes ismétlése"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Felbontás"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Törlés"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Összes törlése"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "A fájl csak hangadatokat támogat. Jelenleg hanglejátszás zajlik."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "A fájl csak videóadatokat támogat. Jelenleg videólejátszás zajlik."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Átnevezés"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Fejhallgató"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Ismeretlen"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Hiba"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Az akkumulátor lemerült."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Kapcsolódás sikertelen."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "A fájl nem létezik."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "A(z) %s még 1 alkalommal használható. Beszerez új licencet?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Hangeszköz"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Hozzáadva."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Keresés"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Nem adható hozzá."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Alapértelmezett"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Letöltés"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Ki"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Be"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 videót törölni fog."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Érvénytelen karakter"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Nincs találat"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Kiválasztás"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Legutóbbi módosítás"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Kész"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dátum"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Szélesség"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Név"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Név (A–Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videók"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Túllépte a mellékletek maximális számát (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Mind kijelöli"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Eszköz tárhelye"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-kártya"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Áthelyez"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Be"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Megosztás"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Hálózati hiba történt. Próbálja újra."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Automatikus lejátszás"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Feldolgozás folyamatban"
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Elérte a karakterek maximális számát."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Igen"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nem"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Törlés"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Összes törlése"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Nincs találat"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Elem kiválasztása"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Jelöljön ki tételeket"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Mégse"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "KÉSZ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "MÉGSE"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "TÖRLÉS"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Mentési hely"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Dátum"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Videó kiválasztása"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Kapcsolódási hiba"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Letöltve."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Szinkronizálás"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Betűtípus"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Nincs"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Fejhallgató"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "A(z) %s még 1 alkalommal használható. Elindítja most?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "A(z) %s még 2 alkalommal használható. Elindítja most?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "A(z) %s jelenleg blokkolva van. Feloldja?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "A(z) %s már nem használható. Beszerez új licencet?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "A(z) %s hamarosan lejár. Beszerez új licencet?"
+
diff --git a/res/po/hy.po b/res/po/hy.po
new file mode 100755 (executable)
index 0000000..99a50bd
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Ներբեռնել"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 պանակ կներբեռնվի:"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 տեսանյութ կներբեռնվի:"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Բոլոր պանակները կներբեռնվեն:"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Բոլոր տեսանյութերը կներբեռնվեն:"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d պանակ կներբեռնվի:"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d տեսանյութ կներբեռնվի:"
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Շարժական տվյալներն անջատված են: Փոխարենը միացեք Wi-Fi ցանցի կամ միացրեք Շարժական տվյալներն ու նորից փորձեք:"
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Գաղտնի"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "Բ"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "ԳԲ"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "ԿԲ"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Գտնվելու վայր"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "ՄԲ"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Անհայտ"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 թղթապանակ"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 տեսանյութ"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Բոլոր"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Սարքից"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropbox-ից"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Վերջին փոփոխումը"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Ցուցադրման ենթակա բովանդակութ."
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Որոնել"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Համօգտագործել"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 պանակ կջնջվի:"
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Վերացվում է..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Խցիկով տեսանյութեր տեսագրելուց հետո դրանք կցուցադրվեն այստեղ:"
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d տեսանյութ"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Վիդեո"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Տեսանյութեր չկան"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Մանրամասներ"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Թղթապանակ"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Ցանկ"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Վերջերս ավելցվծ"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Վերջերս դիտված"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Վերանվանել"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Չափս"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Տեսակավորել ըստ"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Վերնագիր"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Տեսակ"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Դիտել որպես"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Բոլոր տեսանյութերը կվերացվեն:"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d թղթապանակ կջնջվի:"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d տեսանյութեր կվերացվեն:"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Այս թղթապանակը կվերացվի:"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d թղթպանակ"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Պարամետրեր"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Անհնար է նվագարկել տեսանյութը"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Հավասարեցում"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Տառաչափ"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Կրկնման դրվածք"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Ենթավերնագրեր (ԹԵ)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Բոլոր թղթապանակները կջնջվեն:"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Կենտրոն"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Մեծ"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Ձախ"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Միջին"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Աջ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Փոքր"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Ֆայլի անունն արդեն գործածվում է"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Փակել"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Հասել եք նիշերի առավելագույն քանակին:"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Կանգնել"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Ընդունել"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Անջատված է"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Թարմացնել"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Գտնվելու վայր"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Ջնջված է:"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Հեռացնել Գաղտնիից"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Տեղափոխել դեպի Գաղտնի"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Գրառումը դատարկ է:"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Ձևաչափ"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Հնարավոր չէ վիդեո նվագարկել կանչի ընթացքում:"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Այս ֆայլն անմատչելի է ցանցից դուրս: Ստուգեք ցանցային միացումը և նորից փորձեք"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Ընտրված տարրը կտեղափոխվի %s:"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Ընտրված տարրերը կտեղափոխվեն %s:"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Հեռացնում է..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Տեղափոխում..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Չհաջողվեց տեղափոխել անձնական պահեստ:"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Չհաջողվեց տեղափոխել սովորական պահեստ:"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Հղգրթյն"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Պանակներ"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Էլփոստ"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Ամսթվ (առ. վերջին)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d ընտրվել է"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Վերացնել տեսանյութեր"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Վերացնել տեսանյութ"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Տեղափոխել"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Երկայնք"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Լայնք"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Խցիկով տեսանյութեր տեսագրելուց հետո տեսանյութերը կցուցադրվեն:"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Չեղկլ"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Կանգ բոլորից հետո"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Կրկնել ընթացիկը"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Կրկնել բոլորը"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Լուծաչափ"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Վրցնլ"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Ջնջել բոլորը"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Այս ֆայլը միայն ձայնատվյալներ է ապահովում: Այժմ ձայնանյութ է նվագարկվում:"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Այս ֆայլը միայն տեսատվյալներ է ապահովում: Այժմ տեսանյութ է նվագարկվում:"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Վերանվանել"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Գլխ. հեռախոսներ"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Անհայտ"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Սխալ:"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Մարտկոցի լիցքը թույլ է:"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Միացումը ձախողվեց:"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Այս ֆայլը գոյություն չունի:"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Կարող եք օգտագործել %s ևս 1 անգամ. ստանա՞լ այլ արտոնագիր:"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Ձայնային սարք"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Ավելացված է:"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Զննել"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Անհնար է ավելացնել:"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Լռելյայն"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Ներլցնել"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Անջատված է"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Միացված է"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 տեսանյութ կվերացվի:"
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Անվավեր նիշ"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Որոնման արդյունքներ չկան"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Ընտրել"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Վերջին փոփոխվածը"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Արված է"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Ամսաթիվ"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Լայնք"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Անուն"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Անուն (Ա-Ֆ)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Տեսահոլովակներ"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Կցուրդների առավելագույն քանակը (%d) գերազանցվել է:"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Ընտրել բոլորը"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Սարքի պահոց"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD քարտ"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Տեղափոխել"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Միացված է"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Համօգտ. հետևյալով՝"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ցանցի սխալ է տեղի ունեցել: Նորից փորձեք:"
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Ինք. նվգրկել հջրդ"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Ընթացքում է"
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Հասել է նիշերի առավելագույն քանակին:"
+
+msgid "IDS_COM_SK_YES"
+msgstr "Այո"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ոչ"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Վերացնել"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Ջնջել բոլորը"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Որոնման արդյունք չկա"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Ընտրել տարրը"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Ընտրել տարրեր"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Չեղարկել"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ԱՐՎԱԾ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ԴԱԴԱՐԵՑՆԵԼ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ՎԵՐԱՑՆԵԼ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Պահման տեղը"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Ամսաթիվ"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Ընտրել տեսանյութը"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Միացման սխալ:"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "ԿԲ"
+
+msgid "IDS_COM_BODY_B"
+msgstr "Բ"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "ՄԲ"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "ԳԲ"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Բեռնված է:"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Սինխրոնացնլ"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Տառատեսակ"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Չկա"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Գլխ. հեռախոսներ"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Կարող եք օգտագործել %s ևս 1 անգամ. սկսե՞լ հիմա:"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Կարող եք օգտագործել %s ևս 2 անգամ. սկսե՞լ հիմա:"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s ներկայումս կողպված է: Բացե՞լ:"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Այլևս չեք կարող եք օգտագործել %s. ստանա՞լ այլ արտոնագիր:"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s-ի ժամկետն ավարտվում է. ստանա՞լ այլ արտոնագիր:"
+
diff --git a/res/po/is.po b/res/po/is.po
new file mode 100755 (executable)
index 0000000..b567862
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Sækja"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 mappa verður sótt."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 myndskeið verður sótt."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Allar möppur verða sóttar."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Öll myndskeið verða sótt."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d möppur verða sóttar."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d myndskeið verða sótt."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Slökkt er á farsímagögnum. Tengstu Wi-Fi neti í staðinn eða kveiktu á farsímagögnum og reyndu aftur."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Einkamál"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Staðsetning"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Óþekkt"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Í lagi"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 mappa"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "Eitt myndskeið"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Allt"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Úr tæki"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Af Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Síðast breytt"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Efni til að birta"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Leita"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Deila"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Einni möppu verður eytt."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Eyði..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Eftir að þú tekur upp myndskeið með myndavélinni verða þau birt hér."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d myndskeið"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Myndskeið"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Engin myndskeið"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Upplýsingar"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Mappa"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Listi"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Nýlega bætt við"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Skoðað nýlega"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Endurnefna"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Stærð"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Raða eftir"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titill"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Gerð"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Skoða sem"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Öllum myndskeiðum verður eytt."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d möppum verður eytt."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d myndskeiðum verður eytt."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Þessari möppu verður eytt."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d möppur"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Stillingar"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Ekki hægt að spila myndskeið"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Jöfnun"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Leturstærð"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Endurtekningarstilling"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Skjátextar"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Öllum möppum verður eytt."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Miðja"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Stórt"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Vinstri"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Miðlungs"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Hægri"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Lítið"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Skráarheitið er þegar í notkun."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Loka"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Hámarksfjölda stafa hefur verið náð."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stöðva"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Í lagi"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Slökkt"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Endurnýja"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Staðsetning"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Eytt."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Fjarlægja úr einkamálum"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Færa í einkamál"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Færsla er tóm."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Snið"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Ekki er hægt að spila vídeó á meðan símtal stendur yfir."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Þessi skrá er ekki í boði án nettengingar. Athugaðu nettenginguna og reyndu aftur."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Valið atriði verður fært í %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Valin atriði verða færð í %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Verið er að fjarlægja..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Verið er að flytja..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Mistókst að færa í einkageymslu."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Mistókst að færa í venjulega geymslu."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Skilaboð"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Möppur"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Netfang"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Dags. (nýjasta)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d valið"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Eyða myndskeiðum"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Eyða myndskeiði"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Færa"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Lengdargráða"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Breiddargráða"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Eftir að þú tekur upp myndskeið með myndavélinni verða myndskeið birt."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Hætta við"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stöðva eftir allt"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Endurtaka þetta"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Endurtaka öll"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Upplausn"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Eyða"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Eyða öllu"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Þessi skrá styður aðeins hljóðgögn. Hljóð er nú í spilun."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Þessi skrá styður aðeins myndgögn. Myndskeið er nú í spilun."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Endurnefna"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Höfuðtól"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Óþekkt"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Villa."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Rafhlaðan er að tæmast."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Tenging brást."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Skráin er ekki til."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Þú getur notað %s 1 sinni enn. Fá annað leyfi?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Hljóðtæki"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Bætt við."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Skanna"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Ekki tókst að bæta við."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Sjálfgefið"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Sækja"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Slökkt"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Kveikt"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 myndskeiði verður eytt."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Ógildur stafur"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Engar leitarniðurstöður"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Velja"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Síðast breytt"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Lokið"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dagsetning"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Breiddargráða"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Heiti"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Heiti (A–Ö)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Myndskeið"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Hámarksfjölda viðhengja (%d) hefur verið náð."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Velja allt"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Geymsla tækis"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-kort"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Færa"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Kveikt"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Deila um"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Netvilla kom upp. Reyndu aftur."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Sp. næsta sj.kr."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Vinnsla í gangi..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Hámarksfjölda stafa hefur verið náð."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Já"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nei"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Eyða"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Eyða öllu"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Engar leitarniðurstöður"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Velja hlut"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Velja hluti"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Hætta v."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "LOKIÐ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "HÆTTA VIÐ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "EYÐA"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Geymslustaður"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Dagsetning"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Velja myndskeið"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Villa í tengingu."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Halað niður."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Samstilla"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Letur"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Ekkert"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Höfuðtól"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Þú getur notað %s 1 sinni enn. Byrja núna?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Þú getur notað %s 2 sinnum enn. Byrja núna?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s er læst sem stendur. Opna?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Þú getur ekki notað %s oftar. Fá annað leyfi?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s er að renna út. Fá nýtt leyfi?"
+
diff --git a/res/po/it_IT.po b/res/po/it_IT.po
new file mode 100755 (executable)
index 0000000..a134bc6
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Scarica"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 cartella verrà scaricata."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video verrà scaricato."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Tutte le cartelle verranno scaricate."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Tutti i video verranno scaricati."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d cartelle verranno scaricate."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d video verranno scaricati."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Connessione dati disattivata. Connettetevi a una rete Wi-Fi o attivate la connessione dati e riprovate."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privato"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Posizione"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Sconosciuto"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 cartella"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Tutti/e"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Dal dispositivo"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Da Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Ultima modifica"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Contenuto da visualizzare"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Cerca"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Condividi"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 cartella sarà eliminata."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Eliminazione in corso..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Una volta registrati con la fotocamera, i video saranno visualizzati qui."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d video"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Nessun video"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Dettagli"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Cartella"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Elenco"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Agg. di recente"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Visti di recente"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Rinomina"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Dimensioni"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Ordina per"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titolo"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tipo"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Visualizza come"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Tutti i video verranno eliminati."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d cartelle verranno eliminate."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d video saranno eliminati."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Questa cartella verrà eliminata."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d cartelle"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Impostaz."
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Impossibile riprodurre video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Allineamento"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Dimensione carattere"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Ripeti impostazione"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Sottotitoli (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Tutte le cartelle verranno eliminate."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centrale"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Sinistra"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medio"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Destra"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Piccolo"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Il nome del file è già in uso."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Chiudi"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Raggiunto numero massimo di caratteri."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Ferma"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Non attivo"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Aggiorna"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Posizione"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Eliminato/i."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Rimuovi da Privato"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Sposta in Privato"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Voce vuota"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formato"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Impossibile riprodurre durante chiamata."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Questo file non è disponibile se si è offline. Controllate la connessione di rete e riprovate."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "L'elemento selezionato verrà spostato in %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Gli elementi selezionati verranno spostati in %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Rimozione..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Spostamento..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Impossibile spostare nella memoria personale."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Impossibile spostare nella memoria normale."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mess."
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Cartelle"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Data (più recente)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d selezionato/i"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Elimina video"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Elimina video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Sposta"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitudine"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitudine"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "I video verranno visualizzati dopo averli registrati con la fotocamera."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Ann."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Interrom. dopo tutto"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Ripeti corrente"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Ripeti tutto"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Risoluzione"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Elimina"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Elimina tutto"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Questo file è in grado di supportare soltanto i dati audio. Audio attualmente in riproduzione."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Questo file è in grado di supportare soltanto i dati video. Video attualmente in riproduzione."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Rinomina"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Cuffie"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Sconosciuto"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Errore."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Batteria scarica."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Errore connessione."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "File inesistente."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Potete utilizzare %s ancora una volta. Acquistare un'altra licenza?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Dispositivo audio"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Aggiunto."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Cerca"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Impossibile aggiungere."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Predefinito"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Scarica"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Non attivo"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Attivo"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video verrà eliminato."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Carattere non valido"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Nessun risultato della ricerca"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Seleziona"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Ultima modifica"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Fatto"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitudine"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nome"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nome (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Il numero massimo di allegati (%d) è stato superato."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Seleziona tutto"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Memoria dispositivo"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Scheda SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Sposta"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Attivo"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Condividi con"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Si è verificato un errore di rete. Riprovate."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Riprod. succ. in autom."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Elaborazione..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Il numero massimo di caratteri è stato raggiunto."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Sì"
+
+msgid "IDS_COM_SK_NO"
+msgstr "No"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Elimina"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Elimina tutto"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Nessun risultato ricerca"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Selezione elemento"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Seleziona elementi"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Annulla"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "FATTO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULLA"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ELIMINA"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Posizione di memoria"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Data"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Seleziona video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Errore di connessione."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Scaricato."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sincronizza"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Carattere"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Nessuno"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Cuffie"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Potete utilizzare %s ancora una volta. Avviare adesso?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Potete utilizzare %s ancora due volte. Avviare adesso?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s è attualmente bloccato. Sbloccarlo?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Non è più possibile utilizzare %s. Acquistare un'altra licenza?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s sta per scadere. Acquistare un'altra licenza?"
+
diff --git a/res/po/ja_JP.po b/res/po/ja_JP.po
new file mode 100755 (executable)
index 0000000..0e793a4
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "ダウンロード"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1件のフォルダをダウンロードします。"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1件の動画をダウンロードします。"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "全てのフォルダをダウンロードします。"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "全ての動画をダウンロードします。"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d件のフォルダをダウンロードします。"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d件の動画をダウンロードします。"
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "モバイルデータがOFFになっています。Wi-Fiネットワークに接続するか、モバイルデータをONにしてから再度お試しください。"
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "プライベート"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "場所"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "不明"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1件のフォルダ"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1件の動画"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "全て"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "端末の動画"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropboxの動画"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "最終更新日"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "表示するコンテンツ"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "検索"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "共有"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1件のフォルダを削除します。"
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "削除中..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "カメラで動画を撮影した後に、動画が表示されます。"
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d件の動画"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "動画"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "動画がありません"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "詳細"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "フォルダ"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "リスト"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "最近追加した順"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "最近閲覧した順"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "名前を変更"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "サイズ"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "並べ替え"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "タイトル"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "タイプ"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "表示形式"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "全ての動画が削除されます。"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d件のフォルダを削除します。"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d件の動画を削除します。"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "このフォルダを削除します。"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d件のフォルダ"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "動画再生不可"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "配置"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "文字サイズ"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "リピート設定"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕(CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "全てのフォルダを削除します。"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "中央"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "大"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "左"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "中"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "右"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "小"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "ファイル名は既に使用されています。"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "閉じる"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "最大文字数に達しました。"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "停止"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "OFF"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "更新"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "場所"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "削除しました。"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "プライベートから削除"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "プライベートに移動"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "入力されていません。"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "ファイル形式"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "通話中はビデオ再生できません"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "オフラインの間はこのファイルは利用できません。インターネット接続を確認してからやり直してください。"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "選択したアイテムを%sに移動します。"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "選択したアイテムを%sに移動します。"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "削除中..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "移動中..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "パーソナルストレージへの移動に失敗しました。"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "標準ストレージへの移動に失敗しました。"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "メッセージ"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "フォルダ"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Eメール"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "日付(新しい順)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d件選択"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "動画を削除"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "動画を削除"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "移動"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "経度"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "緯度"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "カメラで動画を撮影した後に、動画が表示されます。"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "キャンセル"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "終了後に停止"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "現在の動画をリピート"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "全てリピート"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "解像度"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "削除"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "全て削除"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "このファイルはオーディオデータのみ再生することができます。音声のみ再生します。"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "このファイルは動画データのみ再生することができます。動画のみ再生します。"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "名前を変更"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "ヘッドホン"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "不明"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "エラー"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "バッテリー残量が不足しています。"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "接続に失敗しました。"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "このファイルは存在しません。"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%sをもう1回使用できます。追加のライセンスを取得しますか?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "オーディオデバイス"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "追加しました。"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "スキャン"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "追加不可"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "標準"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "ダウンロード"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "OFF"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "ON"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1件の動画を削除します。"
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "無効な文字"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "検索結果がありません。"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "選択"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "最終更新日"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "完了"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "日付"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "緯度"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "名前"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "名前(A~Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "動画"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "添付ファイルの最大件数(%d件)を超えています。"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "全て選択"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "システムメモリ(本体)"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "外部SDカード"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "移動"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "ON"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "共有"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "ネットワークエラーが発生しました。再度お試しください。"
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "次の動画を自動再生"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "処理中..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "最大文字数に達しました。"
+
+msgid "IDS_COM_SK_YES"
+msgstr "はい"
+
+msgid "IDS_COM_SK_NO"
+msgstr "いいえ"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "削除"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "全て削除"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "検索結果がありません。"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "アイテムを選択してください。"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "アイテムを選択"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "キャンセル"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "完了"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "キャンセル"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "削除"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "保存場所"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "日付"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "動画を選択"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "接続エラーが発生しました。"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "ダウンロードしました。"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "同期"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "フォント"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "なし"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "ヘッドホン"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%sをもう1回使用できます。すぐに実行しますか?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%sをあと2回使用できます。すぐに実行しますか?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%sは現在ロックされています。 ロックを解除しますか?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "%sはこれ以上使用できません。追加のライセンスを取得しますか?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%sの有効期限が間もなく切れます。追加のライセンスを取得しますか?"
+
diff --git a/res/po/ka.po b/res/po/ka.po
new file mode 100755 (executable)
index 0000000..6d59dbc
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "ჩამოტვირთვა"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "ჩამოიტვირთება 1 საქაღალდე."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "ჩამოიტვირთება 1 ვიდეო."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "ჩამოიტვირთება ყველა საქაღალდე."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "ჩამოიტვირთება ყველა ვიდეო."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "ჩამოიტვირთება %d საქაღალდე."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "ჩამოიტვირთება %d ვიდეო."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "მობილურ მონაცემთა ქსელი გამორთულია. სანაცვლოდ, დაუკავშირდით Wi-Fi ქსელს, ან ჩართეთ მობილური მონაცემები და ისევ სცადეთ."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "პერსონალური"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "ადგილმდებ."
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "უცნობი"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "კი"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 საქაღალდე"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 ვიდეო"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "ყველა"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "მოწყობილობიდან"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropbox-დან"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "ბოლოს შესწორდა"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "ეკრანზე გამოსაჩენი მასალა"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "ძებნა"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "გაზიარება"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 საქაღალდე წაიშლება."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "წაშლა..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "როდესაც ჩაწერთ ვიდეოს კამერით, ისინი გამოჩნდება აქ."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d ვიდეო"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "ვიდეო"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "ვიდეოები არ არის"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "დეტალები"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "საქაღალდე"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "სია"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "ბოლო დამატებული"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "ბოლოს ნანახი"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "ხელახლა დასათაურება"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "ზომა"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "დალაგება კრიტერიუმით"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "სათაური"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "ტიპი"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "ნახეთ როგორც"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "ყველა ვიდეო წაიშლება."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d საქაღალდე წაიშლება."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d ვიდეო წაიშლება."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "ეს საქაღალდე წაიშლება."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d საქაღალდე"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "პარამეტრები"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "ვიდეოს დაკვრა შეუძლებელია"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "განაწილება"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "შრიფტის ზომა"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "გამეორების პარამეტრი"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "ტიტრები (სუბტიტრები)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "ყველა საქაღალდე წაიშლება."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "ცენტრი"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "დიდი"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "მარცხნივ"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "საშუალო"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "მარჯვნივ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "მცირე"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "ფაილის სახელი უკვე გამოყენებულია"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "დახურვა"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "მიღწეულია სიმბოლოების მაქსიმალური რაოდენობა."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "შეჩერება"
+
+msgid "IDS_COM_SK_OK"
+msgstr "კი"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "გამორთ."
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "განახლება"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "ადგილმდებ."
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "წაშლილია."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "პერსონალურიდან წაშლა"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "პერსონალურში გადატანა"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "ცარიელი ჩანაწ."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "დაფორმატება"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "ვიდეოს ვერ გაუშვებთ ზარის დროს."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "ეს ფაილი მიუწვდომელია ინტერნეტის გარეშე. შეამოწმეთ კავშირი ქსელთან და ისევ მოსინჯეთ"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "შერჩეული ელემენტი გადავა ადგილზე: %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "შერჩეული ელემენტები გადავა ადგილზე: %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "იშლება..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "გადატანა..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "პერსონალურ საცავში ვერ გადავიდა."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "ნორმალურ საცავში ვერ გადავიდა."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "წერილი"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "საქაღალდეები"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "ელ.ფოსტა"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "თარიღი (უახლესი)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d არჩეულია"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "ვიდეოების წაშლა"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "ვიდეოს წაშლა"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "გადატანა"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "გრძედი"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "განედი"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "როდესაც ჩაწერთ ვიდეოს კამერით, გამოჩნდება ვიდეოები."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "გაუქმ."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "გაჩერდეს ბოლოში"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "მიმდინარეს გამეორება"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "გაიმეორე ყველა"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "გარჩევადობა"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "წაშლა"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "ყველას წაშლა"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "ამ ფაილს აქვს მხოლოდ აუდიო მონაცემთა მხარდაჭერა. ახლა ჩართულია აუდიო."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "ამ ფაილს აქვს მხოლოდ ვიდეო მონაცემთა მხარდაჭერა. ახლა ჩართულია ვიდეო."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "გადარქმევა"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "გარნიტურები"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "უცნობი"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "შეცდომა"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "კვების ელემენტი იცლება."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "ვერ დაუკავშირდა."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "ფაილი არ არსებობს."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%s შეგიძლიათ გამოიყენოთ კიდევ ერთხელ. აიღებთ სხვა ლიცენზიას?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "აუდიო მოწყობილობა"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "დამატებულია."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "სკანირება"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "ვერ ვამატებ."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "ნაგულისხმევი"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "ჩამოტვირთვა"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "გამორთ."
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "ჩართვა"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 ვიდეო წაიშლება."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "სიმბოლო არასწორია"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "ძიების შედეგი არ არის"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "არჩევა"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "ბოლოს შესწორდა"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "შესრულდა"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "თარიღი"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "განედი"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "სახელი"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "სახელი (ა-ჰ)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "ვიდეოები"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "გადაჭარბებულია დანართების მაქსიმალური რაოდენობა (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "აირჩიეთ ყველა"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "აპარატის მეხსიერება"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD ბარათი"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "გადატანა"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "ჩართვა"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "გაზიარება მეთოდით"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "მოხდა ქსელის შეცდომა. ისევ სცადეთ."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "ავტომატური ტექსტი"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "მუშავდება..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "მიღწეულია სიმბოლოების მაქსიმალური რაოდენობა."
+
+msgid "IDS_COM_SK_YES"
+msgstr "კი"
+
+msgid "IDS_COM_SK_NO"
+msgstr "არა"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "წაშლა"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "ყველას წაშლა"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "ძიების შედეგი არ არის"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "ელემენტის არჩევა"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "ელემენტების არჩევა"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "გაუქმება"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "მზადაა"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "გაუქმება"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "წაშლა"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "შენახვის ადგილი"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "თარიღი"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "აირჩიეთ ვიდეო"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "კავშირის შეცდომა."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "ჩამოიტვირთა."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "სინქრონიზაცია"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "ფონტი"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "არც ერთი"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "გარნიტურები"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%s შეგიძლიათ გამოიყენოთ კიდევ ერთხელ. დაიწყებთ ახლა?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%s შეგიძლიათ გამოიყენოთ კიდევ ორჯერ. დაიწყებთ ახლა?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s ამჟამად დაბლოკილია. განიბლოკოს?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "%s-ს ვეღარ გამოიყენებთ. აიღებთ სხვა ლიცენზიას?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s-ის ვადა გადის. აიღებთ სხვა ლიცენზიას?"
+
diff --git a/res/po/kk.po b/res/po/kk.po
new file mode 100755 (executable)
index 0000000..3d5a694
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Жүктеу"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 қалта жойылады."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 бейне жүктеледі."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Барлық қалталар жүктеледі."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Барлық бейнелер жүктеледі."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d қалта жүктеледі."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d бейне жүктеледі."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Ұялы деректер өшірілді. Оның орнына Wi-Fi желісіне қосылыңыз немесе ұялы деректерді қосып, әрекетті қайталаңыз."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Жеке аумақ"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "Б"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Гбайт"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KБ"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Орналасу орны"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "МБ"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Белгісіз"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 қалта"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 бейне"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Барлығы"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Құрылғыдан"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropbox қызметінен"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Соңғы өзгертілген"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Көрсетілетін мазмұн"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Іздеу"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Бөлісу"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 қалта жойылады."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Жойылуда..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Камераның көмегімен бейнелер жазып алғаннан кейін олар мына жерде көрсетіледі."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d бейне"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Бейне"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Бейнелер жоқ"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Өзгешеліктері"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Қалта"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Тізім"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Соңғы қосылған"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Соңғы көрсетілген"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Атын өзгерту"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Өлшемі"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Сұрыптау тәртібі"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Тақырыбы"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Түрі"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Басқаша көру"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Барлық бейнелер жойылады."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d қалта жойылады."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d бейне жойылады."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Бұл қалта жойылады."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d қалталары"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Қондырғылар"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Бейнені ойнату мүмкін емес"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Туралау"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Қаріп өлшемі"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Қайталау параметрі"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитрлер (ЖТ)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Барлық қалталар жойылады."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Орталық"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Үлкен"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Сол жақ"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Орташа"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Оң жақ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Кіші"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Файл атауы бұрыннан пайдаланылуда"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Жабу"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Таңбалардың ен көп саны артты."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Үзіліс"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Өшірілген"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Жаңарту"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Орналасу орны"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Жойылды"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Жеке қалтадан жою"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Жеке қалтаға көшіру"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Енгізбе бос."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Пішімдеу"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Қоңырау кезінде бейне ойнатылмайды."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Бұл файл желіден тыс болған жағдайда, қол жетімді емес. Желі байланысын тексеріп, әрекетті қайталап көріңіз"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Таңдалған элемент %s орнына жылжытылады."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Таңдалған элементтер %s орнына жылжытылады."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Шығаруда..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Орналастырылды"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Жеке сақтау орнына жылжыту сәтсіз аяқталды."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Қалыпты сақтау орнына жылжыту сәтсіз аяқталды."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Хабар"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Қалталар"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Элек. пошта"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Күні (соңғы)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d таңдалды"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Бейнелерді жою"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Бейнені жою"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Жылжыту"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Ұзақтық"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Кеңділік"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Камераны пайдалану арқылы бейнені жазғаннан кейін бейнелер көрсетіледі."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Тоқт"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Тоқтату"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Ағымдағыны қайталау"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Барлығын қайталау"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Шешім"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Жою"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Барлық жойылды"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Бұл файл арқылы тек аудио деректер берілген. Қазір ойнатылып жатқап аудио."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Бұл файл арқылы тек бейне деректер берілген. Қазір ойнатылып жатқап бейне."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Атын өзгерту"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Құлаққаптар"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Белгісіз"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Қате"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Батареяның заряды  аз."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Қосылу үзіліп кетті"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Файл жоқ."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Тағы %s 1 рет пайдалануға болады. Басқа лицензия алу керек пе?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Аудио құрылғы"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Қосылды"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Қарап шығу"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Қосу мүмкін емес."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Өздігінен"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Жүктеу"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Өшірілген"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Қосылған"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 бейне жойылады."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Қате әріп"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Іздеу нәтижелері жоқ"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Таңдау"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Соңғы өзгертілген"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Дайын"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Күні"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Кеңділік"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Аты"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Атауы (А-Я)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Бейнежазбалар"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Тіркемелердің ең көп санынан (%d) асып кетті."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Барлығын таңдау"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Құрылғы қоймасы"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD картасы"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Орналастыру"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Қосылған"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Бөлісу құралы"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Желі қатесі пайда болды. Әрекетті қайталаңыз."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Авто ойн. келесі"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Өңделуде..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Ең көп таңбалар санына жетті."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Иә"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Жоқ"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Жою"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Барлық жойылды"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Іздеу нәтижелері жоқ"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Элемент таңдау"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Элементтер таңдау"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Тоқтату"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ДАЙЫН"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "БАС ТАРТУ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ЖОЮ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Сақтау орны"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Күні"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Бейнені таңдау"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Байланыс қатесі"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KБ"
+
+msgid "IDS_COM_BODY_B"
+msgstr "Б"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "МБ"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "Гбайт"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Жазылды."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Синхрондау"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Қаріп"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Жоқ"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Құлаққаптар"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Тағы %s 1 рет пайдалануға болады. Қазір бастау керек пе?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Тағы %s 2 рет пайдалануға болады. Қазір бастау керек пе?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "Қазір %s құлыпталды. Құлпын ашу керек пе?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Тағы %s рет пайдалануға болмайды. Басқа лицензия алу керек пе?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s мерзімі бітуге жақын. Басқа лицензия алу керек пе?"
+
diff --git a/res/po/ko_KR.po b/res/po/ko_KR.po
new file mode 100755 (executable)
index 0000000..cb37bb1
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "다운로드"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "폴더 1개를 다운로드합니다."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "동영상 1개를 다운로드합니다."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "모든 폴더를 다운로드합니다."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "모든 동영상을 다운로드합니다."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "폴더 %d개를 다운로드합니다."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "동영상 %d개를 다운로드합니다."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "[모바일 데이터]가 해제된 상태입니다. Wi-Fi 네트워크에 연결하거나, [모바일 데이터]를 실행한 후 다시 시도하세요."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "프라이빗"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "위치"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "알 수 없음"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "확인"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "폴더 1개"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "동영상 1개"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "전체"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "디바이스"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "마지막 수정"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "표시할 컨텐츠"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "검색"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "공유"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "폴더 1개를 삭제합니다."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "삭제 중..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "카메라를 사용하여 동영상을 촬영하면 동영상이 여기에 표시됩니다."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "동영상 %d개"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "동영상"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "동영상이 없습니다"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "상세정보"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "폴더"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "목록"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "최근 추가 순"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "최근 본 항목 순"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "이름 변경"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "크기"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "정렬 방식"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "제목"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "종류"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "보기 방식"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "모든 동영상을 삭제합니다."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "폴더 %d개를 삭제합니다."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "동영상 %d개를 삭제합니다."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "이 폴더를 삭제합니다."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "폴더 %d개"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "설정"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "동영상을 재생할 수 없음"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "정렬"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "글자 크기"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "반복 설정"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "자막(CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "모든 폴더를 삭제합니다."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "가운데"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "크게"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "왼쪽"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "중간"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "오른쪽"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "작게"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "사용 중인 파일 이름입니다."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "종료"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "최대 글자 수에 도달하였습니다."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "중지"
+
+msgid "IDS_COM_SK_OK"
+msgstr "확인"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "해제"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "새로고침"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "위치"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "삭제하였습니다."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "프라이빗에서 제거"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "프라이빗으로 이동"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "입력된 내용이 없습니다."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "형식"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "통화 중에는 동영상을 재생할 수 없습니다."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "오프라인에서 사용할 수 없는 파일입니다. 네트워크 연결을 확인한 후 다시 시도하세요."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "선택한 항목을 %s(으)로 이동합니다."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "선택한 항목을 %s(으)로 이동합니다."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "제거 중..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "이동 중..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "퍼스널 저장공간으로 이동하지 못하였습니다."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "일반 저장공간으로 이동하지 못하였습니다."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "메시지"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "폴더"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "이메일"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "날짜(최근 순)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d개 선택"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "동영상 삭제"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "동영상 삭제"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "이동"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "경도"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "위도"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "카메라로 동영상을 녹화하면 동영상이 여기에 표시됩니다."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "취소"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "모두 재생 후 중지"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "현재 동영상 반복"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "모두 반복"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "해상도"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "삭제"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "모두 삭제"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "이 파일은 오디오 데이터만 지원합니다. 오디오를 재생합니다."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "이 파일은 동영상 데이터만 지원합니다. 동영상을 재생합니다."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "이름 변경"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "헤드폰"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "알 수 없음"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "오류가 발생하였습니다."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "블루투스"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "배터리가 부족합니다."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "연결하지 못하였습니다."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "파일이 존재하지 않습니다."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%s을(를) 한 번 더 사용할 수 있습니다. 다른 라이선스를 가져올까요?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "오디오 디바이스"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "추가하였습니다."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "찾기"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "추가할 수 없습니다."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "기본"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "다운로드"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "해제"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "사용"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "동영상 1개를 삭제합니다."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "바르지 않은 글자"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "검색 결과가 없습니다"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "선택"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "마지막 수정"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "완료"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "날짜"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "위도"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "이름"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "이름(가나다 순)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "동영상"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "최대 첨부파일 수(%d)를 초과하였습니다."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "모두 선택"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "디바이스 저장공간"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD 카드"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "이동"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "사용"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "공유"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "네트워크 오류가 발생하였습니다. 다시 시도하세요."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "다음 파일 자동 재생"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "진행 중..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "최대 글자 수에 도달하였습니다."
+
+msgid "IDS_COM_SK_YES"
+msgstr "예"
+
+msgid "IDS_COM_SK_NO"
+msgstr "아니요"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "삭제"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "모두 삭제"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "검색 결과가 없습니다"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "항목 선택"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "항목 선택"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "취소"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "완료"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "취소"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "삭제"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "저장 위치"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "날짜"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "동영상 선택"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi 다이렉트"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "연결 오류가 발생하였습니다."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "다운로드하였습니다."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "동기화"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "글꼴"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "설정 안 함"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "헤드폰"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%s을(를) 한 번 더 사용할 수 있습니다. 지금 시작할까요?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%s을(를) 두 번 더 사용할 수 있습니다. 지금 시작할까요?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s은(는) 현재 잠겨 있습니다. 잠금을 해제할까요?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "%s을(를) 더 이상 사용할 수 없습니다. 다른 라이선스를 가져올까요?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s 파일이 곧 만료됩니다. 다른 라이선스를 가져올까요?"
+
diff --git a/res/po/lt.po b/res/po/lt.po
new file mode 100755 (executable)
index 0000000..5fd07de
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Atsisiųsti"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Bus atsiųstas 1 aplankas."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Bus atsiųstas 1 vaizdo įrašas."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Bus atsiųsti visi aplankai."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Bus atsiųsti visi vaizdo įrašai."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Bus atsiųsta aplankų: %d."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Bus atsiųsta vaizdo įrašų: %d."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobilieji duomenys išjungti. Vietoj to prisijunkite prie „Wi-Fi“ tinklo arba įjunkite mobiliuosius duomenis ir bandykite dar kartą."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privatus"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Vieta"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Nežinomas"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Gerai"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 aplankas"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 vaizdo įrašas"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Visos"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Iš įrenginio"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Iš „Dropbox“"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Paskutinį kartą keista"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Rodytinas turinys"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Paieška"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Dalytis"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Bus ištrintas 1 aplankas."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Trinama..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kai fotoaparatu įrašysite vaizdo įrašų, jie bus rodomi čia."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d vaizdo įrašai (-ų)"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Vaizdo įrašas"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Vaizdo įrašų nėra"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Išsami informacija"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Aplankas"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Sąrašas"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Neseniai prid."
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Neseniai peržiūrėta"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Pervardyti"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Dydis"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Rūšiuoti pagal"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Pavadinimas"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tipas"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Peržiūrėti kaip"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Visi vaizdo įrašai bus ištrinti."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Bus ištrinti aplankai: %d."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Bus ištrinta vaizdo įrašų: %d."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Šis aplankas bus ištrintas."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d aplankai (-ų)"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Nustatymai"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Negalima paleisti vaizdo įrašo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Lygiavimas"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Šrifto dydis"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Kartoti nustatymą"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitrai (pasirenkami)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Bus ištrinti visi aplankai."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centruoti"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Didelis"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Kairė"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Vidutinis"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Dešinė"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mažas"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Failo pavadinimas jau naudojamas"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Uždaryti"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Pasiektas didžiausias simbolių skaičius."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stabdyti"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Gerai"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Išjungta"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Naujinti"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Vieta"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Ištrinta."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Pašalinti iš privataus"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Perkelti į asmeninį"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Įrašas tuščias."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formatas"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Pokalbio metu negalima paleisti vaizdo įrašo."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Šio failo neįmanoma pasiekti atsijungus. Patikrinkite tinklo ryšį ir bandykite dar kartą."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Pasirinktas elementas bus perkeltas į %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Pasirinkti elementai bus perkelti į %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Šalinama..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Perkeliama..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Nepavyko perkelti į asmeninę saugyklą."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Nepavyko perkelti į įprastą saugyklą."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Žinutė"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Aplankai"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "El. paštas"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Data (naujausi)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "Pasirinkta: %d"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Trinti vaizdo įrašus"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Trinti vaizdo įrašą"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Perkelti"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Ilguma"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Platuma"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Kai įrašysite vaizdo įrašus naudodami fotoaparatą, jie bus rodomi."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Atš."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stabdyti po visų"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Kartoti dabartinį"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Kartoti viską"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Raiška"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Trinti"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Trinti viską"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Šis failas palaiko tik garso duomenis. Dabar atkuriamas garsas."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Šis failas palaiko tik vaizdo duomenis. Dabar atkuriamas vaizdas."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Pervardyti"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Ausinės"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Nežinomas"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Klaida"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Senka akumuliatorius!"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Prisijungti nepavyko."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Tokio failo nėra."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%s galite naudoti dar 1 kartą. Gauti kitą licenciją?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Garso įrenginys"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Pridėta."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Skenuoti"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Negalima pridėti."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Numatytoji"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Atsisiųsti"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Išjungta"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Įjungta"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "Bus pašalintas 1 vaizdo įrašas."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Neteisingas simbolis"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Nėra paieškos rezultatų"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Pasirinkti"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Paskutinį kartą keista"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Atlikta"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Platuma"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Vardas"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Pavadinimas (A–Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Vaizdo įrašai"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Viršytas didžiausias priedų skaičius (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Rinktis viską"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Įrenginio atmintis"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD kortelė"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Perkelti"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Įjungta"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Bendrinti per"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Įvyko tinklo klaida. Bandykite dar kartą."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Autm. leisti kitą"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Apdorojama..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Pasiektas didžiausias simbolių skaičius."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Taip"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ne"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Trinti"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Trinti viską"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Rezultatų nerasta"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Pasirinkti elementą"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Pasirinkti elementų"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Atšaukti"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ATLIKTA"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ATŠAUKTI"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "IŠTRINTI"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Saugojimo vieta"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Data"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Pasirinkti vaizdo įrašą"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "„Wi-Fi Direct“"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Ryšio klaida."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Atsisiųsta."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sinchronizuoti"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Šriftas"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Nėra"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Ausinės"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%s galite naudoti dar 1 kartą. Pradėti dabar?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%s galite naudoti dar 2 kartus. Pradėti dabar?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s šiuo metu užrakintas. Atrakinti?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Nebegalite naudotis %s. Gauti kitą licenciją?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s netrukus baigs galioti. Gauti kitą licenciją?"
+
diff --git a/res/po/lv.po b/res/po/lv.po
new file mode 100755 (executable)
index 0000000..e55fde3
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Lejupielādēt"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Tiks lejupielādēta 1 mape."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Tiks lejupielādēts 1 videoklips."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Tiks lejupielādētas visas mapes."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Tiks lejupielādēti visi videoklipi."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Tiks lejupielādētas %d mapes."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Tiks lejupielādēti %d videoklipi."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobilie dati ir izslēgti. Izveidojiet savienojumu ar Wi-Fi tīklu vai ieslēdziet mobilos datus un mēģiniet vēlreiz."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privāts"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Atrašanās vieta"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Nezināms"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Labi"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 mape"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 videoklips"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Visas"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "No ierīces"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "No Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Pēdējo reizi mainīts"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Parādāmais saturs"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Meklēt"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Kopīgot"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Tiks izdzēsta 1 mape."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Dzēš..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kad būsit ierakstījis videoklipus, izmantojot kameru, tie būs redzami šeit."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videoklipi"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Nav videoklipu"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Dati"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Mape"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Saraksts"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Nesen pievien."
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Pēdējie skatītie"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Pārdēvēt"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Lielums"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Kārtot pēc"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Nosaukums"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Veids"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Skatīt kā"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Visi videoklipi tiks izdzēsti."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Tiks izdzēstas %d mapes."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videoklipi tiks izdzēsti."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Šī mape tiks izdzēsta."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d mapes"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Iestatījumi"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nevar demonstrēt video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Līdzinājums"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Fonta lielums"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Atkārtošanas iestatījums"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitri (slēptie titri)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Tiks izdzēstas visas mapes."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centrā"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Liels"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Pa kreisi"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Vidējs"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Pa labi"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mazs"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Faila nosaukums jau tiek lietots"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Aizvērt"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Sasniegts maksimālais rakstzīmju skaits."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Apturēt"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Labi"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Izslēgts"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Atsvaidz."
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Atrašanās vieta"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Izdzēsts."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Noņemt no mapes Privāti"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Pārvietot uz privāto krātuvi"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Ieraksts nav norādīts."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formāts"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Sarunas laikā nevar demonstrēt video."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Šis fails nav pieejams bezsaistē. Pārbaudiet savienojumu ar tīklu un mēģiniet vēlreiz."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Izvēlētais objekts tiks pārvietots uz %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Izvēlētie objekti tiks pārvietoti uz %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Noņem..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Pārvieto..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Neizdevās pārvietot uz privāto krātuvi."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Neizdevās pārvietot uz parasto krātuvi."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Ziņa"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Mapes"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-pasts"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Datums (jaunākais)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "Izvēlēti: %d"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Dzēst videoklipus"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Dzēst videoklipu"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Pārvietot"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Garums"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Platums"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Videoklipi tiks parādīti, kad tie būs ierakstīti ar kameru."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Atcelt"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Pārtraukt"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Atkārtot pašreizējo"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Atkārtot visu"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Izšķirtspēja"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Dzēst"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Dzēst visu"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Šis fails atbalsta tikai audio datus. Tagad atskaņo audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Šis fails atbalsta tikai video datus. Tagad demonstrē video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Pārdēvēt"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Austiņas"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Nezināms"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Kļūda."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Akumulators gandrīz tukšs."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Savienojums neizdevās."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Šāda faila nav."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Failu %s var lietot vēl 1 reizi. Vai vēlaties iegūt citu licenci?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audioierīce"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Pievienots."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Meklēt"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Nevar pievienot."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Noklusējums"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Lejupielādēt"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Izslēgts"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Ieslēgts"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "Tiks izdzēsts 1 videoklips."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Nederīga rakstzīme"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Nav meklēšanas rezultātu"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Izvēlēties"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Pēdējo reizi mainīts"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Gatavs"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datums"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Platums"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Vārds"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nosaukums (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Pārsniegts maksimālais pielikumu skaits (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Izvēlēties visu"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Ierīces krātuve"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD karte"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Pārvietot"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Ieslēgts"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Kopīgot, izmantojot"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Radās tīkla kļūda. Mēģiniet vēlreiz."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Autom.dem. nākamo"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Notiek apstrāde..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Sasniegts maksimālais rakstzīmju skaits."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Jā"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nē"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Dzēst"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Dzēst visu"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Rezultāta nav"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Izvēlieties objektu"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Izvēlēties objektus"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Atcelt"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "GATAVS"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ATCELT"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "DZĒST"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Krātuves atrašanās vieta"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Datums"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Izvēlēties video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Savienojuma kļūda."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Lejupielādēts."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sinhronizēt"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Fonts"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Nav"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Austiņas"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Failu %s var lietot vēl 1 reizi. Vai sākt tūlīt?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Failu %s var lietot vēl 2 reizes. Vai sākt tūlīt?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "Fails %s pašlaik ir bloķēts. Vai atbloķēt?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Failu %s vairs nevar lietot. Vai vēlaties iegūt citu licenci?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "Failam %s drīz beigsies derīguma termiņš. Vai vēlaties iegūt citu licenci?"
+
diff --git a/res/po/mk.po b/res/po/mk.po
new file mode 100755 (executable)
index 0000000..722fac5
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Преземи"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 папка ќе се преземе."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 видео ќе се преземе."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Ќе се преземат сите папки."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Ќе се преземат сите видеа."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Ќе се преземат %d папки."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Ќе се преземат %d видеа."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Мобилните податоци се исклучени. Поврзете се со мрежа Wi-Fi или вклучете Мобилни податоци и обидете се повторно."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Приватно"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Локација"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Непознато"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 папка"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 видео"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Сите"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Од уред"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Од Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Последно менување"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Содржина за приказ"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Пребарување"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Сподели"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 папка ќе се избрише."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Се брише..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Откако ќе снимите видеа со камерата, ќе се прикажат тука."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d видеа"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Видео-запис"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Нема видеа"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Детали"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Папка"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Листа"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Послед.додадено"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Последни разгледани"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Преименувај"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Големина"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Подреди според"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Наслов"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Вид"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Преглед како"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Сите видеа ќе се избришат."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d папки ќе се избришат."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d видеа ќе се избришат."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Папката ќе се избрише."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d папки"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Опции"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Не може да се емитува видеото"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Порамнување"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Големина на букви"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Поставка за повторување"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Титли (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Сите папки ќе се избришат."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Центар"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Големи"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Лево"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Средни"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Десно"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Мали"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Името на фајлот се користи."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Затвори"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Достигнат е максималниот број знаци."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Запри"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Исклучено"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Обнови"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Локација"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Избришано."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Отстрани од Приватно"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Премести во Приватно"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Записот е празен."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Формат"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Не може да се пушти видео за време на разговор."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Овој фајл е недостапен без мрежа. Проверете го мрежното поврзување и обидете се повторно."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Избраниот запис ќе се премести во %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Избраните записи ќе се преместат во %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Отстранување..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Се преместува..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Не можеше да се премести во лична меморија."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Не можеше да се премести во нормална меморија."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Порака"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Папки"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Е-пошта"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Датум (најнов)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "Избрани се %d"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Избриши видеа"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Избриши видео-запис"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Премести"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Географска должина"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Географска широчина"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Откако ќе снимите видеа со камерата, ќе се прикажат видеа."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Откажи"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Сопри после сѐ"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Повт. моментална"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Повторувај сè"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Резолуција"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Бриши"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Избриши сè"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Овој фајл поддржува само аудио податоци. Се емитува звук."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Овој фајл поддржува само видео податоци. Се емитува видео."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Преименувај"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Слушалки"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Непознато"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Грешка."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Батеријата е празна."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Неуспешно поврзување."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Фајлот не постои."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Може да го употребите %s уште 1 пат. Да се земе друга лиценца?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Аудио уред"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Додадено."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Скенирај"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Не може да се додаде."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Основно"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Преземи"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Исклучено"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Вклучено"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 видео ќе се избрише."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Погрешен знак"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Нема резултати од пребарувањето"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Избери"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Последно менување"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Готово"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Датум"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Географска широчина"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Име"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Име (А-Ш)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Видео-записи"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Надминат е максималниот број прилози (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Избери ги сите"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Меморија на уредот"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-картичка"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Премести"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Вклучено"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Сподели преку"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Дојде до мрежна грешка. Обидете се повторно."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Следното автом."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Обработување..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Достигнат е максималниот број знаци."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Да"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Не"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Избриши"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Избриши сè"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Нема резултат од пребарувањето"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Избери запис"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Изберете записи"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Откажи"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ГОТОВО"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ОТКАЖИ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ИЗБРИШИ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Место за меморирање"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Датум"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Избери видео"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Грешка при поврзување."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Преземено."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Синхронизирај"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Фонт"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Ништо"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Слушалки"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Може да го употребите %s уште 1 пат. Да се почне сега?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Може да го употребите %s уште 2 пати. Да се почне сега?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s е заклучено моментално. Да се отклучи?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Не може веќе да го користите %s. Да се земе друга лиценца?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s ќе застари. Да се земе друга лиценца?"
+
diff --git a/res/po/nb.po b/res/po/nb.po
new file mode 100755 (executable)
index 0000000..e74182d
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Last ned"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 mappe blir lastet ned."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video blir lastet ned."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Alle mapper blir lastet ned."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Alle videoer blir lastet ned."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d mapper blir lastet ned."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d videoer blir lastet ned."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobildata er slått av. Koble til Wi-Fi-nettverk i stedet, eller slå på mobildata, og prøv på nytt."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privat"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Posisjon"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Ukjent"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 mappe"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Alle"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Fra enhet"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Fra Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Sist endret"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Innhold du vil vise"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Søk"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Del"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 mappe blir slettet."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Sletter..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Når du har spilt inn videoer med kameraet, vises de her."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videoer"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Ingen videoer"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detaljer"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Mappe"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Liste"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Nylig lagt til"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Nylig vist"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Endre navn"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Størrelse"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sorter etter"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Tittel"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Type"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Vis som"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Alle videoer vil bli slettet."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d mapper vil bli slettet."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videoer vil bli slettet."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Denne mappen vil bli slettet."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d mapper"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Innstillinger"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Kan ikke spille av video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Justering"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Skriftstørrelse"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Gjentakelsesinnstilling"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Undertekster (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Alle mapper vil bli slettet."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Midtstill"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Stor"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Venstre"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Middels"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Høyre"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Liten"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Filnavnet er allerede i bruk."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Lukk"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Nådd maksimalt antall tegn."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stopp"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Av"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Oppdater"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Posisjon"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Slettet."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Fjern fra Privat"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Flytt til Privat"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Oppføringen er tom."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Kan ikke spille av video under samtale."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Denne filen er ikke tilgjengelig i frakoblet modus. Kontroller nettverkstilkoblingen og prøv på nytt."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Det valgte elementet vil bli flyttet til %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "De valgte elementene vil bli flyttet til %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Tar bort..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Flytter..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Kunne ikke flytte til personlig lagring."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Kunne ikke flytte til normal lagring."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Melding"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Mapper"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-post"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Dato (nyeste)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d valgt"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Slett videoer"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Slett video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Flytt"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Lengdegrad"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Breddegrad"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Når du har spilt inn videoer med kameraet, vises videoene dine."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Avbryt"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stopp etter alle"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Gjenta gjeldende"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Gjenta alle"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Oppløsning"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Slett"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Slett alle"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Bare lyddata støttes av denne filen. Spiller nå av lyd."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Bare videodata støttes av denne filen. Spiller nå av video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Endre navn"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Hodetelefoner"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Ukjent"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Feil."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Lavt batterinivå."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Kunne ikke koble til."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Filen eksisterer ikke."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Du kan bruke %s 1 gang til. Skaffe en annen lisens?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Lydenhet"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Lagt til."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Søk"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Kan ikke legge til."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Standard"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Last ned"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Av"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "På"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video blir slettet."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Ugyldig tegn"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Ingen søkeresultater"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Velg"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Sist endret"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dato"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Breddegrad"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Navn"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Navn (A–Å)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Maksimalt antall vedlegg (%d) er oversteget."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Merk alt"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Enhetsminne"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-kort"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Flytt"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "På"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Del via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Det har oppstått en nettverksfeil. Prøv på nytt."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Autospill neste"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Behandler..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maksimalt antall tegn er nådd."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Ja"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nei"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Slett"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Slett alle"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Ingen søketreff"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Velg objekt"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Merk elementer"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Avbryt"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "FULLFØRT"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "AVBRYT"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "SLETT"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Lagringssted"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Dato"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Velg video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Tilkoblingsfeil."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Nedlastet."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synkroniser"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Skrifttype"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Ingen"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Hodetelefoner"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Du kan bruke %s 1 gang til. Starte nå?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Du kan bruke %s 2 ganger til. Starte nå?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s er for tiden låst. Låse opp?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Du kan ikke bruke %s flere ganger. Skaffe en annen lisens?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s er i ferd med å utløpe. Skaffe en annen lisens?"
+
diff --git a/res/po/nl.po b/res/po/nl.po
new file mode 100755 (executable)
index 0000000..76019fb
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Downloaden"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 map wordt gedownload."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video wordt gedownload."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Alle mappen worden gedownload."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Alle video's worden gedownload."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d mappen worden gedownload."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d video's worden gedownload."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobiele gegevens zijn uitgeschakeld. Maak in plaats daarvan verbinding met een Wi-Fi-netwerk of schakel Mobiele gegevens in en probeer het opnieuw."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privé"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Locatie"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Onbekend"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 map"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Alles"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Van apparaat"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Van Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Laatst gewijzigd op"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Weer te geven inhoud"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Zoeken"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Delen"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 map wordt verwijderd."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Verwijderen..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nadat u video´s hebt opgenomen met de camera, worden ze hier getoond."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d video's"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Geen video's"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Gegevens"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Map"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Lijst"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Onlangs toegev"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Onlangs bekeken"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Naam wijzigen"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Grootte"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sorteren op"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titel"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Type"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Weergeven als"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Alle video´s worden verwijderd."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d mappen worden verwijderd."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d video´s worden verwijderd."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Deze map wordt verwijderd."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d mappen"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Instellingen"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Kan deze video niet afspelen"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Uitlijning"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tekstgrootte"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Instelling herhalen"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Ondertiteling"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Alle mappen worden verwijderd."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Midden"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Groot"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Links"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Gemiddeld"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Rechts"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Klein"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Bestandsnaam is al in gebruik."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Sluiten"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximumaantal tekens bereikt."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stoppen"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Uit"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Vernieuw"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Locatie"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Verwijderd."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Verwijderen uit Privé"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Verplaatsen naar Privé"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Geen gegevens."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Indeling"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Kan video niet afspelen tijdens gesprek."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Dit bestand is offline niet beschikbaar. Controleer de netwerkverbinding en probeer het opnieuw."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Het geselecteerde item wordt verplaatst naar %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "De geselecteerde items worden verplaatst naar %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Verwijderen..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Verplaatsen..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Kan niet verplaatsen naar persoonlijke opslag."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Kan niet verplaatsen naar normale opslag."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Bericht"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Mappen"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Datum (recentst)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d geselecteerd"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Video´s verwijderen"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Video verwijderen"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Verplaatsen"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Lengtegraad"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Breedtegraad"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Nadat u video´s hebt genomen met de camera, worden de video´s getoond."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Annul."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop na alles"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Huidige herhalen"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Alles herhalen"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolutie"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Wissen"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Alles verwijderen"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Alleen audiogegevens ondersteund door dit bestand. Speelt nu audio af."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Alleen videogegevens ondersteund door dit bestand. Speelt nu video af."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Naam wijzigen"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Koptelefoons"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Onbekend"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Fout."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Batterij bijna leeg."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Verbinding mislukt."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Dit bestand bestaat niet."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "U kunt %s nog 1 keer gebruiken. Nieuwe licentie aanvragen?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audioapparaat"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Toegevoegd."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Scannen"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Kan niet toevoegen."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Standaard"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Downloaden"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Uit"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Aan"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video wordt verwijderd."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Ongeldig teken"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Geen zoekresultaten"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Selecteren"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Laatst gewijzigd op"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Gereed"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Breedtegraad"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Naam"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Naam (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Video's"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Maximumaantal bijlagen (%d) overschreden."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Alles selecteren"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Apparaatopslag"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-kaart"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Verplaatsen"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Aan"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Delen via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Er is een netwerkfout opgetreden. Probeer het opnieuw."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Volgende autom. afspelen"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Verwerken..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximumaantal tekens bereikt."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Ja"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nee"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Wissen"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Alles verwijderen"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Geen zoekresultaten"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Item selecteren"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Items selecteren"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Annuleer"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "GEREED"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULEREN"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "VERWIJDEREN"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Opslaglocatie"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Datum"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Selecteer video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Verbindingsfout."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Gedownload."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synchroniseren"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Lettertype"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Geen"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Koptelefoons"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "U kunt %s nog 1 keer gebruiken. Nu beginnen?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "U kunt %s nog 2 keer gebruiken. Nu beginnen?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s is nu vergrendeld. Ontgrendelen?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "U kunt %s niet meer gebruiken. Nieuwe licentie aanvragen?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s verloopt binnenkort. Nieuwe licentie aanvragen?"
+
diff --git a/res/po/pl.po b/res/po/pl.po
new file mode 100755 (executable)
index 0000000..5d45837
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Pobierz"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 katalog zostanie pobrany."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 film zostanie pobrany."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Wszystkie katalogi zostaną pobrane."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Wszystkie filmy zostaną pobrane."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Zostanie pobranych katalogów: %d."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Zostanie pobranych filmów: %d."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Funkcja Dane komórkowe jest wyłączona. Połącz się z siecią Wi-Fi lub włącz funkcję Dane komórkowe i spróbuj ponownie."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Prywatne"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Lokalizacja"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Nieznane"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "Katalogów: 1"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "Filmów: 1"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Wszystkie"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Z urządzenia"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Z Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Ostatnia modyfikacja"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Zawartość do wyświetlenia"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Szukaj"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Udostępniaj"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Usuniętych zostanie katalogów: 1."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Usuwanie..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Filmy zostaną tutaj wyświetlone po ich nagraniu za pomocą aparatu."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "Filmów: %d"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Film"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Brak filmów"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Szczegóły"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Katalog"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Lista"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Ostatnio dodane"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Ostatnio wyświetlane"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Zmień nazwę"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Rozmiar"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sortuj według"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Tytuł"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Typ"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Widok"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Wszystkie filmy zostaną usunięte."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Zostanie usuniętych katalogów: %d."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Filmów wideo do usunięcia: %d."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Ten katalog zostanie usunięty."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "Katalogów: %d"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ustawienia"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nie można odtworzyć filmu"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Wyrównanie"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Rozmiar tekstu"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Ustawienie powtarzania"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Napisy (kodowane)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Wszystkie katalogi zostaną usunięte."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Pośrodku"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Duży"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Do lewej"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Średnia"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Do prawej"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mały"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Nazwa pliku już w użyciu."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Zamknij"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Osiągnięto maksymalną liczbę znaków."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stop"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Wyłączone"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Odśwież"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Miejsce"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Usunięto."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Usuń z Prywatnych"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Przenieś do Prywatnych"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Wpis jest pusty."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Nie można odtwarzać wideo podczas połączenia."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Ten plik jest niedostępny w trybie offline. Sprawdź połączenie sieciowe i spróbuj ponownie."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Wybrany element zostanie przeniesiony do lokalizacji %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Wybrane elementy zostaną przeniesione do lokalizacji %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Usuwanie..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Przenoszenie..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Przeniesienie do pamięci osobistej nie powiodło się."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Przeniesienie do pamięci zwykłej nie powiodło się."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Wiadom."
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Katalogi"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Data (najnowsze)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "Wybrano %d"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Usuwanie filmów"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Usuń film"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Przenieś"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Długość geogr."
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Szerokość geogr."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Filmy zostaną wyświetlone po ich nagraniu za pomocą Aparatu."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Anul."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Zatrzymaj po wszyst."
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Powtórz bieżący"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Powtórz wszystkie"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rozdzielczość"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Usuń"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Usuń wszystko"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Ten plik obsługuje tylko dane audio. Trwa odtwarzanie dźwięku."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Ten plik obsługuje tylko dane wideo. Trwa odtwarzanie wideo."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Zmień nazwę"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Słuchawki"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Nieznane"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Błąd"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Bateria rozładowana."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Błąd łączenia"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Plik nie istnieje."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Możesz użyć pliku %s jeszcze raz. Uzyskać kolejną licencję?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Urządzenie audio"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Dodano."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Skanuj"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Nie można dodać."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Domyślnie"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Pobierz"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Wyłącz"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Włącz"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "Zostanie usuniętych filmów: 1."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Nieprawidłowy znak"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Brak wyników wyszukiwania"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Wybór"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Ostatnia modyfikacja"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Gotowe"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Szerokość geogr."
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nazwa"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nazwa (od A do Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Filmy"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Przekroczono maksymalną liczbę załączników (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Zaznacz wszystko"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Pamięć urządzenia"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Karta pamięci"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Przenieś"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Włączone"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Udostępnij przez"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Wystąpił błąd sieci. Spróbuj później."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Autom. odt. nast."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Przetwarzanie..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Osiągnięto maksymalną liczbę znaków."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Tak"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nie"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Usuń"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Usuń wszystko"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Brak wyników"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Wybierz element"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Wybierz elementy"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Anuluj"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "GOTOWE"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANULUJ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "USUŃ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Położenie pamięci"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Data"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Wybierz film"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Błąd połączenia"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Pobrano."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synchronizuj"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Czcionka"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Brak"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Słuchawki"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Możesz użyć pliku %s jeszcze raz. Rozpocząć teraz?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Możesz użyć pliku %s jeszcze 2 razy. Rozpocząć teraz?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "Plik %s jest obecnie zablokowany. Odblokować?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Nie możesz już używać pliku %s. Uzyskać kolejną licencję?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s niedługo wygaśnie. Uzyskać kolejną licencję?"
+
diff --git a/res/po/pt_BR.po b/res/po/pt_BR.po
new file mode 100755 (executable)
index 0000000..4c7c852
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Baixar"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 pasta será baixada."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 vídeo será baixado."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Todas as pastas serão baixadas."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Todos os vídeos serão baixados."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d pastas serão baixadas."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d vídeos serão baixados."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Dados móveis desligados. Conecte-se a uma rede Wi-Fi em seu lugar ou ligue os Dados móveis e tente novamente."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privado"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Local"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Desconhecido"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 pasta"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 vídeo"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Todos"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Do dispositivo"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Do Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Última modificação"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Conteúdo para exibição"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Pesquisar"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Compartilhar"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 pasta será excluída."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Excluindo..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Após gravar vídeos usando a câmera, eles serão exibidos aqui."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d vídeos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Vídeo"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Nenhum vídeo"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalhes"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Pasta"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Lista"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Recém adicion."
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Recém visualizados"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Renomear"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Tamanho"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Ordenar por"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Título"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tipo"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Visualizar como"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Todos os vídeos serão excluídos."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d pastas serão apagadas."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d vídeos serão excluídos."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Esta pasta será apagada."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d pastas"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Configurações"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Não é possível reprod. vídeo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alinhamento"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tamanho da fonte"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repetir configuração"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Legendas"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Todas as pastas serão excluídas."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centralizar"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Esquerdo"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Média"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Direito"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pequena"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "O nome do arquivo já está em uso."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Fechar"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Número máximo de caracteres atingido."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Parar"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Desativado"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Atualizar"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Local"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Excluído."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Remover do Modo Privado"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Mover para o Modo Privado"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Entrada vazia."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formato"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Impossível reproduzir vídeo durante chamada."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Este arquivo não está disponível offline. Verifique a conexão de rede e tente novamente."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "O item selecionado será movido para %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Os itens selecionados serão movidos para %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "A remover..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Movendo…"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Falha ao mover para o armazenamento pessoal."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Falha ao mover para o armazenamento normal."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mensagem"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Pastas"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Data (+ recente)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d selecionado(s)"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Excluir vídeos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Excluir vídeo"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Mover"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Após gravar vídeos usando a câmera, os vídeos serão exibidos."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Parar após todos"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir atual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir todos"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolução"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Apagar"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Apagar tudo"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Somente dados de áudio são suportados por este arquivo. Agora reproduzindo áudio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Somente dados de vídeo são suportados por este arquivo. Agora reproduzindo vídeo."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Renomear"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Fones de ouvido"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Desconhecido"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Erro"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Bateria fraca."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Falha de conexão."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Este arquivo não existe."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Você pode usar %s mais 1 vez. Obter outra licença?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Dispositivo de áudio"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Adicionado."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Pesquisar"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Impossível adicionar."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Padrão"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Baixar"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Desativado"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Ativado"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 vídeo será excluído."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Caractere inválido"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Nenhum resultado encontrado"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Selecionar"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Última modificação"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nome"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nome (A a Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Vídeos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Número máximo de anexos (%d) excedido."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Selecionar tudo"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Armazenamento do dispositivo"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Cartão SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Mover"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Ativado"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Compartilhar via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ocorreu um erro de rede. Tente novamente."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Repr. prox. autom."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Processando…"
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Número máximo de caracteres atingido."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Sim"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Não"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Excluir"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Apagar tudo"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Sem resultado da busca"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Selecionar item"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Selecionar itens"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "CONCLUÍDO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "EXCLUIR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Local de armazenamento"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Data"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Selecionar vídeo"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Erro de conexão."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Baixado."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sincronizar"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Fonte"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Desativado"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Fones de ouvido"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Você pode usar %s mais 1 vez. Iniciar agora?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Você pode usar %s mais 2 vezes. Iniciar agora?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s está bloqueado atualmente. Desbloquear?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Você não pode usar %s mais nenhuma vez. Obter outra licença?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s está para expirar. Obter outra licença?"
+
diff --git a/res/po/pt_PT.po b/res/po/pt_PT.po
new file mode 100755 (executable)
index 0000000..43ac06b
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Transferir"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 pasta será transferida."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 vídeo será transferido."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Todas as pastas serão transferidas."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Todos os vídeos serão transferidos."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d pastas serão transferidas."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d vídeos serão transferidos."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Dados móveis desligados. Em alternativa, ligue-se a uma rede Wi-Fi ou ligue os Dados móveis e tente de novo."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privado"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Localização"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Desconhecido"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 pasta"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 vídeo"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Tudo"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Do dispositivo"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Da Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Última modificação"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Conteúdo a apresentar"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Procurar"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Enviar"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 pasta será eliminada."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "A eliminar..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Depois de gravar vídeos utilizando a câmara, os vídeos serão mostrados aqui."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d vídeos"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Vídeo"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Sem vídeos"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalhes"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Pasta"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Lista"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Adic. recentemente"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Visto recentemente"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Mudar nome"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Tamanho"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Ordenar por"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Título"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tipo"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Ver como"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Todos os vídeos serão eliminados."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d pastas serão eliminadas."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d vídeos serão eliminados."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Esta pasta será eliminada."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d pastas"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Definições"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Impossível reproduzir vídeo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alinhamento"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tamanho de fonte"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repetir definição"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Legendas (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Todas as pastas serão eliminadas."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centro"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Esquerda"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Média"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Direita"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pequeno"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Nome ficheiro já utilizado."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Fechar"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Número máximo de caracteres atingido."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Parar"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Desligado"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Actualizar"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Localização"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Eliminado."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Remover de Privado"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Mover para Privado"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Entrada vazia."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formato"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Impossível reproduzir vídeo durante chamada."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Este ficheiro está indisponível offline. Verifique a sua ligação de rede e tente novamente."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "O item seleccionado será movido para %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Os itens seleccionados serão movidos para %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "A remover..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "A mover..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Falha na mudança para armazenamento pessoal."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Falha na mudança para armazenamento normal."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mensagem"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Pastas"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Data (+ recente)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d seleccionado(s)"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Eliminar vídeos"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Apagar vídeo"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Mover"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Depois de gravar vídeos utilizando a câmara, os vídeos serão mostrados."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Parar depois de tudo"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir tudo"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolução"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Elim."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Eliminar tudo"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Só são suportados por este ficheiro dados de áudio. A reproduzir áudio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Só são suportados por este ficheiro dados de vídeo. A reproduzir vídeo."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Mudar nome"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Auscultadores"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Desconhecido"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Erro"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Bateria fraca."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Falha na ligação."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Ficheiro inexistente."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Pode utilizar %s mais 1 vez. Obter outra licença?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Dispositivo de áudio"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Adicionado."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Pesquisar"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Impossível adicionar."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Padrão"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Transferir"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Desligado"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Ligado"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 vídeo será eliminado."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Carácter inválido"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Nenhuns resultados de procura"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Seleccionar"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Última modificação"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Concluir"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nome"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nome (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Vídeos"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Número máximo de anexos (%d) excedido."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Seleccionar tudo"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Armazenamento do dispositivo"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Cartão SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Mover"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Ligado"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Partilhar via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ocorreu um erro de rede. Tente novamente."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Reprodução automática"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "A processar..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Número máximo de caracteres atingido."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Sim"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Não"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Eliminar tudo"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "S/ resul. pesq."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Seleccionar item"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Seleccionar itens"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "CONCLUÍDO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ELIMINAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Localização armazenamento"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Data"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Seleccionar vídeo"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Erro de ligação."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Transferido."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sincronizar"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Fonte"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Desligado"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Auscultadores"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Pode utilizar %s mais 1 vez. Iniciar agora?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Pode utilizar %s mais 2 vezes. Iniciar agora?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s está actualmente bloqueado. Desbloquear?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Já não pode utilizar %s mais vezes. Obter outra licença?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s está prestes a expirar. Obter outra licença?"
+
diff --git a/res/po/ro.po b/res/po/ro.po
new file mode 100755 (executable)
index 0000000..6c35ed1
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Descărcaţi"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 folder va fi descărcat."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 videoclip va fi descărcat."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Toate folderele vor fi descărcate."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Toate videoclipurile vor fi descărcate."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d foldere vor fi descărcate."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d videoclipuri vor fi descărcate."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Datele mobile sunt dezactivate. Conectaţi-vă în schimb la o reţea Wi-Fi sau activaţi Datele mobile şi încercaţi din nou."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Private"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KO"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Locaţie"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MO"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Necunoscut"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 director"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 videoclip"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Toate"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "De pe dispozitiv"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Din Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Ultima modificare"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Conţinut de afişat"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Căutare"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Partajaţi"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 folder va fi şters."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Se şterge..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "După ce înregistraţi videoclipuri utilizând camera, acestea se vor afişa aici."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videoclipuri"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Videoclip"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Niciun videoclip"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalii"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Folder"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Listă"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Adăugate recent"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Vizualizate recent"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Redenumire"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Dimensiune"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sortare după"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titlu"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tip"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Vizualizare ca"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Toate videoclipurile vor fi şterse."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d foldere vor fi şterse."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videoclipuri vor fi şterse."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Acest folder va fi şters."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d directoare"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Setări"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videoclipul nu poate fi redat"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Aliniere"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Dimensiune font"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Setare repetare"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitrări (complexe)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Toate folderele vor fi şterse."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centru"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Mare"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Stânga"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Mediu"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Dreapta"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mic"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Numele de fişier este deja utilizat."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Închidere"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Adăugare la marcaje"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Oprire"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Oprit"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Reîncărc."
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Locaţie"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Şters"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Eliminare din Private"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Mutare în Private"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Locaţie liberă"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formatare"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Imposibil de redat videoclipul în timpul apelului"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Acest fişier nu este disponibil offline. Verificaţi conexiunea la reţea şi încercaţi din nou."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Elementul selectat va fi mutat în %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Elementele selectate vor fi mutate în %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Eliminare..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Mutare"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Nu s-a putut muta în spaţiul de stocare personal."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Nu s-a putut muta în spaţiul de stocare normal."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mesaj"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Foldere"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Dată (recente)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d selectate"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Ştergere videoclipuri"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Ştergeţi videoclipul"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Mutare"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitudine"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitudine"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "După ce înregistraţi videoclipuri utilizând camera, se vor afişa videoclipurile."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Anul."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Oprire după toate"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetare actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetare globală"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rezoluţie"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Şterg."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Ştergere toate"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Doar datele audio sunt acceptate de acest fişier. Se redă conţinut audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Doar datele video sunt acceptate de acest fişier. Se redă conţinut video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Redenumire"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Căşti"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Necunoscut"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Eroare"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Baterie descărcată"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Conexiune nereuşită"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Acest fişier nu există."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Puteţi utiliza %s încă 1 dată. Obţineţi altă licenţă?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Dispozitiv audio"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Adăugat"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Căutare"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Imposibil de adăugat"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Implicit"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Descărcare"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Oprit"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Pornit"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 videoclip va fi şters."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Caracter nevalid"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Nu există rezultate ale căutării"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Selectare"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Ultima modificare"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Efectuat"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dată"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitudine"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nume"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nume (de la A la Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videoclipuri"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "S-a depăşit numărul maxim de ataşări (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Selectare totală"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Spaţiu stocare dispozitiv"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Card SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Mutare"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Pornit"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Partajare prin"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "A apărut o eroare de reţea. Încercaţi din nou."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Redare auto. urm."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Se procesează..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "A fost atins numărul maxim de caractere."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Da"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nu"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Ştergere"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Ştergere toate"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Nici un rezultat al căutării"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Selectare element"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Selectare elemente"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Anulare"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "EFECTUAT"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANULARE"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ŞTERGERE"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Locaţie stocare"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Dată"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Selectare videoclip"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Eroare de conectare"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KO"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MO"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Descărcat"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sincronizare"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Font"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Niciuna"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Căşti"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Puteţi utiliza %s încă 1 dată. Începeţi acum?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Puteţi utiliza %s de încă 2 ori. Începeţi acum?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s este momentan blocat. Deblocaţi?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Nu mai puteţi utiliza %s. Obţineţi altă licenţă?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s este pe cale să expire. Obţineţi altă licenţă?"
+
diff --git a/res/po/ru_RU.po b/res/po/ru_RU.po
new file mode 100755 (executable)
index 0000000..529c220
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Загрузить"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Будет загружена 1 папка."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Будет загружено 1 видео."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Будут загружены все папки."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Будут загружены все видео."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Будет загружено папок: %d."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Будет загружено видео: %d."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Мобильные данные включены. Подключитесь к сети Wi-Fi или включите мобильные данные и повторите попытку."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Личное"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "б"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Гб"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "КБ"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Местоположение"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "МБ"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Неизвестно"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "ОК"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 папка"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 видео"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Все"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "С устройства"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "С Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Последнее изменение"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Содержимое для просмотра"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Поиск"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Отправить"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 папка будет удалена."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Удаление..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Здесь будут отображаться видеозаписи, сделанные с помощью камеры."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "Видеозаписей: %d"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Видео"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Нет видео"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Свойства"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Папка"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Список"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Недав. добавл."
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Недавно просмотренные"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Переименовать"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Размер"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Сортировать по"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Название"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Тип"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Вид"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Все видео будут удалены."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Папки (%d) будут удалены."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Видео (%d) будут удалены."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Эта папка будет удалена."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "Папки: %d"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Невозможно воспроизвести видео"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Выравнивание"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Размер шрифта"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Параметры повторения"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитры"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Все папки будут удалены."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "По центру"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Крупный"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Слева"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Средний"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Справа"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Мелкий"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Имя файла уже используется"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Закрыть"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Достигнуто максимальное число символов."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Стоп"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Выключено"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Обновить"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Местоположение"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Удалено."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Удалить из приватного режима"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Добавить в приватный режим"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Пустая запись."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Формат"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Воспроизведение видео во время вызова невозможно."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Файл недоступен в автономном режиме. Проверьте подключение к сети и повторите попытку"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Выбранный элемент будет перемещен в %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Выбранные элементы будут перемещены в %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Удаление..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Перемещение..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Не удалось переместить в личное хранилище."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Не удалось переместить в обычное хранилище."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Сообщение"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Папки"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Эл. почта"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Дата (последние)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "Выбрано: %d"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Удалить видео"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Удалить видеозапись"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Переместить"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Долгота"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Широта"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Здесь будут отображаться видео, снятые с помощью камеры."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Отмена"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Останов. после всех"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Повторить текущее"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Повторять все"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Разрешение"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Удалить"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Удалить все"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Только звук, поддерживаемый этим файлом. Текущий воспроизводимый аудиофайл."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Только видео, поддерживаемое этим файлом. Текущий воспроизводимый видеофайл."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Переименовать"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Наушники"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Неизвестно"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Ошибка"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Аккумулятор разряжен"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Сбой при подключении."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Файл не существует."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Вы можете использовать %s еще 1 раз. Получить другую лицензию?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Звуковое устройство"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Добавлено."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Поиск"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Не удалось добавить."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "По умолчанию"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Загрузить"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Выключено"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Включено"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 видеозапись будет удалена."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Недопустимый символ"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Нет результатов поиска"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Выбрать"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Последнее изменение"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Готово"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Дата"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Широта"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Имя"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Имя (от А до Я)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Видео"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Превышено максимальное число вложений (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Выбрать все"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Память устройства"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Карта памяти SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Переместить"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Включено"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Отправить через"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Произошла ошибка сети. Повторите попытку."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Автопереход"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Обработка..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Достигнуто максимальное число символов."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Да"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Нет"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Удалить"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Удалить все"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Нет результатов"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Выберите элемент"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Выберите элементы"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Отмена"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ГОТОВО"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ОТМЕНА"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "УДАЛИТЬ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Место хранения"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Дата"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Выберите видео"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Ошибка подключения"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "КБ"
+
+msgid "IDS_COM_BODY_B"
+msgstr "б"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "МБ"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "Гб"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Загружено."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Синхронизация"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Шрифт"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Нет"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Наушники"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Вы можете использовать %s еще 1 раз. Запустить?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Вы можете использовать %s еще 2 раза. Запустить?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "Файл %s сейчас заблокирован. Разблокировать?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Вы больше не можете использовать %s. Получить другую лицензию?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "Срок %s подходит к концу. Получить другую лицензию?"
+
diff --git a/res/po/sk.po b/res/po/sk.po
new file mode 100755 (executable)
index 0000000..dec2717
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Stiahnuť"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Stiahne sa 1 priečinok."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Stiahne sa 1 video."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Stiahnu sa všetky priečinky."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Stiahnu sa všetky videá."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Vykoná sa stiahnutie %d priečinkov."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Vykoná sa stiahnutie %d videí."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobilné dátové pripojenie je vypnuté. Pripojte sa namiesto toho k sieti Wi-Fi alebo zapnite mobilné dátové pripojenie a skúste to znova."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Súkromné"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "GPS"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Neznáme"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 priečinok"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Všetky"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Zo zariadenia"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Zo služby Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Naposledy upravené"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Obsah na zobrazenie"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Vyhľadávanie"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Zdieľať"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Odstráni sa 1 priečinok."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Odstraňuje sa..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Po nahratí videí použitím fotoaparátu sa zobrazia tu."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "Počet videí: %d"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Žiadne videá"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Podrobnosti"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Priečinok"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Zoznam"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Naposl. pridané"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Nedávno zobrazené"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Premenovať"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Veľkosť"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Zoradiť podľa"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Názov"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Typ"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Zobraziť ako"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Všetky videá sa odstránia."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d priečinky sa odstránia."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Odstránia sa videá v počte %d."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Tento priečinok sa odstráni."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "Počet priečinkov: %d"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Nastavenia"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nedá sa prehrať video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Zarovnanie"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Veľkosť písma"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Nastavenie opakovania"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titulky (skryté)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Všetky priečinky sa odstránia."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Stred"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Veľké"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Vľavo"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Stredné"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Vpravo"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Malé"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Názov súboru sa už používa."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Zavrieť"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Bol dosiahnutý maximálny počet znakov."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stop"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Vyp."
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Aktualizovať"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "GPS"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Odstránené."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Odstrániť z priečinka Súkromné"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Premiestniť do priečinka Súkromné"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Prázdna položka."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formát"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Počas hovoru sa nedá prehrávať video."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Tento súbor nie je k dispozícii v režime offline. Skontrolujte sieťové pripojenie a skúste to znova."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Vybratá položka sa premiestni do priečinka %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Vybraté položky sa premiestnia do priečinka %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Odstraňovanie..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Presúvanie..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Nepodarilo sa premiestniť do osobného úložného priestoru."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Nepodarilo sa premiestniť do normálneho úložného priestoru."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Správa"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Priečinky"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Dátum (najnovšie)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "Vybraté: %d"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Odstrániť videá"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Odstrániť video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Premiestniť"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Zemepisná dĺžka"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Zemepisná šírka"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Po nahratí videí použitím fotoaparátu sa zobrazia videá."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Zruš."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Zastaviť po všetkých"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Opakovať aktuálne"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Opakovať všetko"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rozlíšenie"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Vymaz."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Odstrániť všetko"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Tento súbor podporuje iba zvukové údaje. Teraz sa prehráva zvuk."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Tento súbor podporuje iba obrazové údaje. Teraz sa prehráva video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Premenovať"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Slúchadlá"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Neznáme"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Chyba."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Batéria vybitá."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Pripojenie sa nepodarilo."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Súbor neexistuje."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Súbor %s môžete použiť ešte 1 raz. Získať ďalšiu licenciu?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Zvukové zariadenie"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Pridané."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Vyhľadať"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Nedá sa pridať."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Predvolený"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Stiahnuť"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Vyp."
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Zap."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video sa odstráni."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Neplatný znak"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Žiadne výsledky vyhľadávania"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Vyberte"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Naposledy upravené"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Hotovo"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dátum"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Zemepisná šírka"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Meno"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Názov (A – Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videá"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Prekročil sa maximálny počet príloh (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Vybrať všetko"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Úložisko zariadenia"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Karta SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Presunúť"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Zap."
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Zdieľať cez"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Vyskytla sa chyba siete. Skúste to znova."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Aut. preh. ďalšiu"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Prebieha spracovanie..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Dosiahol sa maximálny počet znakov."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Áno"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nie"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Odstrániť"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Odstrániť všetko"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Žiadny výsledok hľadania"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Vybrať položku"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Vybrať položky"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Zrušiť"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "HOTOVO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ZRUŠIŤ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ODSTRÁNIŤ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Umiest. úlož. priestoru"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Dátum"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Vyberte video"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Chyba pripojenia."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Stiahnuté."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synchronizácia"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Písmo"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Žiadny"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Slúchadlá"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Súbor %s môžete použiť ešte 1 raz. Spustiť teraz?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Súbor %s môžete použiť ešte 2 razy. Spustiť teraz?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "Súbor %s je aktuálne zamknutý. Odomknúť?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Súbor %s už nemôžete viac použiť. Získať ďalšiu licenciu?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "Blíži sa skončenie platnosti súboru %s. Získať ďalšiu licenciu?"
+
diff --git a/res/po/sl.po b/res/po/sl.po
new file mode 100755 (executable)
index 0000000..73169a1
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Prenos"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Prenesena bo 1 mapa."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Prenesen bo 1 videoposnetek."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Prenesene bodo vse mape."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Preneseni bodo vsi videoposnetki."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Prenesenih bo toliko map: %d."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Prenesenih bo toliko videoposnetkov: %d."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Funkcija Prenos podatkov prek mobilnega omrežja je izklopljena. Namesto tega se povežite z omrežjem Wi-Fi, ali pa vklopite funkcijo Prenos podatkov prek mobilnega omrežja in poskusite znova."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Zasebno"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Neznano"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "V redu"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 mapa"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Vse"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Iz naprave"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Iz storitve Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Zadnjič spremenjeno"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Vsebina za prikaz"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Iskanje"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Skupna raba"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Izbrisana bo 1 mapa."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Brisanje ..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Ko boste s kamero posneli videoposnetke, bodo prikazani tukaj."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videoposnetkov"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Ni videoposnetkov"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Podrobnosti"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Mapa"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Seznam"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Nedavno dodano"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Pred kratkim prikazano"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Preimenuj"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Velikost"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Razvrsti po"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Naslov"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Vrsta"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Prikaži kot"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Vsi videoposnetki bodo izbrisani."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d map bo izbrisanih."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videoposnetkov bo izbrisanih."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Ta mapa bo izbrisana."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d map"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Nastavitve"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videa ni mogoče predvajati"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Poravnava"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Velikost pisave"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Nastavitev ponavljanja"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Podnapisi (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Vse mape bodo izbrisane."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Sredina"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Velika"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Levo"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Srednja"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Desno"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Majhna"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Ime datoteke je že v uporabi."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Zapri"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Doseženo je največje dovoljeno število znakov."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Ustavi"
+
+msgid "IDS_COM_SK_OK"
+msgstr "V redu"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Izključeno"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Osveži"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Izbrisano."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Odstrani iz zasebne"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Premaknite v mapo Zasebno"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Prazen vnos."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Ni mogoče predvajati videa med klicem."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Ta datoteka ni na voljo brez povezave. Preverite omrežno povezavo in poskusite znova."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Izbrani element bo premaknjen v mapo %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Izbrani elementi bodo premaknjeni v mapo %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Odstranjujem ..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Premikam"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Ni uspelo premakniti v osebno shrambo."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Ni uspelo premakniti v običajno shrambo."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Sporoč."
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Mape"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-pošta"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Datum (najnovejši)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d izbranih"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Izbrišite videoposnetke"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Izbrišite video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Premakni"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Zemljepisna dolžina"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Zemljepisna širina"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Ko boste s kamero posneli videoposnetke, bodo prikazani."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Prekliči"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Ustavi po vseh"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Ponovi trenutno"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Ponovi vse"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Ločljivost"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Izbris"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Izbriši vse"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Ta datoteka podpira samo zvočne podatke. Zvok se predvaja."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Ta datoteka podpira samo video podatke. Video se predvaja."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Preimenuj"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Slušalke"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Neznano"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Napaka."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Baterija prazna."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Povezava ni uspela."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Ta datoteka ne obstaja."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%s lahko uporabite še enkrat. Želite dobiti drugo licenco?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Zvočna naprava"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Dodano."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Preišči"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Ni mogoče dodati."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Privzeto"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Prenos"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Izključeno"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Vključeno"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video bo izbrisan."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Neveljaven znak"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Ni rezultatov iskanja"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Izberite"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Zadnjič spremenjeno"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Končano"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Zemljepisna širina"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ime"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Ime (A–Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videoposnetki"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Največje dovoljeno število prilog (%d) je preseženo."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Izberite vse"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Shramba naprave"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Kartica SD"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Premakni"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Vključeno"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Deli z drugimi prek"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Prišlo je do napake omrežja. Poskusite znova."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Sam. pred. nasl."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Obdelujem..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Doseženo je največje dovoljeno število znakov."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Da"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ne"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Izbriši vse"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Ni rezultatov iskanja"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Izberi predmet"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Izberi elemente"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Prekliči"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "KONČANO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "PREKLIČI"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "IZBRIŠI"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Mesto shranjevanja"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Datum"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Izberite videoposnetek"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Napaka povezave."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Preneseno."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sinhroniziraj"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Pisava"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Brez"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Slušalke"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%s lahko uporabite še enkrat. Želite začeti zdaj?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%s lahko uporabite še dvakrat. Želite začeti zdaj?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "Datoteka %s je trenutno zaklenjena. Jo želite odkleniti?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "%s ne morete več uporabiti. Želite dobiti drugo licenco?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "Vsebina %s bo kmalu potekla. Želite dobiti drugo licenco?"
+
diff --git a/res/po/sr.po b/res/po/sr.po
new file mode 100755 (executable)
index 0000000..44ab930
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Preuzmi"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "Jedan folder će biti izbrisan."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "Jedan video zapis će biti preuzet."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Svi folderi će biti preuzeti."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Svi video zapisi će biti preuzeti."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Biće preuzet sledeći broj foldera: %d."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Biće preuzet sledeći broj video zapisa: %d."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Prenos podataka putem mobilne telefonije je isključen. Umesto toga, poveži se na Wi-Fi mrežu ili uključi Prenos podataka putem mobilne telefonije i pokušaj ponovo."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privatni"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 folder(a)"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Sve"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "U uređaju"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "U Dropbox-u"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Poslednja izmena"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Sadržaj za prikazivanje"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Pretraga"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Podeli"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "Biće izbrisan 1 folder."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Brisanje..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nakon snimanja video zapisa kamerom, oni će se prikazati ovde."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d video zapisa"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video zapis"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Nema video zapisa"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalji"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Folder"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Lista"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Nedavno dodato"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Nedavno prikazano"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Preimenuj"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Veličina"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sortiraj po"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Naslov"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tip"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Prikaži kao"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Svi video zapisi će biti izbrisani."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Biće izbrisano %d foldera."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d video zapisi biće izbrisani."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Ovaj folder će biti izbrisan."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d foldera"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Podešavanja"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nemoguća reprodukcija videa"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Poravnanje"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Veličina slova"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Podešavanje ponavljanja"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titlovi"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Biće izbrisani svi folderi."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Središnje"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Velika"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Levo"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Srednji"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Desno"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mala"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Naziv fajla već u upotrebi."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Zatvori"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Dostignut maksimalan broj karaktera."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stop"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Isključeno"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Osveži"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Obrisano."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Ukloni iz režima Privatno"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Premesti u folder Privatno"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Unos je prazan."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Nemoguće reprodukovati video tokom poziva."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Ovaj fajl nije dostupan dok si offline. Proveri mrežnu vezu i pokušaj ponovo."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Izabrana stavka će biti premeštena u %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Izabrane stavke će biti premeštene u %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Uklanjanje..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Premeštanje"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Neuspešno premeštanje u ličnu memoriju."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Neuspešno premeštanje u običnu memoriju."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Poruka"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Folderi"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-pošta"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Datum (najnovije)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "Izabrano: %d"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Izbrisati video zapise"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Izbriši video zapis"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Premesti"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Geografska dužina"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Geografska širina"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Nakon što snimiš video zapise pomoću kamere, oni će se prikazati."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Otkaži"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Zaustavi nakon svega"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Ponovi aktuelno"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Ponovi sve"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rezolucija"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Izbriši sve"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Ovaj fajl podržava samo zvučne podatke. Sada se reprodukuje zvuk."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Ovaj fajl podržava samo video podatke. Sada se reprodukuje video zapis."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Preimenuj"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Slušalice"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Greška."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Baterija prazna."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Neuspešno povezivanje."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Fajl ne postoji."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%s se može koristiti još jednom. Preuzeti drugu licencu?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audio uređaj"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Dodato."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Skeniraj"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Nemoguće dodati."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Podrazumevano"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Preuzmi"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Isključeno"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Uključeno"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "Jedan video zapis će se izbrisati."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Neispravan karakter"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Nema rezultata pretrage"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Izaberi"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Poslednja izmena"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Gotovo"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Geografska širina"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ime"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Ime (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Video zapisi"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Prekoračen je maksimalan broj priloga (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Izaberi sve"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Skladišna lokacija uređaja"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD kartica"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Premesti"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Uključeno"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Podeli putem"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Došlo je do greške na mreži. Pokušaj ponovo."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Auto. pusti sled."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Obrada..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Dostignut je maksimalan broj karaktera."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Da"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ne"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Izbriši sve"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Nema rezultata pretrage"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Izaberi objekat"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Izaberi stavke"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Otkaži"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "GOTOVO"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "OTKAŽI"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "IZBRIŠI"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Skladišna lokacija"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Datum"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Izaberi video zapis"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Greška veze."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Preuzeto."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sinhronizuj"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Slova"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Nema"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Slušalice"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%s se može koristiti još jednom. Početi odmah?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%s se može koristiti još dva puta. Početi odmah?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s je trenutno zaključan. Otključati?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "%s se ne može više koristiti. Preuzeti drugu licencu?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s uskoro ističe. Preuzeti drugu licencu?"
+
diff --git a/res/po/sv.po b/res/po/sv.po
new file mode 100755 (executable)
index 0000000..10f83f4
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Hämta"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 mapp hämtas."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video hämtas."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Alla mappar hämtas."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Alla videor hämtas."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d mappar hämtas."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d videor hämtas."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobildata har slagits av. Anslut till ett Wi-Fi-nätverk istället eller slå på Mobildata och försök igen."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Privat"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Plats"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Okänd"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 mapp"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Alla"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Från enhet"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Från Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Senast ändrad"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Innehåll att visa"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Sök"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Dela"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 mapp tas bort."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Tar bort ..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "När du har spelat in videor med kameran visas de här."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d videor"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Videoklipp"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Inga videor"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detaljer"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Mapp"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Lista"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Nyligen tillagda"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Senast visade"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Byt namn"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Storlek"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sortera efter"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Rubrik"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Typ"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Visa som"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Alla videor kommer att raderas."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d mappar kommer att raderas."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videoklipp kommer att raderas."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Mappen kommer att tas bort."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d mappar"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Inställningar"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Kan inte spela upp video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Justering"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Teckenstorlek"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Upprepa inställning"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Textning (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Alla mappar kommer att raderas."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centrerat"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Stor"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Vänster"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medium"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Höger"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Liten"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Filnamnet används redan."
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Stäng"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximalt antal tecken har använts."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Stopp"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Av"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Uppdatera"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Plats"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Raderad."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Ta bort från Privat"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Flytta till Privat"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Posten är tom."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Kan inte spela upp videoklipp medan samtal pågår."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Den här filen är inte tillgänglig offline. Kontrollera din nätverksanslutning och försök igen."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Det valda objektet kommer att flyttas till %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "De valda objekten kommer att flyttas till %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Tar bort..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Flyttar..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Misslyckades med att flytta till privat lagringsutrymme."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Misslyckades med att flytta till vanligt lagringsutrymme."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Medd."
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Mappar"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-post"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Datum (senaste)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d valda"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Ta bort videor"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Ta bort video"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Flytta"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitud"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "När du har spelat in videoklipp med kameran kommer videoklippen att visas."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Avbryt"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stoppa efter alla"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Upprepa nuvarande"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Upprepa alla"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Upplösning"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Radera"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Ta bort alla"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Endast ljuddata stöds av den här filen. Spelar nu upp ljudet."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Endast videodata stöds av den här filen. Spelar nu upp videon."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Byt namn"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Hörlurar"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Okänd"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Fel."
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Låg batterinivå."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Anslutningsfel."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Filen finns inte."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "Du kan använda %s 1 gång till. Hämta en ny licens?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Ljudenhet"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Tillagd."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Skanna"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Det går inte att lägga till."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Standard"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Hämta"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Av"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "På"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video kommer att tas bort."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Ogiltigt tecken"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Inga sökresultat"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Välj"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Senast ändrad"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Klar"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Namn"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Namn (A till Ö)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videoklipp"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Max tillåtna antal bilagor (%d) har överskridits."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Välj alla"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Enhetslagring"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-kort"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Flytta"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "På"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Dela via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ett nätverksfel har inträffat. Försök igen."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Spela nästa auto."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Bearbetar..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Högsta antal tecken har uppnåtts."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Ja"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Nej"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Ta bort"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Ta bort alla"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Inget sökresultat"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Välj objekt"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Välj objekt"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Avbryt"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "KLAR"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "AVBRYT"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "TA BORT"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Lagringsplats"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Datum"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Välj videoklipp"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Anslutningsfel."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Nedladdade."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Synkronisera"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Tecken"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Ingen"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Hörlurar"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "Du kan använda %s 1 gång till. Starta nu?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "Du kan använda %s 2 gånger till. Starta nu?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s är låst för närvarande. Låsa upp?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "Du kan inte använda %s fler gånger. Hämta en ny licens?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s går snart ut. Hämta en ny licens?"
+
diff --git a/res/po/tr_TR.po b/res/po/tr_TR.po
new file mode 100755 (executable)
index 0000000..363a21e
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "İndir"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 klasör indirilecek."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 video indirilecek."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Tüm klasörler indirilecek."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Tüm videolar indirilecek."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d klasör indirilecek."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d video indirilecek."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobil veri kapatıldı. Bunun yerine Wi-Fi ağına bağlanın veya Mobil veriyi etkinleştirip tekrar deneyin."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Özel"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Konum"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Bilinmeyen"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Tamam"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 klasör"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Hepsi"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Cihazdan"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropbox'tan"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Son değiştirilme"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Görüntülenecek içerik"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Ara"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Paylaş"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 klasör silinecek."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Siliniyor..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kamerayı kullanarak video çektiğinizde videolar burada görüntülenir."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d video"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Video yok"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Ayrıntılar"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Klasör"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Listele"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Son eklenenler"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Son görüntülenenler"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Yeniden adlandır"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Boyut"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Sıralama ölçütü"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Başlık"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tür"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Farklı görüntüle"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Tüm videolar silinecek."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d klasör silinecek."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d video silinecek."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "%d klasör silinecek."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d klasörleri"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ayarlar"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Video oynatılamıyor"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Hizalama"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Yazı boyutu"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Ayarı tekrarla"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Altyazılar (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Tüm klasörler silinecek."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Merkez"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Büyük"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Sol"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Orta"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Sağ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Küçük"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Dosya adı kullanılıyor"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Kapat"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maksimum karakter sayısına ulaşıldı."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Durdur"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Tamam"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Kapalı"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Yenile"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Konum"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Silindi."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Özelden Kaldır"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Özel'e taşı"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Girdi yok."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Biçim"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Görüşme sırasında video oynatılamıyor."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "DropBox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Bu dosya çevrim dışı durumda kullanılamaz. Ağ bağlantısını kontrol edin ve tekrar deneyin."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Seçilen öğe %s öğesine taşınacak."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Seçilen öğeler %s öğesine taşınacak."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Çıkartılıyor..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Taşıyor..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Kişisel belleğe taşınamadı."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Normal belleğe taşınamadı."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mesaj"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Klasörler"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-posta"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Tarih (en yeni)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d seçildi"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Videoları sil"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Videoyu sil"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Taşı"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Boylam"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Enlem"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Kamera ile video çektikten sonra, videolar gösterilecektir"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "İptal"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Tümünden sonra drdr"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Geçerli ortm tkrarla"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Tümünü tekrarla"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Çözünürlük"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Sil"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Tümünü sil"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Bu dosya sadece ses verilerini destekliyor. Şu anda ses oynatılıyor."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Bu dosya sadece video verilerini destekliyor. Şu anda video oynatılıyor."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Yeniden adlandır"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Kulaklıklar"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Bilinmeyen"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Hata"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Düşük pil."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Bağlantı başarısız."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Dosya yok."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%s öğesini 1 kez daha kullanabilirsiniz. Başka lisans alınsın mı?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Ses cihazı"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Eklendi."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Tara"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Eklenemiyor."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Varsayılan"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "İndir"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Kapalı"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Açık"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 video silinecek."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Geçersiz karakter"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Hiç arama sonucu bulunamadı"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Seç"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Son değiştirilme"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Tamam"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Tarih"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Enlem"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "İsim"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Ad (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videolar"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Maksimum ek sayısı (%d) aşıldı."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Tümünü seç"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Cihaz hafızası"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD kart"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Taşı"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Açık"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Paylaşma şekli"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Bir ağ hatası oluştu. Tekrar deneyin."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Sonrakini oto oynat"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Uygulanıyor..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maksimum karakter sayısına ulaşıldı."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Evet"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Hayır"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Sil"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Tümünü sil"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Arama sonucu yok"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Öğe seç"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Öğeleri seç"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "İptal"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "BİTTİ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "İPTAL"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "SİL"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Saklama yeri"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Tarih"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Video seçin"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Bağlantı hatalı."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "İndirildi."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Senkronizasyon"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Yazı tipi"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Hiçbiri"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Kulaklıklar"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%s öğesini 1 kez daha kullanabilirsiniz. Şimdi başlatılsın mı?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%s öğesini 2 kez daha kullanabilirsiniz. Şimdi başlatılsın mı?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s şu anda kilitli. Kilit açılsın mı?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "%s öğesini daha fazla kullanamazsınız. Başka lisans alınsın mı?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s süresi dolmak üzere. Başka lisans alınsın mı?"
+
diff --git a/res/po/uk.po b/res/po/uk.po
new file mode 100755 (executable)
index 0000000..3d6f169
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Завантажити"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 папку буде завантажено."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 відео буде завантажено."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Усі папки буде завантажено."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Усі відео буде завантажено."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d папок буде завантажено."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d відео буде завантажено."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Використання мобільних даних вимкнено. Натомість підключіться до мережі Wi-Fi або ввімкніть використання мобільних даних і спробуйте ще раз."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Особистий"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "Б"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "ГБ"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "КБ"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Розташування"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "МБ"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Невідомо"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 папка"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 відео"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Всі"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Із пристрою"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Із Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Дата останнього змінення"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Вміст для відображення"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Пошук"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Надати спільний доступ"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 папку буде видалено."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Видалення..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Після запису відео за допомогою камери їх буде відображено тут."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "Кількість відео: %d"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Відео"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Немає відео"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Деталі"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Папка"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Список"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Нещодавно додані"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Останні переглянуті"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Перейменувати"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "Розмір"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Вигляд"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Назва"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Тип"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Переглянути як"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Усі відео буде видалено."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "Буде видалено папок: %d."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "Буде видалено відео: %d"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Цю папку буде видалено."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "Папок: %d"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Налаштування"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Неможливо відтворити відео"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Вирівнювання"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Розмір шрифту"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Установка повторення"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитри (приховані)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Усі папки буде видалено."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Центр"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Великий"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Вліво"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Середній"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Вправо"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Маленький"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Ім’я файла вже використовується"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Закрити"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Досягнуто максимальної кількості символів."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "Стоп"
+
+msgid "IDS_COM_SK_OK"
+msgstr "ОК"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "Вимкнено"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Оновити"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Розташування"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "Видалено."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Видалити з особистого режиму"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Перемістити до особистої папки"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Запис порожній."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Формат"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Неможливо відтворити відео під час виклику."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Цей файл недоступний у режимі без зв’язку. Перевірте підключення до мережі та спробуйте ще раз"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Вибраний об'єкт буде переміщено до папки %s."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Вибрані об'єкти буде переміщено до папки %s."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Видалення..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Переміщення..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Не вдалося перемістити до особистого місця збереження."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Не вдалося перемістити до стандартного місця збереження."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Повідом."
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Папки"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Дата (остання)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "Вибрано %d"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Видалити відео"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Видалити відео"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Перемістити"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Довгота"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Широта"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Збережені відео відображатимуться в цьому розділі після їх записування за допомогою камери."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Скасувати"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Зупинити після усіх"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Повт. поточний запис"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Повторити всі"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Роздільна здатність"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Видал."
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Видалити всі"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Цей файл підтримує лише аудіодані. Наразі відтворюється аудіо."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Цей файл підтримує лише відеодані. Наразі відтворюється відео."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Перейменувати"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Навушники"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Невідомо"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Помилка"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Батарея розряджена."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Збій з'єднання."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Файл не існує."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%s можна використати ще 1 раз. Отримати іншу ліцензію?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Аудіопристрій"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Додано."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Сканувати"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Неможливо додати."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Стандартний"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Завантаження"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "Вимкнено"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Увімкнено"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 відео буде видалено."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Хибний символ"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Пошук не дав результатів"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Вибрати"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Дата останньої зміни"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Готово"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Дата"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Широта"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Iм'я"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Ім’я (А–Я)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Відео"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Досягнуто максимальної кількості вкладень: (%d)."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Вибрати всі"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Місце збереження на пристрої"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "Карта пам’яті"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Перемістити"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Увімкнено"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Надіслати через"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Сталася помилка мережі. Спробуйте ще раз."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Відтвор. наступне"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Обробка..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Досягнуто максимальної кількості символів."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Так"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Ні"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Видалити"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Видалити всі"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Немає результату"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Вибір об'єкта"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Виберіть об’єкти"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Скасувати"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ГОТОВО"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "СКАСУВАТИ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ВИДАЛИТИ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Місце збереження"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Дата"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Вибір відео"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Помилка з’єднання."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "КБ"
+
+msgid "IDS_COM_BODY_B"
+msgstr "Б"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "МБ"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "ГБ"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Завантажено."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Синхронізувати"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Шрифт"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Немає"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Навушники"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%s можна використати ще 1 раз. Розпочати зараз?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%s можна використати ще 2 рази. Розпочати зараз?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s зараз заблоковано. Розблокувати?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "%s більше не можна використовувати. Отримати іншу ліцензію?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "Термін дії %s скоро мине. Отримати іншу ліцензію?"
+
diff --git a/res/po/uz.po b/res/po/uz.po
new file mode 100755 (executable)
index 0000000..768ff07
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "Yuklab olish"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "1 ta jild yuklab olinadi."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "1 ta video yuklab olinadi."
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "Barcha jildlar yuklab olinadi."
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "Barcha videolar yuklab olinadi."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "%d ta jild yuklab olinadi."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "%d ta video yuklab olinadi."
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobil ma’lumot o‘chirilgan. Uning o‘rniga Wi-Fi tarmoqqa ulaning yoki Mobil ma’lumotni yoqing va qayta urinib ko‘ring."
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "Maxfiy"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Gb"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Joylashuv"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "Mb"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Noma’lum"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 jild"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1ta video"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "Barchasi"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "Qurilmadan"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "Dropbox-dan"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Oxirgi o‘zgartirilgan"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "Ko‘rsatiladigan tarkib"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "Qidirish"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Ulashish"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1ta jild joy yo‘q qilinadi."
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "Yo‘q qilinmoqda..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kamera yordamida videoga olganingizdan so‘ng, ular bu yerda ko‘rsatiladi."
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d video"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "Video"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "Videolar yo‘q"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Tafsilotlar"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "Jild"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "Ro‘yxat"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "Oxir/qo‘shilgan"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "Oxirgi ko‘rb chiqilgan"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "Nom o‘zgartirish"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "O‘lcham"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "Quyidagi bo‘y. saral"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Sarlavha"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "Tur"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "Quyidagi sifatida ko‘rib chiqish"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "Barcha videolar yo‘q qilinadi."
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d ta jild o'chiriladi."
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d videolar o'chiriladi."
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "Ushbu jild o'chiriladi."
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d jild"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Parametrlar"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videoni o‘ynatib bo‘lmaydi"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Tenglashtirish"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Shrift o‘lchami"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Takrorlash parametri"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitrlar (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "Barcha jildlar o'chiriladi."
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Markaz"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Katta"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Chap"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "O‘rta"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "O‘ng"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Kichik"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "Fayl nomi avvaldan foydalanilmoqda"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "Yopish"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Belgilar soni ruxsat etilgan maksimal miqdorga yetdi."
+
+msgid "IDS_COM_SK_STOP"
+msgstr "To‘xtatish"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "O‘ch."
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "Yangilash"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Joylashuv"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "O'chirildi."
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "Maxfiydan olib tashlash"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "Maxfiyga ko‘chirish"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "Kiritish bo‘sh."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Qo‘ng‘iroq mobaynida video o‘ynatib bo‘lmaydi."
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "Offlayn rejimda fayldan foydalanib bo‘lmaydi. Tarmoq ulanishini tekshiring va qayta urinib ko‘ring"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "Tanlangan element %sga ko‘chiriladi."
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "Tanlangan elementlar %sga ko‘chiriladi."
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "Olib tashlanmoqda..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "Ko‘chirilmoqda..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "Shaxsiy xotiraga ko‘chirib bo‘lmadi."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "Normal xotiraga ko‘chirib bo‘lmadi."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Xabar"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "Jildlar"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-pochta"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "Sana (eng oxirgi)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d tanlangan"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "Videolarni yo‘q qilish"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "Videoni yo‘q qilish"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "Ko‘chirish"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Uzunlik"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Kenglik"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "Kamera yordamida videolar yozib olingandan so‘ng videolar ko‘rsatiladi."
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Bek/q."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Baridan keyin to‘xta"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Joriyni takrorlash"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Barini takrorlash"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rezolyutsiya"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "Yo‘q/q"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "Barchasi o'chirish"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Faqat audio ma’lumot ushbu fayl tomonidan qo‘llab-quvvatlanadi. Hozirda o‘ynayotgan audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Faqat video ma’lumot ushbu fayl tomonidan qo‘llab-quvvatlanadi. Hozirda o‘ynayotgan video."
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Nom o‘zgartirish"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Quloqliklar"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Noma’lum"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "Xato"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "Bluetooth"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Batareya quvvati kam."
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Ulanib bo‘lmadi."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Ushbu fayl mavjud emas."
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "%sni yana 1 marta ishlatishingiz mumkin. Boshqa litsenziya olinsinmi?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "Audio qurilma"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "Qo‘shildi."
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "Qidirish"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "Qo‘shib bo‘lmaydi."
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "Birlamchi"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Yuklab olish"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "O‘ch."
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "Yoq."
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1ta video yo‘q qilinadi."
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "Noto‘g‘ri belgi"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "Qidirish natijalari yo‘q"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "Tanlash"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "Oxirgi o‘zgartirilgan"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Sana"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "Kenglik"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ism"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "Nom (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "Videolar"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "Teglar soni maksimal miqdordan (%d) oshib ketdi."
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "Barchasini tanlash"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Qurilma xotirasi"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD-karta"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "Ko‘chirish"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "Yoq."
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Quyidagi orqali ulashish"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Tarmoq xatosi yuz berdi. Qayta urinib ko‘ring."
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "Key. avto-o‘ynat."
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "Bajarilmoqda..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Belgilar soni maksimal miqdorga yetdi."
+
+msgid "IDS_COM_SK_YES"
+msgstr "Ha"
+
+msgid "IDS_COM_SK_NO"
+msgstr "Yo‘q"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Yo‘q qilish"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "Barchasi o'chirish"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "Qidiruv natijalari yo‘q"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "Element tanlang"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "Elementlarni tanlang"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Bekor qilish"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "BAJARILDI"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "BEKOR QILISH"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "O‘CHIRISH"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Xotira joylashuvi"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "Sana"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "Videoi tanlash"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "Ulanish xatosi."
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "Mb"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "Gb"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "Yuklandi."
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "Sinxronlash"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "Shrift"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "Hech qaysi"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Quloqliklar"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "%sni yana 1 marta ishlatishingiz mumkin. Hozir boshlansinmi?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "%sni yana 2 marta ishlatishingiz mumkin. Hozir boshlansinmi?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s hozirda bloklangan. Blokdan chiqarilsinmi?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "%sni boshqa ishlata oplmaysiz. Boshqa litsenziya olinsinmi?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%sning muddati o‘tish arafasida. Boshqa litsenziya olinsinmi?"
+
diff --git a/res/po/zh_CN.po b/res/po/zh_CN.po
new file mode 100755 (executable)
index 0000000..c703b41
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "下载"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "将下载 1 个文件夹。"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "将下载 1 个视频。"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "将下载所有文件夹。"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "将下载所有视频。"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "将下载 %d 个文件夹。"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "将下载 %d 个视频。"
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "移动数据已关闭。改为连接至 Wi-Fi 网络或打开移动数据并重试。"
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "私人"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "确定"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1个文件夹"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 个视频"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "全部"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "从设备"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "从 Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "上次修改"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "要显示的内容"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "搜索"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "共享"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "将删除 1 个文件夹。"
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "正在删除..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "在您使用照相机录制视频后,其将显示在此处。"
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d 个视频"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "视频"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "无视频"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "详情"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "文件夹"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "列表"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "最近添加"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "最近浏览"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "重命名"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "大小"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "排序方式"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "标题"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "类型"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "查看方式"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "将删除所有视频。"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d个文件夹将被删除。"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "将删除 %d 个视频。"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "该文件夹将被删除"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d 个文件夹"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "设定"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "无法播放视频"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "校准"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "字体大小"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "重复设定"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕(CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "全部文件夹将被删除"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "居中"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "大"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "左"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "中等"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "右"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "小"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "文件名已被使用"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "关闭"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "已达到最大字符限制"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "停止"
+
+msgid "IDS_COM_SK_OK"
+msgstr "确定"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "关"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "刷新"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "已删除"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "从私密模式移除"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "移动至私密模式"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "空记录。"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "格式"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "通话中无法播放视频。"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "离线时该文件不可用。检查网络连接并重试。"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "选定项目将移动至 %s。"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "选定项目将移动至 %s。"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "正在移除..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "移动中..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "移至个人存储失败"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "移至普通存储失败"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "信息"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "文件夹"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "电子邮件"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "日期(最近)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d 已选择"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "删除视频"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "删除视频"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "移动"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "经度"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "纬度"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "在您使用照相机录制视频后,将显示视频。"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "播放全部后停止"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "重复当前"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "重复全部"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "分辨率"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "删除"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "全部删除"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "该文件仅支持音频数据。正在播放音频。"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "该文件仅支持视频数据。正在播放视频。"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "重命名"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "耳机"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "出错"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "蓝牙"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "电量不足。"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "连接失败"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "此文件不存在"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "您还可使用%s 1 次。获取另一许可证?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "音频设备"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "已添加"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "扫描"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "无法添加。"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "默认"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "下载"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "关"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "开"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "将删除 1 个视频。"
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "无效字符"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "无搜索结果"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "选择"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "上次修改"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "完成"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "日期"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "纬度"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "名称"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "名称 (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "视频"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "已超过最大附件数 (%d)"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "全选"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "设备存储"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD 卡"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "移动"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "开"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "共享通过"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "网络出错。请重试。"
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "自动播放下一个"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "处理中..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "已达到最大字符数"
+
+msgid "IDS_COM_SK_YES"
+msgstr "是"
+
+msgid "IDS_COM_SK_NO"
+msgstr "否"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "删除"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "全部删除"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "无搜索结果"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "选择项目"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "选择项目"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "取消"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "完成"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "删除"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "存储位置"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "日期"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "选择视频"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi直连"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "连接错误"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "已下载"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "同步"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "字体"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "无"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "耳机"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "您还可使用%s 1 次。现在开始?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "您还可使用%s 2 次。现在开始?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s当前已锁定。是否解锁?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "您无法再使用%s。获取另一许可证?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s将过期。获取另一许可证?"
+
diff --git a/res/po/zh_HK.po b/res/po/zh_HK.po
new file mode 100755 (executable)
index 0000000..b57e5c1
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "下載"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "將下載 1 個資料夾。"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "將下載 1 個影片。"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "將下載所有資料夾。"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "將下載所有影片。"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "將下載 %d 個資料夾。"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "將下載 %d 個影片。"
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "流動數據已關閉。改為連接至 Wi-Fi 網絡或開啟流動數據並重試。"
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "私人資料夾"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "確定"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 個資料夾"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 個影片"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "全部"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "從裝置"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "從 Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "上次修改"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "要顯示的內容"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "搜尋"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "分享"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "1 個資料夾將被刪除。"
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "正在刪除..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "使用相機錄製影片後,將顯示於此。"
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d 個影片"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "影片"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "無影片"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "詳細資料"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "資料夾"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "清單"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "最近加入"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "最近檢視"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "重新命名"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "大小"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "排序方式"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "標題"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "類型"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "檢視方式"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "所有影片將被刪除。"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "%d 個資料夾將被刪除。"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d 個影片將被刪除。"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "此資料夾將被刪除。"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d 個資料夾"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "無法播放影片"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "校準"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "字體大小"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "重複設定"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕 (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "所有資料夾將被刪除。"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "置中"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "大"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "靠左"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "中"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "靠右"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "小"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "檔案名稱已被使用"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "關閉"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "字元數目已達上限。"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "停止"
+
+msgid "IDS_COM_SK_OK"
+msgstr "確定"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "關"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "重新整理"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "已刪除。"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "從私人資料夾中移除"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "移動至私人資料夾"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "空白記錄。"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "格式"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "通話期間無法播放影片。"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "離線時無法使用此檔案。檢查網絡連線並重試一次。"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "選擇的項目將被移至 %s。"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "選擇的項目將被移至 %s。"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "正在移除..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "正在移動..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "無法移至個人儲存空間。"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "無法移至一般儲存空間。"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "訊息"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "資料夾"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "電子郵件"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "日期(最近)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d 已選擇"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "刪除影片"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "刪除影片"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "移動"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "經度"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "緯度"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "使用相機錄製影片後,將顯示影片。"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "全部播放後停止"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "重複目前的"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "重複全部"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "解像度"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "刪除"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "全部刪除"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "此檔案僅支援音訊數據。現正播放音訊。"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "此檔案僅支援影片數據。現正播放影片。"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "重新命名"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "耳機"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "錯誤"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "藍牙"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "電量不足"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "連接失敗"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "此檔案不存在。"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "可再使用%s一次。要取得另一個許可嗎?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "音訊裝置"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "已加入"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "掃描"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "無法加入。"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "預設"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "下載"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "關"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "開"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "1 個影片將被刪除。"
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "無效字元"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "無搜尋結果"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "選擇"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "上次修改"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "完成"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "日期"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "緯度"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "名稱"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "名稱 (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "影片"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "已超過附件數量上限 (%d)。"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "選擇全部"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "裝置記憶體"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD 卡"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "移動"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "開"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "分享透過"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "發生網絡錯誤。請重試。"
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "自動播放下一個"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "正在處理..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "已達字元數量上限。"
+
+msgid "IDS_COM_SK_YES"
+msgstr "是"
+
+msgid "IDS_COM_SK_NO"
+msgstr "否"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "刪除"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "全部刪除"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "無搜尋結果"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "選擇項目"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "選擇項目"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "取消"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "完成"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "刪除"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "儲存裝置位置"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "日期"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "選擇影片"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "連接錯誤"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "已下載"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "同步"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "字體"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "無"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "耳機"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "可再使用%s一次。現在開始嗎?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "可再使用%s兩次。現在開始嗎?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s目前已鎖定。解鎖嗎?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "您無法再使用%s。要取得另一個許可嗎?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s即將到期。要取得另一個許可嗎?"
+
diff --git a/res/po/zh_TW.po b/res/po/zh_TW.po
new file mode 100755 (executable)
index 0000000..a4cf12a
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_DOWNLOAD"
+msgstr "下載"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DOWNLOADED"
+msgstr "將下載 1 個資料夾。"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DOWNLOADED"
+msgstr "將下載 1 個影片。"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "將下載所有資料夾。"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "將下載所有影片。"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DOWNLOADED"
+msgstr "將下載 %d 個資料夾。"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DOWNLOADED"
+msgstr "將下載 %d 個影片。"
+
+msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "行動數據已關閉。請連接 Wi-Fi 網路,或開啟行動數據並重試。"
+
+msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT"
+msgstr "隱私"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "確認"
+
+msgid "IDS_VIDEO_HEADER_1_FOLDER"
+msgstr "1 個資料夾"
+
+msgid "IDS_VIDEO_HEADER_1_VIDEO"
+msgstr "1 個影片"
+
+msgid "IDS_VIDEO_HEADER_ALL"
+msgstr "全部"
+
+msgid "IDS_VIDEO_HEADER_FROM_DEVICE"
+msgstr "自裝置"
+
+msgid "IDS_VIDEO_HEADER_FROM_DROPBOX"
+msgstr "自 Dropbox"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "最後一次修改"
+
+msgid "IDS_VIDEO_OPT_CONTENT_TO_DISPLAY"
+msgstr "要顯示的內容"
+
+msgid "IDS_VIDEO_OPT_SEARCH"
+msgstr "搜尋"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "分享"
+
+msgid "IDS_VIDEO_POP_1_FOLDER_WILL_BE_DELETED"
+msgstr "將刪除 1 個資料夾。"
+
+msgid "IDS_VIDEO_TPOP_DELETING_ING"
+msgstr "正在刪除..."
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE"
+msgstr "使用相機錄製影片後,將顯示於此。"
+
+msgid "IDS_VIDEO_HEADER_PD_VIDEOS"
+msgstr "%d 個影片"
+
+msgid "IDS_VIDEO_HEADER_VIDEO"
+msgstr "影片"
+
+msgid "IDS_VIDEO_NPBODY_NO_VIDEOS"
+msgstr "無影片"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "詳細資料"
+
+msgid "IDS_VIDEO_OPT_FOLDER"
+msgstr "資料夾"
+
+msgid "IDS_VIDEO_OPT_LIST"
+msgstr "清單"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_ADDED_ABB"
+msgstr "最近新增"
+
+msgid "IDS_VIDEO_OPT_RECENTLY_VIEWED_ABB"
+msgstr "最近瀏覽"
+
+msgid "IDS_VIDEO_OPT_RENAME"
+msgstr "重新命名"
+
+msgid "IDS_VIDEO_OPT_SIZE"
+msgstr "大小"
+
+msgid "IDS_VIDEO_OPT_SORT_BY"
+msgstr "排序依"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "標題"
+
+msgid "IDS_VIDEO_OPT_TYPE"
+msgstr "類型"
+
+msgid "IDS_VIDEO_OPT_VIEW_AS"
+msgstr "檢視方式"
+
+msgid "IDS_VIDEO_POP_ALL_VIDEOS_WILL_BE_DELETED"
+msgstr "所有影片將會被刪除。"
+
+msgid "IDS_VIDEO_POP_PD_FOLDERS_WILL_BE_DELETED"
+msgstr "將刪除 %d 個資料夾。"
+
+msgid "IDS_VIDEO_POP_PD_VIDEOS_WILL_BE_DELETED"
+msgstr "%d 個影片將被刪除。"
+
+msgid "IDS_VIDEO_POP_THIS_FOLDER_WILL_BE_DELETED"
+msgstr "此資料夾將被刪除。"
+
+msgid "IDS_VIDEO_HEADER_PD_FOLDERS"
+msgstr "%d 個資料夾"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "無法播放影片"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "校準"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "字型大小"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "重複設定"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕 (CC)"
+
+msgid "IDS_VIDEO_POP_ALL_FOLDERS_WILL_BE_DELETED"
+msgstr "將刪除所有資料夾。"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "置中"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "大"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "靠左對齊"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "中等"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "靠右對齊"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "小"
+
+msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE"
+msgstr "檔案名稱已被使用"
+
+msgid "IDS_COM_BODY_CLOSE"
+msgstr "關閉"
+
+msgid "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "已達字元數上限。"
+
+msgid "IDS_COM_SK_STOP"
+msgstr "停止"
+
+msgid "IDS_COM_SK_OK"
+msgstr "確定"
+
+msgid "IDS_COM_BODY_OFF"
+msgstr "關"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "重新整理"
+
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_COM_POP_DELETED"
+msgstr "已刪除。"
+
+msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE"
+msgstr "從隱私資料夾中移除"
+
+msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE"
+msgstr "移動至隱私資料夾"
+
+msgid "IDS_IV_POP_ENTRY_IS_EMPTY"
+msgstr "項目為空。"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "格式"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "無法在通話期間播放影片。"
+
+msgid "IDS_CLOUD_BODY_DROPBOX_ABB"
+msgstr "Dropbox"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_IS_UNAVAILABLE_WHILE_OFFLINE_CHECK_NETWORK_CONNECTION_AND_TRY_AGAIN"
+msgstr "離線時無法使用此檔案。檢查網路連線並重試一次。"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEM_WILL_BE_MOVED_TO_PS"
+msgstr "選取的項目將被移至 %s。"
+
+msgid "IDS_VIDEO_POP_THE_SELECTED_ITEMS_WILL_BE_MOVED_TO_PS"
+msgstr "選取的項目將被移至 %s。"
+
+msgid "IDS_VIDEO_POP_REMOVING_ING"
+msgstr "正在移除..."
+
+msgid "IDS_VIDEO_POP_MOVING_ING"
+msgstr "正在移動..."
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_PERSONAL_STORAGE"
+msgstr "無法移至個人儲存空間。"
+
+msgid "IDS_VIDEO_POP_FAILED_TO_MOVE_TO_NORMAL_STORAGE"
+msgstr "無法移至一般儲存空間。"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "訊息"
+
+msgid "IDS_VIDEO_OPT_FOLDERS_ABB"
+msgstr "資料夾"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "電子郵件"
+
+msgid "IDS_VIDEO_OPT_DATE_HMOST_RECENT_ABB"
+msgstr "日期 (最近的)"
+
+msgid "IDS_VIDEO_HEADER_PD_SELECTED"
+msgstr "%d已選擇"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEOS"
+msgstr "刪除影片"
+
+msgid "IDS_VIDEO_HEADER_DELETE_VIDEO"
+msgstr "刪除影片"
+
+msgid "IDS_VIDEO_BUTTON_MOVE_ABB"
+msgstr "移動"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "經度"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "緯度"
+
+msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_VIDEOS_WILL_BE_SHOWN"
+msgstr "使用相機錄製影片後,將顯示影片。"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "全部播放後停止"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "重複目前影片"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "重複全部"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "解析度"
+
+msgid "IDS_VIDEO_BUTTON_DELETE"
+msgstr "刪除"
+
+msgid "IDS_ST_OPT_DELETE_ALL"
+msgstr "全部刪除"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "此檔案僅支援音訊資料。現正播放音訊。"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "此檔案僅支援影片資料。現正播放影片。"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "重新命名"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "耳機"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_COM_POP_ERROR"
+msgstr "錯誤"
+
+msgid "IDS_COM_BODY_BLUETOOTH"
+msgstr "藍牙"
+
+msgid "IDS_COM_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "電量不足。"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "連線失敗"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "此檔案不存在。"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q"
+msgstr "可再使用%s一次。要取得另一個授權嗎?"
+
+msgid "IDS_COM_HEADER_AUDIO_DEVICE_ABB"
+msgstr "自動裝置"
+
+msgid "IDS_COM_OPT_ADDED"
+msgstr "已新增。"
+
+msgid "IDS_COM_BUTTON_SCAN"
+msgstr "掃描"
+
+msgid "IDS_COM_BODY_UNABLE_TO_ADD"
+msgstr "無法加入。"
+
+msgid "IDS_COM_BODY_DEFAULT"
+msgstr "預設"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "下載"
+
+msgid "IDS_TPLATFORM_BODY_OFF"
+msgstr "關"
+
+msgid "IDS_TPLATFORM_BODY_ON"
+msgstr "開"
+
+msgid "IDS_VIDEO_POP_1_VIDEO_WILL_BE_DELETED"
+msgstr "將刪除 1 個影片。"
+
+msgid "IDS_SWALL_HEADER_INVALID_CHARACTER"
+msgstr "字元無效"
+
+msgid "IDS_VIDEO_BODY_NO_SEARCH_RESULTS"
+msgstr "無搜尋結果"
+
+msgid "IDS_GALLERY_HEADER_SELECT"
+msgstr "選擇"
+
+msgid "IDS_VIDEO_BODY_LAST_MODIFIED_M_DATE_ABB"
+msgstr "上次修改"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "完成"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "日期"
+
+msgid "IDS_VIDEO_HEADER_LATITUDE"
+msgstr "緯度"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "名稱"
+
+msgid "IDS_VIDEO_OPT_NAME_HA_Z_ABB"
+msgstr "名稱 (A-Z)"
+
+msgid "IDS_VIDEO_OPT_VIDEOS"
+msgstr "影片"
+
+msgid "IDS_VIDEO_TPOP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_EXCEEDED"
+msgstr "已超過最多附件數目 (%d)。"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ALL"
+msgstr "選擇全部"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "裝置儲存空間"
+
+msgid "IDS_VIDEO_SBODY_SD_CARD"
+msgstr "SD 卡"
+
+msgid "IDS_COM_BODY_MOVE"
+msgstr "移動"
+
+msgid "IDS_COM_BODY_ON"
+msgstr "開"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "分享方式"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "發生網路錯誤。請重試。"
+
+msgid "IDS_VPL_OPT_AUTO_PLAY_NEXT_ABB"
+msgstr "自動播放下一個"
+
+msgid "IDS_VPL_POP_PROCESSING_ING"
+msgstr "正在處理..."
+
+msgid "IDS_MEMO_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "已達字元數量上限。"
+
+msgid "IDS_COM_SK_YES"
+msgstr "是"
+
+msgid "IDS_COM_SK_NO"
+msgstr "否"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "刪除"
+
+msgid "IDS_MUSIC_OPT_DELETE_ALL"
+msgstr "全部刪除"
+
+msgid "IDS_PB_BODY_NO_SEARCH_RESULT"
+msgstr "無搜尋結果"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEM"
+msgstr "選擇項目"
+
+msgid "IDS_VIDEO_HEADER_SELECT_ITEMS"
+msgstr "選擇項目"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "取消"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "完成"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "刪除"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "儲存裝置位置"
+
+msgid "IDS_COM_BODY_DATE"
+msgstr "日期"
+
+msgid "IDS_GALLERY_HEADER_SELECT_VIDEO"
+msgstr "選擇影片"
+
+msgid "IDS_COM_OPT1_WI_FI_DIRECT"
+msgstr "Wi-Fi Direct"
+
+msgid "IDS_COM_POP_CONNECTION_ERROR"
+msgstr "連線時發生錯誤"
+
+msgid "IDS_COM_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_COM_BODY_B"
+msgstr "B"
+
+msgid "IDS_COM_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_COM_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_COM_BODY_DOWNLOADED"
+msgstr "已下載"
+
+msgid "IDS_COM_BODY_SYNCHRONIZE"
+msgstr "同步"
+
+msgid "IDS_COM_BODY_FONT"
+msgstr "字型"
+
+msgid "IDS_COM_POP_NONE"
+msgstr "無"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "耳機"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q"
+msgstr "可再使用%s一次。立即啟動嗎?"
+
+msgid "IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q"
+msgstr "可再使用%s兩次。立即啟動嗎?"
+
+msgid "IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q"
+msgstr "%s目前被鎖定。解鎖嗎?"
+
+msgid "IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q"
+msgstr "已無法再使用%s。要取得另一個授權嗎?"
+
+msgid "IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q"
+msgstr "%s即將到期。要取得另一個授權嗎?"
+
diff --git a/res/shared/res/video.edc b/res/shared/res/video.edc
new file mode 100755 (executable)
index 0000000..9f55de4
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+collections {
+   group {
+      name: "effect";
+
+      parts {
+         part {
+            name: "bg";
+            type: RECT;
+            scale: 1;
+            description {
+               state: "default" 0.0;
+               color: 21 108 148 255;
+            }
+         }
+         part {
+            name: "naviframe";
+            type: RECT;
+            scale: 1;
+            description {
+               state: "default" 0.0;
+               rel2.relative: 1.0 0.0;
+               align: 0.5 0.0;
+               min: 0 96;
+               fixed: 0 1;
+               color: 21 108 148 255;
+            }
+         }
+      }
+   }
+}
diff --git a/shared/res/org.tizen.videos.png b/shared/res/org.tizen.videos.png
new file mode 100755 (executable)
index 0000000..7b568a6
Binary files /dev/null and b/shared/res/org.tizen.videos.png differ
diff --git a/src/common/mp-drm-ctrl.c b/src/common/mp-drm-ctrl.c
new file mode 100755 (executable)
index 0000000..a48dc73
--- /dev/null
@@ -0,0 +1,767 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#ifdef ENABLE_DRM_FEATURE
+
+#include <glib.h>
+#ifdef ENABLE_DRM_FEATURE
+#include <drm_client.h>
+#include <drm_client_types.h>
+#endif
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "video-player.h"
+#include "mp-video-string-define.h"
+#include "mp-drm-ctrl.h"
+#include "mp-external-ug.h"
+
+#define ACCUMULATED_DATE               86400
+#define RO_MESSAGE_LEN                 1024
+#define MOUNTH_COUNT                   12
+#define DAY_COUNT                              30
+#define HOUR_COUNT                             24
+
+static bool bCheckIntervalConstraint = FALSE;
+static bool bCanPlayDrmContents = FALSE;
+
+static drm_file_type_e nDrmFileType = DRM_TYPE_UNDEFINED;
+static st_MpConstraintsInfo pMpConstraintsInfo;
+
+static char *g_szMediaUri = NULL;
+
+
+
+
+void mp_drm_check_remain_ro(void *pUserData, char *szTitle);
+
+
+bool mp_drm_is_itpossible_to_play_drm_content(void)
+{
+       return bCanPlayDrmContents;
+}
+
+bool mp_drm_is_drm_file(char *szPath)
+{
+
+       if (!szPath) {
+               VideoLogInfo("[ERR] It is not existed file url.");
+               return FALSE;
+       }
+
+       int nRet = DRM_RETURN_SUCCESS;
+       drm_bool_type_e is_drm = DRM_FALSE;
+
+       nRet = drm_is_drm_file(szPath, &is_drm);
+       if (nRet != DRM_RETURN_SUCCESS) {
+               VideoLogError("[ERR]Fail to get whether drm file or not : %d",
+                                         nRet);
+               return FALSE;
+       }
+
+       if (is_drm != DRM_TRUE) {
+               VideoLogError("It's not drm file.");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+bool mp_drm_is_oma_file_type(char *szPath)
+{
+       if (!szPath) {
+               VideoLogInfo("[ERR] It is not existed file url.");
+               return FALSE;
+       }
+
+       drm_file_type_e nDrmType = DRM_TYPE_UNDEFINED;
+
+       int nRet = drm_get_file_type(szPath, &nDrmType);
+       if (nRet != DRM_RETURN_SUCCESS) {
+               VideoLogWarning("[ERR] Fail to get file type : %d", nRet);
+               return FALSE;
+       }
+
+       if (nDrmType != DRM_TYPE_OMA_V1 && nDrmType != DRM_TYPE_OMA_V2) {
+               VideoLogInfo("It's not OMA drm file : %d", nDrmType);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+bool mp_drm_check_license(char *szPath)
+{
+       if (!szPath) {
+               VideoLogInfo
+                       ("[ERR] szPath is not existed for checking drm license.");
+               return FALSE;
+       }
+
+       drm_license_status_e nLicenseStatus = DRM_LICENSE_STATUS_UNDEFINED;
+       int nRet = drm_get_license_status(szPath, DRM_PERMISSION_TYPE_PLAY,
+                                                                         &nLicenseStatus);
+
+       if (nRet != DRM_RETURN_SUCCESS) {
+               VideoLogWarning("[ERR]Fail to get license info : %d", nRet);
+               return FALSE;
+       }
+
+       if (nLicenseStatus != DRM_LICENSE_STATUS_VALID) {
+               VideoLogInfo("Invalid license status : %d", nLicenseStatus);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+bool mp_drm_check_expiration(char *szPath, bool bExpired)
+{
+       if (!szPath) {
+               VideoLogError("[ERR] szPath is not existed.");
+               return FALSE;
+       }
+
+       if (mp_drm_is_drm_file(szPath)) {
+               VideoLogError("It's not drm file.");
+               return FALSE;
+       }
+
+       drm_file_info_s st_DrmFileInfo;
+       memset(&st_DrmFileInfo, 0x0, sizeof(drm_file_info_s));
+
+       int nRet = drm_get_file_info(szPath, &st_DrmFileInfo);
+       if (nRet == DRM_RETURN_SUCCESS) {
+               if (st_DrmFileInfo.oma_info.method ==
+                       DRM_METHOD_TYPE_COMBINED_DELIVERY
+                       || st_DrmFileInfo.oma_info.method ==
+                       DRM_METHOD_TYPE_FORWARD_LOCK) {
+                       VideoLogInfo
+                               ("st_DrmFileInfo.oma_info.method == DRM_METHOD_TYPE_COMBINED_DELIVERY || st_DrmFileInfo.oma_info.method == DRM_METHOD_TYPE_FORWARD_LOCK");
+                       return TRUE;
+               }
+       }
+
+       return FALSE;
+}
+
+bool mp_drm_check_foward_lock(char *szPath)
+{
+       if (!szPath) {
+               VideoLogInfo("[ERR] szPath is not existed.");
+               return FALSE;
+       }
+
+       if (mp_drm_is_drm_file(szPath)) {
+               VideoLogInfo("It's not drm file.");
+               return FALSE;
+       }
+
+       drm_file_info_s st_DrmFileInfo;
+       memset(&st_DrmFileInfo, 0x0, sizeof(drm_file_info_s));
+
+       int nRet = drm_get_file_info(szPath, &st_DrmFileInfo);
+       if (nRet == DRM_RETURN_SUCCESS) {
+               if (st_DrmFileInfo.oma_info.method == DRM_METHOD_TYPE_FORWARD_LOCK) {
+                       VideoLogInfo
+                               ("st_DrmFileInfo.oma_info.method == DRM_METHOD_TYPE_FORWARD_LOCK");
+                       return TRUE;
+               }
+       }
+
+       return FALSE;
+}
+
+bool mp_drm_is_initialized(char *szPath)
+{
+       if (!szPath) {
+               VideoLogError
+                       ("[ERR] szPath is not existed for checking drm license.");
+               return FALSE;
+       }
+
+       return mp_drm_check_license(szPath);
+}
+
+bool mp_drm_get_left_ro_info(char *szPath,
+                                                        st_MpConstraintsInfo * pLeftRoInfo,
+                                                        bool * pbHasValidRo)
+{
+       if (!szPath) {
+               VideoLogError("[ERR]szPath is not existed.");
+               return FALSE;
+       }
+
+       if (!pLeftRoInfo) {
+               VideoLogError("[ERR]pLeftRoInfo is not existed.");
+               return FALSE;
+       }
+
+       if (!mp_drm_check_license(szPath)) {
+               VideoLogInfo("[ERR]Invalid drm file.");
+               *pbHasValidRo = FALSE;
+               return FALSE;
+       } else {
+               VideoLogInfo("Valid drm file.");
+               *pbHasValidRo = TRUE;
+       }
+
+       static drm_constraint_info_s st_pDrmConstraintInfo;
+
+       memset(pLeftRoInfo, 0x0, sizeof(st_MpConstraintsInfo));
+       memset(&st_pDrmConstraintInfo, 0x0, sizeof(drm_constraint_info_s));
+
+       int nRes = drm_get_constraint_info(szPath, DRM_PERMISSION_TYPE_PLAY,
+                                                                          &st_pDrmConstraintInfo);
+       if (nRes == DRM_RETURN_SUCCESS) {
+               if (st_pDrmConstraintInfo.const_type.is_unlimited) {
+                       VideoLogInfo("UNLIMITED");
+                       pLeftRoInfo->constraints = MP_DRM_CONSTRAINT_UNLIMITED;
+                       return true;
+               }
+
+               if (st_pDrmConstraintInfo.const_type.is_count) {
+                       VideoLogInfo("DRM_COUNT [%d]",
+                                                st_pDrmConstraintInfo.remaining_count);
+                       pLeftRoInfo->constraints |= MP_DRM_CONSTRAINT_COUNT;
+                       pLeftRoInfo->remaining_count =
+                               st_pDrmConstraintInfo.remaining_count;
+               }
+
+               if (st_pDrmConstraintInfo.const_type.is_datetime) {
+                       pLeftRoInfo->constraints |= MP_DRM_CONSTRAINT_DATE_TIME;
+                       VideoLogInfo("%d.%d.%d %d:%d~%d.%d.%d %d:%d",
+                                                st_pDrmConstraintInfo.start_time.tm_mday,
+                                                st_pDrmConstraintInfo.start_time.tm_mon + 1,
+                                                st_pDrmConstraintInfo.start_time.tm_year + 1900,
+                                                st_pDrmConstraintInfo.start_time.tm_hour,
+                                                st_pDrmConstraintInfo.start_time.tm_min,
+                                                st_pDrmConstraintInfo.end_time.tm_mday,
+                                                st_pDrmConstraintInfo.end_time.tm_mon + 1,
+                                                st_pDrmConstraintInfo.end_time.tm_year + 1900,
+                                                st_pDrmConstraintInfo.end_time.tm_hour,
+                                                st_pDrmConstraintInfo.end_time.tm_min);
+
+                       struct timeval tv;
+                       gettimeofday(&tv, NULL);
+                       struct tm *ptm = NULL;
+                       ptm = localtime(&tv.tv_sec);
+
+                       if (ptm->tm_year >= st_pDrmConstraintInfo.start_time.tm_year
+                               && ptm->tm_mon >= st_pDrmConstraintInfo.start_time.tm_mon
+                               && ptm->tm_mday >=
+                               st_pDrmConstraintInfo.start_time.tm_mday
+                               && ptm->tm_hour >=
+                               st_pDrmConstraintInfo.start_time.tm_hour
+                               && ptm->tm_min >= st_pDrmConstraintInfo.start_time.tm_min
+                               && ptm->tm_mon <= st_pDrmConstraintInfo.end_time.tm_mon
+                               && ptm->tm_mday <= st_pDrmConstraintInfo.end_time.tm_mday
+                               && ptm->tm_hour <= st_pDrmConstraintInfo.end_time.tm_hour
+                               && ptm->tm_min <= st_pDrmConstraintInfo.end_time.tm_min) {
+                               /* not expired */
+                               pLeftRoInfo->date_time_expired = false;
+                       } else {
+                               pLeftRoInfo->date_time_expired = true;
+                       }
+               }
+
+               if (st_pDrmConstraintInfo.const_type.is_interval) {
+                       pLeftRoInfo->constraints |= MP_DRM_CONSTRAINT_INTERVAL;
+                       VideoLogInfo("Remain... %d.%d.%d %d:%d",
+                                                st_pDrmConstraintInfo.interval_time.tm_mon,
+                                                st_pDrmConstraintInfo.interval_time.tm_mday,
+                                                st_pDrmConstraintInfo.interval_time.tm_year,
+                                                st_pDrmConstraintInfo.interval_time.tm_hour,
+                                                st_pDrmConstraintInfo.interval_time.tm_min);
+
+                       pLeftRoInfo->remaining_interval_sec =
+                               st_pDrmConstraintInfo.interval_time.tm_sec +
+                               st_pDrmConstraintInfo.interval_time.tm_min * 60 +
+                               st_pDrmConstraintInfo.interval_time.tm_hour * 3600;
+                       pLeftRoInfo->remaining_interval_sec +=
+                               (st_pDrmConstraintInfo.interval_time.tm_mday +
+                                st_pDrmConstraintInfo.interval_time.tm_mon * 30 +
+                                st_pDrmConstraintInfo.interval_time.tm_year * 365) *
+                               (3600 * 24);
+               }
+
+               if (st_pDrmConstraintInfo.const_type.is_timedcount) {
+                       VideoLogInfo("%d left (%d sec)",
+                                                st_pDrmConstraintInfo.timed_remaining_count,
+                                                st_pDrmConstraintInfo.timed_count_timer);
+                       pLeftRoInfo->constraints |= MP_DRM_CONSTRAINT_TIMED_COUNT;
+                       pLeftRoInfo->remaining_timed_count =
+                               st_pDrmConstraintInfo.timed_remaining_count;
+               }
+
+               if (st_pDrmConstraintInfo.const_type.is_accumulated) {
+                       VideoLogInfo("DRM_ACCUMULATED [%d]",
+                                                st_pDrmConstraintInfo.accumulated_remaining_seconds);
+                       pLeftRoInfo->constraints |= MP_DRM_CONSTRAINT_ACCUMLATED_TIME;
+                       pLeftRoInfo->remaining_acc_sec =
+                               st_pDrmConstraintInfo.accumulated_remaining_seconds;
+               }
+
+               if (st_pDrmConstraintInfo.const_type.is_individual) {
+                       VideoLogInfo("DRM_INDIVISUAL_ID [%s]",
+                                                st_pDrmConstraintInfo.individual_id);
+               }
+
+               if (st_pDrmConstraintInfo.const_type.is_system) {
+                       VideoLogInfo("DRM_SYSTEM [ID:%s, type:%d]",
+                                                st_pDrmConstraintInfo.system_id,
+                                                st_pDrmConstraintInfo.system_identity_type);
+               }
+       } else {
+               VideoLogWarning("drm_get_constraint_info().. 0x%x", nRes);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+bool mp_drm_get_content_info(char *szPath,
+                                                        MpVideoDrmContentInfoType nFirstInfoType, ...)
+{
+       /* return info shoud be free */
+       VideoLogInfo("");
+
+       drm_content_info_s st_pDrmContenInfo;
+       memset(&st_pDrmContenInfo, 0x0, sizeof(drm_content_info_s));
+
+       int nRes = drm_get_content_info(szPath, &st_pDrmContenInfo);
+       if (nRes != DRM_RETURN_SUCCESS) {
+               VideoLogWarning("[Err] drm_get_content_info().. [0x%x]", nRes);
+               return FALSE;
+       }
+
+       va_list var_args;
+       MpVideoDrmContentInfoType nAttrInfoType;
+
+       nAttrInfoType = nFirstInfoType;
+       va_start(var_args, nFirstInfoType);
+       char **ret_val = NULL;
+       char *value = NULL;
+
+       while (nAttrInfoType > DRM_CONTENT_INFO_NULL) {
+               ret_val = va_arg((var_args), char **);
+
+               switch (nAttrInfoType) {
+               case DRM_CONTENT_INFO_AUTHOR:
+                       value = st_pDrmContenInfo.author;
+                       break;
+
+               case DRM_CONTENT_INFO_RIGHTS_URL:
+                       value = st_pDrmContenInfo.rights_url;
+                       break;
+
+               case DRM_CONTENT_INFO_DESCRIPTION:
+                       value = st_pDrmContenInfo.description;
+                       break;
+
+               default:
+                       VideoLogInfo("Not defined [%d]", nAttrInfoType);
+                       value = NULL;
+                       break;
+               }
+
+               /* output */
+               *ret_val = g_strdup(value);
+
+               nAttrInfoType = va_arg(var_args, MpVideoDrmContentInfoType);
+       }
+
+       va_end(var_args);
+
+       return TRUE;
+}
+
+static void mp_drm_popup_unlock_drm_yes_button_cb(void *pUserData,
+                                                                                                 Evas_Object * pObject,
+                                                                                                 void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogInfo("[ERR] No exist pUserData");
+               return;
+       }
+
+       mp_util_delete_popup_handle();
+
+       if (bCanPlayDrmContents) {
+               mp_drm_check_remain_ro(pUserData, NULL);
+       } else {
+               char *szRightsUrl = NULL;
+               bool bRet = mp_drm_get_content_info(g_szMediaUri,
+                                                                                       DRM_CONTENT_INFO_RIGHTS_URL,
+                                                                                       &szRightsUrl, -1);
+
+               if (bRet && szRightsUrl) {
+                       VideoSecureLogInfo("szRightsUrl : %s", szRightsUrl);
+
+                       if (!mp_external_ug_launch_browser(szRightsUrl)) {
+                               VideoLogInfo("[ERR] Fail to launch browser!!!");
+                       }
+
+                       free(szRightsUrl);
+                       szRightsUrl = NULL;
+               } else {
+                       VideoLogInfo("[ERR] Fail to get right url.");
+               }
+       }
+}
+
+static void mp_drm_popup_unlock_drm_no_button_cb(void *pUserData,
+                                                                                                Evas_Object * pObject,
+                                                                                                void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogInfo("[ERR] No exist pUserData");
+               return;
+       }
+
+       mp_util_delete_popup_handle();
+}
+
+void mp_drm_check_remain_ro(void *pUserData, char *szTitle)
+{
+       if (szTitle) {
+               VideoLogWarning("[ERR] No exist szTitle");
+               szTitle = "NO TITLE";
+       }
+
+       if (!pUserData) {
+               VideoLogInfo("[ERR] No exist pUserData");
+               return;
+       }
+
+       char *szFormat = NULL;
+       char *szMessage = NULL;
+
+       if (pMpConstraintsInfo.constraints & MP_DRM_CONSTRAINT_COUNT
+               && pMpConstraintsInfo.remaining_count <= 2) {
+               int nRemain = pMpConstraintsInfo.remaining_count - 1;
+               if (nRemain == 1) {
+                       szFormat =
+                               MP_VPL_DRM_PS_CAN_USE_1_MORE_TIME_GET_ANOTHER_LICENCE_Q;
+                       szMessage = g_strdup_printf(szFormat, szTitle);
+               } else if (nRemain == 0) {
+                       szFormat =
+                               MP_VPL_DRM_PS_CANNOT_USE_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q;
+                       szMessage = g_strdup_printf(szFormat, szTitle);
+               }
+       } else if (pMpConstraintsInfo.constraints &
+                          MP_DRM_CONSTRAINT_ACCUMLATED_TIME) {
+               if (pMpConstraintsInfo.remaining_acc_sec / ACCUMULATED_DATE <= 1) {
+                       szFormat =
+                               MP_VPL_DRM_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q;
+                       szMessage = g_strdup_printf(szFormat, szTitle);
+               }
+       }
+
+       if (szMessage) {
+               bCanPlayDrmContents = FALSE;
+               mp_util_yes_no_popup(pUserData, NULL, szMessage,
+                                                        mp_drm_popup_unlock_drm_yes_button_cb,
+                                                        mp_drm_popup_unlock_drm_no_button_cb);
+               free(szMessage);
+       }
+}
+
+bool mp_drm_check_left_ro(char *szPath, char *szTitle, void *pUserData)
+{
+       if (!szPath) {
+               VideoLogWarning
+                       ("[ERR]szPath is not existed for checking drm license.");
+               return FALSE;
+       }
+
+       if (!szTitle) {
+               VideoLogWarning("szTitle is not existed.");
+               return FALSE;
+       }
+
+       if (!pUserData) {
+               VideoLogWarning("pUserData is not existed.");
+               return FALSE;
+       }
+
+       VideoLogInfo("");
+
+       bool bHasValidRo = FALSE;
+       bool bWapLaunch = FALSE;
+       bool bExpired = FALSE;
+
+       char *szFormat = NULL;
+       char *szMessage = NULL;
+
+       bCanPlayDrmContents = FALSE;
+
+       memset(&pMpConstraintsInfo, 0, sizeof(st_MpConstraintsInfo));
+
+       if (!mp_drm_get_left_ro_info
+               (szPath, &pMpConstraintsInfo, &bHasValidRo)) {
+               VideoLogWarning("Fail to get left ro info.");
+               return FALSE;
+       }
+
+       if (bHasValidRo) {
+               while (pMpConstraintsInfo.constraints) {
+                       if (pMpConstraintsInfo.constraints & MP_DRM_CONSTRAINT_COUNT) {
+                               if (pMpConstraintsInfo.remaining_count == 2) {
+                                       szFormat = MP_VPL_DRM_PS_2_MORE_TIME_START_NOW_Q;
+                                       szMessage = g_strdup_printf(szFormat, szTitle);
+                               } else if (pMpConstraintsInfo.remaining_count == 1) {
+                                       szFormat = MP_VPL_DRM_PS_1_MORE_TIME_START_NOW_Q;
+                                       szMessage = g_strdup_printf(szFormat, szTitle);
+                               } else if (pMpConstraintsInfo.remaining_count == 0) {
+                                       bWapLaunch = TRUE;
+                                       break;
+                               }
+                       }
+
+                       if (pMpConstraintsInfo.constraints &
+                               MP_DRM_CONSTRAINT_DATE_TIME) {
+                               if (pMpConstraintsInfo.date_time_expired) {
+                                       bWapLaunch = TRUE;
+                                       break;
+                               }
+                       }
+
+                       if (pMpConstraintsInfo.constraints &
+                               MP_DRM_CONSTRAINT_INTERVAL) {
+                               if (pMpConstraintsInfo.remaining_interval_sec == 0) {
+                                       bWapLaunch = TRUE;
+                                       break;
+                               } else if (!bCheckIntervalConstraint) {
+                                       bCheckIntervalConstraint = TRUE;
+                                       int nDays =
+                                               pMpConstraintsInfo.remaining_interval_sec /
+                                               ACCUMULATED_DATE + 1;
+                                       szFormat = MP_VPL_DRM_PS_FOR_PD_DAYS_START_NOW_Q;
+                                       szMessage = g_strdup_printf(szFormat, szTitle, nDays);
+                               }
+                       }
+
+                       if (pMpConstraintsInfo.constraints &
+                               MP_DRM_CONSTRAINT_TIMED_COUNT) {
+                               if (pMpConstraintsInfo.remaining_timed_count == 2) {
+                                       szFormat = MP_VPL_DRM_PS_2_MORE_TIME_START_NOW_Q;
+                                       szMessage = g_strdup_printf(szFormat, szTitle);
+                               } else if (pMpConstraintsInfo.remaining_timed_count == 1) {
+                                       szFormat = MP_VPL_DRM_PS_1_MORE_TIME_START_NOW_Q;
+                                       szMessage = g_strdup_printf(szFormat, szTitle);
+                               } else if (pMpConstraintsInfo.remaining_timed_count == 0) {
+                                       bWapLaunch = TRUE;
+                                       break;
+                               }
+                       }
+
+                       if (pMpConstraintsInfo.constraints &
+                               MP_DRM_CONSTRAINT_ACCUMLATED_TIME) {
+                               if (pMpConstraintsInfo.remaining_acc_sec == 0) {
+                                       bWapLaunch = TRUE;
+                                       break;
+                               }
+                       }
+
+                       bCanPlayDrmContents = TRUE;
+                       break;
+               }
+
+               if (pMpConstraintsInfo.constraints == MP_DRM_CONSTRAINT_UNLIMITED) {
+                       bCanPlayDrmContents = TRUE;
+               }
+       }
+
+       if (!bHasValidRo
+               || (bWapLaunch && !mp_drm_check_expiration(szPath, bExpired))) {
+               VideoLogWarning("have no valid ro");
+
+               szFormat = MP_VPL_DRM_PS_CURRENTLY_LOCKED_UNLOCK_Q;
+               szMessage = g_strdup_printf(szFormat, szTitle);
+               mp_util_yes_no_popup(pUserData, NULL, szMessage,
+                                                        mp_drm_popup_unlock_drm_yes_button_cb,
+                                                        mp_drm_popup_unlock_drm_no_button_cb);
+
+               if (szMessage) {
+                       free(szMessage);
+                       szMessage = NULL;
+               }
+
+               return FALSE;
+       } else if (szMessage) {
+               VideoLogWarning("warning popup=[%s]", szMessage);
+
+               mp_util_yes_no_popup(pUserData, NULL, szMessage,
+                                                        mp_drm_popup_unlock_drm_yes_button_cb,
+                                                        mp_drm_popup_unlock_drm_no_button_cb);
+
+               if (szMessage) {
+                       free(szMessage);
+                       szMessage = NULL;
+               }
+
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/* DivX DRM*/
+
+bool mp_drm_is_divx(char *szPath)
+{
+
+       if (!szPath) {
+               VideoLogInfo("[ERR]");
+               return FALSE;
+       }
+
+
+       int nRet = DRM_RETURN_SUCCESS;
+       drm_bool_type_e is_drm = DRM_FALSE;
+
+       nRet = drm_is_drm_file(szPath, &is_drm);
+       if (nRet != DRM_RETURN_SUCCESS) {
+               VideoLogError("[ERR]drm_is_drm_file : %d", nRet);
+               return FALSE;
+       }
+
+       if (is_drm != DRM_TRUE) {
+               VideoLogError("It's not drm file.");
+               return FALSE;
+       }
+
+       drm_file_type_e drm_type = DRM_TYPE_UNDEFINED;
+
+       nRet = drm_get_file_type(szPath, &drm_type);
+       if (nRet != DRM_RETURN_SUCCESS) {
+               VideoLogError("[ERR]drm_get_file_type : %d", nRet);
+               return FALSE;
+       }
+
+       nDrmFileType = drm_type;
+
+       if (drm_type != DRM_TYPE_DIVX) {
+               VideoLogError("It's not DivX drm file : %d", drm_type);
+               return FALSE;
+       }
+
+       return TRUE;
+
+}
+
+bool mp_drm_check_divx_rental_expired(char *szPath, int *use_count,
+                                                                         int *total_count)
+{
+       VideoLogInfo("");
+
+       if (!szPath) {
+               VideoLogError("[ERR]");
+               return FALSE;
+       }
+
+       int nRet = DRM_RETURN_SUCCESS;
+       drm_constraint_info_s constraint_info;
+       memset(&constraint_info, 0, sizeof(drm_constraint_info_s));
+       nRet =
+               drm_get_constraint_info(szPath, DRM_PERMISSION_TYPE_PLAY,
+                                                               &constraint_info);
+       if (nRet != DRM_RETURN_SUCCESS) {
+               VideoLogError("[ERR]drm_get_file_info : %d", nRet);
+               return FALSE;
+       }
+
+       VideoLogError("[TYPE]\n"
+                                 "unlimied : %d\n"
+                                 "is_count : %d\n"
+                                 "is_datetime : %d\n"
+                                 "is_interval : %d\n"
+                                 "is_timedcount : %d\n"
+                                 "is_accumulated : %d\n"
+                                 "is_individual : %d\n"
+                                 "is_system : %d\n"
+                                 "constraint_type : %d",
+                                 constraint_info.const_type.is_unlimited,
+                                 constraint_info.const_type.is_count,
+                                 constraint_info.const_type.is_datetime,
+                                 constraint_info.const_type.is_interval,
+                                 constraint_info.const_type.is_timedcount,
+                                 constraint_info.const_type.is_accumulated,
+                                 constraint_info.const_type.is_individual,
+                                 constraint_info.const_type.is_system,
+                                 constraint_info.const_type.constraint_type);
+
+       if (constraint_info.const_type.is_unlimited) {
+               VideoLogError("unlimited");
+               *use_count = DIVX_DRM_UNLIMIT_VALUE;
+               *total_count = DIVX_DRM_UNLIMIT_VALUE;
+       } else if (constraint_info.const_type.is_count) {
+
+               *use_count =
+                       constraint_info.original_count -
+                       constraint_info.remaining_count;
+               *total_count = constraint_info.original_count;
+
+               if (constraint_info.remaining_count <= 0) {
+                       VideoLogError("[ERR]over");
+                       return FALSE;
+               }
+       } else if (constraint_info.const_type.is_datetime) {
+               VideoLogError("[ERR]is_datetime");
+       } else if (constraint_info.const_type.is_interval) {
+               VideoLogError("[ERR]is_interval");
+       } else if (constraint_info.const_type.is_timedcount) {
+               VideoLogError("[ERR]is_timedcount");
+       } else if (constraint_info.const_type.is_accumulated) {
+               VideoLogError("[ERR]is_accumulated");
+       } else if (constraint_info.const_type.is_individual) {
+               VideoLogError("[ERR]is_individual");
+       } else if (constraint_info.const_type.is_system) {
+               VideoLogError("[ERR]is_system");
+       }
+
+       return TRUE;
+}
+
+void mp_drm_get_file_extension(char *szPath, char *szContentType,
+                                                          int nContentTypeStrSize)
+{
+       if (!szContentType) {
+               VideoLogError("[ERR]");
+               return;
+       }
+
+       if (!szPath) {
+               VideoLogError("[ERR]");
+               return;
+       }
+
+       memset(szContentType, 0, nContentTypeStrSize);
+
+       drm_content_info_s content_info;
+       int nRet = DRM_RETURN_SUCCESS;
+       memset(&content_info, 0, sizeof(drm_content_info_s));
+
+       nRet = drm_get_content_info(szPath, &content_info);
+
+
+       VideoLogInfo("nRet : [%d] contentType: %s", nRet,
+                                content_info.mime_type);
+
+       strncpy(szContentType, content_info.mime_type,
+                       nContentTypeStrSize - 1);
+}
+#endif
diff --git a/src/common/mp-rotate-ctrl.c b/src/common/mp-rotate-ctrl.c
new file mode 100755 (executable)
index 0000000..b551042
--- /dev/null
@@ -0,0 +1,177 @@
+/*
+ * Copyright (c) 2020 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 <Elementary.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-rotate-ctrl.h"
+#include "mp-video-list-view-main.h"
+
+
+static VideosRotateStatus_t nCurrentRotateStatus = VIDEOS_ROTATE_NONE;
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_rotate_ctrl_changed_cb(void *pUserData, Evas_Object * pObject,
+                                                          void *pEventInfo)
+{
+       VideoLogInfo("Rotate state before changing : %d",
+                                nCurrentRotateStatus);
+
+       switch (elm_win_rotation_get((Evas_Object *) pObject)) {
+       case 0:
+               nCurrentRotateStatus = VIDEOS_ROTATE_NONE;
+               break;
+       case 90:
+               nCurrentRotateStatus = VIDEOS_ROTATE_90;
+               break;
+       case 180:
+               nCurrentRotateStatus = VIDEOS_ROTATE_180;
+               break;
+       case 270:
+               nCurrentRotateStatus = VIDEOS_ROTATE_270;
+               break;
+       default:
+               nCurrentRotateStatus = VIDEOS_ROTATE_NONE;
+       }
+
+       /* If check top view, when back to main view from item view.
+          preview could not be updated. So we could not keep new preview item.
+        */
+       mp_list_view_rotate_view(LIST_UPDATE_TYPE_VIEW);
+
+}
+
+
+/*///////////////////////////////////////////////////////////////*/
+/* External APIs*/
+
+/**
+ *
+ */
+void mp_rotate_ctrl_init(void)
+{
+       VideoLogInfo("");
+
+       void *pWindowHandle = mp_util_get_main_window_handle();
+
+       if (pWindowHandle) {
+               if (elm_win_wm_rotation_supported_get(pWindowHandle)) {
+                       /*int nRotateType[4] = { 0, 90, 180, 270 }; */
+                       const int nRotateType[4] = { 0, 90, 180, 270 };
+                       elm_win_wm_rotation_available_rotations_set(pWindowHandle,
+                                                                                                               nRotateType, 4);
+               }
+
+               nCurrentRotateStatus = VIDEOS_ROTATE_NONE;
+       }
+}
+
+/**
+ *
+ */
+void mp_rotate_ctrl_destroy(void)
+{
+       VideoLogInfo("");
+       nCurrentRotateStatus = VIDEOS_ROTATE_NONE;
+}
+
+/**
+ *
+ * @return
+ */
+VideosRotateStatus_t mp_rotate_ctrl_get_current_state(void)
+{
+
+       bool bValid = true;
+
+#ifdef ENABLE_LANDSCAPE
+       bValid = true;
+#endif
+       if (!bValid) {
+               VideoLogInfo("don't support rotated operation.");
+               return 0;
+       }
+
+       VideoLogInfo("Current rotate status : %d", nCurrentRotateStatus);
+
+       return nCurrentRotateStatus;
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_rotate_ctrl_check_landspace()
+{
+       bool bLandSpace = FALSE;
+       if (nCurrentRotateStatus == VIDEOS_ROTATE_90
+               || nCurrentRotateStatus == VIDEOS_ROTATE_270) {
+               bLandSpace = TRUE;
+       }
+       return bLandSpace;
+}
+
+/**
+ *
+ * @param pWin
+ * @return
+ */
+bool mp_rotate_ctrl_check_landspace_by_win(Evas_Object * pWin)
+{
+       if (!pWin) {
+               VideoLogError("win is NULL.");
+               return FALSE;
+       }
+       bool bLandSpace = FALSE;
+       int bROtation = elm_win_rotation_get(pWin);
+       if (bROtation == 90 || bROtation == 270) {
+               bLandSpace = TRUE;
+       }
+       return bLandSpace;
+}
+
+/**
+ *
+ * @param nAngle
+ */
+void mp_rotate_ctrl_set_state(int nAngle)
+{
+       switch (nAngle) {
+       case 0:
+               nCurrentRotateStatus = VIDEOS_ROTATE_NONE;
+               break;
+       case 90:
+               nCurrentRotateStatus = VIDEOS_ROTATE_90;
+               break;
+       case 180:
+               nCurrentRotateStatus = VIDEOS_ROTATE_180;
+               break;
+       case 270:
+               nCurrentRotateStatus = VIDEOS_ROTATE_270;
+               break;
+       default:
+               nCurrentRotateStatus = VIDEOS_ROTATE_NONE;
+       }
+
+       VideoLogInfo("CHANGE ROTATE : %d", nCurrentRotateStatus);
+}
diff --git a/src/common/mp-util-config.c b/src/common/mp-util-config.c
new file mode 100755 (executable)
index 0000000..51dd5bc
--- /dev/null
@@ -0,0 +1,162 @@
+/*
+ * Copyright (c) 2020 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 <app_preference.h>
+#include "mp-util.h"
+#ifdef ENABLE_DRM_FEATURE
+#include "mp-drm-ctrl.h"
+#endif
+#include "mp-video-log.h"
+#include "mp-util-config.h"
+
+#define PREF_MP_MULTI_PLAY_FLAG  "preference/org.tizen.videos/multi_play"
+#define MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS "preference/org.tizen.videos/preview_url_videos"
+
+/**
+ *
+ * @param bMultiPlay
+ * @return
+ */
+bool mp_util_config_set_multi_play_status(bool bMultiPlay)
+{
+       int nErr = 0;
+
+       nErr = preference_set_boolean(PREF_MP_MULTI_PLAY_FLAG, bMultiPlay);
+       if (nErr != 0) {
+               VideoLogError("SET PREF_MP_MULTI_PLAY_FLAG is fail [0x%x]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bMultiPlay
+ * @return
+ */
+bool mp_util_config_get_multi_play_status(bool * bMultiPlay)
+{
+       int nErr = 0;
+       bool nVal = 0;
+
+       nErr = preference_get_boolean(PREF_MP_MULTI_PLAY_FLAG, &nVal);
+       if (nErr != 0) {
+               VideoLogError("GET PREF_MP_MULTI_PLAY_FLAG is fail [0x%x]", nErr);
+               return FALSE;
+       }
+
+       *bMultiPlay = (nVal == 0) ? FALSE : TRUE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szPreviewUrl
+ * @return
+ */
+bool mp_util_config_set_preview(char *szPreviewUrl)
+{
+       VideoSecureLogInfo("szPreviewUrl : %s", szPreviewUrl);
+
+       bool bRet = FALSE;
+
+       if (szPreviewUrl) {
+               if (preference_set_string
+                       (MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS, szPreviewUrl)) {
+                       VideoLogError("Fail to write szPreviewUrl.");
+                       bRet = FALSE;
+               } else {
+                       bRet = TRUE;
+               }
+       } else {
+               if (preference_set_string
+                       (MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS, "")) {
+                       VideoLogError("Fail to write szPreviewUrl.");
+                       bRet = FALSE;
+               } else {
+                       bRet = TRUE;
+               }
+       }
+
+       return bRet;
+}
+
+/**
+ *
+ * @return
+ */
+char *mp_util_config_get_preview(void)
+{
+       char *pTmpVideoUrl = NULL;
+       int nErr = 0;
+
+       nErr =
+               preference_get_string(MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS,
+                                                         &pTmpVideoUrl);
+       if (nErr != 0 || !pTmpVideoUrl) {
+               VideoLogError("fail to retrive url [0x%x]", nErr);
+               return NULL;
+       }
+
+       if (strlen(pTmpVideoUrl) < 1) {
+               free(pTmpVideoUrl);
+               pTmpVideoUrl = NULL;
+       }
+
+       return pTmpVideoUrl;
+}
+
+/**
+ *
+ * @param callback
+ * @param pUserData
+ * @return
+ */
+bool mp_util_config_preview_key_changed_cb(preference_changed_cb callback,
+                                                                                  void *pUserData)
+{
+       int nErr = 0;
+       nErr =
+               preference_set_changed_cb
+               (MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS, callback, pUserData);
+       if (nErr != 0) {
+               VideoLogError("failed to register callback [0x%x]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_util_config_ignore_preview_key_changed_cb()
+{
+       int nErr = 0;
+       nErr =
+               preference_unset_changed_cb
+               (MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS);
+       if (nErr != 0) {
+               VideoLogError("failed to unregister [0x%x]", nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
diff --git a/src/common/mp-util-media-service.c b/src/common/mp-util-media-service.c
new file mode 100755 (executable)
index 0000000..6373557
--- /dev/null
@@ -0,0 +1,2859 @@
+/*
+ * Copyright (c) 2020 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 <glib.h>
+#include <Elementary.h>
+#include <media_content.h>
+
+#include <metadata_extractor.h>
+#include <image_util.h>
+#include <storage.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-video-value-define.h"
+#include "mp-util-media-service.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "vp-util.h"
+
+#define CAMERA_FOLDER_PATH     "/opt/usr/media/Camera"
+#define MEDIA_LAST_PLAYED_TIME "last_played_time"
+
+typedef struct _storage_rec_t storage_rec_s;
+
+struct _storage_rec_t {
+       int storage_id;
+       char *file_url;
+};
+
+
+static Eina_List *VideoFolderList = NULL;
+static Eina_List *VideoItemList = NULL;
+static Eina_List *RecentPlayedItemList = NULL;
+static int nWhatFileType = MP_MEDIA_VIDEO_FILE_TYPE;
+static int nTotalVideoTypeFiles = 0;
+static int nNumberOfVideoItemByType = 0;
+static media_content_noti_h noti_handle = NULL;
+
+/**
+ * Called to get information once for each supported storage.
+ * @param storage_id : The unique storage ID
+ * @param type : The type of the storage
+ * @param state : The current state of the storage
+ * @param path : The absolute path to the root directory of the storage
+ * @param user_data : The user data passed from the foreach function
+ * @return
+ */
+static bool _storage_device_supported_cb(int storage_id, storage_type_e type,
+                               storage_state_e state, const char *path, void *user_data)
+{
+       storage_rec_s *storage_rec = (storage_rec_s *)user_data;
+
+       if (!(storage_rec && storage_rec->file_url && path)) {
+               return true;
+       }
+
+       if (strncmp(path, storage_rec->file_url, strlen(path)) == 0) {
+               storage_rec->storage_id = storage_id;
+               return false;
+       }
+       return true;
+}
+
+/**
+* Check if the give file is of 3gp format
+* @param szFileUri : file string
+* @return true/false
+*/
+bool mp_util_svc_is_3gp_file(char *szFileUri)
+{
+
+       int nRet = FALSE;
+       char *szTmpUriPath = szFileUri;
+
+       if (szTmpUriPath) {
+               char *szExt = NULL;
+               szExt = strrchr(szTmpUriPath, '.');
+
+               if ((szExt != NULL) && ((szExt + 1) != NULL)) {
+                       if (!strcmp(szExt + 1, "3gp")) {
+                               nRet = TRUE;
+                       } else {
+                               nRet = FALSE;
+                       }
+               } else {
+                       VideoLogError("No exist extension.");
+                       nRet = FALSE;
+               }
+       } else {
+               VideoLogError("No exist file uri.");
+               nRet = FALSE;
+       }
+
+       return nRet;
+}
+
+/**
+* Iterate callback function to get media item
+* @param pVideoItem : media info
+* @param pUserData : folder item
+* @return result
+*/
+static bool mp_util_svc_iterate_for_get_video_item_cb(media_info_h
+                                                                                                         pVideoItem,
+                                                                                                         void *pUserData)
+{
+
+       media_info_h *pAssignFolderItem = (media_info_h *) pUserData;
+
+       if (pVideoItem != NULL) {
+               char *szTmpStr = NULL;
+               media_info_clone(pAssignFolderItem, pVideoItem);
+               media_info_get_display_name(*pAssignFolderItem, &szTmpStr);
+               MP_FREE_STRING(szTmpStr);
+       }
+
+       return FALSE;
+}
+
+/**
+* Iterate callback function to get media item
+* @param pMediaItem : media info
+* @param pUserData : folder item
+* @return result
+*/
+static bool mp_util_svc_iterate_for_video_item_list_view_cb(media_info_h
+                                                                                                                       pMediaItem,
+                                                                                                                       void
+                                                                                                                       *pUserData)
+{
+       media_info_h pAssignMediaItem = NULL;
+       media_content_type_e nMediaType = MEDIA_CONTENT_TYPE_OTHERS;
+       if (!pMediaItem) {
+               return TRUE;
+       }
+       media_info_get_media_type(pMediaItem, &nMediaType);
+
+       if (nMediaType == MEDIA_CONTENT_TYPE_VIDEO) {
+               char *szTmpItemFilePath = NULL;
+               char szItemFilePath[STR_LEN_MAX] = { 0, };
+
+               media_info_get_file_path(pMediaItem, &szTmpItemFilePath);
+
+               if (szTmpItemFilePath == NULL) {
+                       VideoLogError("Fail to get file path of media item.");
+                       return TRUE;
+               }
+               strncpy(szItemFilePath, szTmpItemFilePath, STR_LEN_MAX - 1);
+
+               free(szTmpItemFilePath);
+               szTmpItemFilePath = NULL;
+
+               nTotalVideoTypeFiles++;
+
+               switch (nWhatFileType) {
+               case MP_MEDIA_VIDEO_FILE_TYPE:
+                       if (mp_util_svc_is_3gp_file(szItemFilePath) == TRUE) {
+                               return TRUE;
+                       }
+                       break;
+
+               case MP_MEDIA_CAMERA_FILE_TYPE:
+                       if (mp_util_svc_is_3gp_file(szItemFilePath) == FALSE) {
+                               return TRUE;
+                       }
+                       break;
+
+               case MP_MEDIA_ALL_FILE_TYPE:
+                       break;
+               }
+
+               nNumberOfVideoItemByType++;
+
+               media_info_clone(&pAssignMediaItem, pMediaItem);
+               Eina_List **pList = (Eina_List **) pUserData;
+               *pList = eina_list_append(*pList, pAssignMediaItem);
+       }
+
+       return TRUE;
+}
+
+
+/**
+* Iterate callback function to get media item
+* @param pMediaItem : media info
+* @param pUserData : media item
+* @return result
+*/
+static bool mp_util_svc_iterate_cb(media_info_h pMediaItem,
+                                                                  void *pUserData)
+{
+       media_info_h pAssignMediaItem = NULL;
+       media_content_type_e nMediaType = MEDIA_CONTENT_TYPE_OTHERS;
+       if (!pMediaItem) {
+               return FALSE;
+       }
+       media_info_get_media_type(pMediaItem, &nMediaType);
+
+       if (nMediaType == MEDIA_CONTENT_TYPE_VIDEO) {
+               media_info_clone(&pAssignMediaItem, pMediaItem);
+               Eina_List **pList = (Eina_List **) pUserData;
+               *pList = eina_list_append(*pList, pAssignMediaItem);
+
+               nTotalVideoTypeFiles++;
+               nNumberOfVideoItemByType++;
+       }
+
+       return TRUE;
+}
+
+/**
+* Iterate callback function to get media item
+* @param pFolderItem : media info
+* @param pUserData : folder item
+* @return result
+*/
+static bool mp_util_svc_iterate_for_get_folder_cb(media_folder_h
+                                                                                                 pFolderItem,
+                                                                                                 void *pUserData)
+{
+       media_folder_h *pAssignFolderItem = (media_folder_h *) pUserData;
+
+       if (pFolderItem != NULL) {
+               char *szTmpStr = NULL;
+               media_folder_clone(pAssignFolderItem, pFolderItem);
+               media_folder_get_name(*pAssignFolderItem, &szTmpStr);
+
+               if (szTmpStr) {
+                       free(szTmpStr);
+                       szTmpStr = NULL;
+               }
+       }
+
+       return TRUE;
+}
+
+/**
+* callback function to compare and sort folders
+* @param pFolder1 : media folder
+* @param pFolder2 : media folder
+* @return result
+*/
+static int mp_util_svc_sort_for_folder_list_cb(const void *pFolder1,
+                                                                                          const void *pFolder2)
+{
+       media_folder_h pFolderType1 = (media_folder_h) pFolder1;
+       media_folder_h pFolderType2 = (media_folder_h) pFolder2;
+
+       char *folderName1 = NULL;
+       char *folderName2 = NULL;
+
+       int nRet = 0;
+
+       media_folder_get_name(pFolderType1, &folderName1);
+       media_folder_get_name(pFolderType2, &folderName2);
+
+       if (!folderName1) {
+               MP_FREE_STRING(folderName2);
+               return (1);
+       }
+
+       if (!folderName2) {
+               MP_FREE_STRING(folderName1);
+               return (-1);
+       }
+
+       nRet = strcmp(folderName1, folderName2);
+
+       MP_FREE_STRING(folderName1);
+       MP_FREE_STRING(folderName2);
+
+       return nRet;
+}
+
+/**
+* iterate callback function for folders list items
+* @param pFolderItem : media folder
+* @param pUserData : folder item
+* @return result
+*/
+static bool mp_util_svc_iterate_for_folder_list_cb(media_folder_h
+                                                                                                  pFolderItem,
+                                                                                                  void *pUserData)
+{
+       media_folder_h pAssignFolderItem = NULL;
+       Eina_Compare_Cb pCmpFunc =
+               (Eina_Compare_Cb) mp_util_svc_sort_for_folder_list_cb;
+
+       media_folder_clone(&pAssignFolderItem, pFolderItem);
+       Eina_List **pList = (Eina_List **) pUserData;
+       *pList = eina_list_append(*pList, pAssignFolderItem);
+       *pList = eina_list_sort(*pList, eina_list_count(*pList), pCmpFunc);
+
+       return TRUE;
+}
+
+/**
+* iterate callback function for personal folders list items
+* @param pFolderItem : media folder
+* @param pUserData : folder item
+* @return result
+*/
+static bool mp_util_svc_iterate_for_personal_folder_list_cb(media_folder_h
+                                                                                                                       pFolderItem,
+                                                                                                                       void
+                                                                                                                       *pUserData)
+{
+       media_folder_h pAssignFolderItem = NULL;
+       media_folder_clone(&pAssignFolderItem, pFolderItem);
+       Eina_List **pList = (Eina_List **) pUserData;
+       Eina_Compare_Cb pCmpFunc =
+               (Eina_Compare_Cb) mp_util_svc_sort_for_folder_list_cb;
+
+       char *szFolderPath = NULL;
+       if (pAssignFolderItem) {
+               media_folder_get_path(pAssignFolderItem, &szFolderPath);
+
+               if (szFolderPath) {
+                       if (!strcmp(szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR)) {
+                               //Skip "/opt/storage/PersonalStorage" folder
+                               MP_FREE_STRING(szFolderPath);
+
+                               media_folder_destroy(pAssignFolderItem);
+                               pAssignFolderItem = NULL;
+
+                               return TRUE;
+                       }
+                       MP_FREE_STRING(szFolderPath);
+               }
+       }
+
+       *pList = eina_list_append(*pList, pAssignFolderItem);
+       *pList = eina_list_sort(*pList, eina_list_count(*pList), pCmpFunc);
+
+       return TRUE;
+}
+
+//
+// Internal function
+//
+
+//
+// External function
+//
+
+/**
+* Connect to media content
+*/
+void mp_util_svc_init_session(void)
+{
+       if (media_content_connect() != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogInfo("Fail to connect to media content db.");
+       } else {
+               VideoLogInfo("Success to connect to media content db.");
+       }
+}
+
+/**
+* Disconnect from media content
+*/
+void mp_util_svc_finish_session(void)
+{
+
+       if (media_content_disconnect() != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogInfo("Fail to disconnect from media content db.");
+               return;
+       }
+
+
+       VideoLogInfo("Success to disconnect from media content db.");
+       return;
+}
+
+/**
+* Free video items list
+* @return result
+*/
+bool mp_util_svc_destory_video_item_list(void)
+{
+       if (!VideoItemList) {
+               VideoLogError("VideoItemList is empty already.");
+               return FALSE;
+       }
+
+       media_info_h pTmpVideoItem = NULL;
+       EINA_LIST_FREE(VideoItemList, pTmpVideoItem) {
+               if (pTmpVideoItem) {
+                       media_info_destroy(pTmpVideoItem);
+               }
+       }
+       nNumberOfVideoItemByType = 0;
+       VideoItemList = NULL;
+
+       return TRUE;
+}
+
+/**
+* Get list of videos from folder
+* @param szFolderPath : string
+* @param nSortType : sort type
+* @param nItemType : list view type
+* @return result
+*/
+bool mp_util_svc_extract_video_list_from_folder(char *szFolderPath,
+                                                                                               int nSortType,
+                                                                                               int nItemType)
+{
+       if (VideoItemList) {
+               VideoLogError("Already exist video list.");
+               return FALSE;
+       }
+
+       if (!szFolderPath) {
+               VideoLogError("[ERR]");
+               return FALSE;
+       }
+
+       filter_h m_FilterHandle = NULL;
+       media_folder_h m_FolderHandle = NULL;
+       media_content_order_e nOrderType = MEDIA_CONTENT_ORDER_ASC;
+
+       char *szFolderID = NULL;
+       char szTmpStr[STR_LEN_MAX] = { 0, };
+       char szOrderObj[STR_LEN_MAX] = { 0, };
+
+       nTotalVideoTypeFiles = 0;
+       nNumberOfVideoItemByType = 0;
+
+       switch (nSortType) {
+       case MP_MEDIA_SORT_BY_NONE:
+       case MP_MEDIA_SORT_BY_RECENTLY_VIEWED:
+               nOrderType = MEDIA_CONTENT_ORDER_DESC;
+               strncpy(szOrderObj, MEDIA_LAST_PLAYED_TIME, STR_LEN_MAX - 1);
+               break;
+
+       case MP_MEDIA_SORT_BY_RECENTLY_ADDED:
+               nOrderType = MEDIA_CONTENT_ORDER_DESC;
+               strncpy(szOrderObj, MEDIA_ADDED_TIME, STR_LEN_MAX - 1);
+               break;
+
+       case MP_MEDIA_SORT_BY_NAME:
+               nOrderType = MEDIA_CONTENT_ORDER_ASC;
+               strncpy(szOrderObj, MEDIA_DISPLAY_NAME, STR_LEN_MAX - 1);
+               break;
+
+       case MP_MEDIA_SORT_BY_SIZE:
+               nOrderType = MEDIA_CONTENT_ORDER_DESC;
+               strncpy(szOrderObj, MEDIA_SIZE, STR_LEN_MAX - 1);
+               break;
+
+       case MP_MEDIA_SORT_BY_TYPE:
+               nOrderType = MEDIA_CONTENT_ORDER_ASC;
+               strncpy(szOrderObj, MEDIA_MIME_TYPE, STR_LEN_MAX - 1);
+               break;
+
+       default:
+               nOrderType = MEDIA_CONTENT_ORDER_ASC;
+               strncpy(szOrderObj, MEDIA_LAST_PLAYED_TIME, STR_LEN_MAX - 1);
+       }
+
+       switch (nItemType) {
+       case MP_LIST_VIEW_ALL:
+               if (!mp_util_get_personal_status()) {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) and FOLDER_PATH = \"%s\" and FOLDER_PATH NOT LIKE \"%s%%\"",
+                                        szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+               } else {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\"",
+                                        szFolderPath);
+               }
+               break;
+
+       case MP_LIST_VIEW_PHONE:
+               if (!mp_util_get_personal_status()) {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 and (MEDIA_STORAGE_TYPE = 0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\" and FOLDER_PATH NOT LIKE \"%s%%\"",
+                                        szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+               } else {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\"",
+                                        szFolderPath);
+               }
+               break;
+
+       case MP_LIST_VIEW_CLOUD:
+               if (!mp_util_get_personal_status()) {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) and MEDIA_STORAGE_TYPE = 101 and FOLDER_PATH = \"%s\" and FOLDER_PATH NOT LIKE \"%s%%\"",
+                                        szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+               } else {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_STORAGE_TYPE = 101 and FOLDER_PATH = \"%s\"",
+                                        szFolderPath);
+               }
+               break;
+
+       default:
+               if (!mp_util_get_personal_status()) {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) and FOLDER_PATH = \"%s\" and FOLDER_PATH NOT LIKE \"%s%%\"",
+                                        szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+               } else {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\"",
+                                        szFolderPath);
+               }
+               break;
+       }
+
+       if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to create media filter handle.");
+               return FALSE;
+       }
+
+       if (media_filter_set_condition
+               (m_FilterHandle, szTmpStr,
+                MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set filter condition.");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (media_folder_foreach_folder_from_db
+               (m_FilterHandle, mp_util_svc_iterate_for_get_folder_cb,
+                &m_FolderHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail media_folder_foreach_folder_from_db().");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (!m_FolderHandle) {
+               VideoLogError("Fail to get folder handle.");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       memset(szTmpStr, 0, STR_LEN_MAX);
+       snprintf(szTmpStr, STR_LEN_MAX,
+                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101)");
+       if (media_filter_set_condition
+               (m_FilterHandle, szTmpStr,
+                MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set filter condition.");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (media_filter_set_order
+               (m_FilterHandle, nOrderType, szOrderObj,
+                MEDIA_CONTENT_COLLATE_NOCASE) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set order.");
+               media_filter_destroy(m_FilterHandle);
+
+               return FALSE;
+       }
+
+       if (media_folder_get_folder_id(m_FolderHandle, &szFolderID) !=
+               MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to get folder id.");
+               media_filter_destroy(m_FilterHandle);
+
+               MP_FREE_STRING(szFolderID);
+               return FALSE;
+       }
+
+       if (media_folder_foreach_media_from_db
+               (szFolderID, m_FilterHandle, mp_util_svc_iterate_cb,
+                &VideoItemList) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set order.");
+               media_filter_destroy(m_FilterHandle);
+
+               MP_FREE_STRING(szFolderID);
+               return FALSE;
+       }
+
+       if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to destroy media filter handle.");
+       }
+
+       MP_FREE_STRING(szFolderID);
+
+       return TRUE;
+}
+
+/**
+* Get thumbnail for folder
+* @param nVideoFolderIndex : folder index
+* @param nSortType : sort type
+* @return thumbnail path
+*/
+char *mp_util_get_folder_thumbnail(int nVideoFolderIndex, int nSortType)
+{
+       if (!VideoFolderList) {
+               VideoLogError("[ERR]");
+               return NULL;
+       }
+
+       media_folder_h m_FolderHandle = NULL;
+       m_FolderHandle =
+               (media_folder_h) eina_list_nth(VideoFolderList, nVideoFolderIndex);
+       if (!m_FolderHandle) {
+               VideoLogError("Fail to get folder handle.");
+               return NULL;
+       }
+
+       media_info_h pVideoItem = NULL;
+       char *szThumbnailPath = NULL;
+       filter_h m_FilterHandle = NULL;
+       media_content_order_e nOrderType = MEDIA_CONTENT_ORDER_ASC;
+       char *szFolderID = NULL;
+       char szOrderObj[STR_LEN_MAX] = { 0, };
+       char szTmpStr[STR_LEN_MAX] = { 0, };
+
+       switch (nSortType) {
+       case MP_MEDIA_SORT_BY_NONE:
+       case MP_MEDIA_SORT_BY_RECENTLY_VIEWED:
+               nOrderType = MEDIA_CONTENT_ORDER_DESC;
+               strncpy(szOrderObj, MEDIA_LAST_PLAYED_TIME, STR_LEN_MAX - 1);
+               break;
+
+       case MP_MEDIA_SORT_BY_RECENTLY_ADDED:
+               nOrderType = MEDIA_CONTENT_ORDER_DESC;
+               strncpy(szOrderObj, MEDIA_ADDED_TIME, STR_LEN_MAX - 1);
+               break;
+
+       case MP_MEDIA_SORT_BY_NAME:
+               nOrderType = MEDIA_CONTENT_ORDER_ASC;
+               strncpy(szOrderObj, MEDIA_DISPLAY_NAME, STR_LEN_MAX - 1);
+               break;
+
+       case MP_MEDIA_SORT_BY_SIZE:
+               nOrderType = MEDIA_CONTENT_ORDER_DESC;
+               strncpy(szOrderObj, MEDIA_SIZE, STR_LEN_MAX - 1);
+               break;
+
+       case MP_MEDIA_SORT_BY_TYPE:
+               nOrderType = MEDIA_CONTENT_ORDER_ASC;
+               strncpy(szOrderObj, MEDIA_MIME_TYPE, STR_LEN_MAX - 1);
+               break;
+
+       default:
+               nOrderType = MEDIA_CONTENT_ORDER_ASC;
+               strncpy(szOrderObj, MEDIA_LAST_PLAYED_TIME, STR_LEN_MAX - 1);
+       }
+
+       if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to create media filter handle.");
+               return NULL;
+       }
+
+       memset(szTmpStr, 0, STR_LEN_MAX);
+       snprintf(szTmpStr, STR_LEN_MAX,
+                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121)");
+       if (media_filter_set_condition
+               (m_FilterHandle, szTmpStr,
+                MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set filter condition.");
+               media_filter_destroy(m_FilterHandle);
+               return NULL;
+       }
+
+       if (media_filter_set_order
+               (m_FilterHandle, nOrderType, szOrderObj,
+                MEDIA_CONTENT_COLLATE_NOCASE) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set order.");
+               media_filter_destroy(m_FilterHandle);
+
+               return NULL;
+       }
+
+       if (media_folder_get_folder_id(m_FolderHandle, &szFolderID) !=
+               MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to get folder id.");
+               media_filter_destroy(m_FilterHandle);
+
+               MP_FREE_STRING(szFolderID);
+               return NULL;
+       }
+
+       if (media_folder_foreach_media_from_db
+               (szFolderID, m_FilterHandle,
+                mp_util_svc_iterate_for_get_video_item_cb,
+                &pVideoItem) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set order.");
+               media_filter_destroy(m_FilterHandle);
+
+               MP_FREE_STRING(szFolderID);
+               return NULL;
+       }
+
+       if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to destroy media filter handle.");
+       }
+
+       if (pVideoItem) {
+               media_info_get_thumbnail_path(pVideoItem, &szThumbnailPath);
+               VideoSecureLogInfo("Video thumbnail file path : %s",
+                                                  szThumbnailPath);
+               media_info_destroy(pVideoItem);
+       }
+
+       MP_FREE_STRING(szFolderID);
+
+       return szThumbnailPath;
+}
+
+/**
+* Get video list by item type
+* @param nSortType : sort type
+* @param nItemType : list view type
+* @return result
+*/
+bool mp_util_svc_extract_video_list_by_item_type(int nSortType,
+                                                                                                int nItemType)
+{
+       if (VideoItemList) {
+               VideoLogError("Already exist video list.");
+               return FALSE;
+       }
+
+       nWhatFileType = MP_MEDIA_ALL_FILE_TYPE;
+
+       filter_h m_FilterHandle = NULL;
+       media_content_order_e nOrderType = MEDIA_CONTENT_ORDER_ASC;
+       char szTmpStr[STR_LEN_MAX] = { 0, };
+       char szOrderObj[STR_LEN_MAX] = { 0, };
+
+       nNumberOfVideoItemByType = 0;
+
+       switch (nSortType) {
+       case MP_MEDIA_SORT_BY_NONE:
+       case MP_MEDIA_SORT_BY_RECENTLY_VIEWED:
+               nOrderType = MEDIA_CONTENT_ORDER_DESC;
+               strncpy(szOrderObj, MEDIA_LAST_PLAYED_TIME, STR_LEN_MAX - 1);
+               break;
+
+       case MP_MEDIA_SORT_BY_RECENTLY_ADDED:
+               nOrderType = MEDIA_CONTENT_ORDER_DESC;
+               strncpy(szOrderObj, MEDIA_ADDED_TIME, STR_LEN_MAX - 1);
+               break;
+
+       case MP_MEDIA_SORT_BY_NAME:
+               nOrderType = MEDIA_CONTENT_ORDER_ASC;
+               strncpy(szOrderObj, MEDIA_DISPLAY_NAME, STR_LEN_MAX - 1);
+               break;
+
+       case MP_MEDIA_SORT_BY_SIZE:
+               nOrderType = MEDIA_CONTENT_ORDER_DESC;
+               strncpy(szOrderObj, MEDIA_SIZE, STR_LEN_MAX - 1);
+               break;
+
+       case MP_MEDIA_SORT_BY_TYPE:
+               nOrderType = MEDIA_CONTENT_ORDER_ASC;
+               strncpy(szOrderObj, MEDIA_MIME_TYPE, STR_LEN_MAX - 1);
+               break;
+
+       default:
+               nOrderType = MEDIA_CONTENT_ORDER_ASC;
+               strncpy(szOrderObj, MEDIA_LAST_PLAYED_TIME, STR_LEN_MAX - 1);
+       }
+
+       switch (nItemType) {
+       case MP_LIST_VIEW_ALL:
+               if (!mp_util_get_personal_status()) {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121) and MEDIA_PATH not like \"%s%%\"",
+                                        VIDEO_UTIL_PERSONAL_HEAD_STR);
+               } else {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121)");
+               }
+               break;
+
+       case MP_LIST_VIEW_PHONE:
+               if (!mp_util_get_personal_status()) {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 and (MEDIA_STORAGE_TYPE = 0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH not like \"%s%%\"",
+                                        VIDEO_UTIL_PERSONAL_HEAD_STR);
+               } else {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 and (MEDIA_STORAGE_TYPE = 0 OR MEDIA_STORAGE_TYPE=1)");
+               }
+
+               break;
+
+       case MP_LIST_VIEW_CLOUD:
+               if (!mp_util_get_personal_status()) {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) and MEDIA_STORAGE_TYPE = 101 and MEDIA_PATH not like \"%s%%\"",
+                                        VIDEO_UTIL_PERSONAL_HEAD_STR);
+               } else {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) and MEDIA_STORAGE_TYPE = 101");
+               }
+
+               break;
+
+       default:
+               if (!mp_util_get_personal_status()) {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121) and MEDIA_PATH not like \"%s%%\"",
+                                        VIDEO_UTIL_PERSONAL_HEAD_STR);
+               } else {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121)");
+               }
+               break;
+       }
+       VideoLogInfo("MEDIA_PATH not like %s", szTmpStr);
+
+       if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogInfo("Fail to create media filter handle.");
+               return FALSE;
+       }
+       if (media_filter_set_condition
+               (m_FilterHandle, szTmpStr,
+                MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set filter condition.");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (media_filter_set_order
+               (m_FilterHandle, nOrderType, szOrderObj,
+                MEDIA_CONTENT_COLLATE_NOCASE) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set order.");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (media_info_foreach_media_from_db
+               (m_FilterHandle, mp_util_svc_iterate_for_video_item_list_view_cb,
+                &VideoItemList) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError
+                       ("Fail to get video item list with filter condition.");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to destroy media filter handle.");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+* Get display name of video items
+* @param keyword : keyword to match
+* @param index_list : resulting list
+* @return result
+*/
+bool mp_util_svc_index_list_for_search_view(const char *keyword,
+                                                                                       void **index_list)
+{
+       media_info_h pVideoItem = NULL;
+       Eina_List *pIterateList = NULL;
+       Eina_List *pSearchList = NULL;
+       int index = 0;
+
+       if (!VideoItemList) {
+               VideoLogError("VideoItemList IS null");
+               return FALSE;
+       }
+
+       if (!keyword) {
+               VideoLogError("keyword IS null");
+               return FALSE;
+       }
+
+       if (!index_list) {
+               VideoLogError("List IS null");
+               return FALSE;
+       }
+
+       EINA_LIST_FOREACH(VideoItemList, pIterateList, pVideoItem) {
+               if (pVideoItem) {
+                       char *szTitle = NULL;
+                       media_info_get_display_name(pVideoItem, &szTitle);
+                       if (szTitle && mp_util_str_str_same_case(szTitle, keyword)) {
+                               pSearchList =
+                                       eina_list_append(pSearchList, (const void *) index);
+                       }
+                       MP_FREE_STRING(szTitle);
+               }
+               index++;
+       }
+       *index_list = pSearchList;
+
+       return TRUE;
+}
+
+/**
+* Free video list
+*/
+void mp_util_svc_destory_video_list(void)
+{
+
+       if (VideoFolderList) {
+               mp_util_svc_destory_video_folder_list();
+               VideoFolderList = NULL;
+       }
+
+       if (VideoItemList) {
+               mp_util_svc_destory_video_item_list();
+               VideoItemList = NULL;
+       }
+
+       if (RecentPlayedItemList) {
+               mp_util_svc_destory_last_played_item_list();
+               RecentPlayedItemList = NULL;
+       }
+
+       nTotalVideoTypeFiles = 0;
+       nNumberOfVideoItemByType = 0;
+}
+
+/**
+* Remove item from video list
+* @param nVideoItemIndex : index to remove
+* @return result
+*/
+bool mp_util_svc_remove_item_by_list_index(int nVideoItemIndex)
+{
+
+       if (!VideoItemList) {
+               VideoLogError("pList is empty already.");
+               return FALSE;
+       }
+
+       media_info_h pItem = eina_list_nth(VideoItemList, nVideoItemIndex);
+
+       if (pItem) {
+               char *szMediaID = NULL;
+               char *szMediaPath = NULL;
+               media_info_get_media_id(pItem, &szMediaID);
+               if (szMediaID) {
+                       mp_util_delete_wall_file(szMediaID);
+                       media_info_get_file_path(pItem, &szMediaPath);
+                       media_content_scan_file(szMediaPath);
+                       VideoItemList = eina_list_remove(VideoItemList, pItem);
+                       free(szMediaID);
+                       free(szMediaPath);
+                       media_info_destroy(pItem);
+                       nNumberOfVideoItemByType--;
+               } else {
+                       VideoLogError("No exist media ID in index %d of list.",
+                                                 nVideoItemIndex);
+                       return FALSE;
+               }
+       } else {
+               VideoLogError("Fail to remove item in media svc and list.");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+
+/**
+* Remove item from db
+* @param nVideoItemIndex : index to remove
+* @return result
+*/
+bool mp_util_svc_remove_item_from_db_by_list_index(int nVideoItemIndex)
+{
+
+       if (!VideoItemList) {
+               VideoLogError("pList is empty already.");
+               return FALSE;
+       }
+
+       media_info_h pItem = eina_list_nth(VideoItemList, nVideoItemIndex);
+
+       if (pItem) {
+               char *szMediaID = NULL;
+               char *szMediaPath = NULL;
+               media_info_get_media_id(pItem, &szMediaID);
+               if (szMediaID) {
+                       mp_util_delete_wall_file(szMediaID);
+                       media_info_get_file_path(pItem, &szMediaPath);
+                       media_content_scan_file(szMediaPath);
+                       free(szMediaID);
+                       free(szMediaPath);
+               } else {
+                       VideoLogError("No exist media ID in index %d of list.",
+                                                 nVideoItemIndex);
+                       return FALSE;
+               }
+       } else {
+               VideoLogError("Fail to remove item in media svc and list.");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+* Get ID of the video item with specified url
+* @param szPath : path of video
+* @param szVideoID : resulting ID
+* @return result
+*/
+
+bool mp_util_svc_get_video_id_by_video_url(const char *szPath,
+                                                                                  char **szVideoID)
+{
+       media_info_h pVideoItem = NULL;
+       filter_h m_FilterHandle = NULL;
+       char szTmpStr[STR_LEN_MAX] = { 0, };
+       bool bRet = FALSE;
+       int ret = -1;
+
+       if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogInfo("Fail to create media filter handle.");
+               bRet = FALSE;
+       }
+
+       snprintf(szTmpStr, STR_LEN_MAX, "MEDIA_PATH = \"%s\"", szPath);
+       if (media_filter_set_condition(m_FilterHandle,
+                                                                  szTmpStr,
+                                                                  MEDIA_CONTENT_COLLATE_DEFAULT) !=
+               MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set filter condition.");
+               media_filter_destroy(m_FilterHandle);
+               m_FilterHandle = NULL;
+               bRet = FALSE;
+       }
+
+       if (media_info_foreach_media_from_db(m_FilterHandle,
+                                                                                mp_util_svc_iterate_for_get_video_item_cb,
+                                                                                &pVideoItem) !=
+               MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError
+                       ("Fail to get video item list with filter condition.");
+               if (m_FilterHandle) {
+                       media_filter_destroy(m_FilterHandle);
+                       m_FilterHandle = NULL;
+               }
+               bRet = FALSE;
+       }
+
+       if (m_FilterHandle) {
+               ret = media_filter_destroy(m_FilterHandle);
+               if (ret != MEDIA_CONTENT_ERROR_NONE) {
+                       VideoLogError("Fail to destroy media filter handle.");
+                       m_FilterHandle = NULL;
+               }
+               bRet = FALSE;
+       }
+
+       if (pVideoItem) {
+               char *szMediaID = NULL;
+               media_info_get_media_id(pVideoItem, &szMediaID);
+               *szVideoID = szMediaID;
+               media_info_destroy(pVideoItem);
+               bRet = TRUE;
+       } else {
+               bRet = FALSE;
+       }
+
+       return bRet;
+}
+
+/**
+* Get thumbnail of the video with specified url
+* @param szMediaUri : path of video
+* @return thumbnail path
+*/
+char *mp_util_svc_get_video_Thumbnail_by_video_url(const char *szMediaUri)
+{
+       if (!szMediaUri) {
+               VideoLogError("No exist video path.");
+               return NULL;
+       }
+
+       media_info_h pVideoItem = NULL;
+       filter_h m_FilterHandle = NULL;
+       char *szThumbnailPath = NULL;
+       char szTmpStr[STR_LEN_MAX] = { 0, };
+
+       if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to create media filter handle.");
+               return FALSE;
+       }
+
+       memset(szTmpStr, 0, STR_LEN_MAX);
+       snprintf(szTmpStr, STR_LEN_MAX,
+                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121) AND MEDIA_PATH = \"%s\"",
+                        szMediaUri);
+       if (media_filter_set_condition
+               (m_FilterHandle, szTmpStr,
+                MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set filter condition.");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (media_info_foreach_media_from_db
+               (m_FilterHandle, mp_util_svc_iterate_for_get_video_item_cb,
+                &pVideoItem) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError
+                       ("Fail to get video item list with filter condition.");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to destroy media filter handle.");
+               return FALSE;
+       }
+
+       if (pVideoItem) {
+               media_info_get_thumbnail_path(pVideoItem, &szThumbnailPath);
+               VideoSecureLogInfo("Video thumbnail file path : %s",
+                                                  szThumbnailPath);
+               media_info_destroy(pVideoItem);
+       }
+
+       return szThumbnailPath;
+}
+
+/**
+* Set last played time of video with specified url
+* @param szMediaUri : path of video
+* @param nPosition : last played time
+* @return
+*/
+
+void mp_util_svc_set_video_last_played_time_by_url(char *szMediaUri,
+                                                                                                  unsigned int nPosition)
+{
+       if (!szMediaUri) {
+               VideoLogError("No exist media uri.");
+               return;
+       }
+
+       VideoSecureLogInfo("szMediaUri : %s, nLastPlayedTime : %d", szMediaUri,
+                                          nPosition);
+
+       media_info_h pVideoItem = NULL;
+       filter_h m_FilterHandle = NULL;
+       char szTmpStr[STR_LEN_MAX] = { 0, };
+
+       if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to create media filter handle.");
+               return;
+       }
+
+       snprintf(szTmpStr, STR_LEN_MAX,
+                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121) AND MEDIA_PATH = \"%s\"",
+                        szMediaUri);
+       if (media_filter_set_condition
+               (m_FilterHandle, szTmpStr,
+                MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set filter condition.");
+               media_filter_destroy(m_FilterHandle);
+               return;
+       }
+
+       if (media_info_foreach_media_from_db
+               (m_FilterHandle, mp_util_svc_iterate_for_get_video_item_cb,
+                &pVideoItem) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError
+                       ("Fail to get video item list with filter condition.");
+               media_filter_destroy(m_FilterHandle);
+               return;
+       }
+
+       if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to destroy media filter handle.");
+               return;
+       }
+
+       video_meta_h pVideoMetaHandle = NULL;
+
+       if (pVideoItem) {
+               if (media_info_get_video(pVideoItem, &pVideoMetaHandle) !=
+                       MEDIA_CONTENT_ERROR_NONE) {
+                       VideoLogError("Fail to get pVideoMetaHandle.");
+               } else {
+                       if (pVideoMetaHandle) {
+                               // video_meta_update_to_db(pVideoMetaHandle); // Deprecated API, Parent function not called.
+                               video_meta_destroy(pVideoMetaHandle);
+                       } else {
+                               VideoLogError("No exist pVideoMetaHandle");
+                       }
+               }
+               media_info_destroy(pVideoItem);
+       }
+}
+
+
+/**
+* Get video path
+* @param nVideoItemIndex : index of the video
+* @return path of the video
+*/
+char *mp_util_svc_get_video_url(const int nVideoItemIndex)
+{
+       if (!VideoItemList) {
+               VideoLogError("Not exist video item list handle.");
+               return NULL;
+       }
+
+       if (nVideoItemIndex < 0
+               || nVideoItemIndex >=
+               mp_util_svc_get_video_list_size_for_checking_index()) {
+               VideoLogError("Error number of list item.");
+               return NULL;
+       }
+
+       char *szVideoItemFilePath = NULL;
+       media_info_h pVideoItem =
+               (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+
+       if (pVideoItem) {
+               media_info_get_file_path(pVideoItem, &szVideoItemFilePath);
+               VideoSecureLogInfo("szVideoItemFilePath : %s",
+                                                  szVideoItemFilePath);
+       }
+
+       return szVideoItemFilePath;
+}
+
+/**
+* Get video thumbnail
+* @param nVideoItemIndex : index of the video
+* @return path of the video thumbnail
+*/
+char *mp_util_svc_get_video_thumbnail(const int nVideoItemIndex)
+{
+       if (!VideoItemList) {
+               VideoLogError("Not exist video item list handle.");
+               return NULL;
+       }
+
+       if (nVideoItemIndex < 0
+               || nVideoItemIndex >=
+               mp_util_svc_get_video_list_size_for_checking_index()) {
+               VideoLogError("Error number of list item.");
+               return NULL;
+       }
+
+       char *szVideoItemThumbnailPath = NULL;
+
+       media_info_h pVideoItem =
+               (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+
+       if (pVideoItem) {
+               media_info_get_thumbnail_path(pVideoItem,
+                                                                         &szVideoItemThumbnailPath);
+       }
+
+       VideoSecureLogInfo("pThumbIconUri = %s", szVideoItemThumbnailPath);
+
+       return szVideoItemThumbnailPath;
+}
+
+
+/**
+* Get video title
+* @param nVideoItemIndex : index of the video
+* @return title of the video
+*/
+char *mp_util_svc_get_video_title(const int nVideoItemIndex)
+{
+       if (!VideoItemList) {
+               VideoLogError("Not exist video item list handle.");
+               return NULL;
+       }
+
+       char *szTitle = NULL;
+
+       if (!szTitle) {
+               media_info_h pVideoItem =
+                       (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+
+               if (pVideoItem) {
+                       media_info_get_display_name(pVideoItem, &szTitle);
+               }
+       }
+
+       return szTitle;
+}
+
+/**
+* Get video duration
+* @param nVideoItemIndex : index of the video
+* @return duration of the video
+*/
+int mp_util_svc_get_video_duration_time(const int nVideoItemIndex)
+{
+       if (!VideoItemList) {
+               VideoLogError("Not exist video item list handle.");
+               return 0;
+       }
+
+       if (nVideoItemIndex < 0
+               || nVideoItemIndex >=
+               mp_util_svc_get_video_list_size_for_checking_index()) {
+               VideoLogError("Error number of list item.");
+               return 0;
+       }
+
+       int nDurationTime = 0;
+       media_info_h pVideoItem =
+               (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+
+       if (pVideoItem) {
+               video_meta_h pVideoMetaHandle = NULL;
+               if (media_info_get_video(pVideoItem, &pVideoMetaHandle) ==
+                       MEDIA_CONTENT_ERROR_NONE) {
+                       if (video_meta_get_duration(pVideoMetaHandle, &nDurationTime)
+                               != MEDIA_CONTENT_ERROR_NONE) {
+                               VideoLogError("fail to get duration of video metadata");
+                       }
+
+                       video_meta_destroy(pVideoMetaHandle);
+               }
+       }
+
+       return nDurationTime;
+}
+
+/**
+* Get video item size
+* @param nVideoItemIndex : index of the video
+* @return video file size
+*/
+unsigned long long mp_util_svc_get_video_item_size(const int
+                                                                                                  nVideoItemIndex)
+{
+       if (!VideoItemList) {
+               VideoLogError("Not exist video item list handle.");
+               return 0;
+       }
+
+       if (!VideoItemList) {
+               VideoLogError("Not exist video item list handle.");
+               return 0;
+       }
+
+       unsigned long long nSize = 0;
+
+       media_info_h pVideoItem =
+               (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+       if (pVideoItem) {
+               media_info_get_size(pVideoItem, &nSize);
+       }
+
+       return nSize;
+
+}
+
+/**
+* Get video item width
+* @param nVideoItemIndex : index of the video
+* @return video width
+*/
+int mp_util_svc_get_video_item_width(const int nVideoItemIndex)
+{
+       if (!VideoItemList) {
+               VideoLogError("Not exist video item list handle.");
+               return 0;
+       }
+
+       int nWidth = 0;
+       media_info_h pVideoItem =
+               (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+       video_meta_h pVideoMetaHandle = NULL;
+
+       if (pVideoItem) {
+               if (media_info_get_video(pVideoItem, &pVideoMetaHandle) !=
+                       MEDIA_CONTENT_ERROR_NONE) {
+                       VideoLogError("Fail to get pVideoMetaHandle.");
+               } else {
+                       if (pVideoMetaHandle) {
+
+                               video_meta_get_width(pVideoMetaHandle, &nWidth);
+                               video_meta_destroy(pVideoMetaHandle);
+                       } else {
+                               VideoLogError("No exist pVideoMetaHandle");
+                       }
+               }
+       }
+
+       return nWidth;
+}
+
+/**
+* Get video item height
+* @param nVideoItemIndex : index of the video
+* @return video height
+*/
+int mp_util_svc_get_video_item_height(const int nVideoItemIndex)
+{
+       if (!VideoItemList) {
+               VideoLogError("Not exist video item list handle.");
+               return 0;
+       }
+
+       int nHeight = 0;
+       media_info_h pVideoItem =
+               (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+       video_meta_h pVideoMetaHandle = NULL;
+
+       if (pVideoItem) {
+               if (media_info_get_video(pVideoItem, &pVideoMetaHandle) !=
+                       MEDIA_CONTENT_ERROR_NONE) {
+                       VideoLogError("Fail to get pVideoMetaHandle.");
+               } else {
+                       if (pVideoMetaHandle) {
+
+                               video_meta_get_height(pVideoMetaHandle, &nHeight);
+                               video_meta_destroy(pVideoMetaHandle);
+                       } else {
+                               VideoLogError("No exist pVideoMetaHandle");
+                       }
+               }
+       }
+
+       return nHeight;
+}
+
+/**
+* Get video item modified time
+* @param nVideoItemIndex : index of the video
+* @return modified time string
+*/
+char *mp_util_svc_get_video_item_modified_time(const int nVideoItemIndex)
+{
+       if (!VideoItemList) {
+               VideoLogError("Not exist video item list handle.");
+               return 0;
+       }
+
+       VideoLogInfo("");
+
+       time_t pModifiedTime;
+       struct tm sModifiedTime;
+       char szModifiedTime[STR_LEN_MAX] = { 0, };
+       media_info_h pVideoItem =
+               (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+       if (pVideoItem) {
+               int nRet = MEDIA_CONTENT_ERROR_NONE;
+               nRet = media_info_get_modified_time(pVideoItem, &pModifiedTime);
+               if (nRet != MEDIA_CONTENT_ERROR_NONE) {
+                       VideoLogError("media_info_get_modified_time failed : [%d]!!!",
+                                                 nRet);
+                       return 0;
+               }
+               gmtime_r(&pModifiedTime, &sModifiedTime);
+               strftime(szModifiedTime, STR_LEN_MAX - 1, "%d %b. %Y. %H:%M",
+                                &sModifiedTime);
+
+               return g_strdup(szModifiedTime);
+       }
+       return NULL;
+}
+
+/**
+* Get video list size
+* @return video list size
+*/
+int mp_util_svc_get_video_list_size_for_checking_index(void)
+{
+       if (!VideoItemList) {
+               VideoLogError("Not exist video item list handle.");
+               return 0;
+       }
+
+       return (int) eina_list_count(VideoItemList);
+}
+
+/**
+* Get video items size by type
+* @return video items size
+*/
+int mp_util_svc_get_number_of_video_item_by_type(void)
+{
+
+       return nNumberOfVideoItemByType;
+}
+
+/**
+* Get video folder list from db by type
+* @param nSortType : sort type
+* @param nItemType : list view type
+* @return result
+*/
+bool mp_util_svc_extract_video_folder_list_by_type(int nSortType,
+                                                                                                  int nItemType)
+{
+       filter_h m_FilterHandle = NULL;
+       char szTmpStr[STR_LEN_MAX] = { 0, };
+
+       switch (nItemType) {
+       case MP_LIST_VIEW_ALL:
+               snprintf(szTmpStr, STR_LEN_MAX,
+                                "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121)");
+               break;
+
+       case MP_LIST_VIEW_PHONE:
+               snprintf(szTmpStr, STR_LEN_MAX,
+                                "MEDIA_TYPE = 1 and (MEDIA_STORAGE_TYPE = 0 OR MEDIA_STORAGE_TYPE=1)");
+
+               break;
+
+       case MP_LIST_VIEW_CLOUD:
+               snprintf(szTmpStr, STR_LEN_MAX,
+                                "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) and MEDIA_STORAGE_TYPE = 101");
+
+               break;
+
+       default:
+               snprintf(szTmpStr, STR_LEN_MAX,
+                                "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121)");
+
+               break;
+       }
+
+       if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to create media filter handle.");
+               return FALSE;
+       }
+
+       if (media_filter_set_condition
+               (m_FilterHandle, szTmpStr,
+                MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set filter condition.");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (media_folder_foreach_folder_from_db
+               (m_FilterHandle, mp_util_svc_iterate_for_folder_list_cb,
+                &VideoFolderList) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail media_folder_foreach_folder_from_db().");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to destroy media filter handle.");
+       }
+
+       return TRUE;
+}
+
+/**
+* Get personal video folder list
+* @param nSortType : sort type
+* @param bPersonal : true/false
+* @return result
+*/
+bool mp_util_svc_extract_personal_video_folder_list(int nSortType,
+                                                                                                       bool bPersonal)
+{
+       filter_h m_FilterHandle = NULL;
+       char szTmpStr[STR_LEN_MAX] = { 0, };
+
+       if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to create media filter handle.");
+               return FALSE;
+       }
+
+       if (bPersonal == FALSE) {
+               snprintf(szTmpStr, STR_LEN_MAX,
+                                "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH NOT LIKE \"%s%%\"",
+                                VIDEO_UTIL_PERSONAL_HEAD_STR);
+       } else {
+               snprintf(szTmpStr, STR_LEN_MAX,
+                                "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH LIKE \"%s%%\"",
+                                VIDEO_UTIL_PERSONAL_HEAD_STR);
+       }
+       if (media_filter_set_condition
+               (m_FilterHandle, szTmpStr,
+                MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set filter condition.");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (media_folder_foreach_folder_from_db
+               (m_FilterHandle, mp_util_svc_iterate_for_personal_folder_list_cb,
+                &VideoFolderList) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail media_folder_foreach_folder_from_db().");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to destroy media filter handle.");
+       }
+
+       return TRUE;
+}
+
+/**
+* Free video folder list
+* @return result
+*/
+bool mp_util_svc_destory_video_folder_list(void)
+{
+       if (!VideoFolderList) {
+               VideoLogError("VideoFolderList is empty already.");
+               return FALSE;
+       }
+
+       media_folder_h pTmpFolderItem = NULL;
+       EINA_LIST_FREE(VideoFolderList, pTmpFolderItem) {
+               if (pTmpFolderItem) {
+                       media_folder_destroy(pTmpFolderItem);
+               }
+       }
+
+       VideoFolderList = NULL;
+
+       return TRUE;
+}
+
+/**
+* Get video folder size
+* @return result
+*/
+int mp_util_svc_get_video_folder_size(void)
+{
+       if (!VideoFolderList) {
+               VideoLogError("Not exist video item list handle.");
+               return 0;
+       }
+
+       if (VideoFolderList) {
+               return (int) eina_list_count(VideoFolderList);
+       }
+
+       return 0;
+}
+
+/**
+* Get Video folder name
+* @param nVideoFolderIndex : index of the folder
+* @return folder name
+*/
+char *mp_util_svc_get_video_folder_name(int nVideoFolderIndex)
+{
+       if (!VideoFolderList) {
+               VideoLogError("Not exist video folder list handle.");
+               return 0;
+       }
+
+       if (nVideoFolderIndex < 0
+               || nVideoFolderIndex >= mp_util_svc_get_video_folder_size()) {
+               VideoLogError("Error number of list item.");
+               return NULL;
+       }
+
+       char *szFolderName = NULL;
+       media_folder_h pFolderItem =
+               (media_folder_h) eina_list_nth(VideoFolderList, nVideoFolderIndex);
+       if (pFolderItem) {
+               media_folder_get_name(pFolderItem, &szFolderName);
+
+               if (szFolderName) {
+                       VideoLogError("szFolderName : %s", szFolderName);
+                       return szFolderName;
+               }
+       }
+
+       return NULL;
+}
+
+/**
+* Get Video folder url
+* @param nVideoFolderIndex : index of the folder
+* @return folder url string
+*/
+
+char *mp_util_svc_get_video_folder_url(int nVideoFolderIndex)
+{
+       if (!VideoFolderList) {
+               VideoLogError("Not exist video item list handle.");
+               return NULL;
+       }
+
+       if (nVideoFolderIndex < 0
+               || nVideoFolderIndex >= mp_util_svc_get_video_folder_size()) {
+               VideoLogError("Error number of list item.");
+               return NULL;
+       }
+
+       char *szFolderPath = NULL;
+       media_folder_h pFolderItem =
+               (media_folder_h) eina_list_nth(VideoFolderList, nVideoFolderIndex);
+       if (pFolderItem) {
+               media_folder_get_path(pFolderItem, &szFolderPath);
+
+               if (szFolderPath) {
+                       VideoSecureLogInfo("szFolderPath : %s", szFolderPath);
+                       return szFolderPath;
+               }
+       }
+
+       return NULL;
+}
+
+/**
+* Get Video folder id
+* @param nVideoFolderIndex : index of the folder
+* @return folder id string
+*/
+char *mp_util_svc_get_video_folder_id(int nVideoFolderIndex)
+{
+       if (!VideoFolderList) {
+               VideoLogError("Not exist video item list handle.");
+               return NULL;
+       }
+
+       if (nVideoFolderIndex < 0
+               || nVideoFolderIndex >= mp_util_svc_get_video_folder_size()) {
+               VideoLogError("Error number of list item.");
+               return NULL;
+       }
+
+       char *szFolderId = NULL;
+       media_folder_h pFolderItem =
+               (media_folder_h) eina_list_nth(VideoFolderList, nVideoFolderIndex);
+       if (pFolderItem) {
+               media_folder_get_folder_id(pFolderItem, &szFolderId);
+
+               if (szFolderId) {
+                       VideoLogInfo("szFolderId : %s", szFolderId);
+                       return szFolderId;
+               }
+       }
+
+       return NULL;
+}
+
+/**
+* Assing thumbnail update callback function
+* @param nVideoItemIndex : index of the video
+* @param pUserCallbackFunc : callback function to register
+* @param pUserData : user data for callback argument
+* @return folder name
+*/
+void mp_util_svc_register_thumbnail_update_func(int nVideoItemIndex,
+                                                                                               void *pUserCallbackFunc,
+                                                                                               void *pUserData)
+{
+       if (!pUserCallbackFunc) {
+               VideoLogError("[ERR]");
+               return;
+       }
+
+       if (nVideoItemIndex < 0
+               || nVideoItemIndex >=
+               mp_util_svc_get_video_list_size_for_checking_index()) {
+               VideoLogError("Error number of list item.");
+               return;
+       }
+
+       media_info_h pVideoItem =
+               (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+
+       if (media_info_create_thumbnail
+               (pVideoItem, pUserCallbackFunc,
+                pUserData) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogWarning("media_info_create_thumbnail is Fail");
+       }
+}
+
+/**
+* Cancel thumbnail update
+* @param nVideoItemIndex : index of the video
+*/
+void mp_util_svc_cancel_thumbnail_update(int nVideoItemIndex)
+{
+       VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+       if (nVideoItemIndex < 0
+               || nVideoItemIndex >=
+               mp_util_svc_get_video_list_size_for_checking_index()) {
+               VideoLogError("Error number of list item.");
+               return;
+       }
+
+       media_info_h pVideoItem =
+               (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+
+       if (pVideoItem) {
+               if (media_info_cancel_thumbnail(pVideoItem) !=
+                       MEDIA_CONTENT_ERROR_NONE) {
+                       VideoLogWarning("media_info_cancel_thumbnail is Fail");
+                       return;
+               }
+       } else {
+               VideoLogError("[ERR] pVideoItem is not existed.");
+       }
+}
+
+/**
+* Update thumbnail info to DB
+* @param nVideoItemIndex : index of the video
+*/
+void mp_util_svc_update_thumbnail_info(const int nVideoItemIndex)
+{
+       if (!VideoItemList) {
+               VideoLogError("Not exist video item list handle.");
+               return;
+       }
+
+       char *szMediaUri = mp_util_svc_get_video_url(nVideoItemIndex);
+
+       if (!szMediaUri) {
+               VideoLogError("No exist video path.");
+               return;
+       }
+
+       VideoSecureLogInfo("szMediaUri : %s", szMediaUri);
+
+       media_info_h pUpdatedVideoItem = NULL;
+       filter_h m_FilterHandle = NULL;
+       char szTmpStr[STR_LEN_MAX] = { 0, };
+
+       if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogInfo("Fail to create media filter handle.");
+               return;
+       }
+
+       memset(szTmpStr, 0, STR_LEN_MAX);
+       snprintf(szTmpStr, STR_LEN_MAX,
+                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121) AND MEDIA_PATH = \"%s\"",
+                        szMediaUri);
+       if (media_filter_set_condition
+               (m_FilterHandle, szTmpStr,
+                MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set filter condition.");
+               media_filter_destroy(m_FilterHandle);
+               if (szMediaUri) {
+                       free(szMediaUri);
+                       szMediaUri = NULL;
+               }
+               return;
+       }
+
+       if (media_info_foreach_media_from_db
+               (m_FilterHandle, mp_util_svc_iterate_for_get_video_item_cb,
+                &pUpdatedVideoItem) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError
+                       ("Fail to get video item list with filter condition.");
+               media_filter_destroy(m_FilterHandle);
+               if (szMediaUri) {
+                       free(szMediaUri);
+                       szMediaUri = NULL;
+               }
+               return;
+       }
+
+       if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to destroy media filter handle.");
+               if (szMediaUri) {
+                       free(szMediaUri);
+                       szMediaUri = NULL;
+               }
+               return;
+       }
+
+       if (pUpdatedVideoItem) {
+               char *szTmpStr = NULL;
+               media_info_get_thumbnail_path(pUpdatedVideoItem, &szTmpStr);
+               VideoSecureLogDebug("pUpdatedVideoItem - thumbnail path : %s",
+                                                       szTmpStr);
+               if (szTmpStr) {
+                       free(szTmpStr);
+                       szTmpStr = NULL;
+               }
+
+               media_info_get_display_name(pUpdatedVideoItem, &szTmpStr);
+               VideoSecureLogDebug("pUpdatedVideoItem -  title : %s", szTmpStr);
+               if (szTmpStr) {
+                       free(szTmpStr);
+                       szTmpStr = NULL;
+               }
+
+               int nCounter = 0;
+               Eina_List *pCurList = NULL;
+               media_info_h pTmpVideoItem = NULL;
+               EINA_LIST_FOREACH(VideoItemList, pCurList, pTmpVideoItem) {
+                       if (nCounter == nVideoItemIndex) {
+                               VideoLogError("nCounter : %d", nCounter);
+                               if (pTmpVideoItem) {
+                                       media_info_destroy(pTmpVideoItem);
+                               }
+                               pCurList->data = pUpdatedVideoItem;
+                               break;
+                       }
+                       ++nCounter;
+               }
+       } else {
+               VideoLogError("Fail to get video item from db..");
+       }
+
+       if (szMediaUri) {
+               free(szMediaUri);
+               szMediaUri = NULL;
+       }
+}
+
+/**
+* Get Video item ID
+* @param nVideoItemIndex : index of the video
+* @return video id string
+*/
+char *mp_util_svc_get_video_id_by_index(const int nVideoItemIndex)
+{
+       if (!VideoItemList) {
+               VideoLogError("Not exist video item list handle.");
+               return NULL;
+       }
+
+       if (nVideoItemIndex < 0
+               || nVideoItemIndex >=
+               mp_util_svc_get_video_list_size_for_checking_index()) {
+               VideoLogError("Error number of list item.");
+               return NULL;
+       }
+
+       media_info_h pVideoItem =
+               (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+
+       char *szMediaId = NULL;
+       if (pVideoItem) {
+               int ret = media_info_get_media_id(pVideoItem, &szMediaId);
+               VideoLogInfo("VideoID : %s, %d", szMediaId, ret);
+       }
+
+       return szMediaId;
+}
+
+/**
+* Get folder storage of the video folder
+* @param nVideoFolderIndex : index of the video folder
+* @return storage type
+*/
+
+MpMediaStorageType mp_util_svc_get_folder_storage(const int
+                                                                                                 nVideoFolderIndex)
+{
+
+       MpMediaStorageType storage_local = MP_MEDIA_TYPE_STORAGE_UNKNOWN;
+       char *folder_path;
+       int ret = -1;
+
+       if (!VideoFolderList) {
+               VideoLogError("Not exist video folder list handle.");
+               return storage_local;
+       }
+
+       if (nVideoFolderIndex < 0
+               || nVideoFolderIndex >= mp_util_svc_get_video_folder_size()) {
+               VideoLogError("Error number of list item.");
+               return storage_local;
+       }
+
+       media_folder_h pFolderItem =
+               (media_folder_h) eina_list_nth(VideoFolderList, nVideoFolderIndex);
+
+       if (media_folder_get_path(pFolderItem, &folder_path) !=
+               MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Get folder path failed!");
+               return storage_local;
+       }
+
+       storage_rec_s storage_rec;
+       storage_rec.storage_id = -1;
+       storage_rec.file_url = folder_path;
+       storage_type_e storage_type = 0;
+
+       ret = storage_foreach_device_supported(_storage_device_supported_cb, &storage_rec);
+       if (ret != STORAGE_ERROR_NONE || storage_rec.storage_id == -1) {
+               VideoLogError("Get storage id failed!");
+               return storage_local;
+       }
+
+       ret = storage_get_type(storage_rec.storage_id, &storage_type);
+       if (ret != STORAGE_ERROR_NONE) {
+               VideoLogError("Get storage type failed!");
+               return storage_local;
+       }
+
+       if (storage_type == STORAGE_TYPE_INTERNAL) {
+               storage_local = MP_MEDIA_TYPE_STORAGE_INTERNAL;
+       } else if (storage_type == STORAGE_TYPE_EXTERNAL) {
+               storage_local = MP_MEDIA_TYPE_STORAGE_EXTERNAL;
+       }
+
+       return storage_local;
+}
+
+
+/**
+* Get folder storage of the video
+* @param nVideoItemIndex : index of the video
+* @return storage type
+*/
+MpMediaStorageType mp_util_svc_get_video_storage(const int nVideoItemIndex)
+{
+       MpMediaStorageType storage_local = MP_MEDIA_TYPE_STORAGE_UNKNOWN;
+
+       if (!VideoItemList) {
+               VideoLogError("Not exist video item list handle.");
+               return storage_local;
+       }
+
+       if (nVideoItemIndex < 0
+               || nVideoItemIndex >=
+               mp_util_svc_get_video_list_size_for_checking_index()) {
+               VideoLogError("Error number of list item.");
+               return storage_local;
+       }
+
+       return storage_local;
+}
+
+/**
+* Is cloud storage
+* @param nVideoItemIndex : index of the video
+* @return true/false
+*/
+bool mp_util_svc_is_cloud_storage(const int nVideoItemIndex)
+{
+       VideoLogInfo("disable cloud module.");
+       return FALSE;
+}
+
+/**
+* Callback function for DB update
+* @param nError : error code from content
+* @param nPid : process ID
+* @param nUpdateItem : file or directory
+* @param nMediaType : type of the media (video/image)
+* @param szUuid : ID of the media
+* @param szPath : path of the media
+* @param szMimeType : Mime type of the media
+* @param pUserData : user data
+*/
+void mp_util_svc_update_database_cb(media_content_error_e nError, int nPid,
+                                                                       media_content_db_update_item_type_e
+                                                                       nUpdateItem,
+                                                                       media_content_db_update_type_e
+                                                                       nUpdateType,
+                                                                       media_content_type_e nMediaType,
+                                                                       char *szUuid, char *szPath,
+                                                                       char *szMimeType, void *pUserData)
+{
+       if (nError) {
+               VideoLogError("error occured! : %d", nError);
+               return;
+       }
+
+       if (nPid == mp_util_get_pid()) {
+               VideoLogError("It is same processor");
+               return;
+       }
+
+       UpdateDatabaseCbFunc pUpdateDbCbFunc = pUserData;
+
+       if (nUpdateItem == MEDIA_ITEM_FILE) {
+
+               if (nMediaType != MEDIA_CONTENT_TYPE_VIDEO) {
+                       VideoLogError("Updated contents are not video items.");
+                       return;
+               }
+       } else if (nUpdateItem == MEDIA_ITEM_DIRECTORY) {
+               VideoLogInfo("MEDIA_ITEM_DIRECTORY");
+               ///////////////////////////////////////////////////////////////////
+               // UPDATE ALL because It is not possible to extract video items. //
+               ///////////////////////////////////////////////////////////////////
+       } else {
+               VideoLogInfo("Nothing item type.");
+       }
+
+       if (nUpdateType == MEDIA_CONTENT_INSERT) {
+               VideoLogInfo("MEDIA_CONTENT_INSERT");
+       } else if (nUpdateType == MEDIA_CONTENT_DELETE) {
+               VideoLogInfo("MEDIA_CONTENT_DELETE");
+       } else if (nUpdateType == MEDIA_CONTENT_UPDATE) {
+               VideoLogInfo("MEDIA_CONTENT_UPDATE");
+       } else {
+               VideoLogInfo("Nothing update type.");
+       }
+
+       if (pUpdateDbCbFunc) {
+               VideoLogInfo("Update List View. = %d,%d", nUpdateItem,
+                                        nUpdateType);
+               pUpdateDbCbFunc((void *) nUpdateType, 1.0, nUpdateType);
+       }
+}
+
+
+/**
+* Register Callback function for DB update
+* @param pUpdateDbCbFunc : callback function
+* @return result
+*/
+bool mp_util_svc_set_update_db_cb_func(UpdateDatabaseCbFunc
+                                                                          pUpdateDbCbFunc)
+{
+       if (!pUpdateDbCbFunc) {
+               VideoLogError("No exsited pUpdateDbCbFunc.");
+               return FALSE;
+       }
+       bool bRet = TRUE;
+       mp_util_svc_unset_update_db_cb_func();
+
+       if (media_content_add_db_updated_cb
+               ((void *) mp_util_svc_update_database_cb, pUpdateDbCbFunc,
+                &noti_handle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogInfo("Fail to registe update database callback function.");
+               bRet = FALSE;
+       }
+
+       return bRet;
+}
+
+
+/**
+* unregister Callback function for DB update
+*/
+void mp_util_svc_unset_update_db_cb_func(void)
+{
+
+       if (media_content_remove_db_updated_cb(noti_handle) !=
+               MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogInfo
+                       ("Fail to unregiste media_content_remove_db_updated_cb.");
+       }
+}
+
+///////////////////////////////////////////////////////
+// For livebox list
+
+/**
+ *
+ * @return
+ */
+bool mp_util_svc_destory_last_played_item_list(void)
+{
+       if (!RecentPlayedItemList) {
+               VideoLogError("VideoItemList is empty already.");
+               return FALSE;
+       }
+
+       media_info_h pTmpRecentPlayedItem = NULL;
+       EINA_LIST_FREE(RecentPlayedItemList, pTmpRecentPlayedItem) {
+               if (pTmpRecentPlayedItem) {
+                       media_info_destroy(pTmpRecentPlayedItem);
+               }
+       }
+
+       RecentPlayedItemList = NULL;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+char *mp_util_svc_get_duration_str_time(int nVideoItemIndex)
+{
+       char szTmpStr[STR_LEN_MAX] = { 0, };
+       char szTmpStrDurationTime[STR_LEN_MAX] = { 0, };
+
+       unsigned int nVideoInfoDuration =
+               mp_util_svc_get_video_duration_time(nVideoItemIndex);
+
+       if (nVideoInfoDuration > 0) {
+
+               mp_util_convert_time(nVideoInfoDuration, szTmpStrDurationTime,
+                                                        FALSE);
+
+               snprintf(szTmpStr, STR_LEN_MAX, "%s", szTmpStrDurationTime);
+       } else {
+               snprintf(szTmpStr, STR_LEN_MAX, "--:--:--");
+       }
+
+       return strdup(szTmpStr);
+}
+
+/**
+ *
+ * @param szPath
+ * @param nWidth
+ * @param nHeight
+ * @param szTitle
+ * @param nDuration
+ * @param nPlayedTime
+ * @return
+ */
+bool mp_util_svc_get_video_detail_by_video_url(const char *szPath,
+                                                                                          int *nWidth, int *nHeight,
+                                                                                          char **szTitle,
+                                                                                          unsigned int *nDuration,
+                                                                                          unsigned int *nPlayedTime)
+{
+       if (!szPath) {
+               VideoLogError("No exist video path.");
+               return FALSE;
+       }
+
+       VideoSecureLogDebug("szPath : %s", szPath);
+
+       media_info_h pVideoItem = NULL;
+       filter_h m_FilterHandle = NULL;
+       char szTmpStr[STR_LEN_MAX] = { 0, };
+
+       if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to create media filter handle.");
+               return FALSE;
+       }
+
+       snprintf(szTmpStr, STR_LEN_MAX,
+                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121) AND MEDIA_PATH = \"%s\"",
+                        szPath);
+       if (media_filter_set_condition
+               (m_FilterHandle, szTmpStr,
+                MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set filter condition.");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (media_info_foreach_media_from_db
+               (m_FilterHandle, mp_util_svc_iterate_for_get_video_item_cb,
+                &pVideoItem) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError
+                       ("Fail to get video item list with filter condition.");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to destroy media filter handle.");
+               return FALSE;
+       }
+
+       if (pVideoItem) {
+               video_meta_h pVideoMetaHandle = NULL;
+               if (media_info_get_video(pVideoItem, &pVideoMetaHandle) ==
+                       MEDIA_CONTENT_ERROR_NONE) {
+                       //last played time
+                       *nPlayedTime = 0;
+
+                       //Duratiom time
+                       int duration = 0;
+                       video_meta_get_duration(pVideoMetaHandle, &duration);
+                       *nDuration = (unsigned int) duration;
+
+                       //get width
+                       int width = 0;
+                       video_meta_get_width(pVideoMetaHandle, &width);
+                       *nWidth = width;
+
+                       //get height
+                       int height = 0;
+                       video_meta_get_height(pVideoMetaHandle, &height);
+                       *nHeight = height;
+
+                       video_meta_destroy(pVideoMetaHandle);
+               }
+               //display name
+               char *szName = NULL;
+               media_info_get_display_name(pVideoItem, &szName);
+               *szTitle = szName;
+               media_info_destroy(pVideoItem);
+       }
+       VideoSecureLogDebug("Last Played Time : %s,%d:%d,%d,%d", *szTitle,
+                                               *nPlayedTime, *nDuration, *nWidth, *nHeight);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szFolderPath
+ * @param nSortType
+ * @param nItemType
+ * @param nViewType
+ * @return
+ */
+bool mp_util_svc_extract_video_list_from_folder_by_personal(char
+                                                                                                                       *szFolderPath,
+                                                                                                                       int nSortType,
+                                                                                                                       int nItemType,
+                                                                                                                       int nViewType)
+{
+       if (VideoItemList) {
+               VideoLogError("Already exist video list.");
+               return FALSE;
+       }
+
+       if (!szFolderPath) {
+               VideoLogError("[ERR]");
+               return FALSE;
+       }
+
+       filter_h m_FilterHandle = NULL;
+       media_folder_h m_FolderHandle = NULL;
+       media_content_order_e nOrderType = MEDIA_CONTENT_ORDER_ASC;
+
+       char *szFolderID = NULL;
+       char szTmpStr[STR_LEN_MAX] = { 0, };
+       char szOrderObj[STR_LEN_MAX] = { 0, };
+
+       nTotalVideoTypeFiles = 0;
+       nNumberOfVideoItemByType = 0;
+
+       switch (nSortType) {
+       case MP_MEDIA_SORT_BY_NONE:
+       case MP_MEDIA_SORT_BY_RECENTLY_VIEWED:
+               nOrderType = MEDIA_CONTENT_ORDER_DESC;
+               strncpy(szOrderObj, MEDIA_LAST_PLAYED_TIME, STR_LEN_MAX - 1);
+               break;
+
+       case MP_MEDIA_SORT_BY_RECENTLY_ADDED:
+               nOrderType = MEDIA_CONTENT_ORDER_DESC;
+               strncpy(szOrderObj, MEDIA_ADDED_TIME, STR_LEN_MAX - 1);
+               break;
+
+       case MP_MEDIA_SORT_BY_NAME:
+               nOrderType = MEDIA_CONTENT_ORDER_ASC;
+               strncpy(szOrderObj, MEDIA_DISPLAY_NAME, STR_LEN_MAX - 1);
+               break;
+
+       case MP_MEDIA_SORT_BY_SIZE:
+               nOrderType = MEDIA_CONTENT_ORDER_DESC;
+               strncpy(szOrderObj, MEDIA_SIZE, STR_LEN_MAX - 1);
+               break;
+
+       case MP_MEDIA_SORT_BY_TYPE:
+               nOrderType = MEDIA_CONTENT_ORDER_ASC;
+               strncpy(szOrderObj, MEDIA_MIME_TYPE, STR_LEN_MAX - 1);
+               break;
+
+       default:
+               nOrderType = MEDIA_CONTENT_ORDER_ASC;
+               strncpy(szOrderObj, MEDIA_LAST_PLAYED_TIME, STR_LEN_MAX - 1);
+       }
+
+       switch (nItemType) {
+       case MP_LIST_VIEW_ALL:
+               if (nViewType == 0) {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\" and MEDIA_PATH NOT LIKE \"%s%%\"",
+                                        szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+               } else {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\" and MEDIA_PATH LIKE \"%s%%\"",
+                                        szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+               }
+               break;
+
+       case MP_LIST_VIEW_PHONE:
+               if (nViewType == 0) {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 and (MEDIA_STORAGE_TYPE = 0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\" and MEDIA_PATH NOT LIKE \"%s%%\"",
+                                        szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+               } else {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 and (MEDIA_STORAGE_TYPE = 0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\" and MEDIA_PATH LIKE \"%s%%\"",
+                                        szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+               }
+               break;
+
+       case MP_LIST_VIEW_CLOUD:
+               if (nViewType == 0) {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\" and MEDIA_PATH NOT LIKE \"%s%%\"",
+                                        szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+               } else {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\" and MEDIA_PATH LIKE \"%s%%\"",
+                                        szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+               }
+               break;
+
+       default:
+               if (nViewType == 0) {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\" and MEDIA_PATH NOT LIKE \"%s%%\"",
+                                        szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+               } else {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and FOLDER_PATH = \"%s\" and MEDIA_PATH LIKE \"%s%%\"",
+                                        szFolderPath, VIDEO_UTIL_PERSONAL_HEAD_STR);
+               }
+               break;
+       }
+
+       if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to create media filter handle.");
+               return FALSE;
+       }
+
+       if (media_filter_set_condition
+               (m_FilterHandle, szTmpStr,
+                MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set filter condition.");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (media_folder_foreach_folder_from_db
+               (m_FilterHandle, mp_util_svc_iterate_for_get_folder_cb,
+                &m_FolderHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail media_folder_foreach_folder_from_db().");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (!m_FolderHandle) {
+               VideoLogError("Fail to get folder handle.");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       snprintf(szTmpStr, STR_LEN_MAX, "MEDIA_TYPE = 1");
+       if (media_filter_set_condition
+               (m_FilterHandle, szTmpStr,
+                MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set filter condition.");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (media_filter_set_order
+               (m_FilterHandle, nOrderType, szOrderObj,
+                MEDIA_CONTENT_COLLATE_NOCASE) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set order.");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (media_folder_get_folder_id(m_FolderHandle, &szFolderID) !=
+               MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to get folder id.");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (media_folder_foreach_media_from_db
+               (szFolderID, m_FilterHandle, mp_util_svc_iterate_cb,
+                &VideoItemList) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set order.");
+               media_filter_destroy(m_FilterHandle);
+
+               if (szFolderID) {
+                       free(szFolderID);
+                       szFolderID = NULL;
+               }
+               return FALSE;
+       }
+
+       if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to destroy media filter handle.");
+       }
+
+       if (szFolderID) {
+               free(szFolderID);
+               szFolderID = NULL;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nSortType
+ * @param nItemType
+ * @param nViewType
+ * @return
+ */
+bool mp_util_svc_extract_video_list_by_personal(int nSortType,
+                                                                                               int nItemType,
+                                                                                               int nViewType)
+{
+       if (VideoItemList) {
+               VideoLogError("Already exist video list.");
+               return FALSE;
+       }
+
+       nWhatFileType = MP_MEDIA_ALL_FILE_TYPE;
+
+       filter_h m_FilterHandle = NULL;
+       media_content_order_e nOrderType = MEDIA_CONTENT_ORDER_ASC;
+       char szTmpStr[STR_LEN_MAX] = { 0, };
+       char szOrderObj[STR_LEN_MAX] = { 0, };
+
+       nTotalVideoTypeFiles = 0;
+       nNumberOfVideoItemByType = 0;
+
+       switch (nSortType) {
+       case MP_MEDIA_SORT_BY_NONE:
+       case MP_MEDIA_SORT_BY_RECENTLY_VIEWED:
+               nOrderType = MEDIA_CONTENT_ORDER_DESC;
+               strncpy(szOrderObj, MEDIA_LAST_PLAYED_TIME, STR_LEN_MAX - 1);
+               break;
+
+       case MP_MEDIA_SORT_BY_RECENTLY_ADDED:
+               nOrderType = MEDIA_CONTENT_ORDER_DESC;
+               strncpy(szOrderObj, MEDIA_ADDED_TIME, STR_LEN_MAX - 1);
+               break;
+
+       case MP_MEDIA_SORT_BY_NAME:
+               nOrderType = MEDIA_CONTENT_ORDER_ASC;
+               strncpy(szOrderObj, MEDIA_DISPLAY_NAME, STR_LEN_MAX - 1);
+               break;
+
+       case MP_MEDIA_SORT_BY_SIZE:
+               nOrderType = MEDIA_CONTENT_ORDER_DESC;
+               strncpy(szOrderObj, MEDIA_SIZE, STR_LEN_MAX - 1);
+               break;
+
+       case MP_MEDIA_SORT_BY_TYPE:
+               nOrderType = MEDIA_CONTENT_ORDER_ASC;
+               strncpy(szOrderObj, MEDIA_MIME_TYPE, STR_LEN_MAX - 1);
+               break;
+
+       default:
+               nOrderType = MEDIA_CONTENT_ORDER_ASC;
+               strncpy(szOrderObj, MEDIA_LAST_PLAYED_TIME, STR_LEN_MAX - 1);
+       }
+
+       switch (nItemType) {
+       case MP_LIST_VIEW_ALL:
+               if (nViewType == 0) {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH NOT LIKE \"%s%%\"",
+                                        VIDEO_UTIL_PERSONAL_HEAD_STR);
+               } else {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH LIKE \"%s%%\"",
+                                        VIDEO_UTIL_PERSONAL_HEAD_STR);
+               }
+               break;
+
+       case MP_LIST_VIEW_PHONE:
+               if (nViewType == 0) {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 and (MEDIA_STORAGE_TYPE = 0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH NOT LIKE \"%s%%\"",
+                                        VIDEO_UTIL_PERSONAL_HEAD_STR);
+               } else {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 and (MEDIA_STORAGE_TYPE = 0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH LIKE \"%s%%\"",
+                                        VIDEO_UTIL_PERSONAL_HEAD_STR);
+               }
+
+               break;
+
+       case MP_LIST_VIEW_CLOUD:
+               if (nViewType == 0) {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH NOT LIKE \"%s%%\"",
+                                        VIDEO_UTIL_PERSONAL_HEAD_STR);
+               } else {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH LIKE \"%s%%\"",
+                                        VIDEO_UTIL_PERSONAL_HEAD_STR);
+               }
+
+               break;
+
+       default:
+               if (nViewType == 0) {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH NOT LIKE \"%s%%\"",
+                                        VIDEO_UTIL_PERSONAL_HEAD_STR);
+               } else {
+                       snprintf(szTmpStr, STR_LEN_MAX,
+                                        "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1) and MEDIA_PATH LIKE \"%s%%\"",
+                                        VIDEO_UTIL_PERSONAL_HEAD_STR);
+               }
+               break;
+       }
+       VideoLogInfo("MEDIA_PATH not like %s", szTmpStr);
+
+       if (media_filter_create(&m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogInfo("Fail to create media filter handle.");
+               return FALSE;
+       }
+       if (media_filter_set_condition
+               (m_FilterHandle, szTmpStr,
+                MEDIA_CONTENT_COLLATE_DEFAULT) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set filter condition.");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (media_filter_set_order
+               (m_FilterHandle, nOrderType, szOrderObj,
+                MEDIA_CONTENT_COLLATE_NOCASE) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to set order.");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (media_info_foreach_media_from_db
+               (m_FilterHandle, mp_util_svc_iterate_for_video_item_list_view_cb,
+                &VideoItemList) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError
+                       ("Fail to get video item list with filter condition.");
+               media_filter_destroy(m_FilterHandle);
+               return FALSE;
+       }
+
+       if (media_filter_destroy(m_FilterHandle) != MEDIA_CONTENT_ERROR_NONE) {
+               VideoLogError("Fail to destroy media filter handle.");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @param szVideoPath
+ */
+void mp_util_svc_move_to_db(const int nVideoItemIndex,
+                                                       const char *szVideoPath)
+{
+       if (!VideoItemList) {
+               VideoLogError("Not exist video item list handle.");
+               return;
+       }
+
+       if (nVideoItemIndex < 0
+               || nVideoItemIndex >=
+               mp_util_svc_get_video_list_size_for_checking_index()) {
+               VideoLogError("Error number of list item.");
+               return;
+       }
+
+       media_info_h pVideoItem =
+               (media_info_h) eina_list_nth(VideoItemList, nVideoItemIndex);
+
+       if (pVideoItem) {
+               if (media_info_move_to_db(pVideoItem, szVideoPath) !=
+                       MEDIA_CONTENT_ERROR_NONE) {
+                       VideoLogError("Failed move to db");
+               }
+       }
+
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+bool mp_util_svc_remove_list_item_from_list(int nVideoItemIndex)
+{
+
+       if (!VideoItemList) {
+               VideoLogError("pList is empty already.");
+               return FALSE;
+       }
+
+       media_info_h pItem = eina_list_nth(VideoItemList, nVideoItemIndex);
+
+       if (pItem) {
+               VideoItemList = eina_list_remove(VideoItemList, pItem);
+               media_info_destroy(pItem);
+               nNumberOfVideoItemByType--;
+       } else {
+               VideoLogError("Fail to remove item in media svc and list.");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+bool mp_util_svc_remove_folder_list_item_from_list(int nVideoItemIndex)
+{
+       if (!VideoFolderList) {
+               VideoLogError("pList is empty already.");
+               return FALSE;
+       }
+
+       media_folder_h pItem = eina_list_nth(VideoFolderList, nVideoItemIndex);
+
+       if (pItem) {
+               VideoFolderList = eina_list_remove(VideoFolderList, pItem);
+               media_folder_destroy(pItem);
+       } else {
+               VideoLogError("Fail to remove item in media svc and list.");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+#ifdef ENABLE_DRM_FEATURE
+bool mp_util_svc_filter_drm_video_item_list(void)
+{
+       if (!VideoItemList) {
+               VideoLogError("VideoItemList is empty already.");
+               return FALSE;
+       }
+
+       char *szVideoItemFilePath = NULL;
+       int nVideoIndex = 0;
+       for (nVideoIndex = 0; nVideoIndex < nNumberOfVideoItemByType;
+                nVideoIndex++) {
+
+               szVideoItemFilePath = mp_util_svc_get_video_url(nVideoIndex);
+               bool bDRMLock = FALSE;
+               mp_util_check_drm_lock((const char *) szVideoItemFilePath,
+                                                          &bDRMLock);
+
+               if (bDRMLock) {
+                       mp_util_svc_remove_list_item_from_list(nVideoIndex);
+
+                       nVideoIndex--;
+               }
+
+               if (szVideoItemFilePath) {
+                       free(szVideoItemFilePath);
+                       szVideoItemFilePath = NULL;
+               }
+
+
+       }
+
+       return TRUE;
+}
+#endif
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+bool mp_util_svc_is_device_storage(const int nVideoItemIndex)
+{
+       MpMediaStorageType storage_type =
+               mp_util_svc_get_video_storage(nVideoItemIndex);
+       if ((storage_type == MP_MEDIA_TYPE_STORAGE_INTERNAL)
+               || (storage_type == MP_MEDIA_TYPE_STORAGE_EXTERNAL)) {
+               return TRUE;
+       }
+
+       return FALSE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+bool mp_util_svc_scan_file(const char *szFilePath)
+{
+       if (!szFilePath) {
+               VideoLogError("szFilePath is NULL.");
+               return FALSE;
+       }
+       media_content_scan_file(szFilePath);
+       return TRUE;
+}
+
+
+/*----------------sort video list-----------------------------*/
+
+/**
+ *
+ * @param pMediaId
+ * @param style
+ * @param nMediaIndex
+ * @return
+ */
+bool mp_util_svc_check_valid_media_id(char *pMediaId, int style,
+                                                                         int *nMediaIndex)
+{
+       if (!pMediaId) {
+               return FALSE;
+       }
+
+       Eina_List *pIterateList = NULL;
+       char *szMediaId = NULL;
+       int nIndex = 0;
+
+       if (style == MEDIA_TYPE_FILE) {
+               if (!VideoItemList) {
+                       return FALSE;
+               }
+               media_info_h pVideoItem = NULL;
+               nIndex = 0;
+
+               EINA_LIST_FOREACH(VideoItemList, pIterateList, pVideoItem) {
+                       if (pVideoItem) {
+                               media_info_get_media_id(pVideoItem, &szMediaId);
+
+                               if (szMediaId && (g_strcmp0(szMediaId, pMediaId) == 0)) {
+                                       MP_FREE_STRING(szMediaId);
+                                       *nMediaIndex = nIndex;
+                                       return TRUE;
+                               }
+                               nIndex++;
+                               MP_FREE_STRING(szMediaId);
+                       }
+               }
+       } else if (style == MEDIA_TYPE_DIRECTORY) {
+               if (!VideoFolderList) {
+                       return FALSE;
+               }
+               nIndex = 0;
+               media_folder_h pFolderItem = NULL;
+
+               EINA_LIST_FOREACH(VideoFolderList, pIterateList, pFolderItem) {
+                       if (pFolderItem) {
+                               media_folder_get_folder_id(pFolderItem, &szMediaId);
+                               if (g_strcmp0(szMediaId, pMediaId) == 0) {
+                                       MP_FREE_STRING(szMediaId);
+                                       *nMediaIndex = nIndex;
+
+                                       return TRUE;
+                               }
+                               MP_FREE_STRING(szMediaId);
+                               nIndex++;
+                       }
+               }
+
+       }
+
+       return FALSE;
+}
diff --git a/src/common/mp-util-preference.c b/src/common/mp-util-preference.c
new file mode 100755 (executable)
index 0000000..043d582
--- /dev/null
@@ -0,0 +1,176 @@
+/*
+ * Copyright (c) 2020 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-util-preference.h"
+#include "vp-play-log.h"
+#include "mp-video-value-define.h"
+
+/* keys */
+#define MP_UTIL_PREFERENCE_KEY_MULTI_PLAY_FLAG "preference/org.tizen.videos/multi_play"
+#define MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS "preference/org.tizen.videos/preview_url_videos"
+
+/* storage */
+/**
+ *
+ * @param set
+ * @return
+ */
+bool mp_util_preference_set_multi_play_status(bool set)
+{
+       int nErr = 0;
+       nErr = preference_set_boolean(MP_UTIL_PREFERENCE_KEY_MULTI_PLAY_FLAG,
+                                                                 set);
+       if (nErr != 0) {
+               VideoLogError
+                       ("SET MP_UTIL_PREFERENCE_KEY_MULTI_PLAY_FLAG is fail [0x%x]",
+                        nErr);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+/**
+ *
+ * @param bMultiPlay
+ * @return
+ */
+bool mp_util_preference_get_multi_play_status(bool * bMultiPlay)
+{
+       int nErr = 0;
+       bool nVal = false;
+
+       nErr = preference_get_boolean(MP_UTIL_PREFERENCE_KEY_MULTI_PLAY_FLAG,
+                                                                 &nVal);
+       if (nErr != 0) {
+               VideoLogError
+                       ("GET MP_UTIL_PREFERENCE_KEY_MULTI_PLAY_FLAG is fail [0x%x]",
+                        nErr);
+               return FALSE;
+       }
+
+       *bMultiPlay = (nVal == 0) ? FALSE : TRUE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+char *mp_util_preference_get_preview(void)
+{
+       char *szPreview = NULL;
+       int nErr = 0;
+
+       nErr = preference_get_string(MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS,
+                                                                &szPreview);
+       if (nErr != 0) {
+               VideoLogError("fail to retrieve preview url [0x%x]", nErr);
+       }
+       VideoSecureLogInfo("szPreviewUrl : %s", szPreview);
+
+       if (szPreview) {
+               if (strlen(szPreview) < 1) {
+                       free(szPreview);
+                       szPreview = NULL;
+               }
+       }
+       return szPreview;
+}
+
+/**
+ *
+ * @param szPreview
+ * @return
+ */
+bool mp_util_preference_set_preview(char *szPreview)
+{
+       VideoSecureLogInfo("szPreviewUrl : %s", szPreview);
+
+       bool bRet = FALSE;
+
+       if (szPreview) {
+               if (preference_set_string
+                       (MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS, szPreview)) {
+                       VideoLogError("Fail to write url.");
+                       bRet = FALSE;
+               } else {
+                       bRet = TRUE;
+               }
+       } else {
+               if (preference_set_string
+                       (MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS, "")) {
+                       VideoLogError("Fail to write url.");
+                       bRet = FALSE;
+               } else {
+                       bRet = TRUE;
+               }
+       }
+
+       return bRet;
+}
+
+/**
+ *
+ * @param callback
+ * @param pUserData
+ * @return
+ */
+bool mp_util_preference_set_preview_change(preference_changed_cb callback,
+                                                                                  void *pUserData)
+{
+
+       bool bRet = FALSE;
+       int nErr = 0;
+
+       nErr = preference_set_changed_cb
+               (MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS, callback, pUserData);
+       if (nErr != 0) {
+               VideoLogError("Failed to register callback [0x%x]", nErr);
+       } else {
+               bRet = TRUE;
+       }
+
+       return bRet;
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_util_preference_unset_preview_change()
+{
+       bool bRet = FALSE;
+       int nErr = 0;
+
+       nErr = preference_unset_changed_cb
+               (MP_UTIL_PREFERENCE_KEY_PREVIEW_URL_VIDEOS);
+       if (nErr != 0) {
+               VideoLogError("failed to unregister [0x%x]", nErr);
+       } else {
+               bRet = TRUE;
+       }
+
+       return bRet;
+}
+
+/**
+ *
+ */
+void mp_util_preference_init()
+{
+       /*if add preference key. it is necessary to init new preference here. */
+}
diff --git a/src/common/mp-util.c b/src/common/mp-util.c
new file mode 100755 (executable)
index 0000000..c32daf3
--- /dev/null
@@ -0,0 +1,3040 @@
+/*
+ * Copyright (c) 2020 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 <glib.h>
+#include <Elementary.h>
+
+#include <notification.h>
+#include <metadata_extractor.h>
+#include <app_preference.h>
+
+#include <sys/statvfs.h>
+
+#include <net_connection.h>
+#include <telephony.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-util-media-service.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-video-info-ctrl.h"
+#ifdef ENABLE_DRM_FEATURE
+#include "vp-drm.h"
+#endif
+#include "vp-file-util.h"
+
+enum VIDEO_PLAYER_FILE_SIZE_TYPE {
+       SIZE_BYTE = 0,
+       SIZE_KB,
+       SIZE_MB,
+       SIZE_GB
+};
+
+
+#define MP_UTIL_PHONE_PATH                                             "/opt/usr/media"
+#define MP_UTIL_SD_PATH                                                        "/opt/storage/sdcard"
+#define MP_UTIL_USB_PATH                                               "/opt/storage/usb"
+#define MP_UTIL_MEDIA_DIR                                              "/opt/usr/media/Videos"
+
+#define MP_UTIL_FILE_PREFIX                                            "file://"
+
+#define FILE_SIZE_LEN_MAX                                              64
+#define BASIC_SIZE                                                             1024    /*used for file size check */
+
+#define VIDEO_TIME_MSEC_PER_SEC                                        1000
+#define VIDEO_TIME_SEC_PER_MIN                                 60
+#define VIDEO_TIME_MIN_PER_HOUR                                        60
+#define VIDEO_TIME_SEC_PER_HOUR                                        (VIDEO_TIME_MIN_PER_HOUR * VIDEO_TIME_SEC_PER_MIN)
+
+#define PREF_MP_UTIL_MAIN_TAB_TYPE  "preference/org.tizen.videos/main_display_tab"
+
+
+static Evas_Object *pPopUpHandle = NULL;
+static Evas_Object *pMainWindowHandle = NULL;
+static Evas_Object *pMainConformant = NULL;
+
+mpColorThemeChangedCb g_fThemeChangedCb = NULL;
+static bool auto_play = false;
+
+/**
+ *
+ * @return
+ */
+bool vp_is_auto_play_on()
+{
+       VideoLogInfo("");
+       int nErr = 0;
+       bool nVal = 0;
+       nErr = preference_get_boolean(PREF_MP_VIDEO_AUTO_PLAY_TYPE_KEY, &nVal);
+       if (nErr != 0) {
+               VideoLogError("failed to get MULTI PLAY FLAG [0x%x]", nErr);
+               return FALSE;
+       }
+       if (nVal)
+               return TRUE;
+       else
+               return false;
+}
+
+/**
+ *
+ * @param val
+ */
+void vp_set_auto_play(bool val)
+{
+       auto_play = val;
+       int nErr = 0;
+       nErr = preference_set_boolean(PREF_MP_VIDEO_AUTO_PLAY_TYPE_KEY, val);
+       if (nErr != 0) {
+               VideoLogError("failed to set MULTI PLAY FLAG [0x%x]", nErr);
+       }
+}
+
+/**
+ *
+ * @param fChanged
+ */
+void mp_util_set_color_theme_changed_cb(mpColorThemeChangedCb fChanged)
+{
+       g_fThemeChangedCb = fChanged;
+}
+
+/**
+ *
+ */
+void mp_util_create_main_theme(void)
+{
+       mp_util_free_main_theme();
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje", VIDEO_CUSTOM_THEME);
+       free(path);
+       elm_theme_extension_add(NULL, edj_path);
+}
+
+/**
+ *
+ */
+void mp_util_free_main_theme(void)
+{
+       const Eina_List *pExtensionThemeList = NULL;
+       Eina_List *l = NULL;
+       char *pItem = NULL;
+
+       pExtensionThemeList = elm_theme_extension_list_get(NULL);
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje", VIDEO_CUSTOM_THEME);
+       free(path);
+       if (pExtensionThemeList) {
+               EINA_LIST_FOREACH((Eina_List *) pExtensionThemeList, l, pItem) {
+                       if (pItem != NULL && strcmp(pItem, edj_path) == 0) {
+                               elm_theme_extension_del(NULL, edj_path);
+                       }
+               }
+       }
+}
+
+/**
+ *
+ * @return
+ */
+int mp_util_get_main_tab_type()
+{
+       int nType = 0;
+
+       if (preference_get_int(PREF_MP_UTIL_MAIN_TAB_TYPE, &nType) !=
+               PREFERENCE_ERROR_NONE) {
+               VideoLogError("[ERR] PREF_MP_UTIL_MAIN_TAB_TYPE fail!!!");
+       }
+
+       return nType;
+}
+
+/**
+ *
+ * @param nType
+ */
+void mp_util_set_main_tab_type(int nType)
+{
+       if (preference_set_int(PREF_MP_UTIL_MAIN_TAB_TYPE, nType) !=
+               PREFERENCE_ERROR_NONE) {
+               VideoLogError("[ERR] PREF_MP_UTIL_MAIN_TAB_TYPE fail!!!");
+       }
+}
+
+/**
+ *
+ */
+void mp_util_reset_for_relauching(void)
+{
+       pPopUpHandle = NULL;
+       pMainWindowHandle = NULL;
+       pMainConformant = NULL;
+}
+
+/**
+ *
+ */
+void mp_util_show_indicator(void)
+{
+       if (!pMainConformant || !pMainWindowHandle) {
+               VideoLogError
+                       ("[ERR] No exist pMainConformant, pMainWindowHandle.");
+               return;
+       }
+
+       elm_win_indicator_mode_set((Evas_Object *) pMainWindowHandle,
+                                                          ELM_WIN_INDICATOR_SHOW);
+       elm_win_indicator_opacity_set((Evas_Object *) pMainWindowHandle,
+                                                                 ELM_WIN_INDICATOR_OPAQUE);
+       elm_object_signal_emit((Evas_Object *) pMainConformant,
+                                                  "elm,state,indicator,nooverlap", "");
+       evas_object_data_set((Evas_Object *) pMainConformant, "overlap", NULL);
+}
+
+/**
+ *
+ */
+void mp_util_hide_indicator(void)
+{
+       if (!pMainConformant || !pMainWindowHandle) {
+               VideoLogError
+                       ("[ERR] No exist pMainConformant, pMainWindowHandle.");
+               return;
+       }
+
+       elm_win_indicator_mode_set((Evas_Object *) pMainWindowHandle,
+                                                          ELM_WIN_INDICATOR_SHOW);
+       elm_win_indicator_opacity_set((Evas_Object *) pMainWindowHandle,
+                                                                 ELM_WIN_INDICATOR_TRANSPARENT);
+       elm_object_signal_emit((Evas_Object *) pMainConformant,
+                                                  "elm,state,indicator,overlap", "");
+       evas_object_data_set((Evas_Object *) pMainConformant, "overlap",
+                                                (void *) EINA_TRUE);
+}
+
+/**
+ *
+ * @param pWindowHandle
+ */
+void mp_util_set_main_window_handle(void *pWindowHandle)
+{
+       pMainWindowHandle = pWindowHandle;
+}
+
+/**
+ *
+ * @param pConformant
+ */
+void mp_util_set_main_conformat(void *pConformant)
+{
+       pMainConformant = pConformant;
+}
+
+/**
+ *
+ */
+void *mp_util_get_main_conformat(void)
+{
+
+       if (!pMainConformant) {
+               VideoLogError("[ERR] No exist pMainConformant.");
+               return NULL;
+       }
+
+       return pMainConformant;
+}
+
+/**
+ *
+ */
+void *mp_util_get_main_window_handle(void)
+{
+
+       if (!pMainWindowHandle) {
+               VideoLogError("[ERR] No exist main window handle.");
+               return NULL;
+       }
+
+       return pMainWindowHandle;
+}
+
+/**
+ *
+ * @param pParent
+ * @param icon_path
+ * @param pFunc
+ * @param pUserData
+ */
+void *mp_util_create_title_icon_btn(void *pParent, const char *icon_path,
+                                                                       Evas_Smart_Cb pFunc, void *pUserData)
+{
+       if (!pParent || !icon_path) {
+               VideoLogError("invalid parent and icon path");
+               return NULL;
+       }
+       Evas_Object *pIcon = NULL;
+       Evas_Object *pTitleBtn = NULL;
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_IMAGE_NAME_EDJ);
+       free(path);
+       pIcon = elm_image_add((Evas_Object *) pParent);
+       elm_image_file_set(pIcon, edj_path, icon_path);
+       evas_object_size_hint_aspect_set(pIcon, EVAS_ASPECT_CONTROL_BOTH, 1,
+                                                                        1);
+
+       pTitleBtn = elm_button_add((Evas_Object *) pParent);
+       elm_object_style_set(pTitleBtn, "naviframe/title_icon");
+       elm_object_part_content_set(pTitleBtn, "icon", pIcon);
+       evas_object_smart_callback_add(pTitleBtn, "clicked", pFunc, pUserData);
+
+       return pTitleBtn;
+}
+
+/*///////////////////////////////////////*/
+/* Popup utility*/
+
+/**
+ *
+ */
+void mp_util_delete_popup_handle(void)
+{
+
+       if (pPopUpHandle) {
+               evas_object_del(pPopUpHandle);
+               pPopUpHandle = NULL;
+       } else {
+               VideoLogInfo("No exist popup.");
+       }
+}
+
+/**
+ *
+ * @param data
+ * @param pObj
+ * @param event_info
+ */
+static void __mp_util_popup_back_cb(void *data, Evas_Object * pObj,
+                                                                       void *event_info)
+{
+       mp_util_delete_popup_handle();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param szTitle
+ * @param szContents
+ * @param PopupButtonCallbackFunc
+ * @return
+ */
+bool mp_util_notify_popup(void *pUserData, char *szTitle,
+                                                 char *szContents, void *PopupButtonCallbackFunc)
+{
+       if (!szContents) {
+               VideoLogError("No have popup message is null.");
+               return FALSE;
+       }
+       mp_util_delete_popup_handle();
+
+       pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+       eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+                                                                  PopupButtonCallbackFunc, NULL);
+       evas_object_smart_callback_add(pPopUpHandle, "block,clicked",
+                                                                  __mp_util_popup_back_cb,
+                                                                  (void *) pUserData);
+
+       evas_object_size_hint_weight_set(pPopUpHandle, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       elm_object_text_set(pPopUpHandle, szContents);
+       if (szTitle && (szTitle == VIDEOS_COMMON_HEADER_ERROR)) {
+               elm_object_domain_translatable_part_text_set(pPopUpHandle,
+                                                                                                        "title,text",
+                                                                                                        MP_SYS_STRING,
+                                                                                                        szTitle);
+       }
+       elm_popup_timeout_set(pPopUpHandle, 3.0);
+
+       if (PopupButtonCallbackFunc) {
+               evas_object_smart_callback_add(pPopUpHandle, "timeout",
+                                                                          PopupButtonCallbackFunc, pUserData);
+       } else {
+               evas_object_smart_callback_add(pPopUpHandle, "timeout",
+                                                                          __mp_util_popup_back_cb, pUserData);
+       }
+       evas_object_show(pPopUpHandle);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szLabel
+ * @param response_cb
+ * @param focus_cb
+ * @param pUserData
+ * @param szDomain
+ * @return
+ */
+bool mp_util_info_popup(char *szLabel, Evas_Smart_Cb response_cb,
+                                               Evas_Event_Cb focus_cb, void *pUserData,
+                                               const char *szDomain)
+{
+       VideoLogInfo("");
+
+       if (!szLabel) {
+               VideoLogError("No have popup message or pUserData is null.");
+               return FALSE;
+       }
+
+       mp_util_delete_popup_handle();
+
+       pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+
+       eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+                                                                  response_cb, pUserData);
+
+       Evas_Object *obj_ok = elm_button_add(pPopUpHandle);
+       elm_object_style_set(obj_ok, "popup");
+       elm_object_domain_translatable_text_set(obj_ok, MP_SYS_STRING,
+                                                                                       VIDEOS_COMMON_BUTTON_OK_IDS);
+       elm_object_part_content_set(pPopUpHandle, "button1", obj_ok);
+       evas_object_smart_callback_add(obj_ok, "clicked", response_cb,
+                                                                  pPopUpHandle);
+
+       if (szLabel) {
+               elm_object_domain_translatable_text_set(pPopUpHandle, szDomain,
+                                                                                               szLabel);
+       }
+
+       evas_object_show(pPopUpHandle);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pParent
+ * @param szLabel
+ * @param response_cb
+ * @param focus_cb
+ * @param pUserData
+ * @param szDomain
+ * @return
+ */
+bool mp_util_info_second_popup(Evas_Object * pParent, char *szLabel,
+                                                          Evas_Smart_Cb response_cb,
+                                                          Evas_Event_Cb focus_cb, void *pUserData,
+                                                          const char *szDomain)
+{
+       VideoLogInfo("");
+
+       if (!szLabel) {
+               VideoLogError("No have popup message or pUserData is null.");
+               return FALSE;
+       }
+
+       mp_util_delete_popup_handle();
+
+       pPopUpHandle = elm_popup_add(pParent);
+
+       eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+                                                                  response_cb, pUserData);
+
+       Evas_Object *obj_ok = elm_button_add(pPopUpHandle);
+       elm_object_style_set(obj_ok, "popup");
+       elm_object_domain_translatable_text_set(obj_ok, MP_SYS_STRING,
+                                                                                       VIDEOS_COMMON_BUTTON_OK_IDS);
+       elm_object_part_content_set(pPopUpHandle, "button1", obj_ok);
+       evas_object_smart_callback_add(obj_ok, "clicked", response_cb,
+                                                                  pPopUpHandle);
+
+       if (szLabel) {
+               elm_object_domain_translatable_text_set(pPopUpHandle, szDomain,
+                                                                                               szLabel);
+       }
+
+       evas_object_show(pPopUpHandle);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param response_cb
+ * @param cancel_cb
+ * @param ok_cb
+ * @param check_changed_cb
+ * @param szLabel
+ * @param pUserData
+ */
+void mp_util_text_and_check_popup(Evas_Smart_Cb response_cb,
+                                                                 void *cancel_cb, void *ok_cb,
+                                                                 void *check_changed_cb, char *szLabel,
+                                                                 void *pUserData)
+{
+       if (!szLabel) {
+               VideoLogError("No have popup message or pUserData is null.");
+               return;
+       }
+       Evas_Object *pCheck = NULL;
+       Evas_Object *pLayout = NULL;
+       Evas_Object *pLabel = NULL;
+       Evas_Object *pBtn1 = NULL;
+       Evas_Object *pBtn2 = NULL;
+
+       mp_util_delete_popup_handle();
+
+       pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+
+       eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+                                                                  response_cb, pUserData);
+
+       pLabel = elm_label_add(pPopUpHandle);
+       elm_label_line_wrap_set(pLabel, ELM_WRAP_MIXED);
+       elm_object_text_set(pLabel, szLabel);
+       evas_object_size_hint_weight_set(pLabel, EVAS_HINT_EXPAND, 0.0);
+       evas_object_size_hint_align_set(pLabel, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       evas_object_show(pLabel);
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ);
+       free(path);
+       pLayout = elm_layout_add(pPopUpHandle);
+       elm_layout_file_set(pLayout, edj_path, "popup_checkview");
+       evas_object_size_hint_weight_set(pLayout, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+
+       pCheck = elm_check_add(pPopUpHandle);
+       elm_object_style_set(pCheck, "multiline");
+       evas_object_smart_callback_add(pCheck, "changed", check_changed_cb,
+                                                                  pUserData);
+       elm_check_state_set(pCheck, FALSE);
+       elm_object_text_set(pCheck, MP_PERSONAL_DONT_ASK_AGAIN);
+       evas_object_size_hint_align_set(pCheck, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(pCheck, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_show(pCheck);
+
+       elm_object_part_content_set(pLayout, "elm.swallow.content", pLabel);
+       elm_object_part_content_set(pLayout, "elm.swallow.end", pCheck);
+
+       evas_object_show(pLayout);
+       elm_object_content_set(pPopUpHandle, pLayout);
+
+       pBtn1 = elm_button_add(pPopUpHandle);
+       elm_object_style_set(pBtn1, "popup");
+       elm_object_text_set(pBtn1, VIDEOS_COMMON_BUTTON_CANCEL);
+       elm_object_part_content_set(pPopUpHandle, "button1", pBtn1);
+       evas_object_smart_callback_add(pBtn1, "clicked", cancel_cb,
+                                                                  pPopUpHandle);
+
+       pBtn2 = elm_button_add(pPopUpHandle);
+       elm_object_style_set(pBtn2, "popup");
+       elm_object_text_set(pBtn2, VIDEOS_COMMON_BUTTON_OK);
+       elm_object_part_content_set(pPopUpHandle, "button2", pBtn2);
+       evas_object_smart_callback_add(pBtn2, "clicked", ok_cb, pPopUpHandle);
+       evas_object_show(pPopUpHandle);
+}
+
+/**
+ *
+ */
+void *mp_util_get_current_popup_object()
+{
+       return (void *) pPopUpHandle;
+}
+
+/**
+ *
+ * @param style
+ * @param szLabel
+ * @param response_cb
+ * @param pUserData
+ * @return
+ */
+bool mp_util_loading_popup(MpLoadingPopUpType style, char *szLabel,
+                                                  Evas_Smart_Cb response_cb, void *pUserData)
+{
+       VideoLogInfo("");
+       Evas_Object *pLayout = NULL;
+       Evas_Object *pCancelButton = NULL;
+
+       if (!szLabel) {
+               VideoLogError("No have popup message or pUserData is null.");
+               return FALSE;
+       }
+
+       mp_util_delete_popup_handle();
+
+       pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+
+       eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+                                                                  response_cb, pUserData);
+
+       evas_object_size_hint_weight_set(pPopUpHandle, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+
+       Evas_Object *progressbar = NULL;
+
+       progressbar = elm_progressbar_add(pPopUpHandle);
+       elm_object_style_set(progressbar, "process_large");
+       elm_progressbar_pulse(progressbar, EINA_TRUE);
+       evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, 0.5);
+       evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       elm_progressbar_pulse(progressbar, EINA_TRUE);
+       evas_object_show(progressbar);
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ);
+       free(path);
+       pLayout = elm_layout_add(pPopUpHandle);
+       elm_layout_file_set(pLayout, edj_path, "popup_processing_1button");
+       evas_object_size_hint_weight_set(pLayout, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+
+       elm_object_part_content_set(pLayout, "elm.swallow.content",
+                                                               progressbar);
+       elm_object_part_text_set(pLayout, "elm.text", szLabel);
+
+       elm_object_content_set(pPopUpHandle, pLayout);
+       if (style == POPUP_PROCESSING_ONE_BUTTON) {
+               pCancelButton = elm_button_add(pPopUpHandle);
+               elm_object_style_set(pCancelButton, "popup");
+               elm_object_domain_translatable_text_set(pCancelButton,
+                                                                                               VIDEOS_STRING,
+                                                                                               VIDEOS_COMMON_BUTTON_CANCEL_IDS);
+               elm_object_part_content_set(pPopUpHandle, "button1",
+                                                                       pCancelButton);
+               evas_object_smart_callback_add(pCancelButton, "clicked",
+                                                                          response_cb, pPopUpHandle);
+               evas_object_show(pCancelButton);
+       }
+
+       evas_object_show(pPopUpHandle);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param style
+ * @param szLabel
+ * @param response_cb
+ * @param pUserData
+ * @return
+ */
+bool mp_util_loading_left_text_popup(MpLoadingPopUpType style,
+                                                                        char *szLabel,
+                                                                        Evas_Smart_Cb response_cb,
+                                                                        void *pUserData)
+{
+       VideoLogInfo("");
+       Evas_Object *pLayout = NULL;
+       Evas_Object *pCancelButton = NULL;
+
+       if (!szLabel) {
+               VideoLogError("No have popup message or pUserData is null.");
+               return FALSE;
+       }
+
+       mp_util_delete_popup_handle();
+
+       pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+
+       eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+                                                                  response_cb, pUserData);
+
+       evas_object_size_hint_weight_set(pPopUpHandle, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+
+       Evas_Object *progressbar = NULL;
+
+       progressbar = elm_progressbar_add(pPopUpHandle);
+       elm_object_style_set(progressbar, "process_large");
+       elm_progressbar_pulse(progressbar, EINA_TRUE);
+       evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, 0.5);
+       evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       elm_progressbar_pulse(progressbar, EINA_TRUE);
+       evas_object_show(progressbar);
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ);
+       free(path);
+       pLayout = elm_layout_add(pPopUpHandle);
+       elm_layout_file_set(pLayout, edj_path, "popup_processingview_1button");
+       evas_object_size_hint_weight_set(pLayout, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+
+       elm_object_part_content_set(pLayout, "elm.swallow.content",
+                                                               progressbar);
+       elm_object_part_text_set(pLayout, "elm.text", szLabel);
+
+       elm_object_content_set(pPopUpHandle, pLayout);
+       if (style == POPUP_PROCESSING_ONE_BUTTON) {
+               pCancelButton = elm_button_add(pPopUpHandle);
+               elm_object_style_set(pCancelButton, "popup");
+               elm_object_domain_translatable_text_set(pCancelButton,
+                                                                                               VIDEOS_STRING,
+                                                                                               VIDEOS_COMMON_BUTTON_CANCEL_IDS);
+               elm_object_part_content_set(pPopUpHandle, "button1",
+                                                                       pCancelButton);
+               evas_object_smart_callback_add(pCancelButton, "clicked",
+                                                                          response_cb, pPopUpHandle);
+               evas_object_show(pCancelButton);
+       }
+
+       evas_object_show(pPopUpHandle);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param szTitle
+ * @param szContents
+ * @param PopupYesButtonCallbackFunc
+ * @param PopupNoButtonCallbackFunc
+ * @return
+ */
+bool mp_util_yes_no_popup(void *pUserData, char *szTitle,
+                                                 char *szContents,
+                                                 void *PopupYesButtonCallbackFunc,
+                                                 void *PopupNoButtonCallbackFunc)
+{
+
+       if (!szTitle || !szContents) {
+               VideoLogError("No have popup message or pUserData is null.");
+               return FALSE;
+       }
+
+       Evas_Object *pButton = NULL;
+
+       mp_util_delete_popup_handle();
+
+       pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+
+       eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+                                                                  PopupNoButtonCallbackFunc, NULL);
+
+       evas_object_size_hint_weight_set(pPopUpHandle, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       elm_object_text_set(pPopUpHandle, szContents);
+       elm_object_part_text_set(pPopUpHandle, "title,text", szTitle);
+
+       pButton = elm_button_add(pPopUpHandle);
+       elm_object_style_set(pButton, "popup");
+       elm_object_domain_translatable_text_set(pButton, MP_SYS_STRING,
+                                                                                       VIDEOS_COMMON_BUTTON_YES_IDS);
+       elm_object_part_content_set(pPopUpHandle, "button1", pButton);
+
+       if (PopupYesButtonCallbackFunc) {
+               evas_object_smart_callback_add(pButton, "clicked",
+                                                                          PopupYesButtonCallbackFunc,
+                                                                          pUserData);
+       }
+
+       pButton = elm_button_add(pPopUpHandle);
+       elm_object_domain_translatable_text_set(pButton, MP_SYS_STRING,
+                                                                                       VIDEOS_COMMON_BUTTON_NO_IDS);
+       elm_object_style_set(pButton, "popup");
+       elm_object_part_content_set(pPopUpHandle, "button2", pButton);
+
+       if (PopupNoButtonCallbackFunc) {
+               evas_object_smart_callback_add(pButton, "clicked",
+                                                                          PopupNoButtonCallbackFunc,
+                                                                          pUserData);
+       }
+
+       evas_object_show(pPopUpHandle);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param viewType
+ * @param PopupDeleteButtonCallbackFunc
+ * @param PopupCancelButtonCallbackFunc
+ * @param PopupHWMouseBackUpCbFunc
+ * @param PopupHWKeyBackCbFunc
+ * @return
+ */
+bool mp_util_remove_all_videos_question_popup(void *pUserData,
+                                                                                         MpListViewAsType viewType,
+                                                                                         void
+                                                                                         *PopupDeleteButtonCallbackFunc,
+                                                                                         void
+                                                                                         *PopupCancelButtonCallbackFunc,
+                                                                                         void
+                                                                                         *PopupHWMouseBackUpCbFunc,
+                                                                                         void *PopupHWKeyBackCbFunc)
+{
+       Evas_Object *pButton = NULL;
+
+       char *tmpTitle = NULL;
+       char *tmpStr = NULL;
+
+       mp_util_delete_popup_handle();
+
+       pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+
+       eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+                                                                  PopupCancelButtonCallbackFunc, NULL);
+
+       evas_object_size_hint_weight_set(pPopUpHandle, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+
+       tmpTitle = g_strdup_printf(VIDEOS_DELETEPOP_HEADER_DELETE);
+       elm_object_part_text_set(pPopUpHandle, "title,text", tmpTitle);
+       if (tmpTitle) {
+               free(tmpTitle);
+               tmpTitle = NULL;
+
+       }
+
+       if (viewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+               VideoLogInfo("All folders are selected to delete");
+               tmpStr =
+                       g_strdup_printf
+                       (VIDEOS_DELETEPOP_MSG_ALL_FOLDERS_WILL_BE_DELETED);
+       } else {
+               VideoLogInfo("All videos are selected to delete");
+               tmpStr =
+                       g_strdup_printf
+                       (VIDEOS_DELETEPOP_MSG_ALL_VIDEOS_WILL_BE_DELETED);
+       }
+
+       elm_object_part_text_set(pPopUpHandle, "default", tmpStr);
+       if (tmpStr) {
+               free(tmpStr);
+               tmpStr = NULL;
+       }
+
+       pButton = elm_button_add(pPopUpHandle);
+       elm_object_domain_translatable_text_set(pButton, VIDEOS_STRING,
+                                                                                       VIDEOS_COMMON_BUTTON_CANCEL);
+       elm_object_style_set(pButton, "popup");
+       elm_object_part_content_set(pPopUpHandle, "button1", pButton);
+
+       if (PopupCancelButtonCallbackFunc) {
+               evas_object_smart_callback_add(pButton, "clicked",
+                                                                          PopupCancelButtonCallbackFunc,
+                                                                          pUserData);
+       }
+
+       pButton = elm_button_add(pPopUpHandle);
+
+       elm_object_domain_translatable_text_set(pButton, VIDEOS_STRING,
+                                                                                       VIDEOS_DELETEPOP_BUTTON_DELETE_ALL);
+
+       elm_object_style_set(pButton, "popup");
+       elm_object_part_content_set(pPopUpHandle, "button2", pButton);
+
+       if (PopupDeleteButtonCallbackFunc) {
+               evas_object_smart_callback_add(pButton, "clicked",
+                                                                          PopupDeleteButtonCallbackFunc,
+                                                                          pUserData);
+       }
+
+       if (PopupHWMouseBackUpCbFunc) {
+               evas_object_event_callback_add(pPopUpHandle,
+                                                                          EVAS_CALLBACK_MOUSE_UP,
+                                                                          PopupHWMouseBackUpCbFunc,
+                                                                          pUserData);
+       }
+
+       if (PopupHWKeyBackCbFunc) {
+       }
+
+       evas_object_show(pPopUpHandle);
+
+       return TRUE;
+}
+
+
+/**
+ *
+ * @param pUserData
+ * @param viewType
+ * @param PopupDeleteButtonCallbackFunc
+ * @param PopupCancelButtonCallbackFunc
+ * @param PopupHWMouseBackUpCbFunc
+ * @param PopupHWKeyBackCbFunc
+ * @return
+ */
+bool mp_util_remove_question_popup(int pUserData,
+                                                                  MpListViewAsType viewType,
+                                                                  void *PopupDeleteButtonCallbackFunc,
+                                                                  void *PopupCancelButtonCallbackFunc,
+                                                                  void *PopupHWMouseBackUpCbFunc,
+                                                                  void *PopupHWKeyBackCbFunc)
+{
+       Evas_Object *pButton = NULL;
+
+       int nSelected = (int) pUserData;
+       char *tmpTitle = NULL;
+       char *tmpStr = NULL;
+
+       mp_util_delete_popup_handle();
+
+       pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+
+       eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+                                                                  PopupCancelButtonCallbackFunc, NULL);
+
+       evas_object_size_hint_weight_set(pPopUpHandle, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+
+       tmpTitle = g_strdup_printf(VIDEOS_DELETEPOP_HEADER_DELETE);
+       elm_object_part_text_set(pPopUpHandle, "title,text", tmpTitle);
+       if (tmpTitle) {
+               free(tmpTitle);
+               tmpTitle = NULL;
+       }
+
+       if (nSelected < -1) {           /* select videos */
+               if (viewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+                       VideoLogInfo("%d folders are selected to delete", -nSelected);
+                       tmpStr =
+                               g_strdup_printf
+                               (VIDEOS_DELETEPOP_MSG_PD_FOLDERS_WILL_BE_DELETED,
+                                -nSelected);
+               } else {
+                       VideoLogInfo("%d videos are selected to delete", -nSelected);
+                       tmpStr =
+                               g_strdup_printf
+                               (VIDEOS_DELETEPOP_MSG_PD_VIDEOS_WILL_BE_DELETED,
+                                -nSelected);
+               }
+       } else {
+               /* select a video */
+               if (viewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+                       VideoLogInfo("The folder is selected to delete. Index: %d.",
+                                                nSelected);
+                       tmpStr =
+                               g_strdup_printf
+                               (VIDEOS_DELETEPOP_MSG_THIS_FOLDER_WILL_BE_DELETED_IDS);
+               } else {
+                       VideoLogInfo("The video is selected to delete. Index: %d.",
+                                                nSelected);
+                       tmpStr =
+                               g_strdup_printf
+                               (VIDEOS_DELETEPOP_MSG_ONE_VIDEO_WILL_BE_DELETED);
+               }
+       }
+       elm_object_part_text_set(pPopUpHandle, "default", tmpStr);
+       if (tmpStr) {
+               free(tmpStr);
+               tmpStr = NULL;
+       }
+
+       pButton = elm_button_add(pPopUpHandle);
+       elm_object_domain_translatable_text_set(pButton, VIDEOS_STRING,
+                                                                                       VIDEOS_COMMON_BUTTON_CANCEL);
+       elm_object_style_set(pButton, "popup");
+       elm_object_part_content_set(pPopUpHandle, "button1", pButton);
+
+       if (PopupCancelButtonCallbackFunc) {
+               evas_object_smart_callback_add(pButton, "clicked",
+                                                                          PopupCancelButtonCallbackFunc,
+                                                                          (void *) pUserData);
+       }
+
+       pButton = elm_button_add(pPopUpHandle);
+
+       elm_object_domain_translatable_text_set(pButton, VIDEOS_STRING,
+                                                                                       VIDEOS_DELETEPOP_BUTTON_DELETE);
+
+       elm_object_style_set(pButton, "popup");
+       elm_object_part_content_set(pPopUpHandle, "button2", pButton);
+
+       if (PopupDeleteButtonCallbackFunc) {
+               evas_object_smart_callback_add(pButton, "clicked",
+                                                                          PopupDeleteButtonCallbackFunc,
+                                                                          (void *) pUserData);
+       }
+
+       if (PopupHWMouseBackUpCbFunc) {
+               evas_object_event_callback_add(pPopUpHandle,
+                                                                          EVAS_CALLBACK_MOUSE_UP,
+                                                                          PopupHWMouseBackUpCbFunc,
+                                                                          (void *) pUserData);
+       }
+
+       if (PopupHWKeyBackCbFunc) {
+       }
+
+       evas_object_show(pPopUpHandle);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param PopupDeleteButtonCallbackFunc
+ * @param PopupCancelButtonCallbackFunc
+ * @param PopupHWMouseBackUpCbFunc
+ * @param PopupHWKeyBackCbFunc
+ * @return
+ */
+bool mp_util_remove_folder_question_popup(void *pUserData,
+                                                                                 void
+                                                                                 *PopupDeleteButtonCallbackFunc,
+                                                                                 void
+                                                                                 *PopupCancelButtonCallbackFunc,
+                                                                                 void *PopupHWMouseBackUpCbFunc,
+                                                                                 void *PopupHWKeyBackCbFunc)
+{
+       Evas_Object *pButton = NULL;
+
+       mp_util_delete_popup_handle();
+
+       pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+
+       eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+                                                                  PopupCancelButtonCallbackFunc, NULL);
+
+       evas_object_size_hint_weight_set(pPopUpHandle, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+
+       elm_object_part_text_set(pPopUpHandle, "title,text",
+                                                        VIDEOS_DELETEPOP_HEADER_DELETE);
+       elm_object_domain_translatable_text_set(pPopUpHandle, VIDEOS_STRING,
+                                                                                       VIDEOS_DELETEPOP_MSG_THIS_FOLDER_WILL_BE_DELETED_IDS);
+
+       pButton = elm_button_add(pPopUpHandle);
+       elm_object_domain_translatable_text_set(pButton, VIDEOS_STRING,
+                                                                                       VIDEOS_COMMON_BUTTON_CANCEL_IDS);
+       elm_object_style_set(pButton, "popup_button/default");
+       elm_object_part_content_set(pPopUpHandle, "button1", pButton);
+
+       if (PopupCancelButtonCallbackFunc) {
+               evas_object_smart_callback_add(pButton, "clicked",
+                                                                          PopupCancelButtonCallbackFunc,
+                                                                          pUserData);
+       }
+
+       pButton = elm_button_add(pPopUpHandle);
+       elm_object_domain_translatable_text_set(pButton, VIDEOS_STRING,
+                                                                                       VIDEOS_DELETEPOP_BUTTON_DELETE);
+       elm_object_style_set(pButton, "popup_button/default");
+       elm_object_part_content_set(pPopUpHandle, "button2", pButton);
+
+       if (PopupDeleteButtonCallbackFunc) {
+               evas_object_smart_callback_add(pButton, "clicked",
+                                                                          PopupDeleteButtonCallbackFunc,
+                                                                          pUserData);
+       }
+
+       if (PopupHWMouseBackUpCbFunc) {
+               evas_object_event_callback_add(pPopUpHandle,
+                                                                          EVAS_CALLBACK_MOUSE_UP,
+                                                                          PopupHWMouseBackUpCbFunc,
+                                                                          pUserData);
+       }
+
+       evas_object_show(pPopUpHandle);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param szTitle
+ * @param szContents
+ * @param PopupCancelBtnCallbackFunc
+ * @param PopupDownloadBtnCallbackFunc
+ * @return
+ */
+bool mp_util_download_question_popup(void *pUserData, char *szTitle,
+                                                                        char *szContents,
+                                                                        void *PopupCancelBtnCallbackFunc,
+                                                                        void *PopupDownloadBtnCallbackFunc)
+{
+       Evas_Object *pButton = NULL;
+
+       mp_util_delete_popup_handle();
+
+       pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+
+       evas_object_size_hint_weight_set(pPopUpHandle, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+
+       if (szContents)
+               elm_object_text_set(pPopUpHandle, szContents);
+
+       if (szTitle)
+               elm_object_part_text_set(pPopUpHandle, "title,text", szTitle);
+
+       pButton = elm_button_add(pPopUpHandle);
+       elm_object_domain_translatable_text_set(pButton, VIDEOS_STRING,
+                                                                                       VIDEOS_COMMON_BUTTON_CANCEL_IDS);
+       elm_object_style_set(pButton, "popup");
+       elm_object_part_content_set(pPopUpHandle, "button1", pButton);
+
+       if (PopupCancelBtnCallbackFunc) {
+               evas_object_smart_callback_add(pButton, "clicked",
+                                                                          PopupCancelBtnCallbackFunc,
+                                                                          pUserData);
+               eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+                                                                          PopupCancelBtnCallbackFunc, NULL);
+       }
+
+       pButton = elm_button_add(pPopUpHandle);
+       elm_object_domain_translatable_text_set(pButton, VIDEOS_STRING,
+                                                                                       VIDEOS_DELETEPOP_BUTTON_DELETE);
+       elm_object_style_set(pButton, "popup");
+       elm_object_part_content_set(pPopUpHandle, "button2", pButton);
+
+       if (PopupDownloadBtnCallbackFunc) {
+               evas_object_smart_callback_add(pButton, "clicked",
+                                                                          PopupDownloadBtnCallbackFunc,
+                                                                          pUserData);
+       }
+
+       evas_object_show(pPopUpHandle);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pBox
+ * @param szString
+ */
+void mp_util_set_label_for_detail(Evas_Object * pBox, char *szString)
+{
+
+       Evas_Object *pLabel = NULL;
+       if (!pBox) {
+               VideoLogError("error pBox");
+               return;
+       }
+       pLabel = elm_label_add(pBox);
+       elm_object_style_set(pLabel, "popup/default");
+       elm_object_text_set(pLabel, szString);
+       elm_label_line_wrap_set(pLabel, EINA_TRUE);
+       elm_label_wrap_width_set(pLabel,
+                                                        VIDEO_POPUP_DETAIL_ITEM_W *
+                                                        elm_config_scale_get());
+       evas_object_size_hint_weight_set(pLabel, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_min_set(pLabel, VIDEO_POPUP_DETAIL_ITEM_W,
+                                                                 35 * elm_config_scale_get());
+
+       elm_box_pack_end(pBox, pLabel);
+       evas_object_show(pLabel);
+
+}
+
+/**
+ *
+ * @param szLabel
+ * @return
+ */
+bool mp_util_progress_popup(char *szLabel)
+{
+       VideoLogInfo("");
+
+       if (!szLabel) {
+               VideoLogError("No have popup message or pUserData is null.");
+               return FALSE;
+       }
+
+       mp_util_delete_popup_handle();
+
+       pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle());
+
+       eext_object_event_callback_add(pPopUpHandle, EEXT_CALLBACK_BACK,
+                                                                  __mp_util_popup_back_cb, NULL);
+
+       evas_object_size_hint_weight_set(pPopUpHandle, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       Evas_Object *progressbar, *box, *label;
+
+       label = elm_label_add(pPopUpHandle);
+       elm_object_text_set(label, szLabel);
+       evas_object_show(label);
+
+       progressbar = elm_progressbar_add(pPopUpHandle);
+       elm_object_style_set(progressbar, "pending_list");
+       elm_progressbar_pulse(progressbar, EINA_TRUE);
+       evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, 0.5);
+       evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       elm_progressbar_pulse(progressbar, EINA_TRUE);
+       evas_object_show(progressbar);
+
+       box = elm_box_add(pPopUpHandle);
+       elm_box_pack_end(box, label);
+       elm_box_pack_end(box, progressbar);
+       evas_object_show(box);
+       elm_object_content_set(pPopUpHandle, box);
+
+       evas_object_show(pPopUpHandle);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szStr
+ */
+void mp_util_status_bar_noti_popup_show(const char *szStr)
+{
+       if (!szStr) {
+               VideoLogInfo("szStr is NULL.");
+               return;
+       }
+
+       int nRet = notification_status_message_post(szStr);
+
+       if (nRet != 0) {
+               VideoLogInfo("notification_status_message_post() : [0x%x]", nRet);
+       }
+}
+
+void *mp_util_create_button_icon(void *pParent, const char *szIconPath,
+                                                                bool bSizeUp, bool bSizeDown,
+                                                                int nAspectWidth, int nAspectHeight,
+                                                                void *pUserData, char *szButtonStyle,
+                                                                void *func)
+{
+       Evas_Object *pButton = NULL;
+       Evas_Object *pIcon = NULL;
+
+       pButton = elm_button_add(pParent);
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_IMAGE_NAME_EDJ);
+       free(path);
+       if (szIconPath) {
+               pIcon = elm_icon_add(pParent);
+               elm_image_file_set(pIcon, edj_path, szIconPath);
+               evas_object_size_hint_aspect_set(pIcon,
+                                                                                EVAS_ASPECT_CONTROL_NEITHER,
+                                                                                nAspectWidth, nAspectHeight);
+       }
+
+       if (szButtonStyle) {
+               elm_object_style_set(pButton, szButtonStyle);
+       }
+
+       if (pIcon) {
+               elm_object_part_content_set(pButton, PART_BUTTON_ICON, pIcon);
+       }
+
+       if (func) {
+               evas_object_smart_callback_add(pButton, "clicked", func,
+                                                                          (void *) pUserData);
+       }
+
+       elm_object_focus_allow_set(pButton, EINA_FALSE);
+       evas_object_size_hint_weight_set(pButton, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_show(pButton);
+
+       return (void *) pButton;
+}
+
+/**
+ *
+ * @param pParent
+ * @param szButtonText
+ * @param pUserData
+ * @param szButtonStyle
+ * @param func
+ */
+void *mp_util_create_style_button(void *pParent, const char *szButtonText,
+                                                                 const void *pUserData,
+                                                                 char *szButtonStyle, void *func)
+{
+       Evas_Object *pButton = NULL;
+
+       pButton = elm_button_add(pParent);
+
+       if (szButtonStyle) {
+               elm_object_style_set(pButton, szButtonStyle);
+       }
+
+       if (szButtonText) {
+               elm_object_text_set(pButton, szButtonText);
+       }
+
+       if (func) {
+               evas_object_smart_callback_add(pButton, "clicked", func,
+                                                                          pUserData);
+       }
+
+       elm_object_focus_allow_set(pButton, EINA_FALSE);
+       evas_object_size_hint_weight_set(pButton, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_show(pButton);
+
+       return (void *) pButton;
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_util_call_off(void)
+{
+       telephony_handle_list_s tel_list;
+       telephony_call_h *call_list_sim;
+       telephony_call_status_e status = TELEPHONY_CALL_STATUS_IDLE;
+       unsigned int count_sim[2] = {0};
+       int ret = TELEPHONY_ERROR_NONE;
+
+       int tel_valid = telephony_init(&tel_list);
+       if (tel_valid != TELEPHONY_ERROR_NONE) {
+               VideoLogError("telephony is not initialized. ERROR Code is %d",
+                                         tel_valid);
+               return TRUE;
+       }
+
+       for (int i = 0; i < tel_list.count; i++) {
+               ret =
+                               telephony_call_get_call_list(tel_list.handle[i], &count_sim[i],
+                                               &call_list_sim);
+               if (ret != TELEPHONY_ERROR_NONE || call_list_sim == NULL) {
+                       VideoLogError("Cannot get call list information for the sim");
+                       return TRUE;
+               }
+               if (call_list_sim) {
+                       ret = telephony_call_get_status(*call_list_sim, &status);
+                       if (ret != TELEPHONY_ERROR_NONE) {
+                               VideoLogError("getting call status failed");
+                               return TRUE;
+                       }
+               }
+               VideoLogDebug("call status = %d", status);
+
+               telephony_call_release_call_list(count_sim[i], &call_list_sim);
+       }
+       telephony_deinit(&tel_list);
+
+       if (ret == TELEPHONY_ERROR_NONE) {
+               if (status != TELEPHONY_CALL_STATUS_IDLE) {
+                       return FALSE;
+               }
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param uri
+ * @return
+ */
+bool mp_util_check_local_file_exist(char *uri)
+{
+       if (!uri) {
+               VideoLogError("[ERR]");
+               return FALSE;
+       }
+
+       if (strstr(uri, MP_UTIL_FILE_PREFIX)) {
+               if (!g_file_test
+                       (uri + strlen(MP_UTIL_FILE_PREFIX),
+                        G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) {
+                       return FALSE;
+               }
+               return TRUE;
+       } else {
+               if (!g_file_test(uri, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) {
+                       return FALSE;
+               }
+               return TRUE;
+       }
+}
+
+/**
+ *
+ * @param size
+ * @return
+ */
+char *mp_util_get_file_size(unsigned long long size)
+{
+       int nCount = 0;
+
+       char *pTmp = (char *) calloc(1, sizeof(char) * FILE_SIZE_LEN_MAX + 1);
+       if (!pTmp) {
+               return NULL;
+       }
+
+       double nSize_t = 0;
+
+       if (size >= (BASIC_SIZE)) {
+               nSize_t = (double) size / BASIC_SIZE;
+               nCount++;
+       }
+
+       while (nSize_t >= (BASIC_SIZE)) {
+               nSize_t /= BASIC_SIZE;
+               nCount++;
+       }
+
+       if (nCount == SIZE_BYTE) {
+               snprintf(pTmp, FILE_SIZE_LEN_MAX, "%0.1lf%s", nSize_t,
+                                VIDEOS_DETAILVIEW_BODY_B);
+       } else if (nCount == SIZE_KB) {
+               snprintf(pTmp, FILE_SIZE_LEN_MAX, "%0.1lf%s", nSize_t,
+                                VIDEOS_DETAILVIEW_BODY_KB);
+       } else if (nCount == SIZE_MB) {
+               snprintf(pTmp, FILE_SIZE_LEN_MAX, "%0.1lf%s", nSize_t,
+                                VIDEOS_DETAILVIEW_BODY_MB);
+       } else if (nCount == SIZE_GB) {
+               snprintf(pTmp, FILE_SIZE_LEN_MAX, "%0.1lf%s", nSize_t,
+                                VIDEOS_DETAILVIEW_BODY_GB);
+       } else {
+               snprintf(pTmp, FILE_SIZE_LEN_MAX, "%zu%s", (size_t) 0,
+                                VIDEOS_DETAILVIEW_BODY_MB);
+       }
+
+       return pTmp;
+}
+
+/**
+ *
+ * @param szFilepath
+ * @param szTitle
+ * @param nLengthTitle
+ * @return
+ */
+bool mp_util_get_file_title_from_file_path(char *szFilepath,
+                                                                                  char *szTitle, int nLengthTitle)
+{
+       if (!szFilepath || !szTitle) {
+               VideoLogError("[ERR]");
+               return FALSE;
+       }
+
+       char *szTitleName = NULL;
+       char *szExt = NULL;
+
+       memset(szTitle, 0, nLengthTitle);
+
+       szTitleName = strrchr(szFilepath, '/');
+
+       if (szTitleName) {
+               szTitleName++;
+       } else {
+               szTitleName = szFilepath;
+       }
+
+       szExt = strrchr(szTitleName, '.');
+
+       if (szExt) {
+               int nTmpStringSize = szExt - szTitleName;
+               strncpy(szTitle, szTitleName, nTmpStringSize);
+       } else {
+               strncpy(szTitle, szTitleName, STR_LEN_MAX - 1);
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+char *mp_util_get_file_name_from_file_path(const char *szFilePath)
+{
+       if (!szFilePath) {
+               VideoLogError("File Path is NULL");
+               return NULL;
+       }
+       char *szFile = NULL;
+       char *szTitleName = NULL;
+       int nLength = 0;
+
+       nLength = strlen(szFilePath);
+
+       if (nLength <= 0) {
+               VideoLogError("Invalid buffer length");
+               return NULL;
+       }
+
+       szTitleName = strrchr(szFilePath, '/');
+
+       if (szTitleName) {
+               szTitleName++;
+       } else {
+               szTitleName = (char *) szFilePath;
+       }
+
+       szFile = calloc(1, strlen(szTitleName) + 1);
+       if (szFile) {
+               strncpy(szFile, szTitleName, strlen(szTitleName) + 1);
+       }
+
+       return szFile;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param szTitle
+ * @return
+ */
+char *mp_util_get_display_name_from_path_and_title(const char *szFilePath,
+                                                                                                  const char *szTitle)
+{
+       if (!szFilePath || !szTitle) {
+               VideoLogError("File Path is NULL");
+               return NULL;
+       }
+       char *szDisplayName = NULL;
+       char *szExt = NULL;
+       int nLength = 0;
+
+       szExt = strrchr(szFilePath, '.');
+       if (szExt) {
+               nLength = strlen(szTitle) + strlen(szExt) + 1;
+       } else {
+               nLength = strlen(szTitle) + 1;
+       }
+
+       szDisplayName = calloc(1, nLength);
+       if (szDisplayName) {
+               if (szExt) {
+                       snprintf(szDisplayName, nLength, "%s%s", szTitle, szExt);
+               } else {
+                       snprintf(szDisplayName, nLength, "%s", szTitle);
+               }
+       }
+       return szDisplayName;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param szIconURL
+ * @return
+ */
+bool mp_util_get_icon_path_from_thumbnail(const char *szMediaURL,
+                                                                                 char **szIconURL)
+{
+       if (!szMediaURL) {
+               VideoLogError("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       if (strlen(szMediaURL) < 1) {
+               VideoLogError("szMediaURL is invalid Length");
+               return FALSE;
+       }
+
+       *szIconURL = NULL;
+       char *szExt = strrchr(szMediaURL, '.');
+       int nLen = 0;
+       if (szExt) {
+               nLen = strlen(szExt);
+       }
+
+       if (nLen == 4) {
+               if (vp_file_exists(szMediaURL)) {
+                       VideoLogWarning("Success finding icon file. - %s", szMediaURL);
+                       *szIconURL = strdup(szMediaURL);
+               }
+               return TRUE;
+       }
+
+       int nCount = 0;
+       int nStrLength = 0;
+       int nOutputLen = 0;
+
+       char szExtWildkey[3][5] = { ".jpg", ".png", ".bmp" };
+       char *szCheckFilePath = NULL;
+
+       nOutputLen = strlen(szMediaURL) + 5;
+       szCheckFilePath = calloc(1, sizeof(char) * nOutputLen);
+       if (szCheckFilePath) {
+               nStrLength = strlen(szMediaURL);
+
+               for (nCount = 0; nCount < 3; nCount++) {
+                       memset(szCheckFilePath, 0, nOutputLen);
+                       strncpy(szCheckFilePath, szMediaURL, nStrLength + 1);
+                       strncat(szCheckFilePath, szExtWildkey[nCount], 5);
+
+                       VideoLogWarning("%s", szCheckFilePath);
+
+                       if (vp_file_exists(szCheckFilePath)) {
+                               VideoLogWarning("Success finding icon file. - %d, %s",
+                                                               nCount, szCheckFilePath);
+                               *szIconURL = strdup(szCheckFilePath);
+                               break;
+                       }
+               }
+       }
+       if (szCheckFilePath) {
+               free(szCheckFilePath);
+               szCheckFilePath = NULL;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nVideoTime
+ * @param szRetTime
+ * @param bIsHideHour
+ */
+void mp_util_convert_time(int nVideoTime, char *szRetTime,
+                                                 bool bIsHideHour)
+{
+       if (!szRetTime) {
+               VideoLogError("[ERR] No exist szRetTime pointer.");
+               return;
+       } else {
+               memset(szRetTime, 0, STR_LEN_MAX);
+       }
+
+       if (nVideoTime <= 0) {
+               VideoLogInfo("nVideoTime : %d", nVideoTime);
+       }
+
+       int nTime = floor(nVideoTime / VIDEO_TIME_MSEC_PER_SEC);
+       int nHour = 0;
+       int nMin = 0;
+       int nSec = 0;
+       int nTmp = 0;
+
+       if (nTime >= VIDEO_TIME_SEC_PER_HOUR) {
+               nSec = nTime % VIDEO_TIME_SEC_PER_MIN;
+               nTmp = floor(nTime / VIDEO_TIME_SEC_PER_MIN);
+               nMin = nTmp % VIDEO_TIME_MIN_PER_HOUR;
+               nHour = floor(nTmp / VIDEO_TIME_MIN_PER_HOUR);
+       } else if (nTime >= VIDEO_TIME_SEC_PER_MIN) {
+               nHour = 0;
+               nMin = floor(nTime / VIDEO_TIME_SEC_PER_MIN);
+               nSec = nTime % VIDEO_TIME_SEC_PER_MIN;
+       } else {
+               nHour = 0;
+               nMin = 0;
+               nSec = nTime % VIDEO_TIME_SEC_PER_MIN;
+       }
+
+       if (bIsHideHour) {
+               if (nHour) {
+                       snprintf(szRetTime, STR_LEN_MAX - 1, "%02d:%02d:%02d", nHour,
+                                        nMin, nSec);
+               } else {
+                       snprintf(szRetTime, STR_LEN_MAX - 1, "00:%02d:%02d", nMin,
+                                        nSec);
+               }
+       } else {
+               snprintf(szRetTime, STR_LEN_MAX - 1, "%02d:%02d:%02d", nHour,
+                                nMin, nSec);
+       }
+
+       szRetTime[strlen(szRetTime)] = '\0';
+}
+
+/**
+ *
+ * @param nVideoTime
+ * @param szRetTime
+ * @param bIsHideHour
+ */
+void mp_util_convert_sec_time(int nVideoTime, char *szRetTime,
+                                                         bool bIsHideHour)
+{
+       if (!szRetTime) {
+               VideoLogError("[ERR] No exist szRetTime pointer.");
+               return;
+       } else {
+               memset(szRetTime, 0, STR_LEN_MAX);
+       }
+
+       if (nVideoTime <= 0) {
+               VideoLogInfo("nVideoTime : %d", nVideoTime);
+       }
+
+       int nTime = nVideoTime;
+       int nHour = 0;
+       int nMin = 0;
+       int nSec = 0;
+       int nTmp = 0;
+
+       if (nTime >= VIDEO_TIME_SEC_PER_HOUR) {
+               nSec = nTime % VIDEO_TIME_SEC_PER_MIN;
+               nTmp = floor(nTime / VIDEO_TIME_SEC_PER_MIN);
+               nMin = nTmp % VIDEO_TIME_MIN_PER_HOUR;
+               nHour = floor(nTmp / VIDEO_TIME_MIN_PER_HOUR);
+       } else if (nTime >= VIDEO_TIME_SEC_PER_MIN) {
+               nHour = 0;
+               nMin = floor(nTime / VIDEO_TIME_SEC_PER_MIN);
+               nSec = nTime % VIDEO_TIME_SEC_PER_MIN;
+       } else {
+               nHour = 0;
+               nMin = 0;
+               nSec = nTime % VIDEO_TIME_SEC_PER_MIN;
+       }
+
+       if (bIsHideHour) {
+               if (nHour) {
+                       snprintf(szRetTime, STR_LEN_MAX - 1, "%02d:%02d:%02d", nHour,
+                                        nMin, nSec);
+               } else {
+                       snprintf(szRetTime, STR_LEN_MAX - 1, "%02d:%02d", nMin, nSec);
+               }
+       } else {
+               snprintf(szRetTime, STR_LEN_MAX - 1, "%02d:%02d:%02d", nHour,
+                                nMin, nSec);
+       }
+
+       szRetTime[strlen(szRetTime)] = '\0';
+
+}
+
+/**
+ *
+ * @return
+ */
+int mp_util_get_pid(void)
+{
+       return syscall(__NR_gettid);
+}
+
+/**
+ *
+ * @param str
+ * @param subStr
+ * @return
+ */
+const char *mp_util_str_str_same_case(const char *str, const char *subStr)
+{
+       if (!str || !subStr) {
+               return NULL;
+       }
+
+       int len = strlen(subStr);
+       const char *strcpy = str;
+       if (len == 0) {
+               return NULL;
+       }
+
+       while (*strcpy) {
+               if (strncasecmp(strcpy, subStr, len) == 0) {
+                       return strcpy;
+               }
+               ++strcpy;
+       }
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param event_info
+ */
+void mp_util_toast_popup_clicked_cb(void *pUserData,
+                                                                       Evas_Object * pObject,
+                                                                       void *event_info)
+{
+       evas_object_del(pObject);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param event_info
+ */
+void mp_util_toast_popup_timeout_cb(void *pUserData,
+                                                                       Evas_Object * pObject,
+                                                                       void *event_info)
+{
+       evas_object_del(pObject);
+}
+
+/**
+ *
+ * @param text
+ * @param info_style
+ * @param bottom
+ * @return
+ */
+bool mp_util_ticker_toast_popup(const char *text, bool info_style,
+                                                               bool bottom)
+{
+       if (!text) {
+               return false;
+       }
+
+       /*************************************************************************************
+        *      app control infomaiton
+        *      Key     Value                           Description
+        *      0       "default", "info"       Tickernoti style, (default: "default")
+        *      1       "text"                          Text to use for the tickernoti description
+        *      2       "0", "1"                        Orientation of tickernoti. (0: top, 1:bottom, default: top)
+        *      3       "1", "2", �� ,"999" Timeout (1: 1 second, default: -1 means infinite)
+        *************************************************************************************/
+       Evas_Object *pToastPopup = NULL;
+       Evas_Object *pWindow = mp_util_get_main_window_handle();
+
+       pToastPopup = elm_popup_add(pWindow);
+       elm_popup_align_set(pToastPopup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(pToastPopup, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       eext_object_event_callback_add(pToastPopup, EEXT_CALLBACK_BACK,
+                                                                  eext_popup_back_cb, NULL);
+       elm_object_text_set(pToastPopup, text);
+       evas_object_smart_callback_add(pToastPopup, "block,clicked",
+                                                                  mp_util_toast_popup_clicked_cb,
+                                                                  pWindow);
+       elm_popup_timeout_set(pToastPopup, 2.0);
+       evas_object_smart_callback_add(pToastPopup, "timeout",
+                                                                  mp_util_toast_popup_timeout_cb, NULL);
+
+       evas_object_show(pToastPopup);
+
+       return true;
+}
+
+/**
+ *
+ * @param text
+ * @param timeout_func
+ * @return
+ */
+bool mp_util_ticker_toast_with_timeout_cb_popup(const char *text,
+                                                                                               Evas_Smart_Cb timeout_func)
+{
+       if (!text) {
+               return false;
+       }
+
+       Evas_Object *pToastPopup = NULL;
+       Evas_Object *pWindow = mp_util_get_main_window_handle();
+
+       pToastPopup = elm_popup_add(pWindow);
+       elm_popup_align_set(pToastPopup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(pToastPopup, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       eext_object_event_callback_add(pToastPopup, EEXT_CALLBACK_BACK,
+                                                                  eext_popup_back_cb, NULL);
+       elm_object_text_set(pToastPopup, text);
+       evas_object_smart_callback_add(pToastPopup, "block,clicked",
+                                                                  mp_util_toast_popup_clicked_cb,
+                                                                  pWindow);
+       elm_popup_timeout_set(pToastPopup, 2.0);
+       evas_object_smart_callback_add(pToastPopup, "timeout", timeout_func,
+                                                                  NULL);
+
+       evas_object_show(pToastPopup);
+
+       return true;
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_util_get_network_result()
+{
+       connection_h connection = NULL;
+       connection_type_e net_state;
+       bool bSuccessful = true;
+       int err = 0;
+
+       err = connection_create(&connection);
+       if (err != CONNECTION_ERROR_NONE) {
+               VideoLogWarning("connection_create error. err is [%d]", err);
+               bSuccessful = false;
+       }
+
+       if (connection) {
+               err = connection_get_type(connection, &net_state);
+               connection_destroy(connection);
+
+               if (err != CONNECTION_ERROR_NONE) {
+                       VideoLogWarning("connection_get_type error. err is [%d]", err);
+                       bSuccessful = false;
+               }
+               VideoLogInfo("net_state is [%d]", net_state);
+
+               if (net_state == CONNECTION_TYPE_DISCONNECTED) {
+                       bSuccessful = false;
+               }
+       }
+
+       return bSuccessful;
+}
+
+/**
+ *
+ * @param file_path
+ * @return
+ */
+char *mp_util_get_dir_by_path(const char *file_path)
+{
+       if (!file_path) {
+               return NULL;
+       }
+       char *result = NULL;
+       char *dir_path = NULL;
+       int location_index = 0;
+       const char *location = NULL;;
+       const char *head_dir = NULL;
+       dir_path = vp_dir_get(file_path);
+
+       if (!dir_path)
+               return NULL;
+
+       if (!strncmp(dir_path, MP_UTIL_PHONE_PATH, strlen(MP_UTIL_PHONE_PATH))) {
+               head_dir = MP_UTIL_PHONE_PATH;
+               location = VIDEOS_FOLDERVIEW_BODY_DEVICE_MEMORY;
+       } else
+               if (!strncmp(dir_path, MP_UTIL_SD_PATH, strlen(MP_UTIL_SD_PATH))) {
+               head_dir = MP_UTIL_SD_PATH;
+               location = VIDEOS_FOLDERVIEW_BODY_SD_CARD;
+       } else if (!strncmp
+                          (dir_path, MP_UTIL_USB_PATH, strlen(MP_UTIL_USB_PATH))) {
+               head_dir = MP_UTIL_USB_PATH;
+               location = VIDEOS_FOLDERVIEW_BODY_USB_MEMORY;
+       } else {
+               result = strdup(dir_path);
+       }
+
+       if (head_dir) {
+               location_index = strlen(head_dir) + 1;
+       }
+       if (location) {
+               MP_FREE_STRING(result);
+               result =
+                       g_strdup_printf("/%s/%s", location,
+                                                       (file_path + location_index));
+       }
+       VideoLogInfo("dir_path=%s, resul=%s", dir_path, result);
+
+       MP_FREE_STRING(dir_path);
+
+       return result;
+}
+
+/**
+ *
+ * @param nVideoFolderIndex
+ * @return
+ */
+char *mp_util_get_folder_icon_path(int nVideoFolderIndex)
+{
+       char *result = strdup(VIDEO_LIST_VIEW_ICON_FOLDER_PHONE);
+       char *dir_path = NULL;
+
+       char *file_path = mp_util_svc_get_video_folder_url(nVideoFolderIndex);
+       if (!file_path) {
+               VideoSecureLogError("file_path is NULL");
+               return result;
+       }
+       MpMediaStorageType storage_type =
+               mp_util_svc_get_folder_storage(nVideoFolderIndex);
+
+       if (storage_type == MP_MEDIA_TYPE_STORAGE_INTERNAL) {
+               if (result) {
+                       free(result);
+                       result = NULL;
+               }
+
+               result = strdup(VIDEO_LIST_VIEW_ICON_FOLDER_PHONE);
+       } else if (storage_type == MP_MEDIA_TYPE_STORAGE_EXTERNAL) {
+               dir_path = vp_dir_get(file_path);
+
+               if (!dir_path) {
+                       MP_FREE_STRING(file_path);
+                       VideoSecureLogError("dir_path is NULL");
+                       return result;
+               }
+
+               if (!strncmp(dir_path, MP_UTIL_SD_PATH, strlen(MP_UTIL_SD_PATH))) {
+                       if (result) {
+                               free(result);
+                               result = NULL;
+                       }
+
+                       result = strdup(VIDEO_LIST_VIEW_ICON_FOLDER_SDCARD);
+               } else if (!strncmp
+                                  (dir_path, MP_UTIL_USB_PATH,
+                                       strlen(MP_UTIL_USB_PATH))) {
+                       if (result) {
+                               free(result);
+                               result = NULL;
+                       }
+
+                       result = strdup(VIDEO_LIST_VIEW_ICON_FOLDER_EXTERNAL);
+
+               }
+       } else if (storage_type == MP_MEDIA_TYPE_STORAGE_DROPBOX) {
+               if (result) {
+                       free(result);
+                       result = NULL;
+               }
+
+               result = strdup(VIDEO_LIST_VIEW_ICON_FOLDER_DROPBOX);
+       } else {
+               if (result) {
+                       free(result);
+                       result = NULL;
+               }
+
+               result = strdup(VIDEO_LIST_VIEW_ICON_FOLDER_PHONE);
+       }
+
+       MP_FREE_STRING(dir_path);
+       MP_FREE_STRING(file_path);
+
+       return result;
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_util_get_personal_status(void)
+{
+       return FALSE;
+}
+
+/**
+ *
+ * @param szPreviewUrl
+ * @return
+ */
+bool mp_util_check_video_personal_status(const char *szPreviewUrl)
+{
+       return FALSE;
+}
+
+/**
+ *
+ * @param fullpath
+ * @return
+ */
+static int __mp_util_is_file_exist(const char *fullpath)
+{
+       if (!fullpath) {
+               return -1;
+       }
+       struct stat stFileInfo;
+
+       int intStat;
+
+       intStat = stat(fullpath, &stFileInfo);
+       if (intStat == 0) {
+               return 0;
+       }
+
+       return -1;
+}
+
+/**
+ *
+ * @param old_path
+ * @param new_path
+ * @param szNewestPath
+ * @return
+ */
+int mp_util_rename_file(const char *old_path, const char *new_path,
+                                               char **szNewestPath)
+{
+       int nCount = 0;
+       char *szNewPath = NULL;
+       char *szExt = NULL;
+       char *szNewPathTmp = NULL;
+
+       if (!old_path || !new_path) {
+               VideoLogError("Error path");
+               return -1;
+       }
+
+       if (!vp_file_exists(old_path)) {
+               VideoLogInfo("Error : file does not exist");
+               return -1;
+       }
+
+       szNewPath = g_strdup(new_path);
+       szExt = strrchr(new_path, '.');
+
+       if (szExt) {
+               int nStrlen = strlen(new_path) - strlen(szExt);
+               szNewPathTmp = g_strndup(new_path, nStrlen);
+       } else {
+               szNewPathTmp = g_strdup(new_path);
+       }
+
+       /*rename new file when name is existed */
+       while (__mp_util_is_file_exist(szNewPath) == 0) {
+               nCount++;
+               MP_FREE_STRING(szNewPath);
+               if (szExt) {
+                       szNewPath =
+                               g_strdup_printf("%s_%d%s", szNewPathTmp, nCount, szExt);
+               } else {
+                       szNewPath = g_strdup_printf("%s_%d", szNewPathTmp, nCount);
+               }
+       }
+       VideoSecureLogInfo("%s:%s", old_path, szNewPath);
+       MP_FREE_STRING(szNewPathTmp);
+       *szNewestPath = g_strdup(szNewPath);
+
+       if (!vp_file_mv(old_path, szNewPath)) {
+               VideoLogError("move false %d", errno);
+               MP_FREE_STRING(szNewPath);
+               return -1;
+       }
+       MP_FREE_STRING(szNewPath);
+
+       return 0;
+}
+
+/**
+ *
+ * @param pDestPath
+ * @return
+ */
+int mp_util_set_dest_file(const char *pDestPath)
+{
+       if (!pDestPath) {
+               VideoLogError("pDestPath is NULL");
+               return -1;
+       }
+
+       int nRet = 0;
+
+       if (!vp_file_exists(pDestPath)) {
+               if (!vp_mkpath(pDestPath)) {
+                       VideoLogError("Make directory Fail : %s", pDestPath);
+                       nRet = -1;
+               } else {
+                       nRet = 0;
+               }
+       }
+
+       return nRet;
+}
+
+
+#ifdef ENABLE_DRM_FEATURE
+bool mp_util_check_drm_lock(const char *szMediaURL, bool * bLock)
+{
+       if (!szMediaURL) {
+               VideoLogError("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       bool bIsDrm = FALSE;
+
+       *bLock = FALSE;
+
+       if (vp_drm_is_drm_file(szMediaURL, &bIsDrm)) {
+               if (bIsDrm) {
+                       bool bIsFWLock = FALSE;
+                       bool bIsDivX = FALSE;
+                       bool bIsPlayReadyDRM = FALSE;
+
+                       if (vp_drm_is_check_forward_lock(szMediaURL, &bIsFWLock)) {
+                               if (bIsFWLock) {
+                                       *bLock = TRUE;
+                               }
+                       }
+                       if (vp_drm_is_divx_drm_file(szMediaURL, &bIsDivX)) {
+                               if (bIsDivX) {
+                                       *bLock = TRUE;
+                               }
+                       }
+
+                       if (vp_drm_is_playready_drm_file(szMediaURL, &bIsPlayReadyDRM)) {
+                               if (bIsPlayReadyDRM) {
+                                       *bLock = TRUE;
+                               }
+                       }
+               }
+       }
+
+       return TRUE;
+}
+#endif
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+char *mp_util_get_title_from_path(char *szFilePath)
+{
+       if (!szFilePath || strlen(szFilePath) <= 0) {
+               VideoLogError("File Path is NULL");
+               return NULL;
+       }
+
+       char *szTitle = NULL;
+       const char *filename = vp_file_get(szFilePath);
+       if (!filename) {
+               return NULL;
+       }
+       szTitle = vp_strip_ext(filename);
+
+       return szTitle;
+}
+
+/**
+ *
+ * @param old_path
+ * @param szNewestPath
+ * @return
+ */
+int mp_util_rename_the_same_file(const char *old_path, char **szNewestPath)
+{
+       int nCount = 0;
+       char *szNewPath = NULL;
+       char *szExt = NULL;
+       char *szNewPathTmp = NULL;
+
+       if (!old_path) {
+               VideoLogError("Error path");
+               return -1;
+       }
+
+       szNewPath = g_strdup(old_path);
+       szExt = strrchr(old_path, '.');
+
+       if (szExt) {
+               int nStrlen = strlen(old_path) - strlen(szExt);
+               szNewPathTmp = g_strndup(old_path, nStrlen);
+       } else {
+               szNewPathTmp = g_strdup(old_path);
+       }
+
+       /*rename new file when name is existed */
+       while (__mp_util_is_file_exist(szNewPath) == 0) {
+               nCount++;
+               MP_FREE_STRING(szNewPath);
+               if (szExt) {
+                       szNewPath =
+                               g_strdup_printf("%s_%d%s", szNewPathTmp, nCount, szExt);
+               } else {
+                       szNewPath = g_strdup_printf("%s_%d", szNewPathTmp, nCount);
+               }
+       }
+       VideoSecureLogInfo("%s", szNewPath);
+       MP_FREE_STRING(szNewPathTmp);
+       *szNewestPath = g_strdup(szNewPath);
+
+       MP_FREE_STRING(szNewPath);
+
+       return 0;
+}
+
+/**
+ *
+ * @param szFullPath
+ * @return
+ */
+bool mp_util_check_video_file(const char *szFullPath)
+{
+       bool bVideo = FALSE;
+       char *szExt = NULL;
+       if (!szFullPath) {
+               VideoLogError("INVALID PATH");
+               return FALSE;
+       }
+       char *szPath = g_strdup(szFullPath);
+       szExt = mp_info_ctrl_get_file_extension(szPath);
+
+       MP_FREE_STRING(szPath);
+
+       if (!szExt) {
+               return FALSE;
+       }
+       if (!strcasecmp("AVI", szExt)) {
+               bVideo = TRUE;
+       } else if (!strcasecmp("ASF", szExt)) {
+               bVideo = TRUE;
+       } else if (!strcasecmp("MP4", szExt)) {
+               bVideo = TRUE;
+       } else if (!strcasecmp("MPEG", szExt)) {
+               bVideo = TRUE;
+       } else if (!strcasecmp("MKV", szExt)) {
+               bVideo = TRUE;
+       } else if (!strcasecmp("SDP", szExt)) {
+               bVideo = TRUE;
+       } else if (!strcasecmp("WMV", szExt)) {
+               bVideo = TRUE;
+       } else if (!strcasecmp("3GP", szExt)) {
+               bVideo = TRUE;
+       } else if (!strcasecmp("3GPP", szExt)) {
+               bVideo = TRUE;
+       } else if (!strcasecmp("3G2", szExt)) {
+               bVideo = TRUE;
+       } else if (!strcasecmp("FLV", szExt)) {
+               bVideo = TRUE;
+       } else if (!strcasecmp("DIVX", szExt)) {
+               bVideo = TRUE;
+       } else if (!strcasecmp("CRDOWNLOAD", szExt)) {
+               bVideo = TRUE;
+       } else if (!strcasecmp("Unknown", szExt)) {
+               bVideo = TRUE;
+       } else {
+               bVideo = FALSE;
+       }
+       VideoLogInfo("format = %s:%d", szExt, bVideo);
+       MP_FREE_STRING(szExt);
+       return bVideo;
+}
+
+/**
+ *
+ * @param szDir
+ * @return
+ */
+bool mp_util_check_empty_dir(const char *szDir)
+{
+       if (!szDir) {
+               VideoLogError("INVALID PATH");
+               return FALSE;
+       }
+       int nRet = vp_is_dir_empty(szDir);
+       if (nRet == 1) {
+               return TRUE;
+       }
+       return FALSE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param szSubtitle
+ * @return
+ */
+bool mp_util_get_subtitle_path(const char *szMediaURL, char **szSubtitle)
+{
+       if (!szMediaURL) {
+               VideoLogError("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       if (strlen(szMediaURL) < 1) {
+               VideoLogError("szMediaURL is invalid Length");
+               return FALSE;
+       }
+
+       struct stat buf;
+       int nCount = 0;
+       int nStrLength = 0;
+       int nOutputLen = 0;
+
+       char *szExt = NULL;
+       char szExtWildkey[6][5] = { ".srt", ".sub", ".smi", ".SRT", ".SUB",
+               ".SMI"
+       };
+       char *szCheckFilePath = NULL;
+
+       *szSubtitle = NULL;
+
+       nOutputLen = strlen(szMediaURL) + 5;
+       szCheckFilePath = calloc(1, sizeof(char) * nOutputLen);
+       if (!szCheckFilePath) {
+               VideoLogError("faile dto allocate memory");
+               return FALSE;
+       }
+
+       szExt = strrchr(szMediaURL, '.');
+       if (szExt) {
+               nStrLength = strlen(szMediaURL) - strlen(szExt);
+       } else {
+               nStrLength = strlen(szMediaURL);
+       }
+
+       for (nCount = 0; nCount < 6; nCount++) {
+               memset(szCheckFilePath, 0, nOutputLen);
+               strncpy(szCheckFilePath, szMediaURL, nStrLength);
+               strncat(szCheckFilePath, szExtWildkey[nCount], 5);
+               if (!stat(szCheckFilePath, &buf)) {
+                       VideoLogWarning("Success finding subtitle file. - %d, %s",
+                                                       nCount, szCheckFilePath);
+                       *szSubtitle = g_strdup(szCheckFilePath);
+                       break;
+               }
+       }
+
+       MP_FREE_STRING(szCheckFilePath);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szMediaURL
+ * @param nSize
+ * @return
+ */
+bool mp_util_get_file_size_by_path(const char *szMediaURL,
+                                                                  unsigned long long *nSize)
+{
+       if (!szMediaURL) {
+               VideoLogError("szMediaURL is NULL");
+               return FALSE;
+       }
+
+       if (strlen(szMediaURL) < 1) {
+               VideoLogError("szMediaURL is invalid Length");
+               return FALSE;
+       }
+       struct stat src_info;
+       if (stat(szMediaURL, &src_info)) {
+               VideoLogInfo("error");
+               return FALSE;
+       } else {
+               *nSize = (unsigned long long) src_info.st_size;
+       }
+       return TRUE;
+}
+
+/**
+ *
+ * @param parent
+ * @param path
+ * @param nIconWidth
+ * @return
+ */
+Evas_Object *mp_util_create_preload_image(Evas_Object * parent,
+                                                                                 const char *path, int nIconWidth)
+{
+       if (!parent || !path) {
+               VideoLogError("Invalid parent");
+               return NULL;
+       }
+
+       Evas_Object *thumb = NULL;
+       int nWidth = 0;
+       int nHeight = 0;
+
+       thumb = elm_image_add(parent);
+
+       elm_image_preload_disabled_set(thumb, EINA_FALSE);
+       elm_image_smooth_set(thumb, EINA_FALSE);
+
+       elm_image_prescale_set(thumb, nIconWidth);
+
+
+       elm_image_file_set(thumb, path, NULL);
+
+       elm_image_object_size_get(thumb, &nWidth, &nHeight);
+
+       if (nWidth > nHeight) {
+               elm_image_aspect_fixed_set(thumb, EINA_FALSE);
+       }
+
+       return thumb;
+}
+
+/**
+ *
+ * @param parent
+ * @param nIconWidth
+ * @return
+ */
+Evas_Object *mp_util_create_wall_preload_image(Evas_Object * parent,
+                                                                                          int nIconWidth)
+{
+       if (!parent) {
+               VideoLogError("Invalid parent");
+               return NULL;
+       }
+
+       Evas_Object *thumb = NULL;
+
+       thumb = elm_image_add(parent);
+
+       elm_image_preload_disabled_set(thumb, EINA_FALSE);
+       elm_image_smooth_set(thumb, EINA_FALSE);
+
+       elm_image_prescale_set(thumb, nIconWidth);
+
+       return thumb;
+}
+
+/**
+ *
+ * @param pParent
+ * @param szMediaURL
+ * @param nWidth
+ * @param nHeight
+ * @return
+ */
+bool mp_util_get_image_size(Evas_Object * pParent, const char *szMediaURL,
+                                                       int *nWidth, int *nHeight)
+{
+       if (!szMediaURL || !pParent) {
+               VideoLogError("szMediaURL or pParent is NULL");
+               return FALSE;
+       }
+
+       int nWidth_t = 0;
+       int nHeight_t = 0;
+
+       Evas *pObject = evas_object_evas_get(pParent);
+       if (!pObject) {
+               return FALSE;
+       }
+       Evas_Object *pImage = evas_object_image_add(pObject);
+       if (!pImage) {
+               return FALSE;
+       }
+       evas_object_image_file_set(pImage, szMediaURL, NULL);
+       evas_object_image_size_get(pImage, &nWidth_t, &nHeight_t);
+
+       VideoLogInfo("Image Width %d, Height %d", nWidth_t, nHeight_t);
+       *nWidth = nWidth_t;
+       *nHeight = nHeight_t;
+       MP_DEL_OBJ(pImage);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+char *mp_util_get_preview_image_path(const char *szFilePath)
+{
+       if (!szFilePath) {
+               VideoLogError("[ERR] No exist szFilePath.");
+               return NULL;
+       }
+
+       char *szFileName = NULL;
+
+       szFileName =
+               mp_util_svc_get_video_Thumbnail_by_video_url(szFilePath);
+       return szFileName;
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void
+__mp_util_progress_resize_cb(void *data, Evas * e, Evas_Object * obj,
+                                                        void *event_info)
+{
+       int w = 0;
+       int h = 0;
+
+       if (!data) {
+               VideoLogError("data = NULL !!!");
+               return;
+       }
+
+       evas_object_geometry_get(mp_util_get_main_window_handle(), NULL, NULL,
+                                                        &w, &h);
+       evas_object_resize((Evas_Object *) data, w, h);
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void
+__mp_util_progress_del_cb(void *data, Evas * e, Evas_Object * obj,
+                                                 void *event_info)
+{
+       if (!obj) {
+               VideoLogError("obj = NULL !!!");
+               return;
+       }
+
+       evas_object_event_callback_del(mp_util_get_main_window_handle(),
+                                                                  EVAS_CALLBACK_RESIZE,
+                                                                  __mp_util_progress_resize_cb);
+       evas_object_event_callback_del(obj, EVAS_CALLBACK_RESIZE,
+                                                                  __mp_util_progress_del_cb);
+}
+
+/**
+ *
+ * @return
+ */
+Evas_Object *mp_util_create_embedded_progress()
+{
+       Evas_Object *progressbar = NULL;
+       Evas_Object *layout = NULL;
+
+       int w = 0;
+       int h = 0;
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ);
+       free(path);
+       layout = elm_layout_add(mp_util_get_main_window_handle());
+       Eina_Bool r = FALSE;
+       r = elm_layout_file_set(layout, edj_path, "popup_embeded_processing");
+       if (!r) {
+               evas_object_del(layout);
+               VideoLogError("layout = NULL !!!");
+               return NULL;
+       }
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+
+       evas_object_geometry_get(mp_util_get_main_window_handle(), NULL, NULL,
+                                                        &w, &h);
+
+       evas_object_resize(layout, w, h);
+
+       evas_object_event_callback_add(mp_util_get_main_window_handle(),
+                                                                  EVAS_CALLBACK_RESIZE,
+                                                                  __mp_util_progress_resize_cb,
+                                                                  (const void *) layout);
+       evas_object_event_callback_add(layout, EVAS_CALLBACK_DEL,
+                                                                  __mp_util_progress_del_cb,
+                                                                  (const void *) layout);
+
+       evas_object_show(layout);
+
+       progressbar = elm_progressbar_add(layout);
+       elm_object_style_set(progressbar, "process_large");
+       elm_progressbar_pulse(progressbar, EINA_TRUE);
+       evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, 0.5);
+       evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_show(progressbar);
+
+       elm_object_part_content_set(layout, "elm.swallow.content",
+                                                               progressbar);
+
+       evas_object_propagate_events_set(layout, EINA_FALSE);
+
+       return layout;
+}
+
+/**
+ *
+ * @param pProgress
+ */
+void mp_util_destroy_embedded_progress(Evas_Object * pProgress)
+{
+       if (!pProgress) {
+               VideoLogError("pProgress == NULL");
+               return;
+       }
+
+       evas_object_del(pProgress);
+       pProgress = NULL;
+}
+
+/**
+ *
+ * @param szFilePath
+ * @param nWidth
+ * @param nHeight
+ * @return
+ */
+bool mp_util_meta_get_width_and_height(const char *szFilePath,
+                                                                          int *nWidth, int *nHeight)
+{
+       if (!szFilePath) {
+               VideoLogError("szFilePath is NULL");
+               return FALSE;
+       }
+
+       metadata_extractor_h pMetadata = NULL;
+       char *szWidth = NULL;
+       char *szHeight = NULL;
+
+       int nRet = METADATA_EXTRACTOR_ERROR_NONE;
+
+       nRet = metadata_extractor_create(&pMetadata);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogError("metadata_extractor_create is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet = metadata_extractor_set_path(pMetadata, szFilePath);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogError("metadata_extractor_set_path is fail : 0x%x", nRet);
+               goto Exception;
+       }
+
+       nRet =
+               metadata_extractor_get_metadata(pMetadata, METADATA_VIDEO_WIDTH,
+                                                                               &szWidth);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogError("metadata_extractor_get_metadata is fail : 0x%x",
+                                         nRet);
+               goto Exception;
+       }
+
+       nRet =
+               metadata_extractor_get_metadata(pMetadata, METADATA_VIDEO_HEIGHT,
+                                                                               &szHeight);
+       if (nRet != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogError("metadata_extractor_get_metadata is fail : 0x%x",
+                                         nRet);
+               goto Exception;
+       }
+       if (szWidth) {
+               *nWidth = atoi(szWidth);
+       } else {
+               *nWidth = 0;
+       }
+
+       if (szHeight) {
+               *nHeight = atoi(szHeight);
+       } else {
+               *nHeight = 0;
+       }
+
+       MP_FREE_STRING(szWidth);
+       MP_FREE_STRING(szHeight);
+
+       if (pMetadata) {
+               metadata_extractor_destroy(pMetadata);
+               pMetadata = NULL;
+       }
+
+       return TRUE;
+  Exception:
+
+       MP_FREE_STRING(szWidth);
+       MP_FREE_STRING(szHeight);
+
+       if (pMetadata) {
+               metadata_extractor_destroy(pMetadata);
+               pMetadata = NULL;
+       }
+
+       return FALSE;
+}
+
+/**
+ *
+ * @param szVideoId
+ * @return
+ */
+bool mp_util_delete_wall_file(char *szVideoId)
+{
+       if (!szVideoId) {
+               return FALSE;
+       }
+       char *szWallDir = NULL;
+       bool bRet = TRUE;
+       szWallDir = g_strdup_printf("%s/%s", MP_VIDEO_WALL_DIR, szVideoId);
+       if (vp_is_dir(szWallDir)) {
+               bRet = vp_file_recursive_rm(szWallDir);
+       }
+
+       VideoSecureLogInfo("delete video folder= %s:%d", szWallDir, bRet);
+       MP_FREE_STRING(szWallDir);
+       return TRUE;
+}
+
+/**
+ *
+ * @param parent
+ * @param nWidth
+ * @param nHeight
+ * @param bHorizontal
+ * @return
+ */
+Evas_Object *mp_util_create_gengrid(Evas_Object * parent, int nWidth,
+                                                                       int nHeight, bool bHorizontal)
+{
+       Evas_Object *pGengrid = elm_gengrid_add(parent);
+       if (!pGengrid) {
+               VideoLogError("pVideoGrid is not existed.");
+               return NULL;
+       }
+       evas_object_size_hint_weight_set(pGengrid, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pGengrid, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       elm_gengrid_item_size_set(pGengrid, nWidth, nHeight);
+       elm_gengrid_align_set(pGengrid, 0.0, 0.0);
+       elm_gengrid_horizontal_set(pGengrid, bHorizontal);
+
+       return pGengrid;
+}
+
+/**
+ *
+ * @param pParent
+ * @param icon_path
+ * @return
+ */
+Evas_Object *mp_util_create_folder_icon(void *pParent,
+                                                                               const char *icon_path)
+{
+       if (!pParent || !icon_path) {
+               VideoLogError("invalid parent and icon path");
+               return NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_IMAGE_NAME_EDJ);
+       free(path);
+       Evas_Object *pIcon = elm_image_add(pParent);
+       elm_image_file_set(pIcon, edj_path, (const char *) icon_path);
+       evas_object_size_hint_align_set(pIcon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(pIcon, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       if (!g_strcmp0(VIDEO_LIST_VIEW_ICON_FOLDER_DROPBOX, icon_path)) {
+               evas_object_color_set(pIcon, 50, 129, 194, 255);
+       } else {
+               evas_object_color_set(pIcon, 255, 255, 255, 255);
+       }
+       evas_object_show(pIcon);
+
+       return pIcon;
+}
+
+/**
+ *
+ * @param pLayout
+ * @param nVideoFolderIndex
+ * @return
+ */
+bool mp_util_create_folder_sub_icon(void *pLayout, int nVideoFolderIndex)
+{
+       if (!pLayout) {
+               VideoLogError("invalid parent");
+               return FALSE;
+       }
+
+       Evas_Object *pTempLayout = (Evas_Object *) pLayout;
+       Evas_Object *pIcon = elm_image_add(pLayout);
+       Evas_Object *pSubIcon = elm_image_add(pLayout);
+
+       MpMediaStorageType storageType =
+               mp_util_svc_get_folder_storage(nVideoFolderIndex);
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_IMAGE_NAME_EDJ);
+       free(path);
+       if (storageType == MP_MEDIA_TYPE_STORAGE_INTERNAL) {
+               elm_image_file_set(pIcon, edj_path,
+                                                  VIDEO_LIST_VIEW_ICON_FOLDER_PHONE);
+               elm_image_file_set(pSubIcon, edj_path,
+                                                  VIDEO_LIST_VIEW_ICON_FOLDER_PHONE_EF);
+       } else if (storageType == MP_MEDIA_TYPE_STORAGE_DROPBOX) {
+               elm_image_file_set(pIcon, edj_path,
+                                                  VIDEO_LIST_VIEW_ICON_FOLDER_DROPBOX);
+               elm_image_file_set(pSubIcon, edj_path,
+                                                  VIDEO_LIST_VIEW_ICON_FOLDER_DROPBOX_EF);
+       } else if (storageType == MP_MEDIA_TYPE_STORAGE_EXTERNAL) {
+       } else {
+               VideoLogInfo("Unknown Storage type or not folder item.");
+               return FALSE;
+       }
+
+       evas_object_size_hint_align_set(pIcon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(pIcon, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pSubIcon, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(pSubIcon, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+
+       elm_layout_content_set(pTempLayout, "elm.folder.icon", pIcon);
+       elm_layout_content_set(pTempLayout, "elm.folder.icon.ef", pSubIcon);
+
+       evas_object_show(pIcon);
+       evas_object_show(pSubIcon);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pLayout
+ * @param nVideoItemIndex
+ * @return
+ */
+bool mp_util_create_video_sub_icon(void *pLayout, int nVideoItemIndex)
+{
+       if (!pLayout) {
+               VideoLogError("invalid parent");
+               return FALSE;
+       }
+
+       Evas_Object *pTempLayout = (Evas_Object *) pLayout;
+       Evas_Object *pIcon = elm_image_add(pLayout);
+       Evas_Object *pSubIcon = elm_image_add(pLayout);
+
+       MpMediaStorageType storageType =
+               mp_util_svc_get_video_storage(nVideoItemIndex);
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_IMAGE_NAME_EDJ);
+       free(path);
+       if (storageType == MP_MEDIA_TYPE_STORAGE_DROPBOX) {
+               elm_image_file_set(pIcon, edj_path,
+                                                  VIDEO_LIST_VIEW_ICON_FOLDER_DROPBOX);
+               elm_image_file_set(pSubIcon, edj_path,
+                                                  VIDEO_LIST_VIEW_ICON_FOLDER_DROPBOX_EF);
+       } else if (storageType == MP_MEDIA_TYPE_STORAGE_EXTERNAL) {
+       } else {
+               VideoLogInfo
+                       ("Unknown storage or internal storage item. nVideoItemIndex: %d.",
+                        nVideoItemIndex);
+               return FALSE;
+       }
+
+       evas_object_size_hint_align_set(pIcon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(pIcon, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pSubIcon, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(pSubIcon, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+
+       elm_layout_content_set(pTempLayout, "elm.folder.icon", pIcon);
+       elm_layout_content_set(pTempLayout, "elm.folder.icon.ef", pSubIcon);
+
+       evas_object_show(pIcon);
+       evas_object_show(pSubIcon);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szFilePath
+ */
+unsigned long long mp_util_get_disk_available_space(const char
+                                                                                                       *szFilePath)
+{
+       if (!szFilePath) {
+               VideoLogError("szFilePath is NULL");
+               return 0;
+       }
+       int nRet = 0;
+       struct statvfs info;
+       if (szFilePath
+               && 0 == strncmp(szFilePath, MP_UTIL_SD_PATH,
+                                               strlen(MP_UTIL_SD_PATH))) {
+               if (-1 == statvfs(MP_UTIL_SD_PATH, &info)) {
+                       return 0;
+               }
+       } else {
+               if (vp_is_dir(szFilePath)) {
+                       nRet = statvfs(szFilePath, &info);
+                       VideoLogInfo("this is folder");
+               } else {
+                       nRet = statvfs(MP_UTIL_MEDIA_DIR, &info);
+               }
+               if (nRet < 0) {
+                       return 0;
+               }
+       }
+
+       return (info.f_bsize) * ((unsigned long long) info.f_bavail);
+}
+
+/**
+ *
+ * @param bDisabled
+ */
+void mp_util_virtual_keypad_disabled_set(Eina_Bool bDisabled)
+{
+       if (!pMainConformant) {
+               VideoLogError("[ERR] No exist pMainConformant.");
+               return;
+       }
+
+       if (bDisabled) {
+               VideoLogInfo("Virtual keypad will not compress the layout.");
+               elm_object_signal_emit(pMainConformant,
+                                                          "elm,state,clipboard,disable", "");
+               elm_object_signal_emit(pMainConformant,
+                                                          "elm,state,virtualkeypad,disable", "");
+       } else {
+               VideoLogInfo("Virtual keypad will compress the layout.");
+               elm_object_signal_emit(pMainConformant,
+                                                          "elm,state,clipboard,enable", "");
+               elm_object_signal_emit(pMainConformant,
+                                                          "elm,state,virtualkeypad,enable", "");
+       }
+}
+
+/**
+ *
+ * @param obj
+ * @param str
+ * @return
+ */
+int mp_util_set_translate_str(Evas_Object * obj, const char *str)
+{
+       if (!obj || !str) {
+               VideoLogError("[ERR] Invalid input data.");
+               return -1;
+       }
+
+       char *domain = NULL;
+
+       elm_object_domain_translatable_text_set(obj, domain, str);
+
+       return 0;
+}
diff --git a/src/common/mp-video-info-ctrl.c b/src/common/mp-video-info-ctrl.c
new file mode 100755 (executable)
index 0000000..42d9cf2
--- /dev/null
@@ -0,0 +1,501 @@
+/*
+ * Copyright (c) 2020 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 <metadata_extractor.h>
+#include <stdlib.h>
+#include <mime_type.h>
+
+#include <unicode/utmscale.h>
+#include <system_settings.h>
+
+#include "mp-util.h"
+#ifdef ENABLE_DRM_FEATURE
+#include "mp-drm-ctrl.h"
+#endif
+#include "mp-video-log.h"
+#include "mp-video-info-ctrl.h"
+#include "utils_i18n.h"
+
+enum VIDEO_PLAYER_FILE_SIZE_TYPE {
+       SIZE_BYTE = 0,
+       SIZE_KB,
+       SIZE_MB,
+       SIZE_GB
+};
+
+/**
+ *
+ * @param szUriPath
+ * @param dLongitude
+ * @param dLatitude
+ * @return
+ */
+bool mp_info_ctrl_get_gps(char *szUriPath, double *dLongitude,
+                                                 double *dLatitude)
+{
+       if (!szUriPath) {
+               VideoLogInfo("[ERR] No exist szUriPath.");
+               return FALSE;
+       }
+#ifdef ENABLE_DRM_FEATURE
+       if (mp_drm_is_drm_file(szUriPath)) {
+               VideoLogInfo("It's drm file.");
+               return FALSE;
+       }
+#endif
+       metadata_extractor_h pMetadata;
+
+       char *szTmp = NULL;
+
+       *dLatitude = 0.0;
+       *dLongitude = 0.0;
+
+       if (metadata_extractor_create(&pMetadata) !=
+               METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogInfo("[ERR] - metadata_extractor_create()");
+               goto Execption;
+       }
+
+       if (metadata_extractor_set_path(pMetadata, szUriPath) !=
+               METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogInfo("[ERR] - metadata_extractor_set_path()");
+               goto Execption;
+       }
+
+       if (metadata_extractor_get_metadata
+               (pMetadata, METADATA_LATITUDE,
+                &szTmp) != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogInfo
+                       ("[ERR] - metadata_extractor_get_metadata() - METADATA_LATITUDE");
+               goto Execption;
+       } else {
+               if (szTmp) {
+                       VideoLogInfo("METADATA_LATITUDE : %s", szTmp);
+                       *dLatitude = atof(szTmp);
+
+                       free(szTmp);
+                       szTmp = NULL;
+               } else {
+                       *dLatitude = 0.0;
+               }
+
+
+       }
+
+       if (metadata_extractor_get_metadata
+               (pMetadata, METADATA_LONGITUDE,
+                &szTmp) != METADATA_EXTRACTOR_ERROR_NONE) {
+               VideoLogInfo
+                       ("[ERR] - metadata_extractor_get_metadata() - METADATA_LONGITUDE");
+               if (szTmp) {
+                       free(szTmp);
+                       szTmp = NULL;
+               }
+               *dLongitude = 0.0;
+               goto Execption;
+       } else {
+               if (szTmp) {
+                       VideoLogInfo("METADATA_LONGITUDE : %s", szTmp);
+                       *dLongitude = atof(szTmp);
+                       free(szTmp);
+                       szTmp = NULL;
+               } else {
+                       *dLongitude = 0.0;
+               }
+       }
+
+       if (pMetadata) {
+               metadata_extractor_destroy(pMetadata);
+               pMetadata = NULL;
+       }
+
+       return TRUE;
+
+  Execption:
+       if (pMetadata) {
+               metadata_extractor_destroy(pMetadata);
+               pMetadata = NULL;
+       }
+       return FALSE;
+}
+
+/**
+ *
+ * @param szWidthResolution
+ * @param szHeightResolution
+ * @param pUserData
+ * @return
+ */
+bool mp_info_ctrl_get_resolution(char *szWidthResolution,
+                                                                char *szHeightResolution, void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("[ERR] No exist pUserData.");
+               return FALSE;
+       }
+       // TO-DO : It is possible to get resolution size from media service.
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param szLocale
+ * @param szCustomSkeleton
+ * @param szTimezone
+ * @param st_Date
+ * @return
+ */
+static char *mp_info_ctrl_converting_string(const char *szLocale,
+                                                                                       const char *szCustomSkeleton,
+                                                                                       const char *szTimezone,
+                                                                                       UDate st_Date)
+{
+#define UG_ICU_ARR_LENGTH                      256
+
+       // Copy a byte string encoded in the default codepage to a ustring.
+       // Copies at most n characters. The result will be null terminated if the length of src is less than n.
+       // Performs a host byte to UChar conversion.
+
+       i18n_uchar ucustomSkeleton[UG_ICU_ARR_LENGTH] = { 0, };
+
+       if (i18n_ustring_copy_ua_n
+               (ucustomSkeleton, szCustomSkeleton, UG_ICU_ARR_LENGTH) == NULL) {
+               VideoLogError("i18n_ustring_copy_au_n() error.");
+               return NULL;
+       }
+
+       i18n_uchar utimezone[UG_ICU_ARR_LENGTH] = { 0, };
+
+       if (i18n_ustring_copy_ua_n(utimezone, szTimezone, UG_ICU_ARR_LENGTH) ==
+               NULL) {
+               VideoLogError("i18n_ustring_copy_au_n() error.");
+               return NULL;
+       }
+
+       i18n_error_code_e status = I18N_ERROR_NONE;
+       i18n_udatepg_h generator;
+       i18n_udate_format_h formatter;
+
+       i18n_uchar bestPattern[UG_ICU_ARR_LENGTH] = { 0, };
+       i18n_uchar formatted[UG_ICU_ARR_LENGTH] = { 0, };
+       char formattedString[UG_ICU_ARR_LENGTH] = { 0, };
+       int32_t bestPatternLength, formattedLength;
+
+       status = i18n_ucalendar_set_default_timezone(utimezone);
+       if (status != I18N_ERROR_NONE) {
+               VideoLogError("i18n_timezone_set_default() is failed.");
+               return NULL;
+       }
+
+       status = i18n_ulocale_set_default(getenv("LC_TIME"));
+       if (status != I18N_ERROR_NONE) {
+               VideoLogError("i18n_timezone_set_default() is failed.");
+               return NULL;
+       }
+
+       status = i18n_udatepg_create(szLocale, &generator);
+       if (generator == NULL || status != I18N_ERROR_NONE) {
+               return NULL;
+       }
+
+       status =
+               i18n_udatepg_get_best_pattern(generator, ucustomSkeleton,
+                                                                         i18n_ustring_get_length
+                                                                         (ucustomSkeleton), bestPattern,
+                                                                         UG_ICU_ARR_LENGTH,
+                                                                         &bestPatternLength);
+       if (bestPatternLength <= 0 || status != I18N_ERROR_NONE) {
+               i18n_udatepg_destroy(generator);
+               return NULL;
+       }
+
+
+       char buffer[UG_ICU_ARR_LENGTH] = { 0, };
+
+       i18n_ustring_copy_au(buffer, bestPattern);
+       VideoLogInfo("bestPattern = %s", buffer);
+
+       int i = 0;
+       int len = strlen(buffer);
+       for (i = 0; i < len; i++) {
+               if (buffer[i] == 'K') {// K is 0~11, it is used at japan icu
+                       buffer[i] = 'h';        // h is 1~12
+               }
+       }
+
+       VideoLogInfo("buffer = %s", buffer);
+
+       i18n_uchar ubestpattern[UG_ICU_ARR_LENGTH] = { 0, };
+       if (i18n_ustring_copy_ua_n(ubestpattern, buffer, UG_ICU_ARR_LENGTH) ==
+               NULL) {
+               i18n_udatepg_destroy(generator);
+               VideoLogError("i18n_ustring_copy_au_n() error.");
+               return NULL;
+       }
+
+       status =
+               i18n_udate_create(I18N_UDATE_MEDIUM, I18N_UDATE_MEDIUM, szLocale,
+                                                 NULL, -1, ubestpattern, -1, &formatter);
+       if (formatter == NULL || status != I18N_ERROR_NONE) {
+               i18n_udatepg_destroy(generator);
+               return NULL;
+       }
+
+       status =
+               i18n_udate_format_date(formatter, st_Date, formatted,
+                                                          UG_ICU_ARR_LENGTH, NULL, &formattedLength);
+       if (formattedLength <= 0 || status != I18N_ERROR_NONE) {
+               i18n_udatepg_destroy(generator);
+               i18n_udate_destroy(formatter);
+               return NULL;
+       }
+
+       i18n_ustring_copy_au(formattedString, formatted);
+       status = i18n_udatepg_destroy(generator);
+       status = i18n_udate_destroy(formatter);
+
+       if (strlen(formattedString) == 0) {
+               return NULL;
+       }
+
+       return strdup(formattedString);
+}
+
+/**
+ *
+ * @param mtime
+ * @return
+ */
+char *mp_info_ctrl_get_data_of_file(time_t mtime)
+{
+#define UG_DATE_FORMAT_12                      "yMMMdhms"
+#define UG_DATE_FORMAT_24                      "yMMMdHms"
+
+       VideoLogInfo("");
+
+       char *szSkeleton = NULL;
+
+       bool hours_24 = false;
+       int ret = -1;
+
+       ret =
+               system_settings_get_value_bool
+               (SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR, &hours_24);
+       if (ret != SYSTEM_SETTINGS_ERROR_NONE) {
+               VideoLogError("Cannot get 24 hours format");
+               return NULL;
+       }
+
+       if (hours_24 == true) {
+               szSkeleton = UG_DATE_FORMAT_24;
+       } else {
+               szSkeleton = UG_DATE_FORMAT_12;
+       }
+
+       char *szLocale = NULL;          // eg en_US.UTF-8
+       int retcode =
+               system_settings_get_value_string
+               (SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY, &szLocale);
+       if ((retcode != SYSTEM_SETTINGS_ERROR_NONE) || (szLocale == NULL)) {
+               VideoLogInfo("Cannot get region format.");
+               szLocale = strdup("en_US");     // Default value.
+       } else {
+               char *find = strstr(szLocale, "UTF-8");
+               if (find) {
+                       int diff = find - szLocale;
+                       if (diff > 0) {
+                               szLocale[diff - 1] = '\0';
+                       }
+               }
+       }
+
+       char *szTimezone = NULL;
+       retcode =
+               system_settings_get_value_string
+               (SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE, &szTimezone);
+       if ((retcode != SYSTEM_SETTINGS_ERROR_NONE) || (szTimezone == NULL)) {
+               VideoLogError("Cannot get time zone.");
+               MP_FREE_STRING(szLocale);
+               return strdup("N/A");
+       }
+
+       VideoLogInfo("Locale : %s TimeZone : %s TimeFormat : %s", szLocale,
+                                szSkeleton, szTimezone);
+
+       char *szDatestr = NULL;
+       szDatestr =
+               mp_info_ctrl_converting_string(szLocale, szSkeleton, szTimezone,
+                                                                          (UDate) mtime * 1000);
+       if (!szDatestr) {
+               VideoLogError("Cannot get time string.");
+               MP_FREE_STRING(szLocale);
+               MP_FREE_STRING(szTimezone);
+               return strdup("N/A");
+       }
+
+       VideoLogInfo("ICU Date : %s", szDatestr);
+
+       MP_FREE_STRING(szLocale);
+       MP_FREE_STRING(szTimezone);
+
+       return szDatestr;
+}
+
+#ifdef ENABLE_DRM_FEATURE
+static char *mp_info_ctrl_get_drm_file_extension(char *szPath)
+{
+#define EXT_SIZE               128
+#define EXT_SPLITTER   '.'
+
+       if (!szPath) {
+               VideoLogInfo("[ERR] No exist szPath.");
+               return NULL;
+       }
+
+       char szDrmContentType[STR_LEN_MAX] = { 0, };
+
+       mp_drm_get_file_extension(szPath, szDrmContentType, STR_LEN_MAX);
+       VideoLogInfo("szDrmContentType : %s", szDrmContentType);
+
+       char **dTempExt = NULL;
+       char *szExt = NULL;
+       char *pFileExtention = NULL;
+
+       int nArrayLen = 0;
+       int nErr = -1;
+
+       nErr =
+               mime_type_get_file_extension(szDrmContentType, &dTempExt,
+                                                                        &nArrayLen);
+
+       if (nErr == MIME_TYPE_ERROR_NONE && nArrayLen > 0) {
+               if (dTempExt[0] != NULL) {
+                       szExt = strrchr(dTempExt[0], EXT_SPLITTER);
+               }
+
+               if (szExt != NULL && szExt + 1 != NULL) {
+                       pFileExtention = strdup(szExt + 1);
+               }
+       }
+
+       int i = 0;
+       for (; i < nArrayLen; i++) {
+               MP_FREE_STRING(dTempExt[i]);
+       }
+
+       MP_FREE_STRING(dTempExt);
+
+       return pFileExtention;
+}
+#endif
+
+/**
+ *
+ * @param szPath
+ * @return
+ */
+char *mp_info_ctrl_get_file_extension(char *szPath)
+{
+       if (!szPath) {
+               VideoLogError("Cannot get file extension. path is NULL");
+               return strdup("Unknown");
+       }
+#ifdef ENABLE_DRM_FEATURE
+       if (mp_drm_is_drm_file(szPath)) {
+
+               char *szFileExtension =
+                       mp_info_ctrl_get_drm_file_extension(szPath);
+               if (szFileExtension) {
+                       VideoLogInfo("Drm file extension. - %s", szFileExtension);
+                       return szFileExtension;
+               } else {
+                       VideoLogInfo("No have file extension.");
+                       return strdup("Unknown");
+               }
+       } else
+#endif
+       {
+               char *szExt = NULL;
+               szExt = strrchr(szPath, '.');
+
+               if ((szExt != NULL) && ((szExt + 1) != NULL)) {
+                       return strdup(szExt + 1);
+               }
+       }
+
+       return strdup("Unknown");
+}
+
+/**
+ *
+ * @param szUriPath
+ * @param szFileDate
+ * @param nFileDateSize
+ * @param szFileExtension
+ * @param nFileExtensionSize
+ * @param szFileSize
+ * @param nFilesizeSize
+ * @return
+ */
+bool mp_info_ctrl_get_file_info(char *szUriPath, char *szFileDate,
+                                                               int nFileDateSize, char *szFileExtension,
+                                                               int nFileExtensionSize, char *szFileSize,
+                                                               int nFilesizeSize)
+{
+       if (!szUriPath) {
+               VideoLogInfo("[ERR] No exist szUriPath.");
+               return FALSE;
+       }
+
+       struct stat statbuf;
+
+       if (stat(szUriPath, &statbuf) == -1) {
+               VideoLogInfo("%s file is NULL", szUriPath);
+               return FALSE;
+       }
+
+       memset(szFileDate, 0, nFileDateSize);
+       memset(szFileExtension, 0, nFileExtensionSize);
+       memset(szFileSize, 0, nFilesizeSize);
+
+       char *szTmpDateOfFile =
+               mp_info_ctrl_get_data_of_file(statbuf.st_mtime);
+       char *szTmpFileExtension = mp_info_ctrl_get_file_extension(szUriPath);
+       char *szTmpFileSize =
+               mp_util_get_file_size((unsigned long long) statbuf.st_size);
+
+       if (szTmpDateOfFile) {
+               VideoLogInfo("szTmpDateOfFile : %s", szTmpDateOfFile);
+               strncpy(szFileDate, szTmpDateOfFile, nFileDateSize);
+               free(szTmpDateOfFile);
+       }
+
+       if (szTmpFileExtension) {
+               VideoLogInfo("szTmpFileExtension : %s", szTmpFileExtension);
+               strncpy(szFileExtension, szTmpFileExtension, nFileExtensionSize);
+               free(szTmpFileExtension);
+       }
+
+       if (szTmpFileSize) {
+               VideoLogInfo("szTmpFileSize : %s", szTmpFileSize);
+               strncpy(szFileSize, szTmpFileSize, nFilesizeSize);
+               free(szTmpFileSize);
+       }
+
+       return TRUE;
+}
diff --git a/src/common/mp-video-util-db-controller.c b/src/common/mp-video-util-db-controller.c
new file mode 100755 (executable)
index 0000000..7312fd2
--- /dev/null
@@ -0,0 +1,288 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#ifdef ENABLE_DRM_FEATURE
+#include "mp-drm-ctrl.h"
+#endif
+#include "mp-video-log.h"
+#include "mp-video-value-define.h"
+#include "mp-video-util-db-controller.h"
+
+/*used after mediadb update*/
+static MpDbUpdateCbFunc g_pDbUpdateFun[MP_DB_UPDATE_LEV_MAX] = {
+       NULL, NULL,
+       NULL, NULL,
+       NULL
+};
+
+/*used before mediadb update*/
+static MpDbUpdateCbFunc g_pDbBackupFun[MP_DB_UPDATE_LEV_MAX] = {
+       NULL, NULL,
+       NULL, NULL,
+       NULL
+};
+
+/**
+ *
+ * @param nLev
+ * @param pUpdateFun
+ * @return
+ */
+bool mp_util_db_set_update_fun(MpDbUpdateViewLev nLev,
+                                                          MpDbUpdateCbFunc pUpdateFun)
+{
+       if ((nLev < MP_DB_UPDATE_LEV_0) || (nLev >= MP_DB_UPDATE_LEV_MAX)) {
+               VideoLogError("invalid lev = %d", nLev);
+               return FALSE;
+       }
+       g_pDbUpdateFun[nLev] = pUpdateFun;
+       return TRUE;
+}
+
+/**
+ *
+ * @param nLev
+ */
+void mp_util_db_reset_update_fun_up_self(MpDbUpdateViewLev nLev)
+{
+       MpDbUpdateViewLev nIndex = nLev;
+       while (nIndex < MP_DB_UPDATE_LEV_MAX) {
+               g_pDbUpdateFun[nIndex] = NULL;
+               nIndex++;
+       }
+}
+
+/**
+ *
+ */
+void mp_util_db_reset_update_fun_except_lev0(void)
+{
+       g_pDbUpdateFun[MP_DB_UPDATE_LEV_1] = NULL;
+       g_pDbUpdateFun[MP_DB_UPDATE_LEV_2] = NULL;
+       g_pDbUpdateFun[MP_DB_UPDATE_LEV_3] = NULL;
+       g_pDbUpdateFun[MP_DB_UPDATE_LEV_4] = NULL;
+}
+
+/**
+ *
+ */
+void mp_util_db_reset_all_update_fun(void)
+{
+       g_pDbUpdateFun[MP_DB_UPDATE_LEV_0] = NULL;
+       g_pDbUpdateFun[MP_DB_UPDATE_LEV_1] = NULL;
+       g_pDbUpdateFun[MP_DB_UPDATE_LEV_2] = NULL;
+       g_pDbUpdateFun[MP_DB_UPDATE_LEV_3] = NULL;
+       g_pDbUpdateFun[MP_DB_UPDATE_LEV_4] = NULL;
+}
+
+/**
+ *
+ * @param nLev
+ * @param pUserData
+ * @return
+ */
+bool mp_util_db_run_update_fun(MpDbUpdateViewLev nLev, void *pUserData)
+{
+       if ((nLev < MP_DB_UPDATE_LEV_0) || (nLev >= MP_DB_UPDATE_LEV_MAX)) {
+               VideoLogError("invalid lev = %d", nLev);
+               return FALSE;
+       }
+       VideoLogInfo("update lev = %d", nLev);
+
+       if (g_pDbUpdateFun[nLev]) {
+               g_pDbUpdateFun[nLev] (pUserData);
+       }
+       return FALSE;
+}
+
+/**
+ *
+ * @param pUserData0
+ * @param pUserData1
+ * @param pUserData2
+ * @param pUserData3
+ * @param pUserData4
+ * @return
+ */
+bool mp_util_db_run_all_update_fun(void *pUserData0, void *pUserData1,
+                                                                  void *pUserData2, void *pUserData3,
+                                                                  void *pUserData4)
+{
+       if (g_pDbUpdateFun[MP_DB_UPDATE_LEV_0]) {
+               g_pDbUpdateFun[MP_DB_UPDATE_LEV_0] (pUserData0);
+       }
+       if (g_pDbUpdateFun[MP_DB_UPDATE_LEV_1]) {
+               g_pDbUpdateFun[MP_DB_UPDATE_LEV_1] (pUserData1);
+       }
+       if (g_pDbUpdateFun[MP_DB_UPDATE_LEV_2]) {
+               g_pDbUpdateFun[MP_DB_UPDATE_LEV_2] (pUserData2);
+       }
+       if (g_pDbUpdateFun[MP_DB_UPDATE_LEV_3]) {
+               g_pDbUpdateFun[MP_DB_UPDATE_LEV_3] (pUserData3);
+       }
+       if (g_pDbUpdateFun[MP_DB_UPDATE_LEV_4]) {
+               g_pDbUpdateFun[MP_DB_UPDATE_LEV_4] (pUserData4);
+       }
+       VideoLogInfo("update successfully");
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pUserData1
+ * @param pUserData2
+ * @param pUserData3
+ * @param pUserData4
+ * @return
+ */
+bool mp_util_db_run_update_fun_except_lev0(void *pUserData1,
+                                                                                  void *pUserData2,
+                                                                                  void *pUserData3,
+                                                                                  void *pUserData4)
+{
+       if (g_pDbUpdateFun[MP_DB_UPDATE_LEV_1]) {
+               g_pDbUpdateFun[MP_DB_UPDATE_LEV_1] (pUserData1);
+       }
+       if (g_pDbUpdateFun[MP_DB_UPDATE_LEV_2]) {
+               g_pDbUpdateFun[MP_DB_UPDATE_LEV_2] (pUserData2);
+       }
+       if (g_pDbUpdateFun[MP_DB_UPDATE_LEV_3]) {
+               g_pDbUpdateFun[MP_DB_UPDATE_LEV_3] (pUserData3);
+       }
+       if (g_pDbUpdateFun[MP_DB_UPDATE_LEV_4]) {
+               g_pDbUpdateFun[MP_DB_UPDATE_LEV_4] (pUserData4);
+       }
+       VideoLogInfo("update successfully");
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nLev
+ */
+void mp_util_db_reset_backup_fun_up_self(MpDbUpdateViewLev nLev)
+{
+       MpDbUpdateViewLev nIndex = nLev;
+       while (nIndex < MP_DB_UPDATE_LEV_MAX) {
+               g_pDbBackupFun[nIndex] = NULL;
+               nIndex++;
+       }
+}
+
+/**
+ *
+ */
+void mp_util_db_reset_backup_fun_except_lev0(void)
+{
+       g_pDbBackupFun[MP_DB_UPDATE_LEV_1] = NULL;
+       g_pDbBackupFun[MP_DB_UPDATE_LEV_2] = NULL;
+       g_pDbBackupFun[MP_DB_UPDATE_LEV_3] = NULL;
+       g_pDbBackupFun[MP_DB_UPDATE_LEV_4] = NULL;
+}
+
+/**
+ *
+ */
+void mp_util_db_reset_all_backup_fun(void)
+{
+       g_pDbBackupFun[MP_DB_UPDATE_LEV_0] = NULL;
+       g_pDbBackupFun[MP_DB_UPDATE_LEV_1] = NULL;
+       g_pDbBackupFun[MP_DB_UPDATE_LEV_2] = NULL;
+       g_pDbBackupFun[MP_DB_UPDATE_LEV_3] = NULL;
+       g_pDbBackupFun[MP_DB_UPDATE_LEV_4] = NULL;
+}
+
+/**
+ *
+ * @param nLev
+ * @param pUpdateFun
+ * @return
+ */
+bool mp_util_db_set_backup_fun(MpDbUpdateViewLev nLev,
+                                                          MpDbUpdateCbFunc pUpdateFun)
+{
+       if ((nLev < MP_DB_UPDATE_LEV_0) || (nLev >= MP_DB_UPDATE_LEV_MAX)) {
+               VideoLogError("invalid lev = %d", nLev);
+               return FALSE;
+       }
+       g_pDbBackupFun[nLev] = pUpdateFun;
+       return TRUE;
+}
+
+/**
+ *
+ * @param pUserData1
+ * @param pUserData2
+ * @param pUserData3
+ * @param pUserData4
+ * @return
+ */
+bool mp_util_db_run_backup_fun_except_lev0(void *pUserData1,
+                                                                                  void *pUserData2,
+                                                                                  void *pUserData3,
+                                                                                  void *pUserData4)
+{
+       if (g_pDbBackupFun[MP_DB_UPDATE_LEV_1]) {
+               g_pDbBackupFun[MP_DB_UPDATE_LEV_1] (pUserData1);
+       }
+       if (g_pDbBackupFun[MP_DB_UPDATE_LEV_2]) {
+               g_pDbBackupFun[MP_DB_UPDATE_LEV_2] (pUserData2);
+       }
+       if (g_pDbBackupFun[MP_DB_UPDATE_LEV_3]) {
+               g_pDbBackupFun[MP_DB_UPDATE_LEV_3] (pUserData3);
+       }
+       if (g_pDbBackupFun[MP_DB_UPDATE_LEV_4]) {
+               g_pDbBackupFun[MP_DB_UPDATE_LEV_4] (pUserData4);
+       }
+       VideoLogInfo("backup successfully");
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pUserData0
+ * @param pUserData1
+ * @param pUserData2
+ * @param pUserData3
+ * @param pUserData4
+ * @return
+ */
+bool mp_util_db_run_all_backup_fun(void *pUserData0, void *pUserData1,
+                                                                  void *pUserData2, void *pUserData3,
+                                                                  void *pUserData4)
+{
+       if (g_pDbBackupFun[MP_DB_UPDATE_LEV_0]) {
+               g_pDbBackupFun[MP_DB_UPDATE_LEV_0] (pUserData0);
+       }
+       if (g_pDbBackupFun[MP_DB_UPDATE_LEV_1]) {
+               g_pDbBackupFun[MP_DB_UPDATE_LEV_1] (pUserData1);
+       }
+       if (g_pDbBackupFun[MP_DB_UPDATE_LEV_2]) {
+               g_pDbBackupFun[MP_DB_UPDATE_LEV_2] (pUserData2);
+       }
+       if (g_pDbBackupFun[MP_DB_UPDATE_LEV_3]) {
+               g_pDbBackupFun[MP_DB_UPDATE_LEV_3] (pUserData3);
+       }
+       if (g_pDbBackupFun[MP_DB_UPDATE_LEV_4]) {
+               g_pDbBackupFun[MP_DB_UPDATE_LEV_4] (pUserData4);
+       }
+       VideoLogInfo("backup successfully");
+
+       return TRUE;
+}
diff --git a/src/feature/mp-launching-video-displayer.c b/src/feature/mp-launching-video-displayer.c
new file mode 100755 (executable)
index 0000000..febd11f
--- /dev/null
@@ -0,0 +1,266 @@
+/*
+ * Copyright (c) 2020 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 <app.h>
+#include <unistd.h>
+#include <stdbool.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+#include <Eina.h>
+
+#include "vp-play-log.h"
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "vp-play-view.h"
+#include "mp-video-value-define.h"
+#include "mp-launching-video-displayer.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-util-config.h"
+
+/*"g_pLaunchTimer" use for check launch time between twice click. 
+ If click two videos between 1 sec. Only play the first video.*/
+/* it will be auto free after 1 sec. it will auto free alse after 
+ video process is killed.*/
+/* if this timer is not free. not create it again.*/
+static Ecore_Timer *g_pLaunchTimer = NULL;
+
+/**
+ *
+ * @param pRequest
+ * @param pReply
+ * @param nResult
+ * @param pUserData
+ */
+static void __mp_launch_video_reply_cb(app_control_h pRequest,
+                                                                          app_control_h pReply,
+                                                                          app_control_result_e nResult,
+                                                                          void *pUserData)
+{
+
+       if (pRequest) {
+               char *appId;
+               app_control_get_app_id(pRequest, &appId);
+               VideoLogWarning("Request : %s", appId);
+               if (appId) {
+                       free(appId);
+                       appId = NULL;
+               }
+       }
+
+       if (pReply) {
+               char *appId;
+               app_control_get_app_id(pReply, &appId);
+               VideoLogWarning("Reply : %s", appId);
+               if (appId) {
+                       free(appId);
+                       appId = NULL;
+               }
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __mp_launch_video_timer_cb(void *pUserData)
+{
+       g_pLaunchTimer = NULL;
+
+       return FALSE;
+}
+
+/*////////////////////////////////////////////////////////////////////////*/
+/* External APIs*/
+/*used together with mp_launch_video_play. if first to check, then to play, 
+use below API*/
+
+/**
+ *
+ * @return
+ */
+bool mp_launch_video_allow_check(void)
+{
+       if (g_pLaunchTimer) {
+               bool bMultiPlay = FALSE;
+               mp_util_config_get_multi_play_status(&bMultiPlay);
+               if (bMultiPlay) {
+                       return TRUE;
+               }
+               return FALSE;
+       }
+       return TRUE;
+}
+
+/**
+ *
+ * @param szMediaUrl
+ * @param nPlayerType
+ * @param szDeviceID
+ */
+void mp_launch_video_play(char *szMediaUrl, MpPlayerType nPlayerType,
+                                                 char *szDeviceID)
+{
+
+       if (!szMediaUrl) {
+               VideoLogError("[ERR] No existed szMediaUrl.");
+               return;
+       }
+       bool bMultiPlay = FALSE;
+       mp_util_config_get_multi_play_status(&bMultiPlay);
+
+       if (!bMultiPlay) {
+               if (!g_pLaunchTimer) {
+                       g_pLaunchTimer =
+                               ecore_timer_add(1.0, __mp_launch_video_timer_cb, NULL);
+               } else {
+                       VideoLogWarning("need more than 1.0 sec between twice click");
+                       return;
+               }
+       }
+
+       app_control_h pService = NULL;
+
+       bool bAutoPlay = vp_is_auto_play_on();
+       VideoLogError("vp_is_auto_play_on= %d", bAutoPlay);
+       VideoSecureLogInfo("start play:%s,%d,%s,%d", szMediaUrl, nPlayerType,
+                                          szDeviceID, bMultiPlay);
+
+       int nRet = 0;
+       nRet = app_control_create(&pService);
+       if (nRet != APP_CONTROL_ERROR_NONE) {
+               VideoLogError("app_control_create is fail [0x%x]", nRet);
+       }
+
+       nRet = app_control_set_operation(pService, APP_CONTROL_OPERATION_VIEW);
+       if (nRet != APP_CONTROL_ERROR_NONE) {
+               VideoLogError("app_control_set_operation is fail [0x%x]", nRet);
+       }
+
+       nRet = app_control_set_uri(pService, szMediaUrl);
+       if (nRet != APP_CONTROL_ERROR_NONE) {
+               VideoLogError("app_control_set_uri is fail [0x%x]", nRet);
+       }
+
+       if (bAutoPlay == TRUE) {
+               nRet = app_control_add_extra_data(pService, "auto_play_setting",
+                                                                                 "TRUE");
+               if (nRet != APP_CONTROL_ERROR_NONE) {
+                       VideoLogError("app_control_add_extra_data is fail [0x%x]",
+                                                 nRet);
+               }
+       } else {
+               nRet = app_control_add_extra_data(pService, "auto_play_setting",
+                                                                                 "FALSE");
+               if (nRet != APP_CONTROL_ERROR_NONE) {
+                       VideoLogError("app_control_add_extra_data is fail [0x%x]",
+                                                 nRet);
+               }
+       }
+
+       if (nPlayerType == MP_PLAYER_TYPE_VIDEO) {
+               nRet =
+                       app_control_add_extra_data(pService, "launching_application",
+                                                                          "list");
+               if (nRet != APP_CONTROL_ERROR_NONE) {
+                       VideoLogError("app_control_add_extra_data is fail [0x%x]",
+                                                 nRet);
+               }
+       }
+
+       if (szDeviceID) {
+               VideoLogWarning("== Device ID : %s ==", szDeviceID);
+               nRet =
+                       app_control_add_extra_data(pService, "Device id", szDeviceID);
+               if (nRet != APP_CONTROL_ERROR_NONE) {
+                       VideoLogError("app_control_add_extra_data is fail [0x%x]",
+                                                 nRet);
+               }
+       }
+#ifdef VS_FEATURE_FOLDER_VIEW /**/
+       int nViewType = mp_view_as_ctrl_get_type();
+
+       if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+               VideoLogInfo("folder view");
+               nRet =
+                       app_control_add_extra_data(pService, "video_list_type",
+                                                                          "folder");
+               if (nRet != APP_CONTROL_ERROR_NONE) {
+                       VideoLogError("app_control_add_extra_data is fail [0x%x]",
+                                                 nRet);
+               }
+       }
+#endif /**/
+               nRet = app_control_add_extra_data(pService, "path", szMediaUrl);
+       if (nRet != APP_CONTROL_ERROR_NONE) {
+               VideoLogError("app_control_add_extra_data is fail [0x%x]", nRet);
+       }
+
+       nRet = app_control_set_app_id(pService, "org.tizen.video-player");
+       if (nRet != APP_CONTROL_ERROR_NONE) {
+               VideoLogError("app_control_set_app_id is fail [0x%x]", nRet);
+       }
+
+       nRet =
+               app_control_send_launch_request(pService,
+                                                                               __mp_launch_video_reply_cb, NULL);
+       if (nRet != APP_CONTROL_ERROR_NONE) {
+               if (nRet == APP_CONTROL_ERROR_INVALID_PARAMETER) {
+                       VideoLogError
+                               ("app_control_send_launch_request is fail APP_CONTROL_ERROR_INVALID_PARAMETER [0x%x]",
+                                nRet);
+               } else if (nRet == APP_CONTROL_ERROR_OUT_OF_MEMORY) {
+                       VideoLogError
+                               ("app_control_send_launch_request is fail APP_CONTROL_ERROR_OUT_OF_MEMORY [0x%x]",
+                                nRet);
+               } else if (nRet == APP_CONTROL_ERROR_APP_NOT_FOUND) {
+                       VideoLogError
+                               ("app_control_send_launch_request is fail APP_CONTROL_ERROR_APP_NOT_FOUND [0x%x]",
+                                nRet);
+               } else if (nRet == APP_CONTROL_ERROR_KEY_NOT_FOUND) {
+                       VideoLogError
+                               ("app_control_send_launch_request is fail APP_CONTROL_ERROR_KEY_NOT_FOUND [0x%x]",
+                                nRet);
+               } else if (nRet == APP_CONTROL_ERROR_KEY_REJECTED) {
+                       VideoLogError
+                               ("app_control_send_launch_request is fail APP_CONTROL_ERROR_KEY_REJECTED [0x%x]",
+                                nRet);
+               } else if (nRet == APP_CONTROL_ERROR_INVALID_DATA_TYPE) {
+                       VideoLogError
+                               ("app_control_send_launch_request is fail APP_CONTROL_ERROR_INVALID_DATA_TYPE [0x%x]",
+                                nRet);
+               } else if (nRet == APP_CONTROL_ERROR_LAUNCH_REJECTED) {
+                       VideoLogError
+                               ("app_control_send_launch_request is fail APP_CONTROL_ERROR_LAUNCH_REJECTED [0x%x]",
+                                nRet);
+               }
+       }
+
+       if (pService) {
+               app_control_destroy(pService);
+               pService = NULL;
+       }
+
+}
+
+/**
+ *
+ */
+void mp_launch_video_stop(void)
+{
+       VideoLogInfo("");
+       /*if needed, to do */
+}
diff --git a/src/feature/mp-util-move.c b/src/feature/mp-util-move.c
new file mode 100755 (executable)
index 0000000..e0a0946
--- /dev/null
@@ -0,0 +1,986 @@
+/*
+ * Copyright (c) 2020 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 <stdio.h>
+#include <glib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <string.h>
+#include <sys/syscall.h>
+#include <unistd.h>
+#include <ftw.h>
+#include <Ecore_Evas.h>
+#include <sys/stat.h>
+#include <sys/statfs.h>
+
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-util-media-service.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-util-move.h"
+#include "vp-file-util.h"
+
+#define MSG_REPORT_PERIOD (1)
+#define DEF_ALLLOC_SIZE 16384  /*((4)*(1024)) */
+#define DIR_MODE_BIT (01777)
+#define FILE_MODE_BIT (S_IRWXU | S_IRWXG | S_IRWXO)
+#define PER_HANDLE_MAX_SIZE (10*1024*1204)
+#define PER_HANDLE_MIN_SIZE (1024*1024)
+#define MP_VISUAL_FOLDER_SIZE 16
+
+typedef struct __MpUtilDirListInfo MpUtilDirListInfo;
+
+struct __MpUtilDirListInfo {
+       char *ftw_path;
+       unsigned long long size;
+       int type;
+};
+
+GSList *g_copy_list = NULL;
+bool g_do_cancel = FALSE;
+unsigned long long g_total_size = 0;
+
+/**
+ *
+ * @param name
+ * @param old_root
+ * @param new_root
+ * @return
+ */
+static char *__mp_util_move_change_root_name(const char *name,
+                                                                                        const char *old_root,
+                                                                                        const char *new_root)
+{
+       char *new_name = NULL;
+
+       if (name && old_root && new_root) {
+               int old_len = strlen(old_root);
+               int new_len = strlen(new_root);
+               int name_len = strlen(name);
+               const char *base = NULL;
+               char *name_tmp = NULL;
+
+               if ((strstr(name, old_root) == NULL)
+                       || (name_len <= old_len)
+                       || ((name[old_len] == '/' && name[old_len + 1] == '\0'))
+                       || FALSE) {
+                       return NULL;
+               }
+
+               base = name + old_len;
+               if (name[old_len] == '/') {
+                       base += 1;
+               }
+
+               name_tmp = g_strdup(new_root);
+               if (name_tmp) {
+                       if (name_tmp[new_len - 1] == '/') {
+                               new_name = g_strdup_printf("%s%s", name_tmp, base);
+                       } else {
+                               new_name = g_strdup_printf("%s/%s", name_tmp, base);
+                       }
+               }
+               MP_FREE_STRING(name_tmp);
+       }
+       return new_name;
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_util_move_cancel_check(void)
+{
+       return g_do_cancel;
+}
+
+/**
+ *
+ * @param bCancel
+ */
+void mp_util_move_set_cancel_state(bool bCancel)
+{
+       g_do_cancel = bCancel;
+}
+
+/**
+ *
+ * @param path
+ * @param size
+ * @return
+ */
+static int __mp_util_move_get_remain_space(const char *path,
+                                                                                  unsigned long long *size)
+{
+       struct statfs dst_fs;
+
+       if (!path || !size) {
+               return -EINVAL;
+       }
+
+       if (statfs(path, &dst_fs) == 0) {
+               *size =
+                       ((unsigned long long) (dst_fs.f_bsize) *
+                        (unsigned long long) (dst_fs.f_bavail));
+       } else {
+               return -errno;
+       }
+
+       return 0;
+}
+
+/**
+ *
+ * @param path
+ * @return
+ */
+bool __mp_util_move_check_exist(const char *path)
+{
+       if (path && (access(path, F_OK) == 0)) {
+               return true;
+       }
+       return false;
+}
+
+/**
+ *
+ * @param pathname
+ * @param statptr
+ * @param type
+ * @return
+ */
+static int __mp_util_move_directory_hierarchies(const char *pathname,
+                                                                                               const struct stat *statptr,
+                                                                                               int type)
+{
+       MpUtilDirListInfo *info = NULL;
+       MpUtilDirListInfo *info_title = NULL;
+       VideoSecureLogInfo("pathname is [%s]\t type is [%d]\t", pathname,
+                                          type);
+       switch (type) {
+       case FTW_F:
+               if (mp_util_check_video_file(pathname)) {
+                       struct stat src_info;
+                       if (stat(pathname, &src_info)) {
+                               VideoLogInfo("error");
+                       } else {
+                               info = calloc(sizeof(MpUtilDirListInfo), 1);
+                               if (!info) {
+                                       VideoSecureLogInfo("failed to allocate memory");
+                                       return -1;
+                               }
+
+                               info->ftw_path = g_strdup(pathname);
+                               info->type = type;
+                               info->size = (unsigned long long) src_info.st_size;
+                               g_copy_list = g_slist_append(g_copy_list, info);
+                               //append subtitle
+                               char *szSubTitle = NULL;
+                               mp_util_get_subtitle_path(pathname, &szSubTitle);
+                               if (szSubTitle) {
+                                       if (stat(szSubTitle, &src_info)) {
+                                               VideoLogInfo("error");
+                                       } else {
+                                               info_title = calloc(sizeof(MpUtilDirListInfo), 1);
+                                               if (info_title) {
+                                                       info_title->ftw_path = g_strdup(szSubTitle);
+                                                       info_title->type = type;
+                                                       info_title->size =
+                                                               (unsigned long long) src_info.st_size;
+                                                       g_copy_list =
+                                                               g_slist_append(g_copy_list, info_title);
+                                               }
+                                       }
+                                       MP_FREE_STRING(szSubTitle);
+                               }
+                       }
+               }
+               break;
+       case FTW_D:
+               info = calloc(sizeof(MpUtilDirListInfo), 1);
+               if (!info) {
+                       VideoSecureLogInfo("failed to allocate memory");
+                       return -1;
+               }
+               info->ftw_path = g_strdup(pathname);
+               info->type = type;
+               info->size = MP_VISUAL_FOLDER_SIZE;
+               g_copy_list = g_slist_append(g_copy_list, info);
+
+               break;
+       default:
+               VideoSecureLogInfo("Default pathname is [%s]", pathname);
+       }
+
+       return 0;
+}
+
+/**
+ *
+ * @param glist
+ */
+static void __mp_util_move_free_directory_hierarchies(GSList ** glist)
+{
+       if (*glist == NULL)
+               return;
+       GSList *list = *glist;
+       while (list) {
+               MpUtilDirListInfo *info = NULL;
+               info = (MpUtilDirListInfo *) list->data;
+               g_free(info->ftw_path);
+               g_free(info);
+               list = g_slist_next(list);
+       }
+       g_slist_free(*glist);
+       *glist = NULL;
+}
+
+/**
+ *
+ * @param szSrcPath
+ * @param src_statp
+ * @param szDstPath
+ * @param buf_size
+ * @param msg_cb
+ * @param msg_data
+ * @return
+ */
+static int __mp_util_move_copy_reg_file(const char *szSrcPath,
+                                                                               struct stat *src_statp,
+                                                                               const char *szDstPath,
+                                                                               unsigned long buf_size,
+                                                                               mp_util_copy_cb msg_cb,
+                                                                               void *msg_data)
+{
+       FILE *src_f = NULL;
+       FILE *dst_f = NULL;
+       void *buf = NULL;
+       unsigned long alloc_size = DEF_ALLLOC_SIZE;
+       ssize_t r_size = 0;
+       mode_t src_mode = 0;
+
+       if (!szSrcPath) {
+               VideoLogError("error srcPath");
+               return -1;
+       }
+       if (!szDstPath) {
+               VideoLogError("error dstPath");
+               return -1;
+       }
+
+       if (src_statp) {
+               src_mode = src_statp->st_mode;
+       } else {
+               struct stat src_info;
+               if (stat(szSrcPath, &src_info)) {
+                       VideoLogError("Fail to stat src file : %d", errno);
+                       return -1;
+               }
+               src_mode = src_info.st_mode;
+       }
+
+
+       if (!S_ISREG(src_mode)) {
+               VideoLogError("src[%s] is not regular file", szSrcPath);
+               return -1;
+       }
+
+       src_f = fopen(szSrcPath, "rb");
+       if (!src_f) {
+               VideoLogError("Fail to open src file : %d", errno);
+               return -1;
+       }
+
+       dst_f = fopen(szDstPath, "wb");
+       if (!dst_f) {
+               VideoLogError("Fail to open dst file : %d", errno);
+
+               goto ERROR_CLOSE_FD;
+       }
+       if (buf_size == 0) {
+               struct stat dst_info;
+               if (stat(szDstPath, &dst_info)) {
+                       VideoLogError("Fail to stat dst file", szDstPath);
+                       goto ERROR_CLOSE_FD;
+               }
+       }
+
+       alloc_size = DEF_ALLLOC_SIZE;
+
+       buf = malloc(alloc_size);
+       if (!buf) {
+               VideoLogError("fail to alloc buf, alloc_size : %lu", alloc_size);
+               goto ERROR_CLOSE_FD;
+       }
+
+       int count = 0;
+       ssize_t msg_size = 0;
+
+       int dynamic_size = 0;
+       if (g_total_size > PER_HANDLE_MAX_SIZE) {
+               dynamic_size = 64;
+       } else if (g_total_size <= PER_HANDLE_MAX_SIZE
+                          && g_total_size > PER_HANDLE_MIN_SIZE) {
+               dynamic_size = 8;
+       } else {
+               dynamic_size = 1;
+       }
+
+       int dst_fd = fileno(dst_f);
+       ssize_t total = 0;
+       while ((r_size = fread(buf, 1, alloc_size, src_f)) > 0) {
+               total = r_size;
+               void *buf_p = buf;
+
+               count++;
+               while (total > 0) {
+                       ssize_t w_size = 0;
+                       w_size = fwrite(buf_p, 1, total, dst_f);
+                       if (ferror(dst_f) != 0 || (r_size != w_size)) {
+                               VideoLogError("fail to write:%d,%d", dst_f, errno);
+                               goto ERROR_CLOSE_FD;
+                       }
+
+                       buf_p += w_size;
+                       total -= w_size;
+               }
+               if (mp_util_move_cancel_check()) {
+                       goto CANCEL_CLOSE_FD;
+               }
+               if ((count == dynamic_size) && msg_cb) {
+                       msg_size += r_size;
+                       if (msg_cb) {
+                               msg_cb(MP_VIDEO_UPDATE, msg_size, 0, msg_data);
+                       }
+                       msg_size = 0;
+               } else {
+                       msg_size += r_size;
+               }
+               int ret = posix_fadvise(dst_fd, 0, msg_size, POSIX_FADV_DONTNEED);
+               if (ret != 0) {
+                       VideoLogInfo(" >>>>posix_fadvise ret=%d", ret);
+               }
+               count = count % dynamic_size;
+
+       }
+
+       if (msg_size > 0 && msg_cb) {
+               msg_size += r_size;
+               if (msg_cb) {
+                       msg_cb(MP_VIDEO_UPDATE, msg_size, 0, msg_data);
+               }
+
+               msg_size = 0;
+       }
+
+       free(buf);
+       buf = NULL;
+
+       fclose(src_f);
+       fclose(dst_f);
+
+       if (!vp_file_unlink(szSrcPath)) {
+               VideoLogInfo("remove failed.");
+       }
+
+       return 0;
+
+  ERROR_CLOSE_FD:
+
+       if (src_f) {
+               fclose(src_f);
+               src_f = NULL;
+       }
+       if (dst_f) {
+               fclose(dst_f);
+               dst_f = NULL;
+               if (!vp_file_unlink(szDstPath)) {
+                       VideoLogInfo("remove failed.");
+               }
+       }
+       if (buf) {
+               free(buf);
+               buf = NULL;
+       }
+       return -1;
+
+
+  CANCEL_CLOSE_FD:
+       if (buf) {
+               free(buf);
+               buf = NULL;
+       }
+       if (src_f) {
+               fclose(src_f);
+               src_f = NULL;
+       }
+       if (dst_f) {
+               fclose(dst_f);
+               dst_f = NULL;
+               if (!vp_file_unlink(szDstPath)) {
+                       VideoLogInfo("remove failed.");
+               }
+       }
+
+       return 1;
+}
+
+/**
+ *
+ * @param szSrcPath
+ * @param src_statp
+ * @param szDstPath
+ * @param msg_cb
+ * @param msg_data
+ * @return
+ */
+static int __mp_util_move_copy_directory(const char *szSrcPath,
+                                                                                struct stat *src_statp,
+                                                                                const char *szDstPath,
+                                                                                mp_util_copy_cb msg_cb,
+                                                                                void *msg_data)
+{
+       int ret = -1;
+       mode_t src_mode = 0;
+       int err = 0;
+       if (!szSrcPath) {
+               VideoLogError("error srcPath");
+               return -1;
+       }
+       if (!szDstPath) {
+               VideoLogError("error dstPath");
+               return -1;
+       }
+
+       if (src_statp) {
+               src_mode = src_statp->st_mode;
+       } else {
+               struct stat src_info;
+               if (stat(szSrcPath, &src_info)) {
+                       VideoLogError("Fail to stat src file : %d", errno);
+                       return -1;
+               }
+               src_mode = src_info.st_mode;
+       }
+
+       if (access(szDstPath, F_OK)) {
+               if (mkdir(szDstPath, (src_mode & DIR_MODE_BIT))) {
+                       VideoLogError("Fail to make directory=%d", errno);
+                       return -1;
+               } else {
+                       if (msg_cb) {
+                               msg_cb(MP_VIDEO_UPDATE, MP_VISUAL_FOLDER_SIZE, 0,
+                                          msg_data);
+                       }
+               }
+       } else {
+               VideoSecureLogInfo("directory[%s] is already existed", szDstPath);
+       }
+
+       char *new_dir = NULL;
+       __mp_util_move_free_directory_hierarchies(&g_copy_list);
+       g_copy_list = NULL;
+       ret = ftw(szSrcPath, __mp_util_move_directory_hierarchies, 16);
+       if (ret == 0) {
+               MpUtilDirListInfo *ent = NULL;
+               GSList *list = NULL;
+               list = g_copy_list;
+               while (list) {
+                       if (mp_util_move_cancel_check()) {
+                               goto DO_CANCEL;
+                       }
+                       ent = (MpUtilDirListInfo *) list->data;
+                       VideoSecureLogInfo("name is [%s] type is [%d]", ent->ftw_path,
+                                                          ent->type);
+                       if (ent->type == FTW_D) {
+                               if (ent->ftw_path == NULL || strlen(ent->ftw_path) == 0) {
+                                       list = g_slist_next(list);
+                                       continue;
+                               }
+                               if (g_strcmp0(ent->ftw_path, szSrcPath) == 0) {
+                                       list = g_slist_next(list);
+                                       continue;
+                               }
+                               MP_FREE_STRING(new_dir);
+                               new_dir =
+                                       __mp_util_move_change_root_name(ent->ftw_path,
+                                                                                                       szSrcPath, szDstPath);
+                               VideoSecureLogInfo("copy dir %s to %s", ent->ftw_path,
+                                                                  new_dir);
+                               if (new_dir) {
+                                       if (!__mp_util_move_check_exist(new_dir)) {
+                                               struct stat info;
+                                               if (stat(ent->ftw_path, &info) == 0) {
+                                                       if (mkdir
+                                                               (new_dir, (info.st_mode & DIR_MODE_BIT))) {
+                                                               VideoSecureLogError
+                                                                       ("Fail to make directory");
+                                                               MP_FREE_STRING(new_dir);
+                                                               goto ERROR_CLOSE_FD;
+                                                       } else {
+                                                               if (msg_cb) {
+                                                                       msg_cb(MP_VIDEO_UPDATE, 0, 0,
+                                                                                  msg_data);
+                                                               }
+                                                       }
+                                               } else {
+                                                       VideoSecureLogError("Fail to stat ");
+                                                       MP_FREE_STRING(new_dir);
+                                                       goto ERROR_CLOSE_FD;
+                                               }
+                                       } else {
+                                               struct stat new_dst_info;
+                                               if (stat(new_dir, &new_dst_info) == 0) {
+                                                       if (S_ISDIR(new_dst_info.st_mode)) {
+                                                               if (msg_cb) {
+                                                                       msg_cb(MP_VIDEO_UPDATE, 0, 0,
+                                                                                  msg_data);
+                                                               }
+                                                       } else {
+                                                               VideoSecureLogInfo
+                                                                       ("[%s] is already existed, and this one is not directory",
+                                                                        new_dir);
+                                                               MP_FREE_STRING(new_dir);
+                                                               goto ERROR_CLOSE_FD;
+                                                       }
+                                               } else {
+                                                       VideoLogError("Fail to stat %d", errno);
+                                                       MP_FREE_STRING(new_dir);
+                                                       goto ERROR_CLOSE_FD;
+                                               }
+                                       }
+                                       MP_FREE_STRING(new_dir);
+                               } else {
+                                       goto ERROR_CLOSE_FD;
+                               }
+                       } else if (ent->type == FTW_F) {
+                               if (ent->ftw_path == NULL || strlen(ent->ftw_path) == 0) {
+                                       list = g_slist_next(list);
+                                       continue;
+                               }
+                               char *new_file =
+                                       __mp_util_move_change_root_name(ent->ftw_path,
+                                                                                                       szSrcPath, szDstPath);
+                               if (new_file) {
+                                       err =
+                                               __mp_util_move_copy_reg_file(ent->ftw_path, NULL,
+                                                                                                        new_file, 0, msg_cb,
+                                                                                                        msg_data);
+                                       if (err == 0) {
+                                               mp_util_svc_scan_file(new_file);
+                                               mp_util_svc_scan_file(ent->ftw_path);
+                                       }
+                                       MP_FREE_STRING(new_file);
+                                       if (err > 0) {
+                                               goto DO_CANCEL;
+                                       } else if (err < 0) {
+                                               goto ERROR_CLOSE_FD;
+                                       }
+                               } else {
+                                       goto ERROR_CLOSE_FD;
+                               }
+                       }
+                       list = g_slist_next(list);
+               }
+
+       } else {
+               goto ERROR_CLOSE_FD;
+       }
+       MP_FREE_STRING(new_dir);
+       __mp_util_move_free_directory_hierarchies(&g_copy_list);
+       g_copy_list = NULL;
+       if (mp_util_check_empty_dir(szSrcPath)) {
+               rmdir(szSrcPath);
+       }
+       return 0;
+
+  ERROR_CLOSE_FD:
+       MP_FREE_STRING(new_dir);
+       __mp_util_move_free_directory_hierarchies(&g_copy_list);
+       g_copy_list = NULL;
+       return -1;
+
+  DO_CANCEL:
+       MP_FREE_STRING(new_dir);
+       __mp_util_move_free_directory_hierarchies(&g_copy_list);
+       g_copy_list = NULL;
+       return 1;
+}
+
+/**
+ *
+ * @param szSrcPath
+ * @param szDstPath
+ * @param msg_func
+ * @param msg_data
+ * @return
+ */
+int __mp_util_move_copy_internal(const char *szSrcPath,
+                                                                const char *szDstPath,
+                                                                mp_util_copy_cb msg_func, void *msg_data)
+{
+       int err = 0;
+       char *src_basename = NULL;
+       char *new_dst = NULL;
+       int base_size = 0;
+       int root_size = 0;
+       int with_slash = 1;
+       int alloc_size = 1;                     /*for null */
+       struct stat src_info;
+       char *szNewestPath = NULL;
+
+       if (!szSrcPath || strlen(szSrcPath) <= 1) {
+               VideoLogError("src is NULL");
+               return -1;
+       }
+
+       if (!szDstPath) {
+               VideoLogError("dst is NULL");
+               return -1;
+       }
+
+       if (access(szDstPath, R_OK | W_OK)) {
+               VideoLogError("dst_dir no permission");
+               return -1;
+       }
+
+       if (stat(szSrcPath, &src_info)) {
+               VideoLogError("Fail to stat src ", szSrcPath);
+               return -1;
+       }
+
+       if (S_ISDIR(src_info.st_mode)) {
+               if (g_strcmp0(szDstPath, szSrcPath) == 0) {
+                       VideoLogError("dst is child of src");
+                       return -1;
+               }
+       }
+       src_basename = g_path_get_basename(szSrcPath);
+       if (!src_basename) {
+               VideoLogError("fail to get basename from src");
+               return -1;
+       }
+
+       base_size = strlen(src_basename);
+       root_size = strlen(szDstPath);
+
+       if (szDstPath[root_size - 1] != '/') {
+               alloc_size += 1;
+               with_slash = 0;
+       }
+
+       alloc_size += (base_size + root_size);
+
+       new_dst = malloc(sizeof(char) * (alloc_size));
+       if (!new_dst) {
+               VideoLogError("fail to alloc new dst");
+               goto ERROR_FREE_MEM;
+       }
+
+       if (with_slash) {
+               snprintf(new_dst, alloc_size, "%s%s", szDstPath, src_basename);
+       } else {
+               snprintf(new_dst, alloc_size, "%s/%s", szDstPath, src_basename);
+       }
+       MP_FREE_STRING(src_basename);
+
+       if (mp_util_move_cancel_check()) {
+               goto CANCEL_FREE_MEM;
+       }
+
+       mp_util_rename_the_same_file(new_dst, &szNewestPath);
+       MP_FREE_STRING(new_dst);
+
+       if (access(szNewestPath, F_OK)) {
+               if (S_ISDIR(src_info.st_mode)) {
+                       err =
+                               __mp_util_move_copy_directory(szSrcPath, &src_info,
+                                                                                         szNewestPath, msg_func,
+                                                                                         msg_data);
+                       if (err == 0) {
+                               mp_util_svc_scan_file(szSrcPath);
+                               mp_util_svc_scan_file(szNewestPath);
+                       }
+               } else if (S_ISREG(src_info.st_mode)) {
+                       /*just copy */
+                       err =
+                               __mp_util_move_copy_reg_file(szSrcPath, &src_info,
+                                                                                        szNewestPath, 0, msg_func,
+                                                                                        msg_data);
+                       if (err == 0) {
+                               mp_util_svc_scan_file(szSrcPath);
+                               mp_util_svc_scan_file(szNewestPath);
+                       }
+               } else {
+                       VideoSecureLogInfo("item[%s] is not file or directory",
+                                                          szSrcPath);
+                       goto ERROR_FREE_MEM;
+               }
+       } else {
+               VideoLogInfo("fail to alloc new dst");
+               goto ERROR_FREE_MEM;
+       }
+       MP_FREE_STRING(szNewestPath);
+
+       if (err > 0) {
+               goto CANCEL_FREE_MEM;
+       } else if (err < 0) {
+               goto ERROR_FREE_MEM;
+       }
+
+       return 0;
+
+  ERROR_FREE_MEM:
+       VideoLogError("Copy error");
+       MP_FREE_STRING(src_basename);
+       MP_FREE_STRING(szNewestPath);
+       MP_FREE_STRING(new_dst);
+
+       return -1;
+
+  CANCEL_FREE_MEM:
+
+       VideoLogError("Copy cancelled");
+       MP_FREE_STRING(src_basename);
+       MP_FREE_STRING(szNewestPath);
+       MP_FREE_STRING(new_dst);
+
+       return 1;
+}
+
+/**
+ *
+ * @param szDir
+ * @param size
+ * @return
+ */
+bool mp_util_move_get_total_dir_size(const char *szDir,
+                                                                        unsigned long long *size)
+{
+       int ret = -1;
+       if (!szDir) {
+               return FALSE;
+       }
+       __mp_util_move_free_directory_hierarchies(&g_copy_list);
+       g_copy_list = NULL;
+       unsigned long long nSizeTmp = 0;
+       ret = ftw(szDir, __mp_util_move_directory_hierarchies, 16);
+       if (ret == 0) {
+               MpUtilDirListInfo *ent = NULL;
+               GSList *list = NULL;
+               list = g_copy_list;
+               while (list) {
+                       ent = (MpUtilDirListInfo *) list->data;
+                       if (ent->type == FTW_D) {
+                               nSizeTmp += MP_VISUAL_FOLDER_SIZE;
+                       } else if (ent->type == FTW_F) {
+                               VideoLogInfo("==%lld", ent->size);
+                               nSizeTmp += ent->size;
+                       }
+                       list = g_slist_next(list);
+               }
+       } else {
+               *size = nSizeTmp;
+               __mp_util_move_free_directory_hierarchies(&g_copy_list);
+               g_copy_list = NULL;
+               return FALSE;;
+       }
+       __mp_util_move_free_directory_hierarchies(&g_copy_list);
+       g_copy_list = NULL;
+       *size = nSizeTmp;
+       return TRUE;
+}
+
+/**
+ *
+ * @param szSrcPath
+ * @param szDstPath
+ * @param cbFun
+ * @param userData
+ * @param nTotalSize
+ * @return
+ */
+int mp_util_move_push(const char *szSrcPath, const char *szDstPath,
+                                         mp_util_copy_cb cbFun, void *userData,
+                                         unsigned long long nTotalSize)
+{
+       VideoLogInfo("start");
+
+       int nRet = 0;
+       unsigned long long r_size = 0;
+       int errcode = 0;
+       g_do_cancel = FALSE;
+       if (g_copy_list) {
+               __mp_util_move_free_directory_hierarchies(&g_copy_list);
+               g_copy_list = NULL;
+       }
+
+       errcode = __mp_util_move_get_remain_space(szDstPath, &r_size);
+       if (errcode < 0) {
+               nRet = -1;
+               VideoLogError("error code = %d", errcode);
+
+               goto ERROR_END_THREAD;
+       }
+
+       if (r_size == 0) {
+               VideoLogError("error space = %d", errcode);
+               nRet = -1;
+               goto ERROR_END_THREAD;
+       }
+
+       g_total_size = nTotalSize;
+
+       /* copy items */
+       nRet =
+               __mp_util_move_copy_internal(szSrcPath, szDstPath, cbFun,
+                                                                        userData);
+
+       return nRet;
+  ERROR_END_THREAD:
+
+       VideoLogInfo("The end of MpUtilCopyFunc");
+       return nRet;
+}
+
+/**
+ *
+ * @param sourcePath
+ * @param filePath
+ * @return
+ */
+static bool __mp_util_check_if_in_same_folder(const char *sourcePath,
+                                                                                         char *filePath)
+{
+
+       char *filePath_temp = strdup(filePath);
+
+       if (filePath_temp == NULL) {
+               return false;
+       }
+
+       if (!strcmp(sourcePath, filePath_temp)) {
+               free(filePath_temp);
+               return true;
+       } else {
+               free(filePath_temp);
+               return false;
+       }
+}
+
+/**
+ *
+ * @param szSrcPath
+ * @param msg_data
+ * @return
+ */
+static int __mp_util_move_delete_internal(const char *szSrcPath,
+                                                                                 void *msg_data)
+{
+       if (!szSrcPath) {
+               VideoLogError("szSrcPath is NULL");
+               return -1;
+       }
+       int ret = 0;
+       if (g_copy_list) {
+               __mp_util_move_free_directory_hierarchies(&g_copy_list);
+               g_copy_list = NULL;
+       }
+       ret = ftw(szSrcPath, __mp_util_move_directory_hierarchies, 16);
+       if (ret == 0) {
+               MpUtilDirListInfo *ent = NULL;
+               GSList *list = NULL;
+               list = g_copy_list;
+               while (list) {
+                       if (mp_util_move_cancel_check()) {
+                               goto DO_CANCEL;
+                       }
+                       ent = (MpUtilDirListInfo *) list->data;
+                       VideoSecureLogInfo("name is [%s] type is [%d]", ent->ftw_path,
+                                                          ent->type);
+                       if (ent->type == FTW_D) {
+                               list = g_slist_next(list);
+                               continue;
+                       } else if (ent->type == FTW_F) {
+                               if (ent->ftw_path == NULL || strlen(ent->ftw_path) == 0) {
+                                       list = g_slist_next(list);
+                                       continue;
+                               }
+                               if (!__mp_util_check_if_in_same_folder
+                                       (szSrcPath, ent->ftw_path)) {
+                                       list = g_slist_next(list);
+                                       continue;
+                               }
+                               if (!vp_file_unlink(ent->ftw_path)) {
+                                       VideoLogInfo("remove failed.");
+                                       goto ERROR_CLOSE_FD;
+                               }
+                               mp_util_svc_scan_file(ent->ftw_path);
+                       }
+                       list = g_slist_next(list);
+               }
+
+       } else {
+               goto ERROR_CLOSE_FD;
+       }
+
+       return 0;
+
+  ERROR_CLOSE_FD:
+       __mp_util_move_free_directory_hierarchies(&g_copy_list);
+       g_copy_list = NULL;
+       return -1;
+
+  DO_CANCEL:
+       __mp_util_move_free_directory_hierarchies(&g_copy_list);
+       g_copy_list = NULL;
+       return 1;
+}
+
+/**
+ *
+ * @param szFolderPath
+ * @param userData
+ * @return
+ */
+int mp_util_move_delete_video_folder(const char *szFolderPath,
+                                                                        void *userData)
+{
+       VideoLogInfo("start");
+       if (!szFolderPath) {
+               VideoLogError("szSrcPath is NULL");
+               return -1;
+       }
+
+       int nRet = 0;
+       g_do_cancel = FALSE;
+       if (g_copy_list) {
+               __mp_util_move_free_directory_hierarchies(&g_copy_list);
+               g_copy_list = NULL;
+       }
+
+       /* copy items */
+       nRet = __mp_util_move_delete_internal(szFolderPath, userData);
+       __mp_util_move_free_directory_hierarchies(&g_copy_list);
+       g_copy_list = NULL;
+
+       return nRet;
+}
diff --git a/src/video-player.c b/src/video-player.c
new file mode 100755 (executable)
index 0000000..40f25de
--- /dev/null
@@ -0,0 +1,321 @@
+/*
+ * Copyright (c) 2020 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 <app.h>
+#include <glib.h>
+#include <system_settings.h>
+#include "video-player.h"
+#include "videos-view-mgr.h"
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-library-view-mgr.h"
+#include "mp-video-list-view-main.h"
+
+#define VIDEOS_WIN_NAME "videos"
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static bool appCreate(void *pUserData)
+{
+       VideoLogWarning("== APP CREATE ==");
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __app_color_theme_changed(void *pUserData)
+{
+       VideoLogWarning("app_color_theme_changed");
+
+       mp_library_mgr_change_color();
+}
+
+/**
+ *
+ */
+static void appCreateInternal()
+{
+       VideoLogWarning("== APP CREATE INTERNAL ==");
+
+       mp_util_create_main_theme();
+       mp_util_set_color_theme_changed_cb(__app_color_theme_changed);
+
+       mp_mgr_create_main_window(VIDEOS_WIN_NAME);
+
+#ifdef _MULTI_WINDOW
+       elm_win_wm_desktop_layout_support_set((Evas_Object *)
+                                                                                 mp_mgr_get_main_window(),
+                                                                                 EINA_TRUE);
+
+       evas_object_data_set((Evas_Object *) mp_mgr_get_main_window(),
+                                                "id_startup_by", (void *) -1);
+       evas_object_data_set((Evas_Object *) mp_mgr_get_main_window(),
+                                                "id_layout_pos", (void *) -1);
+#endif
+
+       evas_object_show((Evas_Object *) mp_mgr_get_main_window());
+       elm_win_activate((Evas_Object *) mp_mgr_get_main_window());
+
+       return;
+}
+
+/**
+ *
+ * @param data
+ * @return
+ */
+static Eina_Bool appControlPost(void *data)
+{
+       if (mp_mgr_get_library_naviframe() == NULL) {
+               mp_mgr_restart_main_window();
+       } else {
+               VideoLogInfo("appControlPost");
+       }
+       return TRUE;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @param pUserData
+ */
+static void appControl(app_control_h pAppSvcHandle, void *pUserData)
+{
+       VideoLogWarning("== APP SERVICE ==");
+       bool bActiveMainwindow = FALSE;
+       if (mp_mgr_get_main_window() == NULL) {
+               appCreateInternal();
+       } else {
+               bActiveMainwindow = TRUE;
+       }
+
+       if (mp_mgr_get_main_window() == NULL) {
+               VideoLogError("mp_mgr_get_main_window return NULL!!!");
+               elm_exit();
+               return;
+       }
+
+       /*
+        * for split window
+        */
+#ifdef _MULTI_WINDOW
+       if (!pAppSvcHandle) {
+               VideoLogInfo("[ERR] No exist pAppSveHandle.");
+               return;
+       }
+
+       static int is_first_run = 0;
+
+       char *val_startup = NULL;
+       char *val_layout = NULL;
+       int id = -1;
+
+       int id_startup_by = (int) evas_object_data_get((Evas_Object *)
+                                                                                                  mp_mgr_get_main_window
+                                                                                                  (),
+                                                                                                  "id_startup_by");
+       int id_layout_pos = (int) evas_object_data_get((Evas_Object *)
+                                                                                                  mp_mgr_get_main_window
+                                                                                                  (),
+                                                                                                  "id_layout_pos");
+
+       if (app_control_get_extra_data(pAppSvcHandle, "window_startup_type",
+                                                                  &val_startup) !=
+               APP_CONTROL_ERROR_NONE) {
+               val_startup = strdup("0");
+       }
+
+       if (app_control_get_extra_data(pAppSvcHandle, "window_layout_id",
+                                                                  &val_layout) !=
+               APP_CONTROL_ERROR_NONE) {
+               val_layout = strdup("-1");
+       }
+
+       if (id_startup_by == -1) {
+               id = elm_win_aux_hint_add((Evas_Object *) mp_mgr_get_main_window(),
+                                                                 "wm.policy.win.startup.by", val_startup);
+               evas_object_data_set((Evas_Object *) mp_mgr_get_main_window(),
+                                                        "id_startup_by", (void *) id);
+       } else {
+               elm_win_aux_hint_val_set((Evas_Object *) mp_mgr_get_main_window(),
+                                                                id_startup_by, val_startup);
+       }
+
+       if (id_layout_pos == -1) {
+               id = elm_win_aux_hint_add((Evas_Object *) mp_mgr_get_main_window(),
+                                                                 "wm.policy.win.zone.desk.layout.pos",
+                                                                 val_layout);
+               evas_object_data_set((Evas_Object *) mp_mgr_get_main_window(),
+                                                        "id_layout_pos", (void *) id);
+       } else {
+               elm_win_aux_hint_val_set((Evas_Object *) mp_mgr_get_main_window(),
+                                                                id_layout_pos, val_layout);
+       }
+
+       VideoLogInfo("val_startup : [%s]", val_startup);
+       VideoLogInfo("val_layout : [%s]", val_layout);
+       VideoLogInfo("id_startup_by : [%d]", id_startup_by);
+       VideoLogInfo("id_layout_pos : [%d]", id_layout_pos);
+
+       free(val_startup);
+       free(val_layout);
+       val_startup = NULL;
+       val_layout = NULL;
+
+       char *operation = NULL;
+       int nRet = app_control_get_operation(pAppSvcHandle, &operation);
+       if (nRet == APP_CONTROL_ERROR_NONE &&
+               strcmp(operation,
+                          "http://tizen.org/appcontrol/operation/main") == 0) {
+               if (is_first_run == 1) {
+                       elm_win_activate((Evas_Object *) mp_mgr_get_main_window());
+
+                       VideoLogInfo("is_first_run is true");
+
+                       MP_FREE_STRING(operation);
+
+                       return;
+               }
+       }
+
+       MP_FREE_STRING(operation);
+
+       is_first_run = 1;
+#endif
+
+       if (bActiveMainwindow) {
+               evas_object_show((Evas_Object *) mp_mgr_get_main_window());
+               elm_win_activate((Evas_Object *) mp_mgr_get_main_window());
+       }
+
+       appControlPost(NULL);
+       return;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void appExit(void *pUserData)
+{
+       VideoLogWarning("== APP EXIT ==");
+       mp_util_free_main_theme();
+       mp_util_set_color_theme_changed_cb(NULL);
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void appPause(void *pUserData)
+{
+       VideoLogWarning("== APP PAUSE ==");
+
+       return;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void appResume(void *pUserData)
+{
+       VideoLogWarning("== APP RESUME ==");
+
+       mp_list_view_update_widget_resume();
+
+       return;
+}
+
+/**
+ *
+ * @param pEventInfo
+ * @param pUserData
+ */
+static void appUpdateLanguage(app_event_info_h pEventInfo, void *pUserData)
+{
+       VideoLogWarning("== APP CHANGE LANGUAGE ==");
+
+       mp_library_mgr_change_language();
+
+       char *locale = NULL;
+       int retcode =
+               system_settings_get_value_string
+               (SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
+
+       if (retcode != SYSTEM_SETTINGS_ERROR_NONE) {
+               VideoLogInfo("[ERR] failed to get updated language[retcode = %d]",
+                                        retcode);
+       } else {
+               if (locale) {
+                       elm_language_set(locale);
+                       MP_FREE_STRING(locale);
+               }
+       }
+}
+
+/**
+ *
+ * @param argc
+ * @param argv
+ * @return
+ */
+EXPORT_API int main(int argc, char *argv[])
+{
+       struct timeval startTimeVal;
+       int nRet = -1;
+       gettimeofday(&startTimeVal, NULL);
+
+       VideoLogInfo("======================================================");
+       VideoLogInfo(" Measuring exec() launching  time - %ld:%ldus",
+                                startTimeVal.tv_sec, startTimeVal.tv_usec);
+       VideoLogInfo("======================================================");
+
+       ui_app_lifecycle_callback_s st_appEventService;
+       app_event_handler_h hLanguageChangedHandle = NULL;
+
+       nRet = ui_app_add_event_handler(&hLanguageChangedHandle,
+                                                                       APP_EVENT_LANGUAGE_CHANGED,
+                                                                       appUpdateLanguage, NULL);
+       if (nRet != APP_ERROR_NONE) {
+               VideoLogError("Fail to add handler for LANGUAGE_CHANGED [%d]",
+                                         nRet);
+               return -1;
+       }
+
+       st_appEventService.create = appCreate;
+       st_appEventService.terminate = appExit;
+       st_appEventService.pause = appPause;
+       st_appEventService.resume = appResume;
+       st_appEventService.app_control = appControl;
+
+       nRet = ui_app_main(argc, argv, &st_appEventService, NULL);
+       if (nRet != APP_ERROR_NONE) {
+               VideoLogInfo("[ERR] app_efl_main().");
+               return -1;
+       }
+
+       VideoLogInfo("escape ui_app_main() loop.");
+
+       return 0;
+}
diff --git a/src/view/mp-library-view-mgr.c b/src/view/mp-library-view-mgr.c
new file mode 100755 (executable)
index 0000000..ef9a394
--- /dev/null
@@ -0,0 +1,230 @@
+/*
+ * Copyright (c) 2020 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 <fcntl.h>
+#include <unistd.h>
+#include <sys/stat.h>
+
+#include <app.h>
+#include <stdbool.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include <system_settings.h>
+#include "vp-play-log.h"
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-external-ug.h"
+#include "mp-library-view-mgr.h"
+#include "mp-util-media-service.h"
+#include "mp-video-string-define.h"
+#include "mp-video-list-view-main.h"
+#include "mp-video-search-view.h"
+#include "videos-view-mgr.h"
+#include "mp-rotate-ctrl.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-util-preference.h"
+
+typedef enum {
+       MP_NONE_VIEW = 0,
+       MP_LIBRARY_LIST_VIEW,
+       MP_SEARCH_LIST_VIEW,
+       MP_MAX_VIEW,
+} MpLibraryViewType;
+
+/**
+ *
+ */
+void mp_library_mgr_exit_cb(void)
+{
+       VideoLogInfo("");
+
+       /*/////////////////////////////////////////////////////// */
+       /* TO-DO : It needs to include exit call sequence. */
+}
+
+/*//////////////////////////////////////////////////////////////////////////*/
+/* External APIs*/
+
+/**
+ *
+ */
+void *mp_library_mgr_init(void)
+{
+       mp_library_mgr_set_value();
+
+       Evas_Object *pParent = (Evas_Object *) mp_mgr_get_library_parent();
+       Evas_Object *pNaviFrame = elm_naviframe_add(pParent);
+
+       evas_object_size_hint_align_set(pNaviFrame, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(pNaviFrame, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+
+       elm_naviframe_prev_btn_auto_pushed_set(pNaviFrame, EINA_FALSE);
+       evas_object_show(pNaviFrame);
+
+       mp_list_view_push((void *) pNaviFrame);
+
+       return (void *) pNaviFrame;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+void mp_library_mgr_destroy(void *pUserData)
+{
+       VideoLogInfo("");
+       if (NULL == pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+       mp_list_view_destroy();
+
+       mp_library_mgr_unset_value();
+
+       Evas_Object *pNaviFrame = (Evas_Object *) pUserData;
+
+       if (pNaviFrame) {
+               evas_object_del(pNaviFrame);
+       }
+
+}
+
+/**
+ *
+ */
+void mp_library_mgr_update_video_list(void)
+{
+
+       mp_list_view_update_widget();
+}
+
+/**
+ *
+ * @param eUpdateType
+ */
+void mp_library_mgr_update_library_view(MpListUpdateType eUpdateType)
+{
+       VideoLogInfo("eUpdateType = %d", eUpdateType);
+
+       mp_list_view_rotate_view(eUpdateType);
+}
+
+/**
+ *
+ */
+void mp_library_mgr_change_language(void)
+{
+       VideoLogInfo("");
+
+       char *locale = NULL;
+       int retcode =
+               system_settings_get_value_string
+               (SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
+
+       if (retcode != SYSTEM_SETTINGS_ERROR_NONE) {
+               VideoLogInfo
+                       ("[ERR] failed to get updated language!!! [retcode = retcode]",
+                        retcode);
+       } else {
+               if (locale) {
+                       elm_language_set(locale);
+                       MP_FREE_STRING(locale);
+               }
+       }
+
+       mp_list_view_change_language();
+}
+
+/**
+ *
+ */
+void mp_library_mgr_change_color(void)
+{
+       mp_list_view_change_color();
+}
+
+/**
+ *
+ */
+void mp_library_mgr_destroy_player(void)
+{
+       mp_list_view_destroy_player();
+}
+
+/**
+ *
+ */
+void mp_library_mgr_set_value(void)
+{
+       VideoLogInfo("");
+
+       mp_util_svc_init_session();
+       mp_util_preference_init();
+}
+
+/*it is not necessary to invoke this interface and could use idler to invoke*/
+void mp_library_mgr_init_value(void)
+{
+       VideoLogInfo("");
+}
+
+/**
+ *
+ */
+void mp_library_mgr_unset_value(void)
+{
+       VideoLogInfo("");
+
+       mp_util_delete_popup_handle();
+       mp_util_svc_destory_video_list();
+       mp_util_svc_finish_session();
+
+       mp_library_mgr_destroy_player();
+       mp_rotate_ctrl_destroy();
+}
+
+/**
+ *
+ */
+void mp_library_mgr_pause_wall_render(void)
+{
+       VideoLogInfo("");
+#ifdef VS_FEATURE_THUMBNAIL_VIEW /**/
+       int nViewType = mp_view_as_ctrl_get_type();
+
+       if (nViewType == MP_LIST_VIEW_AS_THUMBNAIL_LIST) {
+       }
+#endif /**/
+}
+
+/**
+ *
+ */
+void mp_library_mgr_resume_wall_render(void)
+{
+       VideoLogInfo("");
+#ifdef VS_FEATURE_THUMBNAIL_VIEW /**/
+       int nViewType = mp_view_as_ctrl_get_type();
+
+       if (nViewType == MP_LIST_VIEW_AS_THUMBNAIL_LIST) {
+       }
+#endif
+}
diff --git a/src/view/mp-video-detail-view.c b/src/view/mp-video-detail-view.c
new file mode 100755 (executable)
index 0000000..605af36
--- /dev/null
@@ -0,0 +1,698 @@
+/*
+ * Copyright (c) 2020 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 <app.h>
+#include <glib.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "video-player.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-video-type-define.h"
+
+#include "mp-video-detail-view.h"
+#include "mp-video-info-ctrl.h"
+#include "mp-util-media-service.h"
+#include "mp-util-widget-ctrl.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "vp-util.h"
+
+typedef struct _VideoDetailView {
+       /*obj */
+       void *pNaviFrameHandle;
+       void *pNaviFrameItem;
+       Evas_Object *pGenList;
+       Evas_Object *pBox;
+
+       /*data */
+       Elm_Genlist_Item_Class *stDetailItc;
+       mpDetailViewCbFunc DetailViewUserCbFunc;
+       stDetailInfo *pDetailInfo;
+       char *pMediaId;
+       bool isFolder;
+       int nListCount;
+
+} stDetailView;
+
+
+static stDetailView *g_pDetailViewHandle = NULL;
+
+
+/*//////////////////////////////////////////////////////////*/
+/* Internal function*/
+/*//////////////////////////////////////////////////////////*/
+static void __mp_detail_view_rotate_cb(void *data, Evas_Object * obj,
+                                                                          void *event_info);
+static Eina_Bool __mp_detail_view_cancel_btn_cb(void *pUserData,
+                                                                                               Elm_Object_Item * pItem);
+/**
+ *
+ */
+void mp_detail_view_delete_handle(void)
+{
+       VideoLogInfo("");
+       if (!g_pDetailViewHandle) {
+               VideoLogError("g_pDetailViewHandle is NULL");
+               return;
+       }
+
+       evas_object_smart_callback_del((Evas_Object *)
+                                                                  mp_util_get_main_window_handle(),
+                                                                  "rotation,changed",
+                                                                  __mp_detail_view_rotate_cb);
+
+       if (g_pDetailViewHandle->pDetailInfo) {
+               mp_detail_view_free_detail_info(g_pDetailViewHandle->pDetailInfo);
+               g_pDetailViewHandle->pDetailInfo = NULL;
+
+       }
+       MP_FREE_STRING(g_pDetailViewHandle->pMediaId);
+
+       MP_DEL_ITC(g_pDetailViewHandle->stDetailItc);
+       MP_DEL_OBJ(g_pDetailViewHandle->pGenList);
+       MP_DEL_OBJ(g_pDetailViewHandle->pBox);
+       MP_FREE_STRING(g_pDetailViewHandle);
+}
+
+/**
+ *
+ */
+static void __mp_detail_view_reset(void)
+{
+       VideoLogInfo("");
+       if (!g_pDetailViewHandle) {
+               VideoLogError("g_pDetailViewHandle is NULL");
+               return;
+       }
+
+       evas_object_smart_callback_del((Evas_Object *)
+                                                                  mp_util_get_main_window_handle(),
+                                                                  "rotation,changed",
+                                                                  __mp_detail_view_rotate_cb);
+
+       if (g_pDetailViewHandle->pDetailInfo) {
+               mp_detail_view_free_detail_info(g_pDetailViewHandle->pDetailInfo);
+               g_pDetailViewHandle->pDetailInfo = NULL;
+
+       }
+       MP_FREE_STRING(g_pDetailViewHandle->pMediaId);
+
+       MP_DEL_ITC(g_pDetailViewHandle->stDetailItc);
+       g_pDetailViewHandle->pGenList = NULL;
+       g_pDetailViewHandle->pBox = NULL;
+
+       MP_FREE_STRING(g_pDetailViewHandle);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pPart
+ * @return
+ */
+static char *__mp_detail_view_genlist_text_get_cb(const void *pUserData,
+                                                                                                 Evas_Object * pObj,
+                                                                                                 const char *pPart)
+{
+       if (!pUserData || !g_pDetailViewHandle) {
+               VideoLogError("pUserData is NULL");
+               return NULL;
+       }
+
+       char *szTxt = (char *) pUserData;
+
+       VideoLogWarning("%s : %s", pPart, szTxt);
+
+       if (!g_strcmp0(pPart, "elm.text.main.left.top")) {
+
+               return strdup(szTxt);
+       } else if (!g_strcmp0(pPart, "elm.text.sub.left.bottom")) {
+
+               stDetailInfo *pDetailInfo = g_pDetailViewHandle->pDetailInfo;
+
+               if (pDetailInfo == NULL) {
+                       return NULL;
+               }
+
+               if (!g_strcmp0(szTxt, VIDEOS_DETAILVIEW_BODY_TITLE)) {
+                       if (pDetailInfo->szTitle)
+                               return elm_entry_utf8_to_markup(pDetailInfo->szTitle);
+               } else if (!g_strcmp0(szTxt, VIDEOS_DETAILVIEW_BODY_FORMAT)) {
+                       if (pDetailInfo->szFormat)
+                               return elm_entry_utf8_to_markup(pDetailInfo->szFormat);
+               } else if (!g_strcmp0(szTxt, VIDEOS_DETAILVIEW_BODY_SIZE)) {
+                       if (pDetailInfo->szSize)
+                               return elm_entry_utf8_to_markup(pDetailInfo->szSize);
+               } else if (!g_strcmp0(szTxt, VIDEOS_DETAILVIEW_BODY_RESOLUTION)) {
+                       if (pDetailInfo->szResolution)
+                               return elm_entry_utf8_to_markup(pDetailInfo->szResolution);
+               } else if (!g_strcmp0(szTxt, VIDEOS_DETAILVIEW_BODY_LAST_MODIFIED)) {
+                       if (pDetailInfo->szLastModifiedTime)
+                               return
+                                       elm_entry_utf8_to_markup
+                                       (pDetailInfo->szLastModifiedTime);
+               } else if (!g_strcmp0(szTxt, VIDEOS_DETAILVIEW_BODY_LOCATION)) {
+                       if (pDetailInfo->szLocation)
+                               return elm_entry_utf8_to_markup(pDetailInfo->szLocation);
+               }
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+static Eina_Bool __mp_detail_view_cancel_btn_cb(void *pUserData,
+                                                                                               Elm_Object_Item * pItem)
+{
+       if (g_pDetailViewHandle && g_pDetailViewHandle->DetailViewUserCbFunc) {
+               g_pDetailViewHandle->DetailViewUserCbFunc();
+       }
+
+       return EINA_TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_detail_view_genlist_realized(void *data,
+                                                                                         Evas_Object * obj,
+                                                                                         void *event_info)
+{
+       if (!event_info || !obj) {
+               VideoLogError("event info is invalid");
+               return;
+       }
+       Elm_Object_Item *pItem = elm_genlist_last_item_get(obj);
+
+       if (pItem) {
+               elm_object_item_signal_emit(pItem, "elm,state,bottomline,hide",
+                                                                       "");
+       }
+}
+
+/**
+ *
+ * @param pObj
+ * @param nViewType
+ * @return
+ */
+static bool __mp_detail_view_add_genlist_item(Evas_Object * pObj,
+                                                                                         MpListViewAsType nViewType)
+{
+       if (!pObj || !g_pDetailViewHandle || !g_pDetailViewHandle->pDetailInfo) {
+               VideoLogError("g_pDetailViewHandle is NULL");
+               return FALSE;
+       }
+       MP_DEL_ITC(g_pDetailViewHandle->stDetailItc);
+       g_pDetailViewHandle->stDetailItc = elm_genlist_item_class_new();
+
+       g_pDetailViewHandle->stDetailItc->version =
+               ELM_GENLIST_ITEM_CLASS_VERSION;
+       g_pDetailViewHandle->stDetailItc->item_style = "2line.top";
+       g_pDetailViewHandle->stDetailItc->func.text_get =
+               (void *) __mp_detail_view_genlist_text_get_cb;
+       g_pDetailViewHandle->stDetailItc->func.content_get = NULL;
+       g_pDetailViewHandle->stDetailItc->func.state_get = NULL;
+       g_pDetailViewHandle->stDetailItc->func.del = NULL;
+
+       int nListCount = 0;
+
+       Elm_Object_Item *pItem = NULL;
+       stDetailInfo *pDetailInfo = g_pDetailViewHandle->pDetailInfo;
+
+       if (!g_pDetailViewHandle->isFolder) {
+               pItem =
+                       elm_genlist_item_append(pObj,
+                                                                       g_pDetailViewHandle->stDetailItc,
+                                                                       (void *) VIDEOS_DETAILVIEW_BODY_TITLE,
+                                                                       NULL, ELM_GENLIST_ITEM_NONE, NULL,
+                                                                       NULL);
+               elm_genlist_item_select_mode_set(pItem,
+                                                                                ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+               nListCount++;
+
+               pItem =
+                       elm_genlist_item_append(pObj,
+                                                                       g_pDetailViewHandle->stDetailItc,
+                                                                       (void *) VIDEOS_DETAILVIEW_BODY_SIZE,
+                                                                       NULL, ELM_GENLIST_ITEM_NONE, NULL,
+                                                                       NULL);
+               elm_genlist_item_select_mode_set(pItem,
+                                                                                ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+               nListCount++;
+
+               pItem =
+                       elm_genlist_item_append(pObj,
+                                                                       g_pDetailViewHandle->stDetailItc,
+                                                                       (void *)
+                                                                       VIDEOS_DETAILVIEW_BODY_FORMAT, NULL,
+                                                                       ELM_GENLIST_ITEM_NONE, NULL, NULL);
+               elm_genlist_item_select_mode_set(pItem,
+                                                                                ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+               nListCount++;
+
+               pItem =
+                       elm_genlist_item_append(pObj,
+                                                                       g_pDetailViewHandle->stDetailItc,
+                                                                       (void *)
+                                                                       VIDEOS_DETAILVIEW_BODY_RESOLUTION,
+                                                                       NULL, ELM_GENLIST_ITEM_NONE, NULL,
+                                                                       NULL);
+               elm_genlist_item_select_mode_set(pItem,
+                                                                                ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+               nListCount++;
+
+               pItem =
+                       elm_genlist_item_append(pObj,
+                                                                       g_pDetailViewHandle->stDetailItc,
+                                                                       (void *)
+                                                                       VIDEOS_DETAILVIEW_BODY_LAST_MODIFIED,
+                                                                       NULL, ELM_GENLIST_ITEM_NONE, NULL,
+                                                                       NULL);
+               elm_genlist_item_select_mode_set(pItem,
+                                                                                ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+               nListCount++;
+
+               pItem =
+                       elm_genlist_item_append(pObj,
+                                                                       g_pDetailViewHandle->stDetailItc,
+                                                                       (void *)
+                                                                       VIDEOS_DETAILVIEW_BODY_LOCATION, NULL,
+                                                                       ELM_GENLIST_ITEM_NONE, NULL, NULL);
+               elm_genlist_item_select_mode_set(pItem,
+                                                                                ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+               nListCount++;
+
+       } else {
+               pItem =
+                       elm_genlist_item_append(pObj,
+                                                                       g_pDetailViewHandle->stDetailItc,
+                                                                       (void *) VIDEOS_DETAILVIEW_BODY_TITLE,
+                                                                       NULL, ELM_GENLIST_ITEM_NONE, NULL,
+                                                                       NULL);
+               elm_genlist_item_select_mode_set(pItem,
+                                                                                ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+               nListCount++;
+
+               if (pDetailInfo->szSize) {
+                       pItem =
+                               elm_genlist_item_append(pObj,
+                                                                               g_pDetailViewHandle->stDetailItc,
+                                                                               (void *)
+                                                                               VIDEOS_DETAILVIEW_BODY_SIZE, NULL,
+                                                                               ELM_GENLIST_ITEM_NONE, NULL, NULL);
+                       elm_genlist_item_select_mode_set(pItem,
+                                                                                        ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+                       nListCount++;
+               }
+
+               pItem =
+                       elm_genlist_item_append(pObj,
+                                                                       g_pDetailViewHandle->stDetailItc,
+                                                                       (void *)
+                                                                       VIDEOS_DETAILVIEW_BODY_LOCATION, NULL,
+                                                                       ELM_GENLIST_ITEM_NONE, NULL, NULL);
+               elm_genlist_item_select_mode_set(pItem,
+                                                                                ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+               nListCount++;
+       }
+
+       g_pDetailViewHandle->nListCount = nListCount;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_detail_view_rotate_cb(void *data, Evas_Object * obj,
+                                                                          void *event_info)
+{
+       if (!g_pDetailViewHandle) {
+               VideoLogError("__mp_detail_view_rotate_cb IS null");
+               return;
+       }
+       if (g_pDetailViewHandle->nListCount < VIDEO_POPUP_MIN_ITEMS) {
+               return;
+       }
+       mp_widget_ctrl_set_popup_min_size(g_pDetailViewHandle->pBox,
+                                                                         g_pDetailViewHandle->nListCount,
+                                                                         VIDEOS_POPUP_114);
+
+}
+
+/*//////////////////////////////////////////////////////////*/
+/* External function*/
+/*//////////////////////////////////////////////////////////*/
+
+/**
+ *
+ * @param pDetailInfo
+ */
+void mp_detail_view_free_detail_info(stDetailInfo * pDetailInfo)
+{
+       if (pDetailInfo) {
+               MP_FREE_STRING(pDetailInfo->szTitle);
+               MP_FREE_STRING(pDetailInfo->szFormat);
+               MP_FREE_STRING(pDetailInfo->szSize);
+               MP_FREE_STRING(pDetailInfo->szResolution);
+               MP_FREE_STRING(pDetailInfo->szLocation);
+               MP_FREE_STRING(pDetailInfo);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_detail_view_base_layout_del_cb(void *pUserData, Evas * e,
+                                                                                               Evas_Object * pObject,
+                                                                                               void *pEventInfo)
+{
+       __mp_detail_view_reset();
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param emission
+ * @param source
+ */
+void __mp_details_soft_back_button_cb(void *data, Evas_Object * obj,
+                                                                         const char *emission,
+                                                                         const char *source)
+{
+       Evas_Object *pTopNaviFrame = NULL;
+       pTopNaviFrame =
+               elm_naviframe_item_pop(g_pDetailViewHandle->pNaviFrameHandle);
+       evas_object_del(pTopNaviFrame);
+}
+
+/**
+ *
+ * @param pNaviFrame
+ * @param IsFolder
+ * @param pMediaId
+ * @param pDetailInfo
+ */
+void mp_detail_view_push(void *pNaviFrame, bool IsFolder,
+                                                const char *pMediaId, stDetailInfo * pDetailInfo)
+{
+       VideoLogInfo("");
+
+       if (!pDetailInfo) {
+               VideoLogError("invalid detail");
+               return;
+       }
+       mp_detail_view_delete_handle();
+       g_pDetailViewHandle = (stDetailView *) calloc(1, sizeof(stDetailView));
+       if (!g_pDetailViewHandle) {
+               VideoLogError("g_pDetailViewHandle is NULL");
+               return;
+       }
+
+       g_pDetailViewHandle->pDetailInfo = calloc(1, sizeof(stDetailInfo));
+       if (g_pDetailViewHandle->pDetailInfo == NULL) {
+               VideoLogError("pDetailView alloc fail");
+               mp_detail_view_delete_handle();
+               return;
+       }
+
+       g_pDetailViewHandle->pMediaId = g_strdup(pMediaId);
+       int nViewType = mp_view_as_ctrl_get_type();
+
+       if (IsFolder) {
+               VideoSecureLogInfo("%s,%s %s", pDetailInfo->szTitle,
+                                                  pDetailInfo->szSize, pDetailInfo->szLocation);
+               g_pDetailViewHandle->pDetailInfo->szTitle =
+                       g_strdup(pDetailInfo->szTitle);
+               g_pDetailViewHandle->pDetailInfo->szSize =
+                       g_strdup(pDetailInfo->szSize);
+               g_pDetailViewHandle->pDetailInfo->szLocation =
+                       g_strdup(pDetailInfo->szLocation);
+       } else {
+               VideoSecureLogInfo("%s,%s,%s,%s,%s", pDetailInfo->szTitle,
+                                                  pDetailInfo->szFormat,
+                                                  pDetailInfo->szResolution,
+                                                  pDetailInfo->szLocation);
+               g_pDetailViewHandle->pDetailInfo->szTitle =
+                       g_strdup(pDetailInfo->szTitle);
+               g_pDetailViewHandle->pDetailInfo->szFormat =
+                       g_strdup(pDetailInfo->szFormat);
+               g_pDetailViewHandle->pDetailInfo->szSize =
+                       g_strdup(pDetailInfo->szSize);
+               g_pDetailViewHandle->pDetailInfo->szLastModifiedTime =
+                       g_strdup(pDetailInfo->szLastModifiedTime);
+               g_pDetailViewHandle->pDetailInfo->szResolution =
+                       g_strdup(pDetailInfo->szResolution);
+               g_pDetailViewHandle->pDetailInfo->szLocation =
+                       g_strdup(pDetailInfo->szLocation);
+       }
+
+       g_pDetailViewHandle->DetailViewUserCbFunc = NULL;
+
+       g_pDetailViewHandle->pNaviFrameHandle = pNaviFrame;
+       g_pDetailViewHandle->isFolder = IsFolder;
+
+       evas_object_smart_callback_add((Evas_Object *)
+                                                                  mp_util_get_main_window_handle(),
+                                                                  "rotation,changed",
+                                                                  __mp_detail_view_rotate_cb, NULL);
+
+
+       /* Create genlist handle */
+       g_pDetailViewHandle->pGenList =
+               elm_genlist_add(g_pDetailViewHandle->pNaviFrameHandle);
+       evas_object_size_hint_weight_set(g_pDetailViewHandle->pGenList,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pDetailViewHandle->pGenList,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_smart_callback_add(g_pDetailViewHandle->pGenList,
+                                                                  "realized",
+                                                                  __mp_detail_view_genlist_realized,
+                                                                  NULL);
+
+       elm_genlist_mode_set(g_pDetailViewHandle->pGenList, ELM_LIST_COMPRESS);
+
+       __mp_detail_view_add_genlist_item(g_pDetailViewHandle->pGenList,
+                                                                         nViewType);
+       evas_object_event_callback_add(g_pDetailViewHandle->pGenList,
+                                                                  EVAS_CALLBACK_DEL,
+                                                                  __mp_detail_view_base_layout_del_cb,
+                                                                  NULL);
+
+       g_pDetailViewHandle->pNaviFrameItem =
+               elm_naviframe_item_push(g_pDetailViewHandle->pNaviFrameHandle,
+                                                               VIDEOS_DETAILVIEW_HEADER_DETAILS, NULL,
+                                                               NULL, g_pDetailViewHandle->pGenList, NULL);
+       elm_naviframe_item_pop_cb_set(g_pDetailViewHandle->pNaviFrameItem,
+                                                                 __mp_detail_view_cancel_btn_cb, NULL);
+
+       Evas_Object *back_btn =
+               elm_button_add(g_pDetailViewHandle->pNaviFrameHandle);
+       elm_object_style_set(back_btn, "back");
+       elm_object_signal_callback_add(back_btn, "elm,action,click", "",
+                                                                  __mp_details_soft_back_button_cb,
+                                                                  (void *) g_pDetailViewHandle);
+       elm_object_item_part_content_set(g_pDetailViewHandle->pNaviFrameItem,
+                                                                        "title_left_btn", back_btn);
+       evas_object_show(back_btn);
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @param pDetailInfo
+ * @return
+ */
+bool mp_detail_view_get_video_detail_info(int nVideoItemIndex,
+                                                                                 stDetailInfo ** pDetailInfo)
+{
+       char *szFilePath = NULL;
+       char *szVideoTitle = NULL;
+
+       char szTmpStr[FORMAT_LEN_MAX] = { 0, };
+       char szTmpFileDate[FORMAT_LEN_MAX] = { 0, };
+       char szTmpFileExtension[FORMAT_LEN_MAX] = { 0, };
+       char szTmpFileSize[FORMAT_LEN_MAX] = { 0, };
+       char *szTmpModifiedTime = NULL;
+
+       int nWidth = 0;
+       int nHeight = 0;
+       stDetailInfo *pDetail = NULL;
+
+       szFilePath = mp_util_svc_get_video_url(nVideoItemIndex);
+       szVideoTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+
+       mp_info_ctrl_get_file_info(szFilePath, szTmpFileDate,
+                                                          FORMAT_LEN_MAX - 1, szTmpFileExtension,
+                                                          FORMAT_LEN_MAX - 1, szTmpFileSize,
+                                                          FORMAT_LEN_MAX - 1);
+
+       nWidth = mp_util_svc_get_video_item_width(nVideoItemIndex);
+       nHeight = mp_util_svc_get_video_item_height(nVideoItemIndex);
+       szTmpModifiedTime =
+               mp_util_svc_get_video_item_modified_time(nVideoItemIndex);
+
+       pDetail = calloc(1, sizeof(stDetailInfo));
+       if (pDetail == NULL) {
+               MP_FREE_STRING(szFilePath);
+               MP_FREE_STRING(szVideoTitle);
+               VideoLogError("pDetailPopup alloc fail");
+               MP_FREE_STRING(szTmpModifiedTime);
+               return FALSE;
+       }
+
+       pDetail->szTitle = g_strdup(szVideoTitle);
+       pDetail->szLocation = vp_util_convert_file_location(szFilePath);
+       MP_FREE_STRING(szFilePath);
+       MP_FREE_STRING(szVideoTitle);
+
+       snprintf(szTmpStr, FORMAT_LEN_MAX - 1, "%s", szTmpFileExtension);
+       pDetail->szFormat = g_strdup(szTmpStr);
+       memset(szTmpStr, 0, FORMAT_LEN_MAX);
+
+       snprintf(szTmpStr, FORMAT_LEN_MAX - 1, "%s", szTmpFileSize);
+       pDetail->szSize = g_strdup(szTmpStr);
+       memset(szTmpStr, 0, FORMAT_LEN_MAX);
+
+       pDetail->szLastModifiedTime = g_strdup(szTmpModifiedTime);
+       MP_FREE_STRING(szTmpModifiedTime);
+
+       snprintf(szTmpStr, FORMAT_LEN_MAX - 1, "%d X %d", nWidth, nHeight);
+       pDetail->szResolution = g_strdup(szTmpStr);
+       memset(szTmpStr, 0, FORMAT_LEN_MAX);
+
+       *pDetailInfo = pDetail;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param nFolderItemIndex
+ * @param pDetailInfo
+ * @return
+ */
+bool mp_detail_view_get_folder_detail_info(int nFolderItemIndex,
+                                                                                  stDetailInfo ** pDetailInfo)
+{
+       int nIndex = 0;
+
+       char *szFolderUrl = mp_util_svc_get_video_folder_url(nFolderItemIndex);
+
+       mp_util_svc_destory_video_item_list();
+       if (szFolderUrl) {
+               mp_util_svc_extract_video_list_from_folder(szFolderUrl,
+                                                                                                  mp_sort_ctrl_get_sort_state
+                                                                                                  (), MP_LIST_VIEW_ALL);
+       }
+
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       VideoLogInfo("nVideoListSize = %d", nVideoListSize);
+
+       char szTmpStr[FORMAT_LEN_MAX] = { 0, };
+       char *szFilePath = NULL;
+       char *szFolderName = NULL;
+
+       unsigned long long nSizeTmp = 0;
+       unsigned long long nSizeTotal = 0;
+       char *szTmpFileSize = NULL;
+
+       stDetailInfo *pDetail = NULL;
+
+       for (nIndex = 0; nIndex < nVideoListSize; nIndex++) {
+               szFilePath = mp_util_svc_get_video_url(nIndex);
+               nSizeTmp = 0;
+               mp_util_get_file_size_by_path(szFilePath, &nSizeTmp);
+               nSizeTotal += nSizeTmp;
+               MP_FREE_STRING(szFilePath);
+       }
+       szTmpFileSize = mp_util_get_file_size(nSizeTotal);
+       VideoLogInfo("nSizeTotal = %s", szTmpFileSize);
+
+       pDetail = calloc(1, sizeof(stDetailInfo));
+       if (pDetail == NULL) {
+               MP_FREE_STRING(szFilePath);
+               MP_FREE_STRING(szFolderName);
+               MP_FREE_STRING(szFolderUrl);
+               MP_FREE_STRING(szTmpFileSize);
+               VideoLogError("pDetailPopup alloc fail");
+               return FALSE;
+       }
+
+       szFolderName = mp_util_svc_get_video_folder_name(nFolderItemIndex);
+
+       pDetail->szTitle = g_strdup(szFolderName);
+       pDetail->szLocation = vp_util_convert_file_location(szFolderUrl);
+       MP_FREE_STRING(szFolderName);
+       MP_FREE_STRING(szFilePath);
+       MP_FREE_STRING(szFolderUrl);
+
+       if (szTmpFileSize) {
+               snprintf(szTmpStr, FORMAT_LEN_MAX - 1, "%s", szTmpFileSize);
+               pDetail->szSize = g_strdup(szTmpStr);
+               memset(szTmpStr, 0, FORMAT_LEN_MAX);
+               MP_FREE_STRING(szTmpFileSize);
+       }
+
+       *pDetailInfo = pDetail;
+
+       return TRUE;
+}
+
+/**
+ *
+ */
+void mp_detail_view_update(void)
+{
+       if (!g_pDetailViewHandle) {
+               return;
+       }
+       MpMediaType eMediaType = MEDIA_TYPE_FILE;
+       if (g_pDetailViewHandle->isFolder)
+               eMediaType = MEDIA_TYPE_DIRECTORY;
+
+       bool bValidMedia = TRUE;
+       int nIndex = 0;
+       bValidMedia =
+               mp_util_svc_check_valid_media_id(g_pDetailViewHandle->pMediaId,
+                                                                                eMediaType, &nIndex);
+       if (!bValidMedia) {
+               elm_naviframe_item_pop(g_pDetailViewHandle->pNaviFrameHandle);
+       }
+}
diff --git a/src/view/mp-video-list-folder-share-via-view.c b/src/view/mp-video-list-folder-share-via-view.c
new file mode 100755 (executable)
index 0000000..e35b566
--- /dev/null
@@ -0,0 +1,722 @@
+/*
+ * Copyright (c) 2020 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 <Eina.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+#include <glib.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-external-ug.h"
+#include "mp-video-string-define.h"
+#include "mp-video-value-define.h"
+#include "mp-util-media-service.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-video-list-share-via-view.h"
+#include "mp-video-list-folder-share-via-view.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-util-widget-ctrl.h"
+#include "mp-video-util-db-controller.h"
+#include "vp-file-util.h"
+
+typedef struct {
+       void *pNaviFrameHandle;
+       void *pNaviFrameItem;
+       void *pGenlist;
+       Elm_Genlist_Item_Class *pGenListItc;
+       MpMediaSvcSortType nSortType;
+       MpDbUpdateViewLev euLev;
+       ChangeListFolderShareViewCbFunc pChangeViewUserCbFunc;
+       MpVideoListTabType eTabType;
+} st_FolderListShareViaViewHandle;
+
+typedef struct {
+       Evas_Object *pBox;
+       Evas_Object *pBaselayout;
+} st_FolderListShareViaViewWidget;
+
+static st_FolderListShareViaViewHandle *g_pFolderShareHandle = NULL;
+static st_FolderListShareViaViewWidget *g_pFolderShareWidget = NULL;
+
+
+/* Pre define function*/
+int mp_folder_share_view_get_sort_type(void);
+bool __mp_folder_share_view_arrange_video_list(void *pGenlist,
+                                                                                          bool bNeedSvc);
+void mp_folder_share_view_naviframe_transition_effect_cb(void *pUserData,
+                                                                                                                Evas_Object *
+                                                                                                                pObject, void
+                                                                                                                *pEventInfo);
+static void __mp_folder_share_view_base_layout_del_cb(void *pUserData,
+                                                                                                         Evas * e,
+                                                                                                         Evas_Object *
+                                                                                                         pObject,
+                                                                                                         void *pEventInfo);
+
+/**
+ *
+ */
+void mp_folder_share_view_destroy(void)
+{
+       VideoLogInfo("");
+
+       if (g_pFolderShareHandle) {
+               evas_object_smart_callback_del
+                       (g_pFolderShareHandle->pNaviFrameHandle, "transition,finished",
+                        mp_folder_share_view_naviframe_transition_effect_cb);
+
+               MP_DEL_OBJ(g_pFolderShareHandle->pGenlist);
+               MP_DEL_ITC(g_pFolderShareHandle->pGenListItc);
+               MP_FREE_STRING(g_pFolderShareHandle);
+       }
+
+       if (g_pFolderShareWidget) {
+               MP_DEL_OBJ(g_pFolderShareWidget->pBox);
+
+               if (g_pFolderShareWidget->pBaselayout != NULL) {
+                       evas_object_event_callback_del
+                               (g_pFolderShareWidget->pBaselayout, EVAS_CALLBACK_DEL,
+                                __mp_folder_share_view_base_layout_del_cb);
+                       MP_DEL_OBJ(g_pFolderShareWidget->pBaselayout);
+               }
+               MP_FREE_STRING(g_pFolderShareWidget);
+       }
+}
+
+/**
+ *
+ */
+static void __mp_folder_share_view_reset(void)
+{
+       VideoLogInfo("");
+
+       if (g_pFolderShareHandle) {
+               mp_util_db_set_update_fun(g_pFolderShareHandle->euLev, NULL);
+               mp_util_db_set_backup_fun(g_pFolderShareHandle->euLev, NULL);
+               evas_object_smart_callback_del
+                       (g_pFolderShareHandle->pNaviFrameHandle, "transition,finished",
+                        mp_folder_share_view_naviframe_transition_effect_cb);
+               g_pFolderShareHandle->pGenlist = NULL;
+               MP_FREE_STRING(g_pFolderShareHandle);
+       }
+
+       if (g_pFolderShareWidget) {
+
+               g_pFolderShareWidget->pBox = NULL;
+               g_pFolderShareWidget->pBaselayout = NULL;
+
+               MP_FREE_STRING(g_pFolderShareWidget);
+       }
+}
+
+/**
+ *
+ */
+void mp_folder_share_view_reset_value(void)
+{
+       VideoLogInfo("");
+
+       if (!g_pFolderShareHandle) {
+               VideoLogError("[ERR] g_pFolderShareHandle is not existed.");
+               return;
+       }
+
+       g_pFolderShareHandle->pNaviFrameHandle = NULL;
+       g_pFolderShareHandle->pNaviFrameItem = NULL;
+       g_pFolderShareHandle->pChangeViewUserCbFunc = NULL;
+       g_pFolderShareHandle->nSortType = MP_MEDIA_SORT_BY_RECENTLY_VIEWED;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param obj
+ * @param event_info
+ */
+static void __mp_folder_share_view_trans_finished_cb(void *pUserData,
+                                                                                                        Evas_Object * obj,
+                                                                                                        void *event_info)
+{
+       if (!obj) {
+               VideoLogError("[ERR] g_pFolderShareHandle is NULL.");
+               return;
+       }
+
+       mp_widget_ctrl_enable_navi_handle_focus(obj);
+
+       evas_object_smart_callback_del(obj, "transition,finished",
+                                                                  __mp_folder_share_view_trans_finished_cb);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+static Eina_Bool mp_folder_share_view_back_btn_cb(void *pUserData,
+                                                                                                 Elm_Object_Item * pItem)
+{
+       if (!g_pFolderShareHandle) {
+               VideoLogInfo("[ERR] g_pFolderShareHandle is NULL.");
+               return EINA_TRUE;
+       }
+       /* Register transition finished callback. */
+       mp_widget_ctrl_disable_navi_handle_focus_except_item
+               (g_pFolderShareHandle->pNaviFrameHandle,
+                g_pFolderShareHandle->pNaviFrameItem);
+       evas_object_smart_callback_add(g_pFolderShareHandle->pNaviFrameHandle,
+                                                                  "transition,finished",
+                                                                  __mp_folder_share_view_trans_finished_cb,
+                                                                  NULL);
+
+       mp_folder_share_view_pop();
+
+       return EINA_TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_folder_share_view_naviframe_transition_effect_cb(void *pUserData,
+                                                                                                                Evas_Object *
+                                                                                                                pObject,
+                                                                                                                void *pEventInfo)
+{
+       if (!g_pFolderShareHandle) {
+               VideoLogError("[ERR] No exist g_pFolderShareHandle.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       Evas_Object *pTmpContents = NULL;
+       Elm_Object_Item *pTmpItem = NULL;
+
+       if (!g_pFolderShareHandle->pNaviFrameHandle) {
+               VideoLogInfo("[ERR] No exist naviframe handle.");
+               return;
+       }
+
+       pTmpItem =
+               elm_naviframe_top_item_get(g_pFolderShareHandle->pNaviFrameHandle);
+       pTmpContents = elm_object_item_content_get(pTmpItem);
+       if (pTmpContents) {
+               if (pTmpContents == g_pFolderShareWidget->pBox) {
+               } else {
+                       VideoLogInfo
+                               ("It's not pListShareViaViewTabbarLayout in top screen.");
+               }
+       } else {
+               VideoLogError("[ERR] No exist naviframe top item.");
+       }
+}
+
+/**
+ *
+ */
+static void __mp_folder_share_view_result_view_update_cb(void)
+{
+       if (!g_pFolderShareHandle) {
+               VideoLogInfo("g_pFolderShareHandle is null.");
+               return;
+       }
+
+       mp_util_svc_destory_video_list();
+       mp_util_svc_extract_video_list_by_item_type
+               (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+
+       /*refresh folder view */
+       mp_util_svc_extract_video_folder_list_by_type
+               (mp_sort_ctrl_get_sort_state(), MP_LIST_VIEW_ALL);
+       __mp_folder_share_view_arrange_video_list
+               (g_pFolderShareHandle->pGenlist, FALSE);
+
+       VideoLogInfo("");
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_folder_share_view_select_item_cb(void *pUserData,
+                                                                                Evas_Object * pObject,
+                                                                                void *pEventInfo)
+{
+       if (!g_pFolderShareHandle->pGenlist) {
+               VideoLogError("No exist genlist object.");
+               return;
+       }
+
+       int nFolderItemIndex = (int) pUserData;
+       char *szFolderPath = NULL;
+       szFolderPath = mp_util_svc_get_video_folder_url(nFolderItemIndex);
+       VideoSecureLogInfo("nFolderItemIndex=%d, szFolderPath=%s",
+                                          nFolderItemIndex, szFolderPath);
+       mp_share_view_push(g_pFolderShareHandle->pNaviFrameHandle,
+                                          __mp_folder_share_view_result_view_update_cb,
+                                          szFolderPath, LIST_TAB_TYPE_PERSONAL);
+
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+       MP_FREE_STRING(szFolderPath);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_folder_share_view_get_label_cb(const void *pUserData,
+                                                                                                Evas_Object * pObject,
+                                                                                                const char *pPart)
+{
+       int nFolderItemIndex = (int) pUserData;
+
+       if (!strcmp(pPart, "elm.text.main.left.top")) {
+               char *szTitle = NULL;
+               szTitle = mp_util_svc_get_video_folder_name(nFolderItemIndex);
+
+               char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+               MP_FREE_STRING(szTitle);
+               return szTitleUtf8;
+       } else if (!strcmp(pPart, "elm.text.sub.left.bottom")) {
+               char *szFolderPath = NULL;
+               szFolderPath = mp_util_svc_get_video_folder_url(nFolderItemIndex);
+               char *pDes_path = mp_util_get_dir_by_path(szFolderPath);
+               MP_FREE_STRING(szFolderPath);
+               char *szFolderUtf8 = elm_entry_utf8_to_markup(pDes_path);
+               MP_FREE_STRING(pDes_path);
+               return szFolderUtf8;
+       } else {
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_folder_share_view_get_icon_cb(const void
+                                                                                                          *pUserData,
+                                                                                                          Evas_Object *
+                                                                                                          pObject,
+                                                                                                          const char *pPart)
+{
+       int nFolderItemIndex = (int) pUserData;
+       if (!g_strcmp0(pPart, "elm.icon.1")) {
+               VideoLogInfo("pPart: elm.icon.1 - thumbnail");
+
+               Evas_Object *pLayout = NULL;
+               Evas_Object *pBg = NULL;
+               char *pThumbIconUri =
+                       mp_util_get_folder_thumbnail(nFolderItemIndex,
+                                                                                mp_sort_ctrl_get_sort_state());
+               char edj_path[1024] = { 0 };
+
+               char *path = app_get_resource_path();
+               snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                                VIDEO_CUSTOM_THEME);
+               free(path);
+               pLayout = elm_layout_add(pObject);
+               elm_layout_file_set(pLayout, edj_path,
+                                                       "listview.thumbnail.layout");
+
+               if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+                       MP_FREE_STRING(pThumbIconUri);
+               }
+
+               pBg =
+                       mp_util_create_preload_image(pObject, pThumbIconUri,
+                                                                                VIDEO_ICON_WIDTH);
+               elm_layout_content_set(pLayout, "elm.thumbnail.icon", pBg);
+               if (pBg)
+                       evas_object_show(pBg);
+
+               if (!mp_util_create_folder_sub_icon(pLayout, nFolderItemIndex)) {
+                       VideoLogWarning
+                               ("Create sub icon is failed. nFolderItemIndex: %d",
+                                nFolderItemIndex);
+               }
+
+               MP_FREE_STRING(pThumbIconUri);
+
+               evas_object_show(pLayout);
+
+               return pLayout;
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @return
+ */
+int mp_folder_share_view_get_sort_type(void)
+{
+
+       switch (mp_sort_ctrl_get_sort_state()) {
+
+       case MP_LIST_SORT_BY_RECENTLY_ADDED:
+               g_pFolderShareHandle->nSortType = MP_MEDIA_SORT_BY_RECENTLY_ADDED;
+               break;
+
+       case MP_LIST_SORT_BY_NAME:
+               g_pFolderShareHandle->nSortType = MP_MEDIA_SORT_BY_NAME;
+               break;
+
+       }
+
+       return g_pFolderShareHandle->nSortType;
+}
+
+/**
+ *
+ * @param pGenlist
+ */
+static void __mp_folder_share_view_append_folder_items(void *pGenlist)
+{
+       VideoLogInfo("");
+       if (!g_pFolderShareHandle) {
+               VideoLogError("No exist g_pFolderShareHandle.");
+               return;
+       }
+
+       int nIndex = 0;
+       int nFolderListSize = mp_util_svc_get_video_folder_size();
+       MP_DEL_ITC(g_pFolderShareHandle->pGenListItc);
+       g_pFolderShareHandle->pGenListItc = elm_genlist_item_class_new();
+       g_pFolderShareHandle->pGenListItc->item_style = "2line.top";
+       g_pFolderShareHandle->pGenListItc->func.text_get =
+               (void *) __mp_folder_share_view_get_label_cb;
+       g_pFolderShareHandle->pGenListItc->func.content_get =
+               (void *) __mp_folder_share_view_get_icon_cb;
+       g_pFolderShareHandle->pGenListItc->func.state_get = NULL;
+       g_pFolderShareHandle->pGenListItc->func.del = NULL;
+
+       for (nIndex = 0; nIndex < nFolderListSize; nIndex++) {
+               if (mp_util_svc_get_folder_storage(nIndex) !=
+                       MP_MEDIA_TYPE_STORAGE_DROPBOX) {
+                       elm_genlist_item_append(pGenlist,
+                                                                       g_pFolderShareHandle->pGenListItc,
+                                                                       (void *) nIndex, NULL,
+                                                                       ELM_GENLIST_ITEM_NONE,
+                                                                       mp_folder_share_view_select_item_cb,
+                                                                       (void *) nIndex);
+               }
+       }
+}
+
+/**
+ *
+ * @param pGenlist
+ * @param bNeedSvc
+ * @return
+ */
+bool __mp_folder_share_view_arrange_video_list(void *pGenlist,
+                                                                                          bool bNeedSvc)
+{
+       if (!g_pFolderShareWidget || !g_pFolderShareHandle) {
+               VideoLogError("No exist g_pShareViaListViewWidget.");
+               return FALSE;
+       }
+
+       if (!pGenlist) {
+               VideoLogError("No exist genlist object.");
+               return FALSE;
+       }
+
+       int nVideoListSize = mp_util_svc_get_video_folder_size();
+       mp_util_svc_destory_video_item_list();
+       mp_util_svc_extract_video_list_by_item_type
+               (mp_folder_share_view_get_sort_type(), MP_LIST_VIEW_PHONE);
+#ifdef ENABLE_DRM_FEATURE
+       mp_util_svc_filter_drm_video_item_list();
+#endif
+       VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+       if (nVideoListSize > 0) {
+               elm_genlist_clear(pGenlist);
+               __mp_folder_share_view_append_folder_items(pGenlist);
+       } else {
+               elm_naviframe_item_pop(g_pFolderShareHandle->pNaviFrameHandle);
+               return FALSE;
+       }
+
+       evas_object_show(pGenlist);
+       return TRUE;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+Evas_Object *mp_folder_share_view_create_internal_layout(void *pParent)
+{
+       if (!pParent) {
+               VideoLogInfo("[ERR]");
+               return NULL;
+       }
+
+       VideoLogInfo("");
+
+       if (g_pFolderShareWidget->pBaselayout) {
+               evas_object_del(g_pFolderShareWidget->pBaselayout);
+               g_pFolderShareWidget->pBaselayout = NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_REMOVE_LIST_EDJ);
+       free(path);
+       g_pFolderShareWidget->pBaselayout = elm_layout_add(pParent);
+       elm_layout_file_set(g_pFolderShareWidget->pBaselayout,
+                                               edj_path, REMOVE_LIST_EDJ_GROUP);
+       evas_object_size_hint_weight_set(g_pFolderShareWidget->pBaselayout,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pFolderShareWidget->pBaselayout,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       return g_pFolderShareWidget->pBaselayout;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __mp_folder_share_view_db_changed_cb(void *pUserData)
+{
+       VideoLogWarning("Video DB has been changed.");
+       if (!g_pFolderShareHandle || !g_pFolderShareWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       bool bNormalShow = TRUE;
+       bNormalShow =
+               __mp_folder_share_view_arrange_video_list
+               (g_pFolderShareHandle->pGenlist, TRUE);
+       if (!bNormalShow) {
+               VideoLogError("invalid view");
+               return;
+       }
+
+       Elm_Object_Item *pItem = NULL;
+       pItem = elm_genlist_first_item_get(g_pFolderShareHandle->pGenlist);
+       if (pItem) {
+               elm_genlist_item_bring_in(pItem, ELM_GENLIST_ITEM_SCROLLTO_IN);
+       }
+}
+
+/**
+ *
+ * @param pParent
+ */
+void mp_folder_share_view_init(void *pParent)
+{
+       if (!g_pFolderShareHandle || !g_pFolderShareWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       VideoLogInfo("");
+       g_pFolderShareWidget->pBaselayout =
+               mp_folder_share_view_create_internal_layout(pParent);
+       if (!g_pFolderShareWidget->pBaselayout) {
+               VideoLogError("pBaselayout is not existed.");
+               return;
+       }
+       evas_object_event_callback_add(g_pFolderShareWidget->pBaselayout,
+                                                                  EVAS_CALLBACK_DEL,
+                                                                  __mp_folder_share_view_base_layout_del_cb,
+                                                                  NULL);
+
+       g_pFolderShareWidget->pBox =
+               elm_box_add(g_pFolderShareWidget->pBaselayout);
+       if (!g_pFolderShareWidget->pBox) {
+               VideoLogError("pBox is not existed.");
+               return;
+       }
+
+       g_pFolderShareHandle->pGenlist =
+               elm_genlist_add(g_pFolderShareWidget->pBox);
+       if (!g_pFolderShareHandle->pGenlist) {
+               VideoLogError("pGenlist is not existed.");
+               return;
+       }
+       evas_object_size_hint_weight_set(g_pFolderShareHandle->pGenlist,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pFolderShareHandle->pGenlist,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_genlist_block_count_set(g_pFolderShareHandle->pGenlist,
+                                                               VIDEO_GENLIST_BLOCK_COUNT);
+       elm_genlist_mode_set(g_pFolderShareHandle->pGenlist,
+                                                ELM_LIST_COMPRESS);
+       elm_genlist_homogeneous_set(g_pFolderShareHandle->pGenlist, EINA_TRUE);
+
+       elm_box_pack_end(g_pFolderShareWidget->pBox,
+                                        g_pFolderShareHandle->pGenlist);
+       elm_object_part_content_set(g_pFolderShareWidget->pBaselayout,
+                                                               SWALLOW_LISTVIEW_CONTENT,
+                                                               g_pFolderShareWidget->pBox);
+
+       bool bNormalShow = TRUE;
+       bNormalShow =
+               __mp_folder_share_view_arrange_video_list
+               (g_pFolderShareHandle->pGenlist, FALSE);
+       if (!bNormalShow) {
+               VideoLogError("invalid view");
+               return;
+       }
+
+       Evas_Object *back_btn = elm_button_add(pParent);
+       elm_object_style_set(back_btn, "naviframe/end_btn/default");
+       evas_object_show(back_btn);
+       g_pFolderShareHandle->pNaviFrameItem =
+               elm_naviframe_item_push(g_pFolderShareHandle->pNaviFrameHandle,
+                                                               VIDEOS_SELECTVIEW_HEADER_SELECT, back_btn,
+                                                               NULL, g_pFolderShareWidget->pBaselayout,
+                                                               NULL);
+       elm_object_item_domain_text_translatable_set
+               (g_pFolderShareHandle->pNaviFrameItem, VIDEOS_STRING, EINA_TRUE);
+       elm_naviframe_item_pop_cb_set(g_pFolderShareHandle->pNaviFrameItem,
+                                                                 mp_folder_share_view_back_btn_cb,
+                                                                 g_pFolderShareHandle);
+
+
+       elm_naviframe_item_title_enabled_set
+               (g_pFolderShareHandle->pNaviFrameItem, EINA_TRUE, EINA_FALSE);
+       evas_object_smart_callback_add(g_pFolderShareHandle->pNaviFrameHandle,
+                                                                  "transition,finished",
+                                                                  mp_folder_share_view_naviframe_transition_effect_cb,
+                                                                  NULL);
+
+       evas_object_show(g_pFolderShareHandle->pGenlist);
+       evas_object_show(g_pFolderShareWidget->pBaselayout);
+
+       mp_util_db_set_update_fun(g_pFolderShareHandle->euLev,
+                                                         __mp_folder_share_view_db_changed_cb);
+
+       mp_util_hide_indicator();
+}
+
+/**
+ *
+ * @param pNaviFrame
+ * @param pChangeViewCb
+ * @param eTabType
+ */
+void mp_folder_share_view_push(void *pNaviFrame,
+                                                          ChangeListFolderShareViewCbFunc
+                                                          pChangeViewCb, MpVideoListTabType eTabType)
+{
+       VideoLogInfo("");
+       if (g_pFolderShareHandle || g_pFolderShareWidget) {
+               mp_folder_share_view_destroy();
+       }
+
+       g_pFolderShareHandle =
+               (st_FolderListShareViaViewHandle *) calloc(1,
+                                                                                                  sizeof
+                                                                                                  (st_FolderListShareViaViewHandle));
+       g_pFolderShareWidget =
+               (st_FolderListShareViaViewWidget *) calloc(1,
+                                                                                                  sizeof
+                                                                                                  (st_FolderListShareViaViewWidget));
+
+       memset(g_pFolderShareHandle, 0,
+                  sizeof(st_FolderListShareViaViewHandle));
+       memset(g_pFolderShareWidget, 0,
+                  sizeof(st_FolderListShareViaViewWidget));
+       mp_folder_share_view_reset_value();
+
+       g_pFolderShareHandle->pNaviFrameHandle = pNaviFrame;
+       g_pFolderShareHandle->pChangeViewUserCbFunc = pChangeViewCb;
+       g_pFolderShareHandle->eTabType = eTabType;
+       g_pFolderShareHandle->euLev = MP_DB_UPDATE_LEV_1;
+
+       mp_folder_share_view_init(g_pFolderShareHandle->pNaviFrameHandle);
+}
+
+/**
+ *
+ */
+void mp_folder_share_view_pop(void)
+{
+       VideoLogInfo("");
+
+       if (!g_pFolderShareHandle) {
+               VideoLogError("No existed handle of share view.");
+               return;
+       }
+       if (g_pFolderShareHandle->pChangeViewUserCbFunc) {
+               g_pFolderShareHandle->pChangeViewUserCbFunc();
+       }
+
+       mp_util_hide_indicator();
+}
+
+/**
+ *
+ */
+void mp_folder_share_view_change_language(void)
+{
+       if (!g_pFolderShareHandle || !g_pFolderShareWidget) {
+               VideoLogError("No existed handle of share view.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       elm_object_item_domain_translatable_part_text_set
+               (g_pFolderShareHandle->pNaviFrameItem, "elm.text.title",
+                VIDEOS_STRING, VIDEOS_SELECTVIEW_HEADER_SELECT_IDS);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_folder_share_view_base_layout_del_cb(void *pUserData,
+                                                                                                         Evas * e,
+                                                                                                         Evas_Object *
+                                                                                                         pObject,
+                                                                                                         void *pEventInfo)
+{
+       __mp_folder_share_view_reset();
+}
diff --git a/src/view/mp-video-list-personal-ctrl.c b/src/view/mp-video-list-personal-ctrl.c
new file mode 100755 (executable)
index 0000000..5a69340
--- /dev/null
@@ -0,0 +1,821 @@
+/*
+ * Copyright (c) 2020 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 <app.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include <glib.h>
+
+#include "mp-util-move.h"
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-util-media-service.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-video-list-personal-ctrl.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "vp-util.h"
+#include "vp-file-util.h"
+#include "mp-util-preference.h"
+#include "mp-util-config.h"
+
+
+typedef struct _PersonalPage {
+       /*obj */
+       Evas_Object *pProgressbar;
+       Evas_Object *pPopUpHandle;
+       Evas_Object *pPopupLayout;
+       /*data */
+       Ecore_Idler *pMoveItemIdlerHandle;
+       Ecore_Timer *pStartMoveTimer;
+       Ecore_Idler *pFinishMoveIdler;
+       Ecore_Idler *pMoveFailedIdler;
+       Ecore_Thread *pMoveItemThreadHandle;
+
+       PersonalCtrlCbFunc PersonalCtrlUserCbFunc;
+
+       int nTotalMoveItem;
+       int nCompltedMoveItem;
+       int nCompltedFolderMoveItem;
+       int nPersonalViewStyle;
+       int nCheckedEditListSize;
+       unsigned long long nMovingSize;
+       unsigned long long nTotalSize;
+
+       bool *pCheckedItemsEditList;
+       bool bCancelMove;
+       bool bFolderMove;
+
+} stPersonalPage;
+
+static stPersonalPage *g_mpPersonalPage = NULL;
+
+
+/*//////////////////////////////////////////////////////////*/
+/* Internal function*/
+/*//////////////////////////////////////////////////////////*/
+static void mp_personal_ctrl_button_popup_cb(void *pUserData,
+                                                                                        Evas_Object * pObject,
+                                                                                        void *pEventInfo);
+/**
+ *
+ */
+void mp_personal_ctrl_move_popup_handle(void)
+{
+       VideoLogInfo("");
+       if (!g_mpPersonalPage) {
+               VideoLogError("");
+               return;
+       }
+       g_mpPersonalPage->nTotalMoveItem = 0;
+       g_mpPersonalPage->nCompltedMoveItem = 0;
+       g_mpPersonalPage->nCheckedEditListSize = 0;
+
+       g_mpPersonalPage->pProgressbar = NULL;
+       g_mpPersonalPage->pCheckedItemsEditList = NULL;
+       g_mpPersonalPage->pMoveItemThreadHandle = NULL;
+
+       if (g_mpPersonalPage->pPopUpHandle) {
+               eext_object_event_callback_del(g_mpPersonalPage->pPopUpHandle,
+                                                                          EEXT_CALLBACK_BACK,
+                                                                          mp_personal_ctrl_button_popup_cb);
+       }
+       MP_DEL_IDLER(g_mpPersonalPage->pMoveItemIdlerHandle);
+       MP_DEL_TIMER(g_mpPersonalPage->pStartMoveTimer);
+       MP_DEL_IDLER(g_mpPersonalPage->pFinishMoveIdler);
+       MP_DEL_IDLER(g_mpPersonalPage->pMoveFailedIdler);
+       MP_DEL_OBJ(g_mpPersonalPage->pPopUpHandle);
+       if (g_mpPersonalPage->PersonalCtrlUserCbFunc) {
+               g_mpPersonalPage->PersonalCtrlUserCbFunc();
+       }
+       MP_FREE_STRING(g_mpPersonalPage);
+
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void mp_personal_ctrl_button_popup_cb(void *pUserData,
+                                                                                        Evas_Object * pObject,
+                                                                                        void *pEventInfo)
+{
+       if (!g_mpPersonalPage) {
+               VideoLogError("");
+               return;
+       }
+       g_mpPersonalPage->bCancelMove = TRUE;
+       mp_util_move_set_cancel_state(g_mpPersonalPage->bCancelMove);
+
+}
+
+/**
+ *
+ * @param bUpdateFile
+ * @param bUpdateSize
+ */
+static void __mp_personal_ctrl_update_percent(bool bUpdateFile,
+                                                                                         bool bUpdateSize)
+{
+       if (!g_mpPersonalPage || !g_mpPersonalPage->pPopupLayout) {
+               VideoLogError("");
+               return;
+       }
+       char *szSisePercent = NULL;
+       char *szFilePercent = NULL;
+       if (bUpdateSize) {
+               double nPercent = 0.0;
+               if (g_mpPersonalPage->nTotalSize < 1) {
+                       nPercent = 0.0;
+               } else {
+                       nPercent =
+                               (double) g_mpPersonalPage->nMovingSize /
+                               (double) g_mpPersonalPage->nTotalSize;
+               }
+               nPercent = nPercent * 100;
+               if (nPercent > (100 - 1)) {
+                       nPercent = 100.0;
+               }
+               szSisePercent = g_strdup_printf("%d%s", (int) nPercent, "%");
+               elm_object_part_text_set(g_mpPersonalPage->pPopupLayout,
+                                                                "elm.text.left", szSisePercent);
+       }
+       if (bUpdateFile) {
+               if (g_mpPersonalPage->nCompltedMoveItem + 1 >
+                       g_mpPersonalPage->nTotalMoveItem) {
+                       g_mpPersonalPage->nCompltedMoveItem =
+                               g_mpPersonalPage->nTotalMoveItem - 1;
+               }
+               szFilePercent =
+                       g_strdup_printf("%d/%d",
+                                                       (g_mpPersonalPage->nCompltedMoveItem + 1),
+                                                       g_mpPersonalPage->nTotalMoveItem);
+               elm_object_part_text_set(g_mpPersonalPage->pPopupLayout,
+                                                                "elm.text.right", szFilePercent);
+       }
+       MP_FREE_STRING(szSisePercent);
+       MP_FREE_STRING(szFilePercent);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __mp_personal_ctrl_finish_move_idler_cb(void *pUserData)
+{
+       if (!g_mpPersonalPage) {
+               VideoLogError("");
+               return FALSE;
+       }
+
+       g_mpPersonalPage->pFinishMoveIdler = NULL;
+
+
+       mp_personal_ctrl_move_popup_handle();
+
+       return FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_personal_ctrl_warning_popup_cb(void *pUserData,
+                                                                                               Evas_Object * pObject,
+                                                                                               void *pEventInfo)
+{
+       VideoLogInfo("");
+       mp_util_delete_popup_handle();
+
+       if (!g_mpPersonalPage) {
+               VideoLogError("");
+               return;
+       }
+       mp_personal_ctrl_move_popup_handle();
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __mp_personal_ctrl_move_failed_idler_cb(void *pUserData)
+{
+       if (!g_mpPersonalPage) {
+               VideoLogError("");
+               return FALSE;
+       }
+
+       g_mpPersonalPage->pMoveFailedIdler = NULL;
+       if (g_mpPersonalPage->nPersonalViewStyle == 1) {
+               mp_util_notify_popup(NULL, VIDEOS_COMMON_HEADER_ERROR,
+                                                        VIDEOS_NOTIPOP_MSG_MOVE_TO_NORMAL_STORAGE_FAILED,
+                                                        __mp_personal_ctrl_warning_popup_cb);
+       } else {
+               mp_util_notify_popup(NULL, VIDEOS_COMMON_HEADER_ERROR,
+                                                        VIDEOS_NOTIPOP_MSG_MOVE_TO_PERSONAL_STORAGE_FAILED,
+                                                        __mp_personal_ctrl_warning_popup_cb);
+       }
+
+       return FALSE;
+}
+
+/**
+ *
+ * @param msg_type
+ * @param size
+ * @param nErrorCode
+ * @param userData
+ */
+static void __mp_personal_ctrl_move_cb(euThreadFeedback msg_type,
+                                                                          unsigned long long size,
+                                                                          int nErrorCode, void *userData)
+{
+       if (!g_mpPersonalPage) {
+               VideoLogError("");
+               return;
+       }
+       g_mpPersonalPage->nMovingSize += size;
+
+       if (nErrorCode == -1 || msg_type == MP_VIDEO_UPDATE_FAILED) {
+               ecore_thread_feedback(g_mpPersonalPage->pMoveItemThreadHandle,
+                                                         (void *) MP_VIDEO_UPDATE_FAILED);
+       } else if (nErrorCode == 1 || msg_type == MP_VIDEO_UPDATE_CANCEL) {
+               ecore_thread_cancel(g_mpPersonalPage->pMoveItemThreadHandle);
+       } else if (nErrorCode == 0 || msg_type == MP_VIDEO_UPDATE) {
+               ecore_thread_feedback(g_mpPersonalPage->pMoveItemThreadHandle,
+                                                         (void *) MP_VIDEO_UPDATE);
+       }
+}
+
+/**
+ *
+ * @param nTotalSize
+ * @return
+ */
+static bool __mp_personal_ctrl_move_get_total_size(unsigned long long
+                                                                                                  *nTotalSize)
+{
+
+       if (!g_mpPersonalPage) {
+               VideoLogError("");
+               return FALSE;
+       }
+
+       if (!g_mpPersonalPage->pCheckedItemsEditList) {
+               VideoLogError("The userdata and pCheckedItemsEditList is null.");
+
+               return FALSE;
+       }
+       int nCounter = 0;
+       unsigned long long nSize = 0;
+       unsigned long long nSizeTmp = 0;
+       char *szTmpFolderUrl = NULL;
+       char *szSubTitle = NULL;
+       char *szFileUrl = NULL;
+       if (g_mpPersonalPage->bFolderMove) {
+               for (nCounter = 0;
+                        nCounter < g_mpPersonalPage->nCheckedEditListSize;
+                        nCounter++) {
+                       if (g_mpPersonalPage->pCheckedItemsEditList[nCounter]) {
+                               szTmpFolderUrl =
+                                       mp_util_svc_get_video_folder_url(nCounter);
+                               mp_util_move_get_total_dir_size(szTmpFolderUrl, &nSizeTmp);
+                               MP_FREE_STRING(szTmpFolderUrl);
+                               nSize += nSizeTmp;
+                       }
+               }
+       } else {
+               for (nCounter = 0;
+                        nCounter < g_mpPersonalPage->nCheckedEditListSize;
+                        nCounter++) {
+                       if (g_mpPersonalPage->pCheckedItemsEditList[nCounter]) {
+                               nSizeTmp = mp_util_svc_get_video_item_size(nCounter);
+                               nSize += nSizeTmp;
+
+                               /*Support subtitle size. */
+                               nSizeTmp = 0;
+                               szFileUrl = mp_util_svc_get_video_url(nCounter);
+                               mp_util_get_subtitle_path(szFileUrl, &szSubTitle);
+                               if (szSubTitle) {
+                                       mp_util_get_file_size_by_path(szSubTitle, &nSizeTmp);
+                                       nSize += nSizeTmp;
+                               }
+                               MP_FREE_STRING(szFileUrl);
+                               MP_FREE_STRING(szSubTitle);
+                       }
+               }
+
+       }
+
+       *nTotalSize = nSize;
+       return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param thread
+ */
+static void __mp_personal_ctrl_move_item_thread_main_cb(void *pUserData,
+                                                                                                               Ecore_Thread *
+                                                                                                               thread)
+{
+       if (!g_mpPersonalPage) {
+               VideoLogError("");
+               return;
+       }
+
+       if (!g_mpPersonalPage->pCheckedItemsEditList) {
+               VideoLogError("The userdata and pCheckedItemsEditList is null.");
+
+               ecore_thread_feedback(g_mpPersonalPage->pMoveItemThreadHandle,
+                                                         (void *) MP_VIDEO_UPDATE_ERROR);
+               return;
+       }
+       unsigned long long nSize = 0;
+       __mp_personal_ctrl_move_get_total_size(&nSize);
+       g_mpPersonalPage->nTotalSize = nSize;
+       g_mpPersonalPage->nMovingSize = 0;
+       VideoLogInfo("nMovefolderTotal:%lld", g_mpPersonalPage->nTotalSize);
+
+       /*mp_util_svc_print_list_info(); */
+       int nCounter = 0;
+       char *pDestFile = NULL;
+       char *szFileUrl = NULL;
+       char *szMediaUrlForPreview = NULL;
+       char *szTmpFolderUrl = NULL;
+       char *szSubTitle = NULL;
+       bool bPersonal = FALSE;
+       int nRet = FALSE;
+       while ((g_mpPersonalPage->nCompltedMoveItem <
+                       g_mpPersonalPage->nTotalMoveItem)
+                  && (!g_mpPersonalPage->bCancelMove)) {
+
+               nCounter = 0;
+               for (nCounter = 0;
+                        nCounter < g_mpPersonalPage->nCheckedEditListSize;
+                        nCounter++) {
+                       if (g_mpPersonalPage->pCheckedItemsEditList[nCounter]) {
+                               __mp_personal_ctrl_update_percent(TRUE, FALSE);
+                               if (g_mpPersonalPage->bFolderMove) {
+                                       szTmpFolderUrl =
+                                               mp_util_svc_get_video_folder_url(nCounter);
+                                       VideoSecureLogInfo
+                                               ("pRemoveCheckedItemsEditListmove=%s,%d",
+                                                szTmpFolderUrl, nCounter);
+
+                                       bPersonal =
+                                               mp_util_check_video_personal_status
+                                               (szTmpFolderUrl);
+
+                                       if (bPersonal) {
+                                               pDestFile = g_strdup(VIDEO_DOWNLOAD_FILE_DIR);
+                                       } else {
+                                               pDestFile = g_strdup(VIDEO_UTIL_PERSONAL_HEAD_STR);
+                                       }
+                                       nRet =
+                                               mp_util_move_push(szTmpFolderUrl, pDestFile,
+                                                                                 __mp_personal_ctrl_move_cb,
+                                                                                 pUserData,
+                                                                                 g_mpPersonalPage->nTotalSize);
+                                       if (nRet == -1) {
+                                               VideoLogInfo("move failed");
+                                               MP_FREE_STRING(pDestFile);
+                                               MP_FREE_STRING(szTmpFolderUrl);
+                                               ecore_thread_feedback
+                                                       (g_mpPersonalPage->pMoveItemThreadHandle,
+                                                        (void *)
+                                                        MP_VIDEO_UPDATE_FAILED);
+                                               return;
+                                       } else if (nRet == 0) {
+                                               mp_util_svc_remove_folder_list_item_from_list
+                                                       (nCounter);
+                                               vp_file_recursive_rm(szTmpFolderUrl);
+                                       } else if (nRet == 1) {
+                                               VideoLogInfo("move cancel");
+                                               MP_FREE_STRING(pDestFile);
+                                               MP_FREE_STRING(szTmpFolderUrl);
+                                               ecore_thread_cancel
+                                                       (g_mpPersonalPage->pMoveItemThreadHandle);
+                                               return;
+                                       }
+                                       MP_FREE_STRING(pDestFile);
+                                       MP_FREE_STRING(szTmpFolderUrl);
+
+                               } else {
+                                       szFileUrl = mp_util_svc_get_video_url(nCounter);
+                                       VideoSecureLogInfo
+                                               ("pRemoveCheckedItemsEditListmove=%s,%d",
+                                                szFileUrl, nCounter);
+                                       if (szFileUrl) {
+                                               szMediaUrlForPreview =
+                                                       mp_util_config_get_preview();
+                                               if (szMediaUrlForPreview) {
+                                                       if (!strcmp(szMediaUrlForPreview, szFileUrl)
+                                                               && !bPersonal) {
+                                                               VideoLogInfo("Erase preview url.");
+                                                               mp_util_config_set_preview(NULL);
+                                                       }
+                                               }
+                                               MP_FREE_STRING(szMediaUrlForPreview);
+
+                                               bPersonal =
+                                                       mp_util_check_video_personal_status(szFileUrl);
+
+                                               if (bPersonal) {
+                                                       pDestFile = g_strdup(VIDEO_DOWNLOAD_FILE_DIR);
+                                               } else {
+                                                       pDestFile =
+                                                               g_strdup(VIDEO_UTIL_PERSONAL_HEAD_STR);
+                                               }
+
+                                               nRet =
+                                                       mp_util_move_push(szFileUrl, pDestFile,
+                                                                                         __mp_personal_ctrl_move_cb,
+                                                                                         pUserData,
+                                                                                         g_mpPersonalPage->nTotalSize);
+                                               if (nRet == -1) {
+                                                       VideoLogInfo("move failed");
+                                                       MP_FREE_STRING(pDestFile);
+                                                       MP_FREE_STRING(szFileUrl);
+                                                       ecore_thread_feedback
+                                                               (g_mpPersonalPage->pMoveItemThreadHandle,
+                                                                (void *)
+                                                                MP_VIDEO_UPDATE_FAILED);
+                                                       return;
+                                               } else if (nRet == 0) {
+                                                       mp_util_svc_remove_list_item_from_list
+                                                               (nCounter);
+                                                       unlink(szFileUrl);
+                                               } else if (nRet == 1) {
+                                                       VideoLogInfo("move cancel");
+                                                       MP_FREE_STRING(pDestFile);
+                                                       MP_FREE_STRING(szFileUrl);
+                                                       ecore_thread_cancel
+                                                               (g_mpPersonalPage->pMoveItemThreadHandle);
+                                                       return;
+                                               }
+
+                                               VideoSecureLogInfo("Move file url : %s:%s",
+                                                                                  szFileUrl, pDestFile);
+                                               /*Support subtitle moving, But only for file, folder has been implemented in move.c. */
+                                               /*begin */
+                                               mp_util_get_subtitle_path(szFileUrl, &szSubTitle);
+                                               if (szSubTitle) {
+                                                       nRet =
+                                                               mp_util_move_push(szSubTitle, pDestFile,
+                                                                                                 __mp_personal_ctrl_move_cb,
+                                                                                                 pUserData,
+                                                                                                 g_mpPersonalPage->nTotalSize);
+                                                       VideoLogInfo("szSubTitle move result = %d",
+                                                                                nRet);
+                                               }
+                                               MP_FREE_STRING(szSubTitle);
+                                               /*end */
+                                               MP_FREE_STRING(pDestFile);
+                                               MP_FREE_STRING(szFileUrl);
+                                       }
+                               }
+
+                               int nMoveItemCounter = 0;
+                               for (nMoveItemCounter = nCounter;
+                                        nMoveItemCounter <
+                                        g_mpPersonalPage->nCheckedEditListSize - 1;
+                                        nMoveItemCounter++) {
+                                       g_mpPersonalPage->pCheckedItemsEditList
+                                               [nMoveItemCounter] =
+                                               g_mpPersonalPage->pCheckedItemsEditList
+                                               [nMoveItemCounter + 1];
+                               }
+                               g_mpPersonalPage->nCheckedEditListSize--;
+                               ++g_mpPersonalPage->nCompltedMoveItem;
+                               break;
+                       }
+               }
+
+               if (g_mpPersonalPage->nCompltedMoveItem >=
+                       g_mpPersonalPage->nTotalMoveItem) {
+                       VideoLogInfo("nCompltedMoveItem == nTotalMoveItem");
+                       ecore_thread_feedback(g_mpPersonalPage->pMoveItemThreadHandle,
+                                                                 (void *) MP_VIDEO_UPDATE_FINISH);
+                       return;
+               }
+       }
+
+
+}
+
+/**
+ *
+ * @param data
+ * @param thread
+ */
+static void __mp_personal_ctrl_move_thread_cancel(void *data,
+                                                                                                 Ecore_Thread * thread)
+{
+       if (!g_mpPersonalPage) {
+               VideoLogError("");
+               return;
+       }
+       VideoLogInfo("");
+       mp_personal_ctrl_move_popup_handle();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param thread
+ */
+static void __mp_personal_ctrl_move_thread_finish(void *pUserData,
+                                                                                                 Ecore_Thread * thread)
+{
+       if (!g_mpPersonalPage) {
+               VideoLogError("");
+               return;
+       }
+       VideoLogInfo("");
+}
+
+/**
+ *
+ * @param pUserData
+ * @param thread
+ * @param msg_data
+ */
+static void __mp_personal_ctrl_thread_notify_cb(void *pUserData,
+                                                                                               Ecore_Thread * thread,
+                                                                                               void *msg_data)
+{
+       if (!g_mpPersonalPage) {
+               VideoLogError("");
+               return;
+       }
+
+       double nMoveRate = 0.0;
+       euThreadFeedback feedback = (euThreadFeedback) msg_data;
+
+       switch (feedback) {
+       case MP_VIDEO_UPDATE_CANCEL:
+               VideoLogInfo("MP_VIDEO_PERSONAL_UPDATE_CANCEL");
+               mp_personal_ctrl_move_popup_handle();
+               break;
+
+       case MP_VIDEO_UPDATE:
+               if (g_mpPersonalPage->nTotalSize > 0) {
+                       nMoveRate =
+                               ((double) g_mpPersonalPage->nMovingSize) /
+                               ((double) g_mpPersonalPage->nTotalSize);
+                       __mp_personal_ctrl_update_percent(FALSE, TRUE);
+                       /*VideoLogInfo("nMoveRate:%f:%lld:%lld", nMoveRate, g_mpPersonalPage->nMovingSize,  g_mpPersonalPage->nTotalSize); */
+                       if (g_mpPersonalPage->pProgressbar) {
+                               elm_progressbar_value_set(g_mpPersonalPage->pProgressbar,
+                                                                                 nMoveRate);
+                       }
+               }
+
+               break;
+
+       case MP_VIDEO_UPDATE_FINISH:
+               MP_DEL_IDLER(g_mpPersonalPage->pFinishMoveIdler);
+               g_mpPersonalPage->pFinishMoveIdler =
+                       ecore_idler_add(__mp_personal_ctrl_finish_move_idler_cb,
+                                                       pUserData);
+
+               break;
+
+       case MP_VIDEO_UPDATE_FAILED:
+               VideoLogInfo("MP_VIDEO_UPDATE_FAILED");
+               MP_DEL_IDLER(g_mpPersonalPage->pMoveFailedIdler);
+               MP_DEL_OBJ(g_mpPersonalPage->pPopUpHandle);
+               g_mpPersonalPage->pMoveFailedIdler =
+                       ecore_idler_add(__mp_personal_ctrl_move_failed_idler_cb,
+                                                       pUserData);
+               break;
+
+       case MP_VIDEO_UPDATE_ERROR:
+               mp_personal_ctrl_move_popup_handle();
+               break;
+       }
+
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __mp_personal_ctrl_start_move_timer_cb(void *pUserData)
+{
+       if (!g_mpPersonalPage) {
+               VideoLogError("");
+               return FALSE;
+       }
+       if (mp_util_set_dest_file(VIDEO_DOWNLOAD_FILE_DIR) == -1) {
+               VideoLogError("mp_util_set_dest_file failed");
+               return FALSE;
+       }
+
+       g_mpPersonalPage->pStartMoveTimer = NULL;
+
+       g_mpPersonalPage->pMoveItemThreadHandle =
+               ecore_thread_feedback_run
+               (__mp_personal_ctrl_move_item_thread_main_cb,
+                __mp_personal_ctrl_thread_notify_cb,
+                __mp_personal_ctrl_move_thread_finish,
+                __mp_personal_ctrl_move_thread_cancel, (void *) pUserData,
+                EINA_TRUE);
+       return FALSE;
+}
+
+/**
+ *
+ * @param pHandle
+ * @param pUserData
+ * @return
+ */
+static bool __mp_personal_ctrl_create_progress_popup(Evas_Object *
+                                                                                                        pHandle,
+                                                                                                        void *pUserData)
+{
+       if (!g_mpPersonalPage || !g_mpPersonalPage->pPopUpHandle) {
+               VideoLogError("g_mpPersonalPage is null.");
+               return FALSE;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ);
+       free(path);
+       Evas_Object *pPopupLayout =
+               elm_layout_add(g_mpPersonalPage->pPopUpHandle);
+       elm_layout_file_set(pPopupLayout, edj_path,
+                                               "popup_center_progress_move_copy");
+       evas_object_size_hint_weight_set(pPopupLayout, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       if (!pPopupLayout) {
+               VideoLogError("g_mpPersonalPage is null.");
+               return FALSE;
+
+       }
+       g_mpPersonalPage->pPopupLayout = pPopupLayout;
+
+
+       Evas_Object *pProgressbar =
+               elm_progressbar_add(g_mpPersonalPage->pPopUpHandle);
+       elm_object_style_set(pProgressbar, "list_progress");
+       elm_progressbar_horizontal_set(pProgressbar, EINA_TRUE);
+       evas_object_size_hint_align_set(pProgressbar, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(pProgressbar, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       elm_progressbar_value_set(pProgressbar, 0.0);
+       evas_object_show(pProgressbar);
+       g_mpPersonalPage->pProgressbar = pProgressbar;
+
+
+       if (g_mpPersonalPage->nPersonalViewStyle == 1) {
+               elm_object_domain_translatable_part_text_set(pPopupLayout,
+                                                                                                        "elm.title",
+                                                                                                        VIDEOS_STRING,
+                                                                                                        MP_TEXT_MOVING);
+               elm_object_domain_part_text_translatable_set(pPopupLayout,
+                                                                                                        "elm.title",
+                                                                                                        VIDEOS_STRING,
+                                                                                                        EINA_TRUE);
+       } else {
+               elm_object_domain_translatable_part_text_set(pPopupLayout,
+                                                                                                        "elm.title",
+                                                                                                        VIDEOS_STRING,
+                                                                                                        MP_TEXT_MOVING);
+               elm_object_domain_part_text_translatable_set(pPopupLayout,
+                                                                                                        "elm.title",
+                                                                                                        VIDEOS_STRING,
+                                                                                                        EINA_TRUE);
+       }
+
+       elm_object_part_content_set(pPopupLayout, "elm.swallow.content",
+                                                               pProgressbar);
+
+       __mp_personal_ctrl_update_percent(TRUE, TRUE);
+
+       elm_object_content_set(g_mpPersonalPage->pPopUpHandle, pPopupLayout);
+       Evas_Object *pButton = elm_button_add(g_mpPersonalPage->pPopUpHandle);
+       elm_object_style_set(pButton, "popup_button/default");
+       elm_object_domain_translatable_text_set(pButton, VIDEOS_STRING,
+                                                                                       VIDEOS_COMMON_BUTTON_CANCEL_IDS);
+       elm_object_part_content_set(g_mpPersonalPage->pPopUpHandle, "button1",
+                                                               pButton);
+       evas_object_smart_callback_add(pButton, "clicked",
+                                                                  mp_personal_ctrl_button_popup_cb,
+                                                                  pUserData);
+
+       evas_object_show(g_mpPersonalPage->pPopUpHandle);
+       return TRUE;
+
+}
+
+/*//////////////////////////////////////////////////////////*/
+/* External function*/
+/*//////////////////////////////////////////////////////////*/
+
+/**
+ *
+ * @param pCheckedItemsEditList
+ * @param pCheckedItemsEditListSize
+ * @param nViewStyle
+ * @param bFolderMove
+ * @param pPersonalCtrlCb
+ * @param pUserData
+ * @return
+ */
+bool mp_personal_ctrl_show(bool * pCheckedItemsEditList,
+                                                  int pCheckedItemsEditListSize, int nViewStyle,
+                                                  bool bFolderMove,
+                                                  PersonalCtrlCbFunc pPersonalCtrlCb,
+                                                  void *pUserData)
+{
+       if (!pCheckedItemsEditList) {
+               VideoLogError("No have popup message is null.");
+               return FALSE;
+       }
+
+       mp_personal_ctrl_move_popup_handle();
+       g_mpPersonalPage =
+               (stPersonalPage *) calloc(1, sizeof(stPersonalPage));
+       if (!g_mpPersonalPage) {
+               VideoLogError("g_mpPersonalPage is NULL");
+               return FALSE;
+       }
+
+       VideoLogInfo("pCheckedItemsEditListSize : %d",
+                                pCheckedItemsEditListSize);
+
+
+       g_mpPersonalPage->PersonalCtrlUserCbFunc = pPersonalCtrlCb;
+       g_mpPersonalPage->nCheckedEditListSize = pCheckedItemsEditListSize;
+       g_mpPersonalPage->pCheckedItemsEditList = pCheckedItemsEditList;
+       g_mpPersonalPage->nPersonalViewStyle = nViewStyle;
+       g_mpPersonalPage->bCancelMove = FALSE;
+       g_mpPersonalPage->bFolderMove = bFolderMove;
+       g_mpPersonalPage->nTotalMoveItem = 0;
+       g_mpPersonalPage->nTotalSize = 0;
+       g_mpPersonalPage->nMovingSize = 0;
+
+       int nCounter = 0;
+       for (nCounter = 0; nCounter < g_mpPersonalPage->nCheckedEditListSize;
+                nCounter++) {
+               if (g_mpPersonalPage->pCheckedItemsEditList[nCounter]) {
+                       ++g_mpPersonalPage->nTotalMoveItem;
+               }
+       }
+
+       VideoLogInfo("nTotalMoveItem : %d", g_mpPersonalPage->nTotalMoveItem);
+
+       g_mpPersonalPage->pPopUpHandle =
+               elm_popup_add(mp_util_get_main_window_handle());
+
+       eext_object_event_callback_add(g_mpPersonalPage->pPopUpHandle,
+                                                                  EEXT_CALLBACK_BACK,
+                                                                  mp_personal_ctrl_button_popup_cb, NULL);
+
+       bool bRet =
+               __mp_personal_ctrl_create_progress_popup
+               (g_mpPersonalPage->pPopUpHandle, pUserData);
+       if (!bRet) {
+               VideoLogError("popup is failed");
+               mp_personal_ctrl_move_popup_handle();
+               return FALSE;
+       }
+       MP_DEL_TIMER(g_mpPersonalPage->pStartMoveTimer);
+       g_mpPersonalPage->pStartMoveTimer =
+               ecore_timer_add(0.3, __mp_personal_ctrl_start_move_timer_cb,
+                                               pUserData);
+
+       return TRUE;
+}
diff --git a/src/view/mp-video-list-personal-view.c b/src/view/mp-video-list-personal-view.c
new file mode 100755 (executable)
index 0000000..4d17344
--- /dev/null
@@ -0,0 +1,2047 @@
+/*
+ * Copyright (c) 2020 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 <Eina.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+#include <glib.h>
+#include <app_preference.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-external-ug.h"
+#include "mp-video-string-define.h"
+#include "mp-video-value-define.h"
+#include "mp-util-media-service.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-video-list-personal-ctrl.h"
+#include "mp-video-list-personal-view.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-util-widget-ctrl.h"
+#include "mp-video-util-db-controller.h"
+#include "mp-util-config.h"
+#include "vp-file-util.h"
+
+
+#define PREF_MP_UTIL_PERSONAL_NO_ASK_AGAIN "preference/org.tizen.videos/personal_no_ask_again"
+#define VIDEO_SELECTED_INFO_TIMER              4.0
+
+
+typedef struct {
+       void *pNaviFrameHandle;
+       void *pNaviFrameItem;
+       void *pVideosGenlist;
+
+       bool *pCheckedItemsEditListForRemoved;
+       char **pSelectedList;           /*save selected video id */
+       bool bSelectallCheckBoxState;
+       int nSelectCounterForEditList;
+       MpMediaSvcSortType nSortType;
+       ChangePersonalViewCbFunc pChangeViewUserCbFunc;
+       char *pFolderPath;
+       int nViewStyle;                         /*0:add to personal. //1,remove from personal */
+       bool bFolderMove;
+       bool bCheckBoxState;
+       MpDbUpdateViewLev euLev;
+
+} st_VideoListPersonalViewHandle;
+
+typedef struct {
+       Evas_Object *pVideoListBox;
+       Evas_Object *pPersonalViewBaselayout;
+       Evas_Object *pSelectallbtn;
+       Evas_Object *pSelAllLayout;
+       Evas_Object *pSavebtn;
+       Evas_Object *pCancelbtn;
+
+       Ecore_Timer *pSelectedInfoLayoutTimer;
+} st_VideoListPersonalViewWidget;
+
+
+st_VideoListPersonalViewHandle *g_pListPersonalViewHandle = NULL;
+st_VideoListPersonalViewWidget *g_pListPersonalViewWidget = NULL;
+
+
+Elm_Genlist_Item_Class VideoPersonal_Itc;
+Elm_Genlist_Item_Class FolderPersonal_Itc;
+Elm_Genlist_Item_Class FolderPersonalNoItem_Itc;
+
+
+
+
+/* Pre define function*/
+int mp_personal_view_get_sort_type(void);
+void mp_personal_view_arrange_video_list(int nItemSortType,
+                                                                                void *pVideosGenlist,
+                                                                                bool bNeedSvc);
+void mp_personal_view_naviframe_transition_effect_cb(void *pUserData,
+                                                                                                        Evas_Object *
+                                                                                                        pObject,
+                                                                                                        void *pEventInfo);
+void mp_personal_view_change_title_info(void);
+static void __mp_personal_view_base_layout_del_cb(void *pUserData,
+                                                                                                 Evas * e,
+                                                                                                 Evas_Object * pObject,
+                                                                                                 void *pEventInfo);
+static void __mp_personal_view_ignore_personal_vconf();
+
+static bool __mp_personal_view_get_selected_video_list(int nSelectedSize);
+static void __mp_personal_view_update_selected_video_list(void);
+
+/**
+ *
+ */
+static void __mp_personal_view_free_selected_list(void)
+{
+       if (!g_pListPersonalViewHandle
+               || !g_pListPersonalViewHandle->pSelectedList) {
+               return;
+       }
+       int nIndex = 0;
+       while (g_pListPersonalViewHandle->pSelectedList[nIndex]) {
+               nIndex++;
+               MP_FREE_STRING(g_pListPersonalViewHandle->pSelectedList[nIndex]);
+       }
+       MP_FREE_STRING(g_pListPersonalViewHandle->pSelectedList);
+}
+
+/**
+ *
+ */
+void mp_personal_view_update_all_check_box(void)
+{
+       VideoLogInfo("");
+       int nPersonalSize = 0;
+       if (g_pListPersonalViewHandle->bFolderMove) {
+               nPersonalSize = mp_util_svc_get_video_folder_size();
+       } else {
+               nPersonalSize = mp_util_svc_get_number_of_video_item_by_type();
+       }
+       if (!g_pListPersonalViewHandle->pVideosGenlist) {
+               VideoLogInfo("genlist is NULL");
+               return;
+       }
+       if (nPersonalSize < 1) {
+               VideoLogInfo("nVideoListSize < 1:%d", nPersonalSize);
+               return;
+       }
+       Elm_Object_Item *currentItem = NULL;
+       currentItem =
+               elm_genlist_first_item_get
+               (g_pListPersonalViewHandle->pVideosGenlist);
+       int nVideoItemIndex = 0;
+       Evas_Object *check_box = NULL;
+       while (currentItem && (nVideoItemIndex < nPersonalSize)) {
+               check_box =
+                       elm_object_item_part_content_get(currentItem,
+                                                                                        "elm.edit.icon.1");
+               if (check_box) {
+                       elm_check_state_set(check_box,
+                                                               g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+                                                               [nVideoItemIndex]);
+               }
+               currentItem = elm_genlist_item_next_get(currentItem);
+               nVideoItemIndex++;
+       }
+}
+
+/**
+ *
+ */
+static void __mp_personal_view_reset(void)
+{
+       VideoLogInfo("");
+       __mp_personal_view_ignore_personal_vconf();
+
+       if (g_pListPersonalViewHandle) {
+               mp_util_db_set_update_fun(g_pListPersonalViewHandle->euLev, NULL);
+               mp_util_db_set_backup_fun(g_pListPersonalViewHandle->euLev, NULL);
+               evas_object_smart_callback_del
+                       (g_pListPersonalViewHandle->pNaviFrameHandle,
+                        "transition,finished",
+                        mp_personal_view_naviframe_transition_effect_cb);
+               __mp_personal_view_free_selected_list();
+
+               g_pListPersonalViewHandle->pVideosGenlist = NULL;
+
+               MP_FREE_STRING
+                       (g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved);
+               MP_FREE_STRING(g_pListPersonalViewHandle->pFolderPath);
+
+               free(g_pListPersonalViewHandle);
+               g_pListPersonalViewHandle = NULL;
+       }
+
+       if (g_pListPersonalViewWidget) {
+
+               MP_DEL_OBJ(g_pListPersonalViewWidget->pSelectallbtn);
+               MP_DEL_OBJ(g_pListPersonalViewWidget->pSavebtn);
+               MP_DEL_OBJ(g_pListPersonalViewWidget->pCancelbtn);
+
+               g_pListPersonalViewWidget->pSelAllLayout = NULL;
+               g_pListPersonalViewWidget->pVideoListBox = NULL;
+
+               g_pListPersonalViewWidget->pPersonalViewBaselayout = NULL;
+
+               MP_DEL_TIMER(g_pListPersonalViewWidget->pSelectedInfoLayoutTimer);
+
+               free(g_pListPersonalViewWidget);
+               g_pListPersonalViewWidget = NULL;
+       }
+
+}
+
+/**
+ *
+ */
+void mp_personal_view_destroy(void)
+{
+       VideoLogInfo("");
+
+       __mp_personal_view_ignore_personal_vconf();
+
+       if (g_pListPersonalViewHandle) {
+               evas_object_smart_callback_del
+                       (g_pListPersonalViewHandle->pNaviFrameHandle,
+                        "transition,finished",
+                        mp_personal_view_naviframe_transition_effect_cb);
+               __mp_personal_view_free_selected_list();
+
+               MP_DEL_OBJ(g_pListPersonalViewHandle->pVideosGenlist);
+
+               MP_FREE_STRING
+                       (g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved);
+               MP_FREE_STRING(g_pListPersonalViewHandle->pFolderPath);
+
+               free(g_pListPersonalViewHandle);
+               g_pListPersonalViewHandle = NULL;
+       }
+
+       if (g_pListPersonalViewWidget) {
+
+               MP_DEL_OBJ(g_pListPersonalViewWidget->pSelectallbtn);
+               MP_DEL_OBJ(g_pListPersonalViewWidget->pSelAllLayout);
+               MP_DEL_OBJ(g_pListPersonalViewWidget->pSavebtn);
+               MP_DEL_OBJ(g_pListPersonalViewWidget->pCancelbtn);
+               MP_DEL_OBJ(g_pListPersonalViewWidget->pVideoListBox);
+               MP_DEL_OBJ(g_pListPersonalViewWidget->pPersonalViewBaselayout);
+               MP_DEL_TIMER(g_pListPersonalViewWidget->pSelectedInfoLayoutTimer);
+
+               free(g_pListPersonalViewWidget);
+               g_pListPersonalViewWidget = NULL;
+       }
+
+}
+
+/**
+ *
+ */
+void mp_personal_view_reset_value(void)
+{
+       VideoLogInfo("");
+
+       if (!g_pListPersonalViewHandle) {
+               VideoLogError("[ERR] g_pListPersonalViewHandle is not existed.");
+               return;
+       }
+
+       g_pListPersonalViewHandle->pNaviFrameHandle = NULL;
+       g_pListPersonalViewHandle->pNaviFrameItem = NULL;
+       g_pListPersonalViewHandle->pChangeViewUserCbFunc = NULL;
+
+       g_pListPersonalViewHandle->bSelectallCheckBoxState = FALSE;
+       g_pListPersonalViewHandle->nSelectCounterForEditList = 0;
+       g_pListPersonalViewHandle->nSortType =
+               MP_MEDIA_SORT_BY_RECENTLY_VIEWED;
+
+       if (g_pListPersonalViewHandle->pNaviFrameItem) {
+               elm_object_item_part_content_unset
+                       (g_pListPersonalViewHandle->pNaviFrameItem,
+                        "toolbar_more_btn");
+               elm_object_item_part_content_unset
+                       (g_pListPersonalViewHandle->pNaviFrameItem, "toolbar");
+               elm_object_item_part_content_unset
+                       (g_pListPersonalViewHandle->pNaviFrameItem, "toolbar_button2");
+       }
+}
+
+
+/*//////////////////////////////////////////////////*/
+/* Remove items. (Below functions are about the item deletion to call by button of toolbar.)*/
+
+/**
+ *
+ */
+void mp_personal_view_done_delete_complete(void)
+{
+       if (!g_pListPersonalViewHandle) {
+               VideoLogError("[ERR] g_pListPersonalViewHandle is NULL.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       if (g_pListPersonalViewHandle->pNaviFrameHandle) {
+               elm_naviframe_item_pop
+                       (g_pListPersonalViewHandle->pNaviFrameHandle);
+       }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_personal_view_run_cancel_items_cb(void *pUserData,
+                                                                                                  Evas_Object * pObject,
+                                                                                                  void *pEventInfo)
+{
+       if (!g_pListPersonalViewHandle->pNaviFrameHandle) {
+               VideoLogError
+                       ("g_pListPersonalViewHandle->pNaviFrameHandle is NULL");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       elm_naviframe_item_pop(g_pListPersonalViewHandle->pNaviFrameHandle);
+}
+
+/**
+ *
+ * @param bAsked
+ * @return
+ */
+bool mp_personal_view_set_vconf_asked_state(bool bAsked)
+{
+       int nErr = 0;
+
+       nErr =
+               preference_set_boolean(PREF_MP_UTIL_PERSONAL_NO_ASK_AGAIN, bAsked);
+       if (nErr != 0) {
+               VideoLogError
+                       ("SET PREF_MP_UTIL_PERSONAL_NO_ASK_AGAIN is fail [0x%x]",
+                        nErr);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param bAsked
+ * @return
+ */
+bool mp_personal_view_get_vconf_asked_state(bool * bAsked)
+{
+       int nErr = 0;
+       bool nVal = 0;
+
+       nErr =
+               preference_get_boolean(PREF_MP_UTIL_PERSONAL_NO_ASK_AGAIN, &nVal);
+       if (nErr != 0) {
+               VideoLogError
+                       ("GET PREF_MP_UTIL_PERSONAL_NO_ASK_AGAIN is fail [0x%x]",
+                        nErr);
+               return FALSE;
+       }
+
+       *bAsked = (nVal == 0) ? FALSE : TRUE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_personal_view_ask_remove_back_cb(void *data,
+                                                                                                 Evas_Object * obj,
+                                                                                                 void *event_info)
+{
+       mp_util_delete_popup_handle();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_personal_view_ask_remove_ok_cb(void *pUserData,
+                                                                                               Evas_Object * pObject,
+                                                                                               void *pEventInfo)
+{
+       if (!g_pListPersonalViewHandle) {
+               VideoLogError("[ERR] g_pListPersonalViewHandle is NULL.");
+               return;
+       }
+
+       VideoLogInfo("");
+       mp_util_delete_popup_handle();
+
+       mp_personal_view_set_vconf_asked_state
+               (g_pListPersonalViewHandle->bCheckBoxState);
+
+       int nPersonalListSize = 0;
+       if (g_pListPersonalViewHandle->bFolderMove) {
+               nPersonalListSize = mp_util_svc_get_video_folder_size();
+       } else {
+               nPersonalListSize = mp_util_svc_get_number_of_video_item_by_type();
+       }
+
+       mp_personal_ctrl_show
+               (g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved,
+                nPersonalListSize, g_pListPersonalViewHandle->nViewStyle,
+                g_pListPersonalViewHandle->bFolderMove,
+                mp_personal_view_done_delete_complete, NULL);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_personal_view_check_box_changed_cb(void *pUserData,
+                                                                                                       Evas_Object * pObject,
+                                                                                                       void *pEventInfo)
+{
+       if (!pObject) {
+               VideoLogError("[ERR] pObject is NULL.");
+               return;
+       }
+       if (!g_pListPersonalViewHandle) {
+               VideoLogError("[ERR] g_pMainViewHandle is NULL.");
+               return;
+       }
+
+       g_pListPersonalViewHandle->bCheckBoxState =
+               elm_check_state_get(pObject);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_personal_view_run_delete_items_cb(void *pUserData,
+                                                                                                  Evas_Object * pObject,
+                                                                                                  void *pEventInfo)
+{
+       if (!g_pListPersonalViewHandle) {
+               VideoLogError("[ERR] g_pMainViewHandle is NULL.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       if (!g_pListPersonalViewHandle->pVideosGenlist) {
+               VideoLogError("No exist genlist object.");
+               return;
+       }
+
+       if (g_pListPersonalViewHandle->nSelectCounterForEditList > 0) {
+               int nPersonalListSize = 0;
+               if (g_pListPersonalViewHandle->bFolderMove) {
+                       nPersonalListSize = mp_util_svc_get_video_folder_size();
+               } else {
+                       nPersonalListSize =
+                               mp_util_svc_get_number_of_video_item_by_type();
+               }
+               bool bAskedState = FALSE;
+               mp_personal_view_get_vconf_asked_state(&bAskedState);
+               VideoLogError("bAskedState %d", bAskedState);
+
+               if (g_pListPersonalViewHandle->nViewStyle == 1 && (!bAskedState)) {
+                       char *szCheckLable = NULL;
+                       if (nPersonalListSize > 1) {
+                               szCheckLable =
+                                       g_strdup_printf(MP_PERSONAL_ITEMS_MOVE_TO,
+                                                                       VIDEO_DOWNLOAD_FILE_DIR);
+                       } else {
+                               szCheckLable =
+                                       g_strdup_printf(MP_PERSONAL_ITEM_MOVE_TO,
+                                                                       VIDEO_DOWNLOAD_FILE_DIR);
+                       }
+                       mp_util_text_and_check_popup
+                               (__mp_personal_view_ask_remove_back_cb,
+                                __mp_personal_view_ask_remove_back_cb,
+                                __mp_personal_view_ask_remove_ok_cb,
+                                __mp_personal_view_check_box_changed_cb, szCheckLable,
+                                NULL);
+                       MP_FREE_STRING(szCheckLable);
+               } else {
+                       mp_personal_ctrl_show
+                               (g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved,
+                                nPersonalListSize, g_pListPersonalViewHandle->nViewStyle,
+                                g_pListPersonalViewHandle->bFolderMove,
+                                mp_personal_view_done_delete_complete, NULL);
+               }
+       }
+}
+
+ /**/
+/*//////////////////////////////////////////////*/
+/*//////////////////////////////////////////////*/
+/* Back button*/
+/**
+ *
+ * @param pUserData
+ * @param obj
+ * @param event_info
+ */
+static void __mp_personal_view_trans_finished_cb(void *pUserData,
+                                                                                                Evas_Object * obj,
+                                                                                                void *event_info)
+{
+       if (!obj) {
+               VideoLogError("[ERR] g_pListPersonalViewHandle is NULL.");
+               return;
+       }
+
+       mp_widget_ctrl_enable_navi_handle_focus(obj);
+
+       evas_object_smart_callback_del(obj, "transition,finished",
+                                                                  __mp_personal_view_trans_finished_cb);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+static Eina_Bool mp_personal_view_back_btn_cb(void *pUserData,
+                                                                                         Elm_Object_Item * pItem)
+{
+       if (!g_pListPersonalViewHandle) {
+               VideoLogInfo("[ERR] g_pListPersonalViewHandle is NULL.");
+               return EINA_TRUE;
+       }
+       /* Register transition finished callback. */
+       mp_widget_ctrl_disable_navi_handle_focus_except_item
+               (g_pListPersonalViewHandle->pNaviFrameHandle,
+                g_pListPersonalViewHandle->pNaviFrameItem);
+       evas_object_smart_callback_add
+               (g_pListPersonalViewHandle->pNaviFrameHandle,
+                "transition,finished", __mp_personal_view_trans_finished_cb,
+                NULL);
+
+       mp_personal_view_pop();
+
+       return EINA_TRUE;
+}
+
+/**
+ *
+ */
+void mp_personal_view_change_title_info(void)
+{
+       VideoLogInfo("nNumOfSelectdCount : %d",
+                                g_pListPersonalViewHandle->nSelectCounterForEditList);
+
+       if (g_pListPersonalViewHandle->nSelectCounterForEditList > 0) {
+               elm_object_disabled_set(g_pListPersonalViewWidget->pSavebtn,
+                                                               EINA_FALSE);
+       } else {
+               VideoLogInfo("Unactivate delete tab.");
+               elm_object_disabled_set(g_pListPersonalViewWidget->pSavebtn,
+                                                               EINA_TRUE);
+       }
+
+       char *szCheckingTotalItem =
+               g_strdup_printf(VIDEOS_SELECTVIEW_HEADER_PD_SELECTED,
+                                               g_pListPersonalViewHandle->nSelectCounterForEditList);
+       elm_object_item_domain_translatable_part_text_set
+               (g_pListPersonalViewHandle->pNaviFrameItem, "elm.text.title",
+                PACKAGE, szCheckingTotalItem);
+       MP_FREE_STRING(szCheckingTotalItem);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_personal_view_select_all_change_check_box_cb(void
+                                                                                                                         *pUserData,
+                                                                                                                         Evas_Object *
+                                                                                                                         pObject,
+                                                                                                                         void
+                                                                                                                         *pEventInfo)
+{
+       if (!pObject) {
+               VideoLogError("[ERR]");
+               return;
+       }
+
+       if (!g_pListPersonalViewHandle->pVideosGenlist) {
+               VideoLogError("No exist pVideoGenlist");
+               return;
+       }
+
+       int nCounter = 0;
+       int nPersonalListSize = 0;
+       if (g_pListPersonalViewHandle->bFolderMove) {
+               nPersonalListSize = mp_util_svc_get_video_folder_size();
+       } else {
+               nPersonalListSize = mp_util_svc_get_number_of_video_item_by_type();
+       }
+       VideoLogInfo("nPersonalListSize : %d", nPersonalListSize);
+
+       if (!g_pListPersonalViewHandle->bSelectallCheckBoxState) {
+               g_pListPersonalViewHandle->bSelectallCheckBoxState = TRUE;
+               g_pListPersonalViewHandle->nSelectCounterForEditList =
+                       nPersonalListSize;
+       } else {
+               g_pListPersonalViewHandle->bSelectallCheckBoxState = FALSE;
+               g_pListPersonalViewHandle->nSelectCounterForEditList = 0;
+
+               VideoLogInfo("Unactivate delete tab.");
+               elm_object_disabled_set(g_pListPersonalViewWidget->pSavebtn,
+                                                               EINA_TRUE);
+       }
+       mp_personal_view_change_title_info();
+
+       for (nCounter = 0; nCounter < nPersonalListSize; nCounter++) {
+               g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+                       [nCounter] =
+                       g_pListPersonalViewHandle->bSelectallCheckBoxState;
+       }
+
+       mp_personal_view_update_all_check_box();
+}
+
+/**
+ *
+ */
+void mp_personal_view_delete_select_all(void)
+{
+       VideoLogInfo("");
+
+       g_pListPersonalViewHandle->bSelectallCheckBoxState = FALSE;
+       g_pListPersonalViewHandle->nSelectCounterForEditList = 0;
+
+       mp_personal_view_change_title_info();
+}
+
+/*//////////////////////////////////////////////////*/
+
+/*//////////////////////////////////////////////////*/
+/* Check box callback*/
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_personal_view_change_check_box_state_cb(void *pUserData,
+                                                                                               Evas_Object * pObject,
+                                                                                               void *pEventInfo)
+{
+       if (!pObject) {
+               VideoLogInfo("[ERR]");
+               return;
+       } else {
+               VideoLogInfo("pObject : %x", pObject);
+       }
+
+       int nVideoItemIndex = (int) pUserData;
+       int nPersonalListSize = 0;
+       if (g_pListPersonalViewHandle->bFolderMove) {
+               nPersonalListSize = mp_util_svc_get_video_folder_size();
+       } else {
+               nPersonalListSize = mp_util_svc_get_number_of_video_item_by_type();
+       }
+       bool bState = elm_check_state_get(pObject);
+
+       VideoLogInfo("Check box - Index : %d, List Size : %d",
+                                nVideoItemIndex, nPersonalListSize);
+
+       VideoLogInfo("BEFORE : nSelectCounterForEditList : %d",
+                                g_pListPersonalViewHandle->nSelectCounterForEditList);
+
+       if (bState) {
+               g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+                       [nVideoItemIndex] = TRUE;
+               g_pListPersonalViewHandle->nSelectCounterForEditList++;
+               if (nPersonalListSize ==
+                       g_pListPersonalViewHandle->nSelectCounterForEditList) {
+                       VideoLogInfo("All check box of edit list state are true.");
+                       g_pListPersonalViewHandle->bSelectallCheckBoxState = TRUE;
+               }
+       } else {
+               g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+                       [nVideoItemIndex] = FALSE;
+               if (nPersonalListSize ==
+                       g_pListPersonalViewHandle->nSelectCounterForEditList) {
+                       VideoLogInfo("All check box of edit list state are not true.");
+                       g_pListPersonalViewHandle->bSelectallCheckBoxState = FALSE;
+               }
+
+               g_pListPersonalViewHandle->nSelectCounterForEditList--;
+               if (g_pListPersonalViewHandle->nSelectCounterForEditList < 1) {
+                       VideoLogInfo("Unactivate delete button.");
+                       elm_object_disabled_set(g_pListPersonalViewWidget->pSavebtn,
+                                                                       EINA_TRUE);
+               }
+       }
+       elm_check_state_set(g_pListPersonalViewWidget->pSelectallbtn,
+                                               g_pListPersonalViewHandle->bSelectallCheckBoxState);
+       mp_personal_view_change_title_info();
+}
+
+ /**/
+/*//////////////////////////////////////////////////*/
+/*//////////////////////////////////////////////*/
+/* Genlist callback*/
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_personal_view_naviframe_transition_effect_cb(void *pUserData,
+                                                                                                        Evas_Object *
+                                                                                                        pObject,
+                                                                                                        void *pEventInfo)
+{
+       if (!g_pListPersonalViewHandle) {
+               VideoLogError("[ERR] No exist g_pListPersonalViewHandle.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       Evas_Object *pTmpContents = NULL;
+       Elm_Object_Item *pTmpItem = NULL;
+
+       if (!g_pListPersonalViewHandle->pNaviFrameHandle) {
+               VideoLogError("[ERR] No exist naviframe handle.");
+               return;
+       }
+
+       pTmpItem =
+               elm_naviframe_top_item_get
+               (g_pListPersonalViewHandle->pNaviFrameHandle);
+       pTmpContents = elm_object_item_content_get(pTmpItem);
+       if (pTmpContents) {
+               if (pTmpContents == g_pListPersonalViewWidget->pVideoListBox) {
+               } else {
+                       VideoLogInfo
+                               ("It's not pPersonalViewTabbarLayout in top screen.");
+               }
+       } else {
+               VideoLogError("[ERR] No exist naviframe top item.");
+       }
+}
+
+/**
+ *
+ */
+void mp_personal_view_double_tap_cb(void)
+{
+       if (!g_pListPersonalViewHandle->pVideosGenlist) {
+               VideoLogError("pVideosGenlist is not exist.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       elm_genlist_item_bring_in(elm_genlist_first_item_get
+                                                         (g_pListPersonalViewHandle->pVideosGenlist),
+                                                         ELM_GENLIST_ITEM_SCROLLTO_TOP);
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+char *mp_personal_view_get_duration_time(int nVideoItemIndex)
+{
+       VideoLogInfo("");
+
+       char szTmpStr[STR_LEN_MAX] = { 0, };
+       char szTmpStrDurationTime[STR_LEN_MAX] = { 0, };
+       char szTmpStrLastPlayedPos[STR_LEN_MAX] = { 0, };
+
+       unsigned int nVideoInfoDuration =
+               mp_util_svc_get_video_duration_time(nVideoItemIndex);
+       unsigned int nVideoInfoLastTime = 0;
+
+       mp_util_convert_time(nVideoInfoDuration, szTmpStrDurationTime, FALSE);
+       mp_util_convert_time(nVideoInfoLastTime, szTmpStrLastPlayedPos, TRUE);
+
+       snprintf(szTmpStr, STR_LEN_MAX, "%s/%s", szTmpStrLastPlayedPos,
+                        szTmpStrDurationTime);
+
+       return strdup(szTmpStr);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_personal_view_select_video_item_cb(void *pUserData,
+                                                                                  Evas_Object * pObject,
+                                                                                  void *pEventInfo)
+{
+       if (!g_pListPersonalViewHandle->pVideosGenlist) {
+               VideoLogInfo("No exist genlist object.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       int nVideoItemIndex = 0;
+
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+
+       if (pItem) {
+               nVideoItemIndex = (int) elm_object_item_data_get(pItem);
+               VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+               int nPersonalListSize = 0;
+               if (g_pListPersonalViewHandle->bFolderMove) {
+                       nPersonalListSize = mp_util_svc_get_video_folder_size();
+               } else {
+                       nPersonalListSize =
+                               mp_util_svc_get_number_of_video_item_by_type();
+               }
+
+               if (g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+                       [nVideoItemIndex]) {
+                       g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+                               [nVideoItemIndex] = FALSE;
+                       if (nPersonalListSize ==
+                               g_pListPersonalViewHandle->nSelectCounterForEditList) {
+                               VideoLogInfo
+                                       ("All check box of edit list state are not true.");
+                               g_pListPersonalViewHandle->bSelectallCheckBoxState = FALSE;
+                       }
+
+                       g_pListPersonalViewHandle->nSelectCounterForEditList--;
+                       if (g_pListPersonalViewHandle->nSelectCounterForEditList < 1) {
+                               VideoLogInfo("Unactivate delete button.");
+                               elm_object_disabled_set
+                                       (g_pListPersonalViewWidget->pSavebtn, EINA_TRUE);
+                       }
+               } else {
+                       g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+                               [nVideoItemIndex] = TRUE;
+                       g_pListPersonalViewHandle->nSelectCounterForEditList++;
+                       if (nPersonalListSize ==
+                               g_pListPersonalViewHandle->nSelectCounterForEditList) {
+                               VideoLogInfo("All check box of edit list state are true.");
+                               g_pListPersonalViewHandle->bSelectallCheckBoxState = TRUE;
+                       }
+               }
+               elm_check_state_set(g_pListPersonalViewWidget->pSelectallbtn,
+                                                       g_pListPersonalViewHandle->bSelectallCheckBoxState);
+               mp_personal_view_change_title_info();
+               Evas_Object *check_box =
+                       elm_object_item_part_content_get(pItem, "elm.edit.icon.1");
+               if (check_box) {
+                       elm_check_state_set(check_box,
+                                                               g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+                                                               [nVideoItemIndex]);
+               }
+       } else {
+               VideoLogError("[ERR]Error item number.");
+       }
+
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+char *mp_personal_view_get_label_of_video_item_cb(const void *pUserData,
+                                                                                                 Evas_Object * pObject,
+                                                                                                 const char *pPart)
+{
+       int nVideoItemIndex = (int) pUserData;
+
+       if (!strcmp(pPart, "elm.text.1")) {
+               char *szTitle;
+               szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+               char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+               if (szTitle) {
+                       free(szTitle);
+                       szTitle = NULL;
+               }
+
+               return szTitleUtf8;
+       } else if (!strcmp(pPart, "elm.text.2")) {
+               return mp_util_svc_get_duration_str_time(nVideoItemIndex);
+       }
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+char *mp_personal_view_get_label_of_folder_cb(const void *pUserData,
+                                                                                         Evas_Object * pObject,
+                                                                                         const char *pPart)
+{
+       int nFolderItemIndex = (int) pUserData;
+
+       if (!strcmp(pPart, "elm.text.1")) {
+               char *szTitle = NULL;
+               szTitle = mp_util_svc_get_video_folder_name(nFolderItemIndex);
+
+               char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+               MP_FREE_STRING(szTitle);
+               return szTitleUtf8;
+       } else if (!strcmp(pPart, "elm.text.2")) {
+               char *szFolderPath = NULL;
+               szFolderPath = mp_util_svc_get_video_folder_url(nFolderItemIndex);
+               char *pDes_path = mp_util_get_dir_by_path(szFolderPath);
+               MP_FREE_STRING(szFolderPath);
+               char *szFolderUtf8 = elm_entry_utf8_to_markup(pDes_path);
+               MP_FREE_STRING(pDes_path);
+               return szFolderUtf8;
+       } else {
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *mp_personal_view_get_icon_of_video_item_cb(const void
+                                                                                                               *pUserData,
+                                                                                                               Evas_Object *
+                                                                                                               pObject,
+                                                                                                               const char *pPart)
+{
+
+       int nVideoItemIndex = (int) pUserData;
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_IMAGE_NAME_EDJ);
+       free(path);
+       if (!strcmp(pPart, "elm.thumbnail.icon")) {
+               char *pThumbIconUri =
+                       mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+               Evas_Object *pBg = NULL;
+
+               if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+                       MP_FREE_STRING(pThumbIconUri);
+               }
+
+               pBg =
+                       mp_util_create_preload_image(pObject, pThumbIconUri,
+                                                                                VIDEO_ICON_WIDTH);
+               if (pBg)
+                       evas_object_show(pBg);
+
+               MP_FREE_STRING(pThumbIconUri);
+
+               return pBg;
+       } else if (!strcmp(pPart, "elm.progressbar.icon")) {
+                       return NULL;
+       } else if (!strcmp(pPart, "elm.lock.icon")) {
+               char *pVideoFile = mp_util_svc_get_video_url(nVideoItemIndex);
+               bool bRet = mp_util_check_video_personal_status((const char *)
+                                                                                                               pVideoFile);
+               MP_FREE_STRING(pVideoFile);
+               if (bRet) {
+                       Evas_Object *pLockIcon = elm_image_add(pObject);
+                       elm_image_file_set(pLockIcon, edj_path,
+                                                          VIDEO_LIST_VIEW_ICON_PERSONAL_LOCK);
+                       evas_object_size_hint_align_set(pLockIcon, EVAS_HINT_FILL,
+                                                                                       EVAS_HINT_FILL);
+                       evas_object_size_hint_weight_set(pLockIcon, EVAS_HINT_EXPAND,
+                                                                                        EVAS_HINT_EXPAND);
+                       evas_object_show(pLockIcon);
+                       return pLockIcon;
+               } else {
+                       return NULL;
+               }
+       } else if (!strcmp(pPart, "elm.edit.icon.1")) {
+               Evas_Object *pCheckBox = elm_check_add(pObject);
+               evas_object_propagate_events_set(pCheckBox, EINA_FALSE);
+               evas_object_smart_callback_add(pCheckBox, "changed",
+                                                                          mp_personal_view_change_check_box_state_cb,
+                                                                          pUserData);
+               elm_check_state_set(pCheckBox,
+                                                       g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+                                                       [nVideoItemIndex]);
+               elm_check_state_pointer_set(pCheckBox,
+                                                                       (Eina_Bool *) &
+                                                                       (g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+                                                                        [nVideoItemIndex]));
+
+               evas_object_show(pCheckBox);
+
+               return pCheckBox;
+       }
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *mp_personal_view_get_icon_of_folder_cb(const void *pUserData,
+                                                                                                       Evas_Object * pObject,
+                                                                                                       const char *pPart)
+{
+       int nFolderItemIndex = (int) pUserData;
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_IMAGE_NAME_EDJ);
+       free(path);
+       if (!strcmp(pPart, "elm.thumbnail.icon")) {
+               Evas_Object *pBg = elm_bg_add(pObject);
+               if (pBg) {
+                       elm_bg_load_size_set(pBg, VIDEO_ICON_WIDTH, VIDEO_ICON_HEIGHT);
+                       evas_object_size_hint_max_set(pBg, VIDEO_ICON_WIDTH,
+                                                                                 VIDEO_ICON_HEIGHT);
+                       evas_object_size_hint_weight_set(pBg, EVAS_HINT_EXPAND,
+                                                                                        EVAS_HINT_EXPAND);
+                       evas_object_size_hint_align_set(pBg, EVAS_HINT_FILL,
+                                                                                       EVAS_HINT_FILL);
+                       char *pFolderIconUri =
+                               mp_util_get_folder_icon_path(nFolderItemIndex);
+                       elm_bg_file_set(pBg, (const char *) pFolderIconUri, NULL);
+                       MP_FREE_STRING(pFolderIconUri);
+               }
+               return pBg;
+       } else if (!strcmp(pPart, "elm.lock.icon")) {
+               char *pFolderoFile =
+                       mp_util_svc_get_video_folder_url(nFolderItemIndex);
+               bool bRet = mp_util_check_video_personal_status((const char *)
+                                                                                                               pFolderoFile);
+               MP_FREE_STRING(pFolderoFile);
+               if (bRet) {
+                       Evas_Object *pLockIcon = elm_image_add(pObject);
+                       elm_image_file_set(pLockIcon, edj_path,
+                                                          VIDEO_LIST_VIEW_ICON_PERSONAL_LOCK);
+                       evas_object_size_hint_align_set(pLockIcon, EVAS_HINT_FILL,
+                                                                                       EVAS_HINT_FILL);
+                       evas_object_size_hint_weight_set(pLockIcon, EVAS_HINT_EXPAND,
+                                                                                        EVAS_HINT_EXPAND);
+                       evas_object_show(pLockIcon);
+                       return pLockIcon;
+               } else {
+                       return NULL;
+               }
+       } else if (!strcmp(pPart, "elm.edit.icon.1")) {
+               Evas_Object *pCheckBox = elm_check_add(pObject);
+               evas_object_propagate_events_set(pCheckBox, EINA_FALSE);
+               evas_object_smart_callback_add(pCheckBox, "changed",
+                                                                          mp_personal_view_change_check_box_state_cb,
+                                                                          pUserData);
+               elm_check_state_set(pCheckBox,
+                                                       g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+                                                       [nFolderItemIndex]);
+               elm_check_state_pointer_set(pCheckBox,
+                                                                       (Eina_Bool *) &
+                                                                       (g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+                                                                        [nFolderItemIndex]));
+
+               evas_object_show(pCheckBox);
+
+               return pCheckBox;
+       }
+       return NULL;
+}
+
+ /**/
+/*//////////////////////////////////////////////*/
+/**
+ *
+ * @return
+ */
+int mp_personal_view_get_sort_type(void)
+{
+       switch (mp_sort_ctrl_get_sort_state()) {
+
+       case MP_LIST_SORT_BY_RECENTLY_ADDED:
+               g_pListPersonalViewHandle->nSortType =
+                       MP_MEDIA_SORT_BY_RECENTLY_ADDED;
+               break;
+
+       case MP_LIST_SORT_BY_NAME:
+               g_pListPersonalViewHandle->nSortType = MP_MEDIA_SORT_BY_NAME;
+               break;
+       }
+
+       return g_pListPersonalViewHandle->nSortType;
+}
+
+/**
+ *
+ * @param pVideosGenlist
+ */
+void mp_personal_view_append_video_items(void *pVideosGenlist)
+{
+       int nIndex = 0;
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+       VideoPersonal_Itc.item_style = "video/edit_list";
+       VideoPersonal_Itc.func.text_get =
+               (void *) mp_personal_view_get_label_of_video_item_cb;
+       VideoPersonal_Itc.func.content_get =
+               (void *) mp_personal_view_get_icon_of_video_item_cb;
+       VideoPersonal_Itc.func.state_get = NULL;
+       VideoPersonal_Itc.func.del = NULL;
+
+       for (nIndex = 0; nIndex < nVideoListSize; nIndex++) {
+               elm_genlist_item_append(pVideosGenlist, &VideoPersonal_Itc,
+                                                               (void *) nIndex, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               mp_personal_view_select_video_item_cb,
+                                                               NULL);
+       }
+}
+
+/**
+ *
+ * @param pVideosGenlist
+ */
+void mp_personal_view_append_folder_items(void *pVideosGenlist)
+{
+       int nIndex = 0;
+       int nFolderListSize = mp_util_svc_get_video_folder_size();
+
+       FolderPersonal_Itc.item_style = "video/edit_folder";
+       FolderPersonal_Itc.func.text_get =
+               (void *) mp_personal_view_get_label_of_folder_cb;
+       FolderPersonal_Itc.func.content_get =
+               (void *) mp_personal_view_get_icon_of_folder_cb;
+       FolderPersonal_Itc.func.state_get = NULL;
+       FolderPersonal_Itc.func.del = NULL;
+
+       for (nIndex = 0; nIndex < nFolderListSize; nIndex++) {
+               elm_genlist_item_append(pVideosGenlist, &FolderPersonal_Itc,
+                                                               (void *) nIndex, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               mp_personal_view_select_video_item_cb,
+                                                               NULL);
+       }
+}
+
+/**
+ *
+ * @param nTotalSize
+ */
+void mp_personal_view_init_set_value(int nTotalSize)
+{
+       VideoLogInfo("");
+
+       if (g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved) {
+               free(g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved);
+               g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved = NULL;
+       }
+       if (nTotalSize > 0) {
+               g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved =
+                       (bool *) malloc(sizeof(bool) * nTotalSize);
+               memset(g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved,
+                          0, sizeof(bool) * nTotalSize);
+       }
+
+       g_pListPersonalViewHandle->bSelectallCheckBoxState = FALSE;
+}
+
+/**
+ *
+ */
+static void __mp_personal_view_get_folder_data(void)
+{
+       if (!g_pListPersonalViewHandle || !g_pListPersonalViewWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+       /*      int nViewType = mp_view_as_ctrl_get_type(); */
+       int nSortType = mp_personal_view_get_sort_type();
+
+       mp_util_svc_destory_video_folder_list();
+
+       if (g_pListPersonalViewHandle->nViewStyle == 0) {
+               mp_util_svc_extract_personal_video_folder_list(nSortType, 0);
+       } else {
+               mp_util_svc_extract_personal_video_folder_list(nSortType, 1);
+       }
+}
+
+/**
+ *
+ */
+static void __mp_personal_view_get_data(void)
+{
+       if (!g_pListPersonalViewHandle || !g_pListPersonalViewWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       int nSortType = mp_personal_view_get_sort_type();
+       int nViewType = mp_view_as_ctrl_get_type();
+       if ((nViewType == MP_LIST_VIEW_AS_FOLDER_LIST)
+               && (g_pListPersonalViewHandle->pFolderPath)) {
+               VideoSecureLogInfo("szFolderPath : %s",
+                                                  g_pListPersonalViewHandle->pFolderPath);
+               if (g_pListPersonalViewHandle->pFolderPath) {
+                       if (vp_file_exists(g_pListPersonalViewHandle->pFolderPath)) {
+                               /*update video-list */
+
+                               mp_util_svc_destory_video_item_list();
+                               if (g_pListPersonalViewHandle->nViewStyle == 0) {
+                                       mp_util_svc_extract_video_list_from_folder_by_personal
+                                               (g_pListPersonalViewHandle->pFolderPath,
+                                                nSortType, MP_LIST_VIEW_ALL, 0);
+                               } else {
+                                       mp_util_svc_extract_video_list_from_folder_by_personal
+                                               (g_pListPersonalViewHandle->pFolderPath,
+                                                nSortType, MP_LIST_VIEW_ALL, 1);
+                               }
+                       } else {
+                               VideoLogError("invalid path");
+                       }
+               }
+       } else {
+               mp_util_svc_destory_video_list();
+               if (g_pListPersonalViewHandle->nViewStyle == 0) {
+                       mp_util_svc_extract_video_list_by_personal(nSortType,
+                                                                                                          mp_view_ctrl_get_list_type
+                                                                                                          (), 0);
+               } else {
+                       mp_util_svc_extract_video_list_by_personal(nSortType,
+                                                                                                          mp_view_ctrl_get_list_type
+                                                                                                          (), 1);
+               }
+       }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *mp_personal_view_get_icon_of_no_folder_item_cb(const void
+                                                                                                                       *pUserData,
+                                                                                                                       Evas_Object *
+                                                                                                                       pObject,
+                                                                                                                       const char
+                                                                                                                       *pPart)
+{
+       VideoLogInfo("");
+
+       if (!strcmp(pPart, "elm.icon")) {
+               int width = 720 * elm_config_scale_get();
+               int height = 1100 * elm_config_scale_get();
+               Evas_Object *pNocontentsLayout = elm_layout_add(pObject);
+               elm_layout_theme_set(pNocontentsLayout, "layout", "nocontents",
+                                                        "video");
+               evas_object_size_hint_min_set(pNocontentsLayout, width, height);
+               elm_object_part_text_set(pNocontentsLayout, "elm.text",
+                                                                "No Folders");
+               evas_object_show(pNocontentsLayout);
+
+               return pNocontentsLayout;
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pVideosGenlist
+ */
+void mp_personal_view_append_no_personal_folder_items(void
+                                                                                                         *pVideosGenlist)
+{
+       VideoLogInfo("");
+
+       FolderPersonalNoItem_Itc.item_style = "video/1icon";
+       FolderPersonalNoItem_Itc.func.text_get = NULL;
+       FolderPersonalNoItem_Itc.func.content_get =
+               (void *) mp_personal_view_get_icon_of_no_folder_item_cb;
+       FolderPersonalNoItem_Itc.func.state_get = NULL;
+       FolderPersonalNoItem_Itc.func.del = NULL;
+       FolderPersonalNoItem_Itc.decorate_item_style = NULL;
+
+       elm_genlist_item_append(pVideosGenlist, &FolderPersonalNoItem_Itc,
+                                                       NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+}
+
+/**
+ *
+ * @param nItemSortType
+ * @param pVideosGenlist
+ * @param bNeedSvc
+ */
+void mp_personal_view_arrange_folder_list(int nItemSortType,
+                                                                                 void *pVideosGenlist,
+                                                                                 bool bNeedSvc)
+{
+       if (!g_pListPersonalViewWidget || !g_pListPersonalViewHandle) {
+               VideoLogError("No exist g_pRemoveListViewWidget.");
+               return;
+       }
+
+       if (!pVideosGenlist) {
+               VideoLogError("No exist genlist object.");
+               return;
+       }
+
+       int nFolderListSize = 0;
+
+       __mp_personal_view_get_folder_data();
+
+       nFolderListSize = mp_util_svc_get_video_folder_size();
+       VideoLogInfo("nFolderListSize : %d", nFolderListSize);
+       if (bNeedSvc) {
+               __mp_personal_view_update_selected_video_list();
+       } else {
+               mp_personal_view_init_set_value(nFolderListSize);
+       }
+
+       elm_genlist_clear(pVideosGenlist);
+
+       if (nFolderListSize > 0) {
+               mp_personal_view_append_folder_items(pVideosGenlist);
+       } else {
+               mp_personal_view_append_no_personal_folder_items(pVideosGenlist);
+       }
+
+       elm_genlist_decorate_mode_set(pVideosGenlist, EINA_TRUE);
+
+       evas_object_show(pVideosGenlist);
+}
+
+/**
+ *
+ * @param nItemSortType
+ * @param pVideosGenlist
+ * @param bNeedSvc
+ */
+void mp_personal_view_arrange_video_list(int nItemSortType,
+                                                                                void *pVideosGenlist,
+                                                                                bool bNeedSvc)
+{
+       if (!g_pListPersonalViewWidget || !g_pListPersonalViewHandle) {
+               VideoLogError("No exist g_pRemoveListViewWidget.");
+               return;
+       }
+
+       if (!pVideosGenlist) {
+               VideoLogError("No exist genlist object.");
+               return;
+       }
+
+       int nVideoListSize = 0;
+
+       __mp_personal_view_get_data();
+
+       nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+       if (bNeedSvc) {
+               __mp_personal_view_update_selected_video_list();
+       } else {
+               mp_personal_view_init_set_value(nVideoListSize);
+       }
+
+       elm_genlist_clear(pVideosGenlist);
+
+       if (nVideoListSize > 0) {
+               mp_personal_view_append_video_items(pVideosGenlist);
+       }
+
+       elm_genlist_decorate_mode_set(pVideosGenlist, EINA_TRUE);
+
+       evas_object_show(pVideosGenlist);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+Evas_Object *mp_personal_view_init_internal_layout(void *pParent)
+{
+       if (!pParent) {
+               VideoLogError("[ERR]");
+               return NULL;
+       }
+
+       VideoLogInfo("");
+
+       if (g_pListPersonalViewWidget->pPersonalViewBaselayout) {
+               evas_object_del
+                       (g_pListPersonalViewWidget->pPersonalViewBaselayout);
+               g_pListPersonalViewWidget->pPersonalViewBaselayout = NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_REMOVE_LIST_EDJ);
+       free(path);
+       g_pListPersonalViewWidget->pPersonalViewBaselayout =
+               elm_layout_add(pParent);
+       elm_layout_file_set(g_pListPersonalViewWidget->pPersonalViewBaselayout,
+                                               edj_path, REMOVE_LIST_EDJ_GROUP);
+       evas_object_size_hint_weight_set
+               (g_pListPersonalViewWidget->pPersonalViewBaselayout,
+                EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set
+               (g_pListPersonalViewWidget->pPersonalViewBaselayout,
+                EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       return g_pListPersonalViewWidget->pPersonalViewBaselayout;
+}
+
+/**
+ *
+ * @param nSelectedSize
+ * @return
+ */
+static bool __mp_personal_view_get_selected_video_list(int nSelectedSize)
+{
+       if (!g_pListPersonalViewHandle || !g_pListPersonalViewWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return FALSE;
+       }
+
+       int nVideoListSize = 0;
+
+       if (!g_pListPersonalViewHandle->nSelectCounterForEditList
+               || nSelectedSize < 1) {
+               return FALSE;
+       }
+
+       if (g_pListPersonalViewHandle->bFolderMove) {
+               nVideoListSize = mp_util_svc_get_video_folder_size();
+       } else {
+               nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       }
+
+       __mp_personal_view_free_selected_list();
+
+       int nIndex = 0;
+       int nCounter = 0;
+       char *pMediaId = NULL;
+
+       g_pListPersonalViewHandle->pSelectedList =
+               (char **) calloc(sizeof(char *), nSelectedSize);
+       VideoLogInfo("current edit size===%d", nSelectedSize);
+
+       if (g_pListPersonalViewHandle->pSelectedList == NULL) {
+               return FALSE;
+       }
+
+       for (nCounter = 0; nCounter < nVideoListSize; nCounter++) {
+               if (g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+                       [nCounter]) {
+                       if (g_pListPersonalViewHandle->bFolderMove) {
+                               pMediaId = mp_util_svc_get_video_folder_id(nCounter);
+                       } else {
+                               pMediaId = mp_util_svc_get_video_id_by_index(nCounter);
+                       }
+                       if (pMediaId != NULL) {
+                               g_pListPersonalViewHandle->pSelectedList[nIndex] =
+                                       strdup(pMediaId);
+                               MP_FREE_STRING(pMediaId);
+                               nIndex++;
+                       }
+               }
+       }
+       return TRUE;
+}
+
+/**
+ *
+ */
+static void __mp_personal_view_update_selected_video_list(void)
+{
+       if (!g_pListPersonalViewHandle || !g_pListPersonalViewWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       int nVideoListSize = 0;
+
+       MpMediaType eMediaType = MEDIA_TYPE_FILE;
+
+       if (g_pListPersonalViewHandle->bFolderMove) {
+               eMediaType = MEDIA_TYPE_DIRECTORY;
+               nVideoListSize = mp_util_svc_get_video_folder_size();
+       } else {
+               nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       }
+
+       int nIndex = 0;
+       int nCounter = 0;
+       bool bValidMedia = FALSE;
+       int nTotal = g_pListPersonalViewHandle->nSelectCounterForEditList;
+       VideoLogInfo("OldEditList ===%d", nTotal);
+       g_pListPersonalViewHandle->nSelectCounterForEditList = 0;
+       mp_personal_view_init_set_value(nVideoListSize);
+
+       if (!g_pListPersonalViewHandle->pSelectedList) {
+               return;
+       }
+
+       while ((nIndex < nTotal)
+                  && g_pListPersonalViewHandle->pSelectedList[nIndex]) {
+
+               bValidMedia =
+                       mp_util_svc_check_valid_media_id
+                       (g_pListPersonalViewHandle->pSelectedList[nIndex], eMediaType,
+                        &nCounter);
+               if (bValidMedia) {
+                       g_pListPersonalViewHandle->pCheckedItemsEditListForRemoved
+                               [nCounter] = TRUE;
+                       g_pListPersonalViewHandle->nSelectCounterForEditList++;
+               }
+               nIndex++;
+       }
+
+       mp_personal_view_change_title_info();
+
+       if (g_pListPersonalViewHandle->nSelectCounterForEditList > 0)
+               elm_object_disabled_set(g_pListPersonalViewWidget->pSavebtn,
+                                                               EINA_FALSE);
+       else
+               elm_object_disabled_set(g_pListPersonalViewWidget->pSavebtn,
+                                                               EINA_TRUE);
+
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __mp_personal_view_db_backup_cb(void *pUserData)
+{
+       if (!g_pListPersonalViewHandle) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+       __mp_personal_view_get_selected_video_list
+               (g_pListPersonalViewHandle->nSelectCounterForEditList);
+
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __mp_personal_view_db_changed_cb(void *pUserData)
+{
+       if (!g_pListPersonalViewHandle || !g_pListPersonalViewWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+       int nSortType = mp_personal_view_get_sort_type();
+       int nViewType = mp_view_as_ctrl_get_type();
+       if ((nViewType == MP_LIST_VIEW_AS_FOLDER_LIST)
+               && g_pListPersonalViewHandle->pFolderPath) {
+               if (g_pListPersonalViewHandle->pFolderPath) {
+                       VideoSecureLogInfo("szFolderPath : %s",
+                                                          g_pListPersonalViewHandle->pFolderPath);
+                       if (vp_file_exists(g_pListPersonalViewHandle->pFolderPath)) {
+                               /*update video-list */
+
+                               mp_util_svc_destory_video_item_list();
+                               if (g_pListPersonalViewHandle->nViewStyle == 0) {
+                                       mp_util_svc_extract_video_list_from_folder_by_personal
+                                               (g_pListPersonalViewHandle->pFolderPath,
+                                                nSortType, MP_LIST_VIEW_ALL, 0);
+                               } else {
+                                       mp_util_svc_extract_video_list_from_folder_by_personal
+                                               (g_pListPersonalViewHandle->pFolderPath,
+                                                nSortType, MP_LIST_VIEW_ALL, 1);
+                               }
+                               mp_personal_view_arrange_video_list(nSortType,
+                                                                                                       g_pListPersonalViewHandle->pVideosGenlist,
+                                                                                                       TRUE);
+                       } else {
+                               elm_naviframe_item_pop
+                                       (g_pListPersonalViewHandle->pNaviFrameHandle);
+                       }
+               }
+       } else if (g_pListPersonalViewHandle->bFolderMove) {
+               mp_util_svc_destory_video_folder_list();
+
+               if (g_pListPersonalViewHandle->nViewStyle == 0) {
+                       mp_util_svc_extract_personal_video_folder_list(nSortType, 0);
+               } else {
+                       mp_util_svc_extract_personal_video_folder_list(nSortType, 1);
+               }
+
+               int nFolderListSize = mp_util_svc_get_video_folder_size();
+
+               if (nFolderListSize > 0) {
+                       mp_personal_view_arrange_folder_list(nSortType,
+                                                                                                g_pListPersonalViewHandle->pVideosGenlist,
+                                                                                                TRUE);
+               } else {
+                       elm_naviframe_item_pop
+                               (g_pListPersonalViewHandle->pNaviFrameHandle);
+               }
+       } else {
+               mp_util_svc_destory_video_list();
+               if (g_pListPersonalViewHandle->nViewStyle == 0) {
+                       mp_util_svc_extract_video_list_by_personal(nSortType,
+                                                                                                          mp_view_ctrl_get_list_type
+                                                                                                          (), 0);
+               } else {
+                       mp_util_svc_extract_video_list_by_personal(nSortType,
+                                                                                                          mp_view_ctrl_get_list_type
+                                                                                                          (), 1);
+               }
+
+               int nVideoListSize =
+                       mp_util_svc_get_number_of_video_item_by_type();
+               VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+               if (nVideoListSize > 0) {
+                       mp_personal_view_arrange_video_list(nSortType,
+                                                                                               g_pListPersonalViewHandle->pVideosGenlist,
+                                                                                               TRUE);
+               } else {
+                       elm_naviframe_item_pop
+                               (g_pListPersonalViewHandle->pNaviFrameHandle);
+               }
+       }
+       Elm_Object_Item *pItem =
+               elm_genlist_first_item_get
+               (g_pListPersonalViewHandle->pVideosGenlist);
+       if (pItem) {
+               elm_genlist_item_bring_in(pItem, ELM_GENLIST_ITEM_SCROLLTO_IN);
+       }
+
+}
+
+/**
+ *
+ */
+static void __mp_personal_view_register_personal_vconf()
+{
+#ifndef        ENABLE_PERSONAL
+       return;
+#endif
+}
+
+/**
+ *
+ */
+static void __mp_personal_view_ignore_personal_vconf()
+{
+#ifndef        ENABLE_PERSONAL
+       return;
+#endif
+}
+
+/**
+ *
+ * @param data
+ * @param evas
+ * @param obj
+ * @param event_info
+ */
+static void __mp_personal_select_all_layout_down_cb(void *data,
+                                                                                                       Evas * evas,
+                                                                                                       Evas_Object * obj,
+                                                                                                       void *event_info)
+{
+       if (!g_pListPersonalViewHandle || !g_pListPersonalViewWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       Evas_Object *check =
+               elm_object_part_content_get
+               (g_pListPersonalViewWidget->pSelAllLayout, "elm.icon");
+       Eina_Bool state = elm_check_state_get(check);
+       elm_check_state_set(check, !state);
+       __mp_personal_view_select_all_change_check_box_cb(data, check, NULL);
+}
+
+/**
+ *
+ * @param pParent
+ */
+void mp_personal_view_init(void *pParent)
+{
+       if (!g_pListPersonalViewHandle || !g_pListPersonalViewWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       VideoLogInfo("");
+       g_pListPersonalViewWidget->pPersonalViewBaselayout =
+               mp_personal_view_init_internal_layout(pParent);
+       if (!g_pListPersonalViewWidget->pPersonalViewBaselayout) {
+               VideoLogError("pPersonalViewBaselayout is not existed.");
+               return;
+       }
+       evas_object_event_callback_add
+               (g_pListPersonalViewWidget->pPersonalViewBaselayout,
+                EVAS_CALLBACK_DEL, __mp_personal_view_base_layout_del_cb, NULL);
+
+       g_pListPersonalViewWidget->pVideoListBox =
+               elm_box_add(g_pListPersonalViewWidget->pPersonalViewBaselayout);
+       if (!g_pListPersonalViewWidget->pVideoListBox) {
+               VideoLogError("pVideoListBox is not existed.");
+               return;
+       }
+
+       evas_object_size_hint_weight_set
+               (g_pListPersonalViewWidget->pVideoListBox, EVAS_HINT_EXPAND,
+                EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set
+               (g_pListPersonalViewWidget->pVideoListBox, EVAS_HINT_FILL,
+                EVAS_HINT_FILL);
+
+       mp_widget_ctrl_create_select_all_layout
+               (g_pListPersonalViewWidget->pVideoListBox,
+                __mp_personal_view_select_all_change_check_box_cb,
+                __mp_personal_select_all_layout_down_cb, (void *)
+                g_pListPersonalViewWidget,
+                &g_pListPersonalViewWidget->pSelectallbtn,
+                &g_pListPersonalViewWidget->pSelAllLayout);
+
+       if (!g_pListPersonalViewWidget->pSelAllLayout) {
+               VideoLogError("pSelAllLayout is not existed.");
+               return;
+       }
+
+       elm_box_pack_start(g_pListPersonalViewWidget->pVideoListBox,
+                                          g_pListPersonalViewWidget->pSelAllLayout);
+
+       g_pListPersonalViewHandle->pVideosGenlist =
+               elm_genlist_add(g_pListPersonalViewWidget->pVideoListBox);
+       if (!g_pListPersonalViewHandle->pVideosGenlist) {
+               VideoLogError("pVideosGenlist is not existed.");
+               return;
+       }
+
+       elm_genlist_homogeneous_set(g_pListPersonalViewHandle->pVideosGenlist,
+                                                               EINA_TRUE);
+       evas_object_size_hint_weight_set
+               (g_pListPersonalViewHandle->pVideosGenlist, EVAS_HINT_EXPAND,
+                EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set
+               (g_pListPersonalViewHandle->pVideosGenlist, EVAS_HINT_FILL,
+                EVAS_HINT_FILL);
+       elm_genlist_block_count_set(g_pListPersonalViewHandle->pVideosGenlist,
+                                                               VIDEO_GENLIST_BLOCK_COUNT);
+
+       elm_genlist_mode_set(g_pListPersonalViewHandle->pVideosGenlist,
+                                                ELM_LIST_COMPRESS);
+       elm_box_pack_end(g_pListPersonalViewWidget->pVideoListBox,
+                                        g_pListPersonalViewHandle->pVideosGenlist);
+       elm_object_part_content_set
+               (g_pListPersonalViewWidget->pPersonalViewBaselayout,
+                SWALLOW_LISTVIEW_CONTENT,
+                g_pListPersonalViewWidget->pVideoListBox);
+
+       if (g_pListPersonalViewHandle->bFolderMove) {
+               VideoLogInfo("ArrangePersonalFolderList");
+               mp_personal_view_arrange_folder_list
+                       (mp_personal_view_get_sort_type(),
+                        g_pListPersonalViewHandle->pVideosGenlist, FALSE);
+       } else {
+               mp_personal_view_arrange_video_list(mp_personal_view_get_sort_type
+                                                                                       (),
+                                                                                       g_pListPersonalViewHandle->pVideosGenlist,
+                                                                                       FALSE);
+       }
+
+       char *szTitle = g_strdup_printf(VIDEOS_SELECTVIEW_HEADER_PD_SELECTED,
+                                                                       g_pListPersonalViewHandle->nSelectCounterForEditList);
+
+       g_pListPersonalViewHandle->pNaviFrameItem =
+               elm_naviframe_item_push
+               (g_pListPersonalViewHandle->pNaviFrameHandle, szTitle, NULL, NULL,
+                g_pListPersonalViewWidget->pPersonalViewBaselayout, NULL);
+       elm_object_item_domain_text_translatable_set
+               (g_pListPersonalViewHandle->pNaviFrameItem, VIDEOS_STRING,
+                EINA_TRUE);
+       elm_naviframe_item_pop_cb_set
+               (g_pListPersonalViewHandle->pNaviFrameItem,
+                mp_personal_view_back_btn_cb, g_pListPersonalViewHandle);
+
+       elm_naviframe_item_title_enabled_set
+               (g_pListPersonalViewHandle->pNaviFrameItem, EINA_TRUE, EINA_FALSE);
+       evas_object_smart_callback_add
+               (g_pListPersonalViewHandle->pNaviFrameHandle,
+                "transition,finished",
+                mp_personal_view_naviframe_transition_effect_cb, NULL);
+
+       g_pListPersonalViewWidget->pCancelbtn =
+               mp_widget_ctrl_create_navi_left_btn
+               (g_pListPersonalViewHandle->pNaviFrameHandle,
+                g_pListPersonalViewHandle->pNaviFrameItem, NULL,
+                __mp_personal_view_run_cancel_items_cb, (void *)
+                g_pListPersonalViewHandle);
+       g_pListPersonalViewWidget->pSavebtn =
+               mp_widget_ctrl_create_navi_right_btn
+               (g_pListPersonalViewHandle->pNaviFrameHandle,
+                g_pListPersonalViewHandle->pNaviFrameItem, NULL,
+                __mp_personal_view_run_delete_items_cb, (void *)
+                g_pListPersonalViewHandle);
+       elm_object_disabled_set(g_pListPersonalViewWidget->pSavebtn,
+                                                       EINA_TRUE);
+
+
+       evas_object_show(g_pListPersonalViewHandle->pVideosGenlist);
+       evas_object_show(g_pListPersonalViewWidget->pPersonalViewBaselayout);
+       __mp_personal_view_register_personal_vconf();
+       mp_util_db_set_update_fun(g_pListPersonalViewHandle->euLev,
+                                                         __mp_personal_view_db_changed_cb);
+       mp_util_db_set_backup_fun(g_pListPersonalViewHandle->euLev,
+                                                         __mp_personal_view_db_backup_cb);
+
+       MP_FREE_STRING(szTitle);
+       mp_util_hide_indicator();
+
+}
+
+/**
+ *
+ * @param pNaviFrame
+ * @param pChangeViewCb
+ * @param pFolderPath
+ * @param nViewStyle
+ */
+void mp_personal_view_push(void *pNaviFrame,
+                                                  ChangePersonalViewCbFunc pChangeViewCb,
+                                                  char *pFolderPath, int nViewStyle)
+{
+       VideoLogInfo("");
+       mp_personal_view_destroy();
+       g_pListPersonalViewHandle =
+               (st_VideoListPersonalViewHandle *) calloc(1,
+                                                                                                 sizeof
+                                                                                                 (st_VideoListPersonalViewHandle));
+       g_pListPersonalViewWidget =
+               (st_VideoListPersonalViewWidget *) calloc(1,
+                                                                                                 sizeof
+                                                                                                 (st_VideoListPersonalViewWidget));
+
+       memset(g_pListPersonalViewHandle, 0,
+                  sizeof(st_VideoListPersonalViewHandle));
+       memset(g_pListPersonalViewWidget, 0,
+                  sizeof(st_VideoListPersonalViewWidget));
+       mp_personal_view_reset_value();
+
+       g_pListPersonalViewHandle->pNaviFrameHandle = pNaviFrame;
+       g_pListPersonalViewHandle->pChangeViewUserCbFunc = pChangeViewCb;
+       if (pFolderPath) {
+               g_pListPersonalViewHandle->pFolderPath = strdup(pFolderPath);
+       }
+       g_pListPersonalViewHandle->nViewStyle = nViewStyle;
+       g_pListPersonalViewHandle->euLev = MP_DB_UPDATE_LEV_1;
+
+       int nViewType = mp_view_as_ctrl_get_type();
+       if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST
+               && g_pListPersonalViewHandle->pFolderPath) {
+               g_pListPersonalViewHandle->euLev = MP_DB_UPDATE_LEV_2;
+       }
+
+       if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST
+               && !g_pListPersonalViewHandle->pFolderPath) {
+               g_pListPersonalViewHandle->bFolderMove = TRUE;
+       } else {
+               g_pListPersonalViewHandle->bFolderMove = FALSE;
+       }
+
+       mp_personal_view_init(g_pListPersonalViewHandle->pNaviFrameHandle);
+}
+
+/**
+ *
+ */
+void mp_personal_view_update(void)
+{
+       if (!g_pListPersonalViewHandle || !g_pListPersonalViewWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       int nSortType = mp_personal_view_get_sort_type();
+       int nViewType = mp_view_as_ctrl_get_type();
+       if ((nViewType == MP_LIST_VIEW_AS_FOLDER_LIST)
+               && g_pListPersonalViewHandle->pFolderPath) {
+               if (g_pListPersonalViewHandle->pFolderPath) {
+                       VideoSecureLogInfo("szFolderPath : %s",
+                                                          g_pListPersonalViewHandle->pFolderPath);
+                       if (vp_file_exists(g_pListPersonalViewHandle->pFolderPath)) {
+                               /*update video-list */
+                               mp_util_svc_destory_video_item_list();
+                               if (g_pListPersonalViewHandle->nViewStyle == 0) {
+                                       mp_util_svc_extract_video_list_from_folder_by_personal
+                                               (g_pListPersonalViewHandle->pFolderPath,
+                                                nSortType, MP_LIST_VIEW_ALL, 0);
+                               } else {
+                                       mp_util_svc_extract_video_list_from_folder_by_personal
+                                               (g_pListPersonalViewHandle->pFolderPath,
+                                                nSortType, MP_LIST_VIEW_ALL, 1);
+                               }
+
+                               elm_genlist_clear
+                                       (g_pListPersonalViewHandle->pVideosGenlist);
+
+                               mp_personal_view_append_video_items
+                                       (g_pListPersonalViewHandle->pVideosGenlist);
+                       } else {
+                               elm_naviframe_item_pop
+                                       (g_pListPersonalViewHandle->pNaviFrameHandle);
+                       }
+               }
+       } else if (g_pListPersonalViewHandle->bFolderMove) {
+               mp_util_svc_destory_video_folder_list();
+
+               if (g_pListPersonalViewHandle->nViewStyle == 0) {
+                       mp_util_svc_extract_personal_video_folder_list(nSortType, 0);
+               } else {
+                       mp_util_svc_extract_personal_video_folder_list(nSortType, 1);
+               }
+
+               elm_genlist_clear(g_pListPersonalViewHandle->pVideosGenlist);
+
+               int nFolderListSize = mp_util_svc_get_video_folder_size();
+
+               if (nFolderListSize > 0) {
+                       mp_personal_view_append_folder_items
+                               (g_pListPersonalViewHandle->pVideosGenlist);
+               } else {
+                       elm_naviframe_item_pop
+                               (g_pListPersonalViewHandle->pNaviFrameHandle);
+               }
+       } else {
+               mp_util_svc_destory_video_list();
+               if (g_pListPersonalViewHandle->nViewStyle == 0) {
+                       mp_util_svc_extract_video_list_by_personal(nSortType,
+                                                                                                          mp_view_ctrl_get_list_type
+                                                                                                          (), 0);
+               } else {
+                       mp_util_svc_extract_video_list_by_personal(nSortType,
+                                                                                                          mp_view_ctrl_get_list_type
+                                                                                                          (), 1);
+               }
+
+               int nVideoListSize =
+                       mp_util_svc_get_number_of_video_item_by_type();
+
+               elm_genlist_clear(g_pListPersonalViewHandle->pVideosGenlist);
+
+               if (nVideoListSize > 0) {
+                       mp_personal_view_append_video_items
+                               (g_pListPersonalViewHandle->pVideosGenlist);
+               } else {
+                       elm_naviframe_item_pop
+                               (g_pListPersonalViewHandle->pNaviFrameHandle);
+               }
+       }
+
+}
+
+/**
+ *
+ */
+void mp_personal_view_pop(void)
+{
+       VideoLogInfo("");
+       if (!g_pListPersonalViewHandle || !g_pListPersonalViewWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       mp_util_db_reset_backup_fun_up_self(g_pListPersonalViewHandle->euLev);
+
+       if (g_pListPersonalViewHandle->pChangeViewUserCbFunc) {
+               g_pListPersonalViewHandle->pChangeViewUserCbFunc
+                       (LIST_UPDATE_TYPE_ALL);
+       }
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_personal_view_is_top_view(void)
+{
+       if (!g_pListPersonalViewHandle || !g_pListPersonalViewWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObject
+ * @param pEventInfo
+ */
+static void
+__mp_personal_view_base_layout_del_cb(void *pUserData, Evas * e,
+                                                                         Evas_Object * pObject,
+                                                                         void *pEventInfo)
+{
+       __mp_personal_view_reset();
+}
diff --git a/src/view/mp-video-list-remove-ctrl.c b/src/view/mp-video-list-remove-ctrl.c
new file mode 100755 (executable)
index 0000000..d1efb48
--- /dev/null
@@ -0,0 +1,379 @@
+/*
+ * Copyright (c) 2020 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 <app.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+
+
+#include "vp-play-log.h"
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-util-media-service.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-video-list-remove-ctrl.h"
+#include "mp-util-move.h"
+#include "vp-util.h"
+#include "vp-file-util.h"
+#include "mp-util-preference.h"
+#include "mp-util-config.h"
+
+typedef struct _MpRemoveVideoCtrl {
+       /*obj */
+       Evas_Object *pPopUpHandle;
+       Evas_Object *pProgressbar;
+
+       /*data */
+       Ecore_Idler *pDelIdler;
+       Ecore_Timer *pStartDelTimer;
+       Ecore_Timer *pFinishDelTimer;
+       ListRemoveCtrlCbFunc fDelCtrlUserCbFunc;
+
+       int nDelTotalItem;
+       int nDelCompltedItem;
+       int nDelEditListSize;
+       bool *pDelEditList;
+       bool bFolderDel;
+
+} stMpRemoveCtrl;
+
+
+static stMpRemoveCtrl *g_pRemoveCtrl = NULL;
+
+/*//////////////////////////////////////////////////////////*/
+/* Internal function*/
+/*//////////////////////////////////////////////////////////*/
+static void mp_remove_ctrl_button_popup_cb(void *pUserData,
+                                                                                  Evas_Object * pObject,
+                                                                                  void *pEventInfo);
+
+/**
+ *
+ */
+void mp_remove_ctrl_delete_popup_handle(void)
+{
+       VideoLogInfo("");
+       if (!g_pRemoveCtrl) {
+               VideoLogWarning("");
+               return;
+       }
+
+
+       MP_DEL_IDLER(g_pRemoveCtrl->pDelIdler);
+       MP_DEL_TIMER(g_pRemoveCtrl->pStartDelTimer);
+       MP_DEL_TIMER(g_pRemoveCtrl->pFinishDelTimer);
+
+       if (g_pRemoveCtrl->pPopUpHandle) {
+               eext_object_event_callback_del(g_pRemoveCtrl->pPopUpHandle,
+                                                                          EEXT_CALLBACK_BACK,
+                                                                          mp_remove_ctrl_button_popup_cb);
+               MP_DEL_OBJ(g_pRemoveCtrl->pPopUpHandle);
+       }
+       MP_FREE_STRING(g_pRemoveCtrl);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void mp_remove_ctrl_button_popup_cb(void *pUserData,
+                                                                                  Evas_Object * pObject,
+                                                                                  void *pEventInfo)
+{
+       VideoLogInfo("");
+       if (!g_pRemoveCtrl) {
+               VideoLogWarning("");
+               return;
+       }
+       mp_util_move_set_cancel_state(TRUE);
+       if (g_pRemoveCtrl->fDelCtrlUserCbFunc) {
+               g_pRemoveCtrl->fDelCtrlUserCbFunc();
+       }
+       mp_remove_ctrl_delete_popup_handle();
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __mp_remove_ctrl_finish_delete_timer_cb(void *pUserData)
+{
+       if (!g_pRemoveCtrl) {
+               VideoLogWarning("");
+               return FALSE;
+       }
+
+       g_pRemoveCtrl->pFinishDelTimer = NULL;
+       if (g_pRemoveCtrl->fDelCtrlUserCbFunc) {
+               g_pRemoveCtrl->fDelCtrlUserCbFunc();
+       }
+       mp_remove_ctrl_delete_popup_handle();
+
+       return FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool mp_remove_ctrl_delete_item_idler_cb(void *pUserData)
+{
+
+       if (!g_pRemoveCtrl) {
+               VideoLogWarning("");
+               return FALSE;
+       }
+
+       if (!g_pRemoveCtrl->pDelEditList) {
+               VideoLogError
+                       ("The userdata and g_pRemoveCtrl->pDelEditList is null.");
+               g_pRemoveCtrl->pDelIdler = NULL;
+               return FALSE;
+       }
+
+       VideoLogInfo("");
+
+       int nCounter = 0;
+       char *szMediaUrlForPreview = mp_util_config_get_preview();
+       VideoLogInfo("Media-Url For Preview : %s", szMediaUrlForPreview);
+       int nResult = 0;
+
+       for (nCounter = 0; nCounter < g_pRemoveCtrl->nDelEditListSize;
+                nCounter++) {
+               if (g_pRemoveCtrl->pDelEditList[nCounter]) {
+                       if (g_pRemoveCtrl->bFolderDel) {
+                               char *szFolderUrl =
+                                       mp_util_svc_get_video_folder_url(nCounter);
+                               if (szFolderUrl) {
+
+                                       nResult =
+                                               mp_util_move_delete_video_folder(szFolderUrl,
+                                                                                                                NULL);
+
+                                       if (szMediaUrlForPreview
+                                               &&
+                                               !mp_util_check_local_file_exist
+                                               (szMediaUrlForPreview)) {
+                                               mp_util_config_set_preview(NULL);
+                                               MP_FREE_STRING(szMediaUrlForPreview);
+                                       }
+                                       mp_util_svc_remove_folder_list_item_from_list
+                                               (nCounter);
+                                       MP_FREE_STRING(szFolderUrl);
+                                       if (nResult == 1) {
+                                               VideoLogInfo("cancel delete");
+                                               return FALSE;
+                                       }
+                               }
+                       } else {
+                               char *szFileUrl = mp_util_svc_get_video_url(nCounter);
+                               if (szFileUrl) {
+                                       if (szMediaUrlForPreview) {
+                                               if (!strcmp(szMediaUrlForPreview, szFileUrl)) {
+                                                       VideoLogInfo("Erase preview url.");
+                                                       mp_util_config_set_preview(NULL);
+                                               }
+                                       }
+                                       VideoLogInfo("Delete file url : %s", szFileUrl);
+                                       /* Now when the data is cloud data,Click delete button, Send remove request to cloud server,
+                                          then remove current item ,But Don't care of if this data is deleted from cloud server. */
+                                       unlink(szFileUrl);
+                                       MP_FREE_STRING(szFileUrl);
+
+                                       mp_util_svc_remove_item_by_list_index(nCounter);
+                               }
+
+                       }
+
+                       int nMoveItemCounter = 0;
+                       for (nMoveItemCounter = nCounter;
+                                nMoveItemCounter < g_pRemoveCtrl->nDelEditListSize - 1;
+                                nMoveItemCounter++) {
+                               g_pRemoveCtrl->pDelEditList[nMoveItemCounter] =
+                                       g_pRemoveCtrl->pDelEditList[nMoveItemCounter + 1];
+                       }
+                       g_pRemoveCtrl->nDelEditListSize--;
+
+                       ++g_pRemoveCtrl->nDelCompltedItem;
+                       break;
+               }
+       }
+       MP_FREE_STRING(szMediaUrlForPreview);
+
+       VideoLogInfo("nCompltedDeleteItem : %d",
+                                g_pRemoveCtrl->nDelCompltedItem);
+
+       double nDeleteRate =
+               ((double) g_pRemoveCtrl->nDelCompltedItem) /
+               ((double) g_pRemoveCtrl->nDelTotalItem);
+       VideoLogInfo
+               ("nDeleteRate:%f, nCompltedDeleteItem:%d, nTotalDeleteItem:%d",
+                nDeleteRate, g_pRemoveCtrl->nDelCompltedItem,
+                g_pRemoveCtrl->nDelTotalItem);
+       if (g_pRemoveCtrl->pProgressbar) {
+               elm_progressbar_value_set(g_pRemoveCtrl->pProgressbar,
+                                                                 nDeleteRate);
+       } else {
+               VideoLogInfo("No exist progress bar handle.");
+       }
+
+       if (g_pRemoveCtrl->nDelCompltedItem == g_pRemoveCtrl->nDelTotalItem) {
+               VideoLogInfo("nCompltedDeleteItem == nTotalDeleteItem");
+               MP_DEL_TIMER(g_pRemoveCtrl->pFinishDelTimer);
+               g_pRemoveCtrl->pDelIdler = NULL;
+               g_pRemoveCtrl->pFinishDelTimer =
+                       ecore_timer_add(0.1, __mp_remove_ctrl_finish_delete_timer_cb,
+                                                       pUserData);
+
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __mp_remove_ctrl_start_delete_timer_cb(void *pUserData)
+{
+       if (!g_pRemoveCtrl) {
+               VideoLogWarning("");
+               return FALSE;
+       }
+
+       g_pRemoveCtrl->pStartDelTimer = NULL;
+       g_pRemoveCtrl->pDelIdler =
+               ecore_idler_add(mp_remove_ctrl_delete_item_idler_cb, pUserData);
+       return FALSE;
+}
+
+
+/*//////////////////////////////////////////////////////////*/
+/* External function*/
+/*//////////////////////////////////////////////////////////*/
+
+/**
+ *
+ * @param pCheckedItemsEditList
+ * @param pCheckedItemsEditListSize
+ * @param pListRemoveCtrlCb
+ * @param bFolderDel
+ * @param pUserData
+ * @return
+ */
+bool mp_remove_ctrl_show(bool * pCheckedItemsEditList,
+                                                int pCheckedItemsEditListSize,
+                                                ListRemoveCtrlCbFunc pListRemoveCtrlCb,
+                                                bool bFolderDel, void *pUserData)
+{
+
+       if (!pCheckedItemsEditList) {
+               VideoLogError("No have popup message is null.");
+               return FALSE;
+       }
+
+       VideoLogInfo("pCheckedItemsEditListSize : %d",
+                                pCheckedItemsEditListSize);
+
+       mp_remove_ctrl_delete_popup_handle();
+       g_pRemoveCtrl = (stMpRemoveCtrl *) calloc(1, sizeof(stMpRemoveCtrl));
+       if (!g_pRemoveCtrl) {
+               VideoLogError("g_pRemoveCtrl is NULL");
+               return FALSE;
+       }
+
+
+       g_pRemoveCtrl->fDelCtrlUserCbFunc = pListRemoveCtrlCb;
+       g_pRemoveCtrl->nDelEditListSize = pCheckedItemsEditListSize;
+       g_pRemoveCtrl->pDelEditList = pCheckedItemsEditList;
+       g_pRemoveCtrl->bFolderDel = bFolderDel;
+
+       int nCounter = 0;
+       for (nCounter = 0; nCounter < g_pRemoveCtrl->nDelEditListSize;
+                nCounter++) {
+               if (g_pRemoveCtrl->pDelEditList[nCounter]) {
+                       char *szTitle = mp_util_svc_get_video_title(nCounter);
+                       VideoLogInfo(" Delete index - %d ; %s", nCounter, szTitle);
+                       MP_FREE_STRING(szTitle);
+
+                       ++g_pRemoveCtrl->nDelTotalItem;
+               }
+       }
+
+       VideoLogInfo("nTotalDeleteItem : %d", g_pRemoveCtrl->nDelTotalItem);
+
+       g_pRemoveCtrl->pPopUpHandle =
+               elm_popup_add(mp_util_get_main_window_handle());
+       evas_object_size_hint_weight_set(g_pRemoveCtrl->pPopUpHandle,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       eext_object_event_callback_add(g_pRemoveCtrl->pPopUpHandle,
+                                                                  EEXT_CALLBACK_BACK,
+                                                                  mp_remove_ctrl_button_popup_cb, NULL);
+
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ);
+       free(path);
+       Evas_Object *pPopupLayout =
+               elm_layout_add(g_pRemoveCtrl->pPopUpHandle);
+       elm_layout_file_set(pPopupLayout, edj_path,
+                                               "popup_text_progressbar_view_layout");
+       elm_object_part_text_set(pPopupLayout, "elm.text.description",
+                                                        VIDEOS_DELETEPOP_MSG_DELETING);
+       elm_object_part_text_set(pPopupLayout, "progress_text", "00/00");
+       evas_object_size_hint_weight_set(pPopupLayout, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_show(pPopupLayout);
+
+       Evas_Object *pProgressbar =
+               elm_progressbar_add(g_pRemoveCtrl->pPopUpHandle);
+       elm_object_style_set(pProgressbar, "wheel");
+       evas_object_size_hint_align_set(pProgressbar, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(pProgressbar, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       elm_progressbar_pulse(pProgressbar, EINA_TRUE);
+       elm_object_signal_emit(pProgressbar, "elm,units,show", "elm");
+       evas_object_show(pProgressbar);
+
+       elm_object_part_content_set(pPopupLayout, "progressbar", pProgressbar);
+
+       g_pRemoveCtrl->pProgressbar = pProgressbar;
+
+       elm_object_content_set(g_pRemoveCtrl->pPopUpHandle, pPopupLayout);
+       evas_object_data_set(g_pRemoveCtrl->pPopUpHandle, "progressbar",
+                                                pProgressbar);
+
+       evas_object_show(g_pRemoveCtrl->pPopUpHandle);
+
+       MP_DEL_TIMER(g_pRemoveCtrl->pStartDelTimer);
+       g_pRemoveCtrl->pStartDelTimer =
+               ecore_timer_add(0.3, __mp_remove_ctrl_start_delete_timer_cb,
+                                               pUserData);
+
+       return TRUE;
+}
diff --git a/src/view/mp-video-list-remove-view.c b/src/view/mp-video-list-remove-view.c
new file mode 100755 (executable)
index 0000000..e430362
--- /dev/null
@@ -0,0 +1,2815 @@
+/*
+ * Copyright (c) 2020 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 <Eina.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+#include <glib.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-external-ug.h"
+#include "mp-video-string-define.h"
+#include "mp-video-value-define.h"
+#include "mp-util-media-service.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-video-list-remove-ctrl.h"
+#include "mp-video-list-remove-view.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-video-list-view-item-of-folder.h"
+#include "mp-video-util-db-controller.h"
+#include "mp-util-widget-ctrl.h"
+#include "vp-file-util.h"
+#include "mp-rotate-ctrl.h"
+#include "videos-view-mgr.h"
+
+#define VIDEO_SELECTED_INFO_TIMER              4.0
+
+typedef struct {
+       void *pNaviFrameHandle;
+       void *pNaviFrameItem;
+       void *pObjVideosList;           //used for list view ,folder view,thumbnail view
+
+       Elm_Genlist_Item_Class *pGenListItc;
+       Elm_Genlist_Item_Class *pGenListLandscapeItc;
+       Elm_Gengrid_Item_Class *pGenGridItc_1;
+       Elm_Gengrid_Item_Class *pGenGridItc_2;
+       bool *pCheckedItemsEditListForRemoved;
+       char **pSelectedList;           //save selected video id
+       bool bSelectallCheckBoxState;
+       int nSelectCounterForEditList;
+       MpMediaSvcSortType nSortType;
+       ChangeListRemoveViewCbFunc pChangeViewUserCbFunc;       //view pop
+       ListRemoveViewCbFunc pChangeViewUpdateFunc;     //update main list
+       char *pFolderPath;
+       MpVideoListTabType eTabType;
+       MpDbUpdateViewLev euLev;
+       bool bUpdateList;
+       bool bFolderDel;
+#ifdef VS_FEATURE_THUMBNAIL_VIEW       //
+       bool bLandscape;
+       bool bThumbnailView;
+       bool update_view_data;
+#endif
+} st_VideoListRemoveViewHandle;
+
+typedef struct {
+       Evas_Object *pVideoListBox;
+       Evas_Object *pRemoveViewBaselayout;
+       Evas_Object *pSelectallbtn;
+       Evas_Object *pSelAllLayout;
+       Evas_Object *pSavebtn;
+       Evas_Object *pCancelbtn;
+
+       Ecore_Timer *pSelectedInfoLayoutTimer;
+} st_VideoListRemoveViewWidget;
+
+static st_VideoListRemoveViewHandle *g_pListRemoveViewHandle = NULL;
+static st_VideoListRemoveViewWidget *g_pListRemoveViewWidget = NULL;
+
+int getFolderCount = 0;
+bool folderStatus[1024] = { 0, };
+
+Eina_List *g_pSelectedList = NULL;
+
+// Pre define function
+int mp_remove_view_get_sort_type(void);
+static bool __mp_remove_view_arrange_video_list(void *pObjVideosList,
+                                                                                               MpVideoListTabType
+                                                                                               eTabType, bool bNeedSvc);
+static bool __mp_remove_view_arrange_folder_list(void *pObjVideosList,
+                                                                                                MpVideoListTabType
+                                                                                                eTabType, bool bNeedSvc);
+void mp_remove_view_naviframe_transition_effect_cb(void *pUserData,
+                                                                                                  Evas_Object * pObject,
+                                                                                                  void *pEventInfo);
+void mp_remove_view_change_title_info(void);
+static void __mp_remove_view_base_layout_del_cb(void *pUserData, Evas * e,
+                                                                                               Evas_Object * pObject,
+                                                                                               void *pEventInfo);
+static void __mp_remove_view_rotate_cb(void *data, Evas_Object * obj,
+                                                                          void *event_info);
+
+static bool __mp_remove_view_get_selected_video_list(int nSelectedSize);
+static void __mp_remove_view_update_selected_video_list(void);
+static void __mp_remove_view_update_remove_selected_file(char *path,
+                                                                                                                Eina_Bool add);
+static void __mp_remove_view_release_selected_list(void);
+static bool __mp_remove_view_is_selected_file(const char *path);
+
+/**
+ *
+ * @param path
+ * @return
+ */
+static bool __mp_remove_view_is_selected_file(const char *path)
+{
+       bool bSelected = FALSE;
+
+       Eina_List *l = NULL;
+       char *data;
+       EINA_LIST_FOREACH(g_pSelectedList, l, data) {
+               if (data && path && !strcmp(data, path)) {
+                       bSelected = TRUE;
+                       break;
+               }
+       }
+
+       return bSelected;
+}
+
+/**
+ *
+ */
+static void __mp_remove_view_free_selected_list(void)
+{
+       if (!g_pListRemoveViewHandle
+               || !g_pListRemoveViewHandle->pSelectedList) {
+               VideoLogInfo("Selected_list is already freed.");
+               return;
+       }
+       int nIndex = 0;
+       while (g_pListRemoveViewHandle->pSelectedList[nIndex]) {
+               nIndex++;
+               MP_FREE_STRING(g_pListRemoveViewHandle->pSelectedList[nIndex]);
+       }
+       MP_FREE_STRING(g_pListRemoveViewHandle->pSelectedList);
+
+//     __mp_remove_view_release_selected_list();
+}
+
+/**
+ *
+ */
+void mp_remove_view_update_all_check_box(void)
+{
+       VideoLogInfo("");
+
+       int nVideoListSize = 0;
+       if (LIST_TAB_TYPE_PERSONAL == g_pListRemoveViewHandle->eTabType) {
+               if (g_pListRemoveViewHandle->bFolderDel) {
+                       nVideoListSize = mp_util_svc_get_video_folder_size();
+               } else {
+                       nVideoListSize =
+                               mp_util_svc_get_number_of_video_item_by_type();
+               }
+       } else {
+               VideoLogError("Can't handle this eTabType!");
+       }
+
+       if (!g_pListRemoveViewHandle->pObjVideosList) {
+               VideoLogInfo("genlist is NULL");
+               return;
+       }
+       if (nVideoListSize < 1) {
+               VideoLogInfo("nVideoListSize < 1:%d", nVideoListSize);
+               return;
+       }
+
+       Evas_Object *check_box = NULL;
+       Evas_Object *check_box_layout = NULL;
+       Elm_Object_Item *currentItem = NULL;
+       Elm_Object_Item *currentItemGengrid = NULL;
+       int nVideoItemIndex = 0;
+#ifdef VS_FEATURE_THUMBNAIL_VIEW       //
+       if (g_pListRemoveViewHandle->bThumbnailView) {
+               currentItem =
+                       elm_genlist_first_item_get(g_pListRemoveViewHandle->
+                                                                          pObjVideosList);
+               nVideoItemIndex = 0;
+               while (currentItem && (nVideoItemIndex < nVideoListSize)) {
+                       Evas_Object *gengrid =
+                               elm_object_item_part_content_get(currentItem, "elm.icon");
+                       currentItemGengrid = elm_gengrid_first_item_get(gengrid);
+                       while (currentItemGengrid
+                                  && (nVideoItemIndex < nVideoListSize)) {
+                               Evas_Object *check_box =
+                                       elm_object_item_part_content_get(currentItemGengrid,
+                                                                                                        "elm.swallow.end");
+                               if (check_box) {
+                                       elm_check_state_set(check_box,
+                                                                               g_pListRemoveViewHandle->
+                                                                               pCheckedItemsEditListForRemoved
+                                                                               [nVideoItemIndex]);
+                               }
+                               currentItemGengrid =
+                                       elm_gengrid_item_next_get(currentItemGengrid);
+                               nVideoItemIndex++;
+                       }
+                       currentItem = elm_genlist_item_next_get(currentItem);
+               }
+
+       } else
+#endif
+       {
+               currentItem =
+                       elm_genlist_first_item_get(g_pListRemoveViewHandle->
+                                                                          pObjVideosList);
+               nVideoItemIndex = 0;
+               while (currentItem && (nVideoItemIndex < nVideoListSize)) {
+                       check_box_layout =
+                               elm_object_item_part_content_get(currentItem,
+                                                                                                "elm.icon.2");
+                       check_box =
+                               elm_object_part_content_get(check_box_layout,
+                                                                                       "elm.swallow.content");
+                       if (check_box) {
+                               elm_check_state_set(check_box,
+                                                                       g_pListRemoveViewHandle->
+                                                                       pCheckedItemsEditListForRemoved
+                                                                       [nVideoItemIndex]);
+                       }
+                       currentItem = elm_genlist_item_next_get(currentItem);
+                       nVideoItemIndex++;
+               }
+       }
+
+}
+
+/**
+ *
+ */
+void mp_remove_view_destroy(void)
+{
+       VideoLogInfo("");
+
+       if (g_pListRemoveViewHandle) {
+               evas_object_smart_callback_del(g_pListRemoveViewHandle->
+                                                                          pNaviFrameHandle,
+                                                                          "transition,finished",
+                                                                          mp_remove_view_naviframe_transition_effect_cb);
+               evas_object_smart_callback_del((Evas_Object *)
+                                                                          mp_util_get_main_window_handle(),
+                                                                          "wm,rotation,changed",
+                                                                          __mp_remove_view_rotate_cb);
+               __mp_remove_view_free_selected_list();
+               MP_DEL_ITC(g_pListRemoveViewHandle->pGenListItc);
+               MP_DEL_GRID_ITC(g_pListRemoveViewHandle->pGenGridItc_1);
+               MP_DEL_GRID_ITC(g_pListRemoveViewHandle->pGenGridItc_2);
+               MP_DEL_OBJ(g_pListRemoveViewHandle->pObjVideosList);
+               MP_FREE_STRING(g_pListRemoveViewHandle->
+                                          pCheckedItemsEditListForRemoved);
+               g_pListRemoveViewHandle->pChangeViewUserCbFunc = NULL;
+               g_pListRemoveViewHandle->pChangeViewUpdateFunc = NULL;
+               MP_FREE_STRING(g_pListRemoveViewHandle->pFolderPath);
+
+               free(g_pListRemoveViewHandle);
+               g_pListRemoveViewHandle = NULL;
+       }
+
+       if (g_pListRemoveViewWidget) {
+               MP_DEL_OBJ(g_pListRemoveViewWidget->pSelectallbtn);
+               MP_DEL_OBJ(g_pListRemoveViewWidget->pSavebtn);
+               MP_DEL_OBJ(g_pListRemoveViewWidget->pCancelbtn);
+               MP_DEL_OBJ(g_pListRemoveViewWidget->pSelAllLayout);
+               MP_DEL_OBJ(g_pListRemoveViewWidget->pVideoListBox);
+               MP_DEL_OBJ(g_pListRemoveViewWidget->pRemoveViewBaselayout);
+               MP_DEL_TIMER(g_pListRemoveViewWidget->pSelectedInfoLayoutTimer);
+               free(g_pListRemoveViewWidget);
+               g_pListRemoveViewWidget = NULL;
+       }
+}
+
+/**
+ *
+ */
+static void __mp_remove_view_reset(void)
+{
+       VideoLogInfo("");
+
+       if (g_pListRemoveViewHandle) {
+               mp_util_db_set_update_fun(g_pListRemoveViewHandle->euLev, NULL);
+               mp_util_db_set_backup_fun(g_pListRemoveViewHandle->euLev, NULL);
+               evas_object_smart_callback_del(g_pListRemoveViewHandle->
+                                                                          pNaviFrameHandle,
+                                                                          "transition,finished",
+                                                                          mp_remove_view_naviframe_transition_effect_cb);
+               evas_object_smart_callback_del((Evas_Object *)
+                                                                          mp_util_get_main_window_handle(),
+                                                                          "wm,rotation,changed",
+                                                                          __mp_remove_view_rotate_cb);
+               __mp_remove_view_free_selected_list();
+               g_pListRemoveViewHandle->pObjVideosList = NULL;
+               MP_DEL_ITC(g_pListRemoveViewHandle->pGenListItc);
+               MP_DEL_GRID_ITC(g_pListRemoveViewHandle->pGenGridItc_1);
+               MP_DEL_GRID_ITC(g_pListRemoveViewHandle->pGenGridItc_2);
+               MP_FREE_STRING(g_pListRemoveViewHandle->
+                                          pCheckedItemsEditListForRemoved);
+               g_pListRemoveViewHandle->pChangeViewUserCbFunc = NULL;
+               g_pListRemoveViewHandle->pChangeViewUpdateFunc = NULL;
+               MP_FREE_STRING(g_pListRemoveViewHandle->pFolderPath);
+
+               free(g_pListRemoveViewHandle);
+               g_pListRemoveViewHandle = NULL;
+       }
+
+       if (g_pListRemoveViewWidget) {
+
+               MP_DEL_OBJ(g_pListRemoveViewWidget->pSelectallbtn);
+               MP_DEL_OBJ(g_pListRemoveViewWidget->pCancelbtn);
+               MP_DEL_OBJ(g_pListRemoveViewWidget->pSavebtn);
+               g_pListRemoveViewWidget->pSelAllLayout = NULL;
+               if (g_pListRemoveViewWidget->pVideoListBox) {
+                       g_pListRemoveViewWidget->pVideoListBox = NULL;
+               }
+
+               if (g_pListRemoveViewWidget->pRemoveViewBaselayout) {
+                       g_pListRemoveViewWidget->pRemoveViewBaselayout = NULL;
+               }
+
+               MP_DEL_TIMER(g_pListRemoveViewWidget->pSelectedInfoLayoutTimer);
+
+               free(g_pListRemoveViewWidget);
+               g_pListRemoveViewWidget = NULL;
+       }
+}
+
+/**
+ *
+ */
+void mp_remove_view_reset_value(void)
+{
+       VideoLogInfo("");
+
+       if (!g_pListRemoveViewHandle) {
+               VideoLogError("[ERR] g_pListRemoveViewHandle is not existed.");
+               return;
+       }
+
+       g_pListRemoveViewHandle->pNaviFrameHandle = NULL;
+       g_pListRemoveViewHandle->pNaviFrameItem = NULL;
+       g_pListRemoveViewHandle->pChangeViewUserCbFunc = NULL;
+
+       g_pListRemoveViewHandle->bSelectallCheckBoxState = FALSE;
+       g_pListRemoveViewHandle->nSelectCounterForEditList = 0;
+       g_pListRemoveViewHandle->nSortType = MP_MEDIA_SORT_BY_RECENTLY_VIEWED;
+
+       if (g_pListRemoveViewHandle->pNaviFrameItem) {
+               elm_object_item_part_content_unset(g_pListRemoveViewHandle->
+                                                                                  pNaviFrameItem,
+                                                                                  "toolbar_more_btn");
+               elm_object_item_part_content_unset(g_pListRemoveViewHandle->
+                                                                                  pNaviFrameItem, "toolbar");
+               elm_object_item_part_content_unset(g_pListRemoveViewHandle->
+                                                                                  pNaviFrameItem,
+                                                                                  "toolbar_button2");
+       }
+}
+
+
+////////////////////////////////////////////////////
+// Remove items. (Below functions are about the item deletion to call by button of toolbar.)
+
+/**
+ *
+ */
+void mp_remove_view_done_delete_complete(void)
+{
+       __mp_remove_view_release_selected_list();
+       if (!g_pListRemoveViewHandle) {
+               VideoLogError("[ERR] g_pListRemoveViewHandle is NULL.");
+               return;
+       }
+       g_pListRemoveViewHandle->bUpdateList = TRUE;
+       VideoLogInfo("");
+       if (g_pListRemoveViewHandle->pNaviFrameHandle) {
+               elm_naviframe_item_pop(g_pListRemoveViewHandle->pNaviFrameHandle);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_remove_view_response_done_delete_items_popup_cb(void *pUserData,
+                                                                                                               Evas_Object *
+                                                                                                               pObject,
+                                                                                                               void *pEventInfo)
+{
+       if (!g_pListRemoveViewHandle) {
+               VideoLogError("[ERR] g_pListRemoveViewHandle is NULL.");
+               return;
+       }
+
+       __mp_remove_view_release_selected_list();
+       mp_util_delete_popup_handle();
+       g_pListRemoveViewHandle->bUpdateList = TRUE;
+       int nVideoListSize = 0;
+
+       if (LIST_TAB_TYPE_PERSONAL == g_pListRemoveViewHandle->eTabType) {
+               if (g_pListRemoveViewHandle->bFolderDel) {
+                       nVideoListSize = mp_util_svc_get_video_folder_size();
+               } else {
+                       nVideoListSize =
+                               mp_util_svc_get_number_of_video_item_by_type();
+               }
+               mp_remove_ctrl_show(g_pListRemoveViewHandle->
+                                                       pCheckedItemsEditListForRemoved,
+                                                       nVideoListSize,
+                                                       mp_remove_view_done_delete_complete,
+                                                       g_pListRemoveViewHandle->bFolderDel, NULL);
+       } else {
+               VideoLogError("Can't handle this eTabType!");
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_remove_view_response_cancel_delete_items_popup_cb(void *pUserData,
+                                                                                                                 Evas_Object *
+                                                                                                                 pObject,
+                                                                                                                 void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_util_delete_popup_handle();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_remove_view_HW_mouse_back_popup_cb(void *pUserData, Evas * pEvas,
+                                                                                  Evas_Object * pObject,
+                                                                                  void *pEventInfo)
+{
+       Evas_Event_Mouse_Up *pEvent = pEventInfo;
+       if (!pEvent) {
+               VideoLogWarning("[ERR] pEvent is NULL.");
+               return;
+       }
+
+       if (pEvent->button == 3) {
+               mp_util_delete_popup_handle();
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_remove_view_HW_key_back_popup_cb(void *pUserData, Evas * pEvas,
+                                                                                Evas_Object * pObject,
+                                                                                void *pEventInfo)
+{
+       Evas_Event_Key_Down *pEvent = pEventInfo;
+       if (!pEvent) {
+               VideoLogWarning("[ERR] pEvent is NULL.");
+               return;
+       }
+       if (!g_strcmp0(pEvent->keyname, "XF86Back")) {
+               mp_util_delete_popup_handle();
+       }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param emission
+ * @param source
+ */
+static void __mp_remove_view_run_cancel_items_cb(void *data,
+                                                                                                Evas_Object * obj,
+                                                                                                const char *emission,
+                                                                                                const char *source)
+{
+       if (!g_pListRemoveViewHandle->pNaviFrameHandle) {
+               VideoLogError("g_pListRemoveViewHandle->pNaviFrameHandle is NULL");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       elm_naviframe_item_pop(g_pListRemoveViewHandle->pNaviFrameHandle);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param emission
+ * @param source
+ */
+static void __mp_remove_view_run_delete_items_cb(void *data,
+                                                                                                Evas_Object * obj,
+                                                                                                const char *emission,
+                                                                                                const char *source)
+{
+       if (!g_pListRemoveViewHandle) {
+               VideoLogError("[ERR] g_pMainViewHandle is NULL.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       if (!g_pListRemoveViewHandle->pObjVideosList) {
+               VideoLogError("No exist genlist object.");
+               return;
+       }
+
+       int nSelectCounter =
+               g_pListRemoveViewHandle->nSelectCounterForEditList;
+
+       if (nSelectCounter > 0) {
+               MpListViewAsType type = mp_view_as_ctrl_get_type();
+               bool bItemFolderView = mp_folder_item_view_is_current_view();
+
+               if (type == MP_LIST_VIEW_AS_FOLDER_LIST && bItemFolderView) {
+                       type = MP_LIST_VIEW_AS_THUMBNAIL_LIST;
+               }
+
+               if (g_pListRemoveViewHandle->bSelectallCheckBoxState)
+                       mp_util_remove_all_videos_question_popup((void *) NULL, type,
+                                                                                                        mp_remove_view_response_done_delete_items_popup_cb,
+                                                                                                        mp_remove_view_response_cancel_delete_items_popup_cb,
+                                                                                                        mp_remove_view_HW_mouse_back_popup_cb,
+                                                                                                        mp_remove_view_HW_key_back_popup_cb);
+               else
+                       mp_util_remove_question_popup((-nSelectCounter), type,
+                                                                                 mp_remove_view_response_done_delete_items_popup_cb,
+                                                                                 mp_remove_view_response_cancel_delete_items_popup_cb,
+                                                                                 mp_remove_view_HW_mouse_back_popup_cb,
+                                                                                 mp_remove_view_HW_key_back_popup_cb);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param obj
+ * @param event_info
+ */
+static void __mp_remove_view_trans_finished_cb(void *pUserData,
+                                                                                          Evas_Object * obj,
+                                                                                          void *event_info)
+{
+       if (!obj) {
+               VideoLogError("[ERR] g_pListRemoveViewHandle is NULL.");
+               return;
+       }
+
+       mp_widget_ctrl_enable_navi_handle_focus(obj);
+
+       evas_object_smart_callback_del(obj, "transition,finished",
+                                                                  __mp_remove_view_trans_finished_cb);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+static Eina_Bool __mp_remove_view_back_btn_cb(void *pUserData,
+                                                                                         Elm_Object_Item * pItem)
+{
+       if (!g_pListRemoveViewHandle) {
+               VideoLogInfo("[ERR] g_pListRemoveViewHandle is NULL.");
+               return EINA_TRUE;
+       }
+       // Register transition finished callback.
+       mp_widget_ctrl_disable_navi_handle_focus_except_item
+               (g_pListRemoveViewHandle->pNaviFrameHandle,
+                g_pListRemoveViewHandle->pNaviFrameItem);
+       evas_object_smart_callback_add(g_pListRemoveViewHandle->
+                                                                  pNaviFrameHandle, "transition,finished",
+                                                                  __mp_remove_view_trans_finished_cb,
+                                                                  NULL);
+
+       mp_remove_view_pop();
+
+       return EINA_TRUE;
+}
+
+/**
+ *
+ */
+void mp_remove_view_change_title_info(void)
+{
+       VideoLogInfo("nNumOfSelectdCount : %d",
+                                g_pListRemoveViewHandle->nSelectCounterForEditList);
+
+       if (eina_list_count(g_pSelectedList) > 0) {
+               elm_object_disabled_set(g_pListRemoveViewWidget->pSavebtn,
+                                                               EINA_FALSE);
+       } else {
+               VideoLogInfo("Unactivate delete tab.");
+               elm_object_disabled_set(g_pListRemoveViewWidget->pSavebtn,
+                                                               EINA_TRUE);
+       }
+
+       char *szCheckingTotalItem =
+               g_strdup_printf(VIDEOS_SELECTVIEW_HEADER_PD_SELECTED,
+                                               eina_list_count(g_pSelectedList));
+       elm_object_item_domain_translatable_part_text_set
+               (g_pListRemoveViewHandle->pNaviFrameItem, "elm.text.title",
+                PACKAGE, szCheckingTotalItem);
+       MP_FREE_STRING(szCheckingTotalItem);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_remove_view_select_all_change_check_box_cb(void
+                                                                                                                       *pUserData,
+                                                                                                                       Evas_Object *
+                                                                                                                       pObject,
+                                                                                                                       void
+                                                                                                                       *pEventInfo)
+{
+       if (!pObject) {
+               VideoLogError("[ERR]");
+               return;
+       }
+
+       if (!g_pListRemoveViewHandle->pObjVideosList) {
+               VideoLogError("No exist pVideoGenlist");
+               return;
+       }
+
+       int nCounter = 0;
+       int nVideoListSize = 0;
+
+       if (LIST_TAB_TYPE_PERSONAL == g_pListRemoveViewHandle->eTabType) {
+               if (g_pListRemoveViewHandle->bFolderDel) {
+                       nVideoListSize = mp_util_svc_get_video_folder_size();
+               } else {
+                       nVideoListSize =
+                               mp_util_svc_get_number_of_video_item_by_type();
+               }
+
+       } else {
+               VideoLogError("Can't handle this eTabType!");
+       }
+
+       VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+
+       if (!g_pListRemoveViewHandle->bSelectallCheckBoxState) {
+               g_pListRemoveViewHandle->bSelectallCheckBoxState = TRUE;
+               g_pListRemoveViewHandle->nSelectCounterForEditList =
+                       nVideoListSize;
+       } else {
+               g_pListRemoveViewHandle->bSelectallCheckBoxState = FALSE;
+               g_pListRemoveViewHandle->nSelectCounterForEditList = 0;
+
+               VideoLogInfo("Unactivate delete tab.");
+               elm_object_disabled_set(g_pListRemoveViewWidget->pSavebtn,
+                                                               EINA_TRUE);
+       }
+
+       for (nCounter = 0; nCounter < nVideoListSize; nCounter++) {
+               g_pListRemoveViewHandle->
+                       pCheckedItemsEditListForRemoved[nCounter] =
+                       g_pListRemoveViewHandle->bSelectallCheckBoxState;
+
+               char *pMediaID = NULL;
+               if (g_pListRemoveViewHandle->bFolderDel) {
+                       pMediaID = mp_util_svc_get_video_folder_id(nCounter);
+               } else {
+                       pMediaID = mp_util_svc_get_video_id_by_index(nCounter);
+               }
+
+
+               __mp_remove_view_update_remove_selected_file(pMediaID,
+                                                                                                        g_pListRemoveViewHandle->
+                                                                                                        bSelectallCheckBoxState);
+       }
+       mp_remove_view_change_title_info();
+
+       mp_remove_view_update_all_check_box();
+
+}
+
+/**
+ *
+ */
+void mp_remove_view_delete_select_all(void)
+{
+       VideoLogInfo("");
+
+       g_pListRemoveViewHandle->bSelectallCheckBoxState = FALSE;
+       g_pListRemoveViewHandle->nSelectCounterForEditList = 0;
+
+       mp_remove_view_change_title_info();
+}
+
+////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////
+// Check box callback
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_remove_view_change_check_box_state_cb(void *pUserData,
+                                                                                         Evas_Object * pObject,
+                                                                                         void *pEventInfo)
+{
+       if (!pObject) {
+               VideoLogInfo("[ERR]");
+               return;
+       } else {
+               VideoLogInfo("pObject : %x", pObject);
+       }
+
+       int nVideoListSize = 0;
+       int nVideoItemIndex = 0;
+
+       if (LIST_TAB_TYPE_PERSONAL == g_pListRemoveViewHandle->eTabType) {
+               nVideoItemIndex = (int) pUserData;
+
+               if (g_pListRemoveViewHandle->bFolderDel) {
+                       nVideoListSize = mp_util_svc_get_video_folder_size();
+               } else {
+                       nVideoListSize =
+                               mp_util_svc_get_number_of_video_item_by_type();
+               }
+
+               VideoLogInfo("Check box - Index : %d, List Size : %d",
+                                        nVideoItemIndex, nVideoListSize);
+       } else {
+               VideoLogError("Can't handle this eTabType!");
+       }
+
+       bool bState = elm_check_state_get(pObject);
+
+       VideoLogInfo("BEFORE : nSelectCounterForEditList : %d",
+                                g_pListRemoveViewHandle->nSelectCounterForEditList);
+
+       if (bState) {
+               g_pListRemoveViewHandle->
+                       pCheckedItemsEditListForRemoved[nVideoItemIndex] = TRUE;
+               g_pListRemoveViewHandle->nSelectCounterForEditList++;
+               if (nVideoListSize ==
+                       g_pListRemoveViewHandle->nSelectCounterForEditList) {
+                       VideoLogInfo("All check box of edit list state are true.");
+                       g_pListRemoveViewHandle->bSelectallCheckBoxState = TRUE;
+               }
+       } else {
+               g_pListRemoveViewHandle->
+                       pCheckedItemsEditListForRemoved[nVideoItemIndex] = FALSE;
+               if (nVideoListSize ==
+                       g_pListRemoveViewHandle->nSelectCounterForEditList) {
+                       VideoLogInfo("All check box of edit list state are not true.");
+                       g_pListRemoveViewHandle->bSelectallCheckBoxState = FALSE;
+               }
+
+               g_pListRemoveViewHandle->nSelectCounterForEditList--;
+               if (g_pListRemoveViewHandle->nSelectCounterForEditList < 1) {
+                       VideoLogInfo("Unactivate delete button.");
+                       elm_object_disabled_set(g_pListRemoveViewWidget->pSavebtn,
+                                                                       EINA_TRUE);
+               }
+       }
+
+       elm_check_state_set(g_pListRemoveViewWidget->pSelectallbtn,
+                                               g_pListRemoveViewHandle->bSelectallCheckBoxState);
+       mp_remove_view_change_title_info();
+}
+
+//
+////////////////////////////////////////////////////
+
+////////////////////////////////////////////////
+// Genlist callback
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_remove_view_naviframe_transition_effect_cb(void *pUserData,
+                                                                                                  Evas_Object * pObject,
+                                                                                                  void *pEventInfo)
+{
+       if (!g_pListRemoveViewHandle) {
+               VideoLogError("[ERR] No exist g_pListRemoveViewHandle.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       Evas_Object *pTmpContents = NULL;
+       Elm_Object_Item *pTmpItem = NULL;
+
+       if (!g_pListRemoveViewHandle->pNaviFrameHandle) {
+               VideoLogError("[ERR] No exist naviframe handle.");
+               return;
+       }
+
+       pTmpItem =
+               elm_naviframe_top_item_get(g_pListRemoveViewHandle->
+                                                                  pNaviFrameHandle);
+       pTmpContents = elm_object_item_content_get(pTmpItem);
+       if (pTmpContents) {
+               if (pTmpContents == g_pListRemoveViewWidget->pVideoListBox) {
+               } else {
+                       VideoLogInfo
+                               ("It's not pListRemoveViewTabbarLayout in top screen.");
+               }
+       } else {
+               VideoLogError("[ERR] No exist naviframe top item.");
+       }
+}
+
+/**
+ *
+ */
+void mp_remove_view_double_tap_cb(void)
+{
+       if (!g_pListRemoveViewHandle->pObjVideosList) {
+               VideoLogError("pObjVideosList is not exist.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       elm_genlist_item_bring_in(elm_genlist_first_item_get
+                                                         (g_pListRemoveViewHandle->pObjVideosList),
+                                                         ELM_GENLIST_ITEM_SCROLLTO_TOP);
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+char *mp_remove_view_get_duration_time(int nVideoItemIndex)
+{
+       VideoLogInfo("");
+
+       char szTmpStr[STR_LEN_MAX] = { 0, };
+       char szTmpStrDurationTime[STR_LEN_MAX] = { 0, };
+       char szTmpStrLastPlayedPos[STR_LEN_MAX] = { 0, };
+
+       unsigned int nVideoInfoDuration =
+               mp_util_svc_get_video_duration_time(nVideoItemIndex);
+       unsigned int nVideoInfoLastTime = 0;
+
+       mp_util_convert_time(nVideoInfoDuration, szTmpStrDurationTime, FALSE);
+       mp_util_convert_time(nVideoInfoLastTime, szTmpStrLastPlayedPos, TRUE);
+
+       snprintf(szTmpStr, STR_LEN_MAX, "%s/%s", szTmpStrLastPlayedPos,
+                        szTmpStrDurationTime);
+
+       return strdup(szTmpStr);
+}
+
+#ifdef VS_FEATURE_LIST_VIEW
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_remove_folder_view_select_video_item_cb(void *pUserData,
+                                                                                                                Evas_Object *
+                                                                                                                pObject,
+                                                                                                                void *pEventInfo)
+{
+       if (!g_pListRemoveViewHandle->pObjVideosList) {
+               VideoLogInfo("No exist genlist object.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       int nVideoItemIndex = 0;
+
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+
+       if (pItem) {
+               int nVideoListSize = 0;
+               if (LIST_TAB_TYPE_PERSONAL == g_pListRemoveViewHandle->eTabType) {
+                       nVideoItemIndex = (int) elm_object_item_data_get(pItem);
+                       VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+                       if (g_pListRemoveViewHandle->bFolderDel) {
+                               nVideoListSize = mp_util_svc_get_video_folder_size();
+                       } else {
+                               nVideoListSize =
+                                       mp_util_svc_get_number_of_video_item_by_type();
+                       }
+               } else {
+                       VideoLogError("Can't handle this eTabType!");
+               }
+
+               if (g_pListRemoveViewHandle->
+                       pCheckedItemsEditListForRemoved[nVideoItemIndex]) {
+                       g_pListRemoveViewHandle->
+                               pCheckedItemsEditListForRemoved[nVideoItemIndex] = FALSE;
+                       if (nVideoListSize ==
+                               g_pListRemoveViewHandle->nSelectCounterForEditList) {
+                               VideoLogInfo
+                                       ("All check box of edit list state are not true.");
+                               g_pListRemoveViewHandle->bSelectallCheckBoxState = FALSE;
+                       }
+
+                       g_pListRemoveViewHandle->nSelectCounterForEditList--;
+                       if (g_pListRemoveViewHandle->nSelectCounterForEditList < 1) {
+                               VideoLogInfo("Unactivate delete button.");
+                               elm_object_disabled_set(g_pListRemoveViewWidget->pSavebtn,
+                                                                               EINA_TRUE);
+                       }
+               } else {
+                       g_pListRemoveViewHandle->
+                               pCheckedItemsEditListForRemoved[nVideoItemIndex] = TRUE;
+                       g_pListRemoveViewHandle->nSelectCounterForEditList++;
+                       if (nVideoListSize ==
+                               g_pListRemoveViewHandle->nSelectCounterForEditList) {
+                               VideoLogInfo("All check box of edit list state are true.");
+                               g_pListRemoveViewHandle->bSelectallCheckBoxState = TRUE;
+                       }
+               }
+
+               elm_check_state_set(g_pListRemoveViewWidget->pSelectallbtn,
+                                                       g_pListRemoveViewHandle->
+                                                       bSelectallCheckBoxState);
+               mp_remove_view_change_title_info();
+               Evas_Object *check_box_layout =
+                       elm_object_item_part_content_get(pItem, "elm.icon.2");
+               Evas_Object *check_box =
+                       elm_object_part_content_get(check_box_layout,
+                                                                               "elm.swallow.content");
+
+               if (check_box) {
+                       elm_check_state_set(check_box,
+                                                               g_pListRemoveViewHandle->
+                                                               pCheckedItemsEditListForRemoved
+                                                               [nVideoItemIndex]);
+               }
+
+       } else {
+               VideoLogError("[ERR]Error item number.");
+       }
+
+       if (pSelectedItem) {
+               VideoLogInfo("[INFORM] --pSelectedItem --");
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+}
+#endif
+
+/**
+ *
+ */
+static void __mp_remove_view_release_selected_list(void)
+{
+       char *data;
+       EINA_LIST_FREE(g_pSelectedList, data);
+       g_pSelectedList = NULL;
+}
+
+/**
+ *
+ */
+static void __mp_remove_view_validate_selected_list()
+{
+       Eina_List *l = NULL;
+       char *data;
+       int nIndex;
+
+       EINA_LIST_FOREACH(g_pSelectedList, l, data) {
+               if (!mp_util_svc_check_valid_media_id
+                       (data,
+                        g_pListRemoveViewHandle->
+                        bFolderDel ? MEDIA_TYPE_DIRECTORY : MEDIA_TYPE_FILE,
+                        &nIndex)) {
+                       VideoLogInfo("removing media as got deleted : %s", data);
+                       g_pSelectedList = eina_list_remove(g_pSelectedList, data);
+                       free(data);
+               }
+       }
+
+}
+
+/**
+ *
+ * @param path
+ * @param add
+ */
+static void __mp_remove_view_update_remove_selected_file(char *path,
+                                                                                                                Eina_Bool add)
+{
+       Eina_List *l = NULL;
+       char *data;
+       if (!add) {
+               EINA_LIST_FOREACH(g_pSelectedList, l, data) {
+                       if (data && path && !strcmp(data, path)) {
+                               g_pSelectedList = eina_list_remove(g_pSelectedList, data);
+                               free(data);
+                       }
+               }
+       } else {
+               bool exists = EINA_FALSE;
+               EINA_LIST_FOREACH(g_pSelectedList, l, data) {
+                       if (data && path && !strcmp(data, path)) {
+                               exists = EINA_TRUE;
+                               break;
+                       }
+               }
+
+               if (!exists) {
+                       g_pSelectedList = eina_list_append(g_pSelectedList, path);
+               }
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_remove_view_select_grid_item_cb(void *pUserData,
+                                                                                                Evas_Object * pObject,
+                                                                                                void *pEventInfo)
+{
+       if (!g_pListRemoveViewHandle->pObjVideosList) {
+               VideoLogInfo("No exist genlist object.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       int nVideoItemIndex = 0;
+
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+
+       if (pItem) {
+               int nVideoListSize = 0;
+               if (LIST_TAB_TYPE_PERSONAL == g_pListRemoveViewHandle->eTabType) {
+                       nVideoItemIndex = (int) elm_object_item_data_get(pItem);
+                       VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+                       if (g_pListRemoveViewHandle->bFolderDel) {
+                               nVideoListSize = mp_util_svc_get_video_folder_size();
+                       } else {
+                               nVideoListSize =
+                                       mp_util_svc_get_number_of_video_item_by_type();
+                       }
+               } else {
+                       VideoLogError("Can't handle this eTabType!");
+               }
+
+               char *pMediaID = NULL;
+               if (g_pListRemoveViewHandle->bFolderDel) {
+                       pMediaID = mp_util_svc_get_video_folder_id(nVideoItemIndex);
+               } else {
+                       pMediaID = mp_util_svc_get_video_id_by_index(nVideoItemIndex);
+               }
+
+
+               if (g_pListRemoveViewHandle->
+                       pCheckedItemsEditListForRemoved[nVideoItemIndex]) {
+                       g_pListRemoveViewHandle->
+                               pCheckedItemsEditListForRemoved[nVideoItemIndex] = FALSE;
+
+                       if (nVideoListSize ==
+                               g_pListRemoveViewHandle->nSelectCounterForEditList) {
+                               VideoLogInfo
+                                       ("All check box of edit list state are not true.");
+                               g_pListRemoveViewHandle->bSelectallCheckBoxState = FALSE;
+                       }
+
+                       g_pListRemoveViewHandle->nSelectCounterForEditList--;
+                       if (g_pListRemoveViewHandle->nSelectCounterForEditList < 1) {
+                               VideoLogInfo("Unactivate delete button.");
+                               elm_object_disabled_set(g_pListRemoveViewWidget->pSavebtn,
+                                                                               EINA_TRUE);
+
+                       }
+
+                       __mp_remove_view_update_remove_selected_file(pMediaID,
+                                                                                                                EINA_FALSE);
+
+               } else {
+                       g_pListRemoveViewHandle->
+                               pCheckedItemsEditListForRemoved[nVideoItemIndex] = TRUE;
+                       g_pListRemoveViewHandle->nSelectCounterForEditList++;
+                       if (nVideoListSize ==
+                               g_pListRemoveViewHandle->nSelectCounterForEditList) {
+                               VideoLogInfo("All check box of edit list state are true.");
+                               g_pListRemoveViewHandle->bSelectallCheckBoxState = TRUE;
+                       }
+                       __mp_remove_view_update_remove_selected_file(pMediaID,
+                                                                                                                EINA_TRUE);
+               }
+
+               elm_check_state_set(g_pListRemoveViewWidget->pSelectallbtn,
+                                                       g_pListRemoveViewHandle->
+                                                       bSelectallCheckBoxState);
+
+               mp_remove_view_change_title_info();
+
+               elm_gengrid_item_update(pItem);
+               //keep checkbox animation effect
+               elm_gengrid_item_selected_set(pItem, EINA_FALSE);
+       } else {
+               VideoLogError("[ERR]Error item number.");
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+char *mp_remove_view_get_label_of_video_item_cb(const void *pUserData,
+                                                                                               Evas_Object * pObject,
+                                                                                               const char *pPart)
+{
+       int nVideoItemIndex = (int) pUserData;
+
+       if (!strcmp(pPart, "elm.text.main.left.top")) {
+               char *szTitle;
+               szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+               char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+               if (szTitle) {
+                       free(szTitle);
+                       szTitle = NULL;
+               }
+
+               return szTitleUtf8;
+       } else if (!strcmp(pPart, "elm.text.sub.left.bottom")) {
+               return mp_util_svc_get_duration_str_time(nVideoItemIndex);
+       }
+
+       return NULL;
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW       //
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_remove_view_get_label_of_grid_item_cb(const void
+                                                                                                               *pUserData,
+                                                                                                               Evas_Object *
+                                                                                                               pObject,
+                                                                                                               const char *pPart)
+{
+       int nVideoItemIndex = (int) pUserData;
+
+       if (!strcmp(pPart, "elm.text")) {
+               char *szTitle = NULL;
+               szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+               char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+               if (szTitle) {
+                       free(szTitle);
+                       szTitle = NULL;
+               }
+
+               return szTitleUtf8;
+       } else if (!strcmp(pPart, "elm.text.2")) {
+               return mp_util_svc_get_duration_str_time(nVideoItemIndex);
+       }
+
+       return NULL;
+}
+#endif
+
+/**
+ *
+ * @param nFolderItemIndex
+ * @return
+ */
+static int mp_remove_view_get_respective_video_no(int nFolderItemIndex)
+{
+       mp_util_svc_destory_video_item_list();
+       char *szPath = mp_util_svc_get_video_folder_url(nFolderItemIndex);
+       mp_util_svc_extract_video_list_from_folder(szPath,
+                                                                                          mp_sort_ctrl_get_sort_state
+                                                                                          (), MP_LIST_VIEW_ALL);
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+       MP_FREE_STRING(szPath);
+
+       return nVideoListSize;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_remove_view_get_label_of_folder_cb(const void *pUserData,
+                                                                                                        Evas_Object * pObject,
+                                                                                                        const char *pPart)
+{
+       int nFolderItemIndex = (int) pUserData;
+
+       if (!strcmp(pPart, "elm.text.main.left.top")
+               || !strcmp(pPart, "elm.text")) {
+               char *szTitle = NULL;
+               char *title = NULL;
+               char buffer[10] = { 0, };
+               szTitle = mp_util_svc_get_video_folder_name(nFolderItemIndex);
+               int nVideoListSize =
+                       mp_remove_view_get_respective_video_no(nFolderItemIndex);
+               snprintf(buffer, 10, "%d", nVideoListSize);
+               title = g_strconcat(szTitle, "(", buffer, ")", NULL);
+               char *szTitleUtf8 = elm_entry_utf8_to_markup(title);
+
+               MP_FREE_STRING(szTitle);
+               MP_FREE_STRING(title);
+               return szTitleUtf8;
+       }
+
+       return NULL;
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_remove_folder_view_get_grid_icon_cb(const void
+                                                                                                                        *pUserData,
+                                                                                                                        Evas_Object *
+                                                                                                                        pObject,
+                                                                                                                        const char
+                                                                                                                        *pPart)
+{
+       int nFolderItemIndex = (int) pUserData;
+
+       if (!strcmp(pPart, "elm.swallow.icon")) {
+               char *pThumbIconUri =
+                       mp_util_get_folder_thumbnail(nFolderItemIndex,
+                                                                                mp_sort_ctrl_get_sort_state());
+               Evas_Object *pBg = NULL;
+
+               if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+                       pBg = elm_image_add(pObject);
+                       MP_FREE_STRING(pThumbIconUri);
+                       evas_object_size_hint_aspect_set(pBg, EVAS_ASPECT_CONTROL_BOTH,
+                                                                                        1, 1);
+                       elm_image_file_set(pBg, pThumbIconUri, NULL);
+               } else {
+                       pBg =
+                               mp_util_create_preload_image(pObject, pThumbIconUri,
+                                                                                        GRID_VIDEO_ICON_WIDTH);
+               }
+
+               MP_FREE_STRING(pThumbIconUri);
+
+               return pBg;
+       } else if (!strcmp(pPart, "elm.swallow.end")) {
+               Evas_Object *pCheckBox = elm_check_add(pObject);
+               elm_object_style_set(pCheckBox, "default");
+               evas_object_propagate_events_set(pCheckBox, EINA_TRUE);
+               elm_check_state_pointer_set(pCheckBox,
+                                                                       (Eina_Bool *) &
+                                                                       (g_pListRemoveViewHandle->
+                                                                        pCheckedItemsEditListForRemoved
+                                                                        [nFolderItemIndex]));
+
+               evas_object_show(pCheckBox);
+
+               return pCheckBox;
+       }
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_remove_view_get_grid_icon_cb(const void
+                                                                                                         *pUserData,
+                                                                                                         Evas_Object *
+                                                                                                         pObject,
+                                                                                                         const char *pPart)
+{
+       int nVideoItemIndex = (int) pUserData;
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_IMAGE_NAME_EDJ);
+       free(path);
+       if (!strcmp(pPart, "elm.swallow.icon")) {
+               char *pThumbIconUri =
+                       mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+               Evas_Object *pBg = NULL;
+
+               if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+                       pBg = elm_image_add(pObject);
+                       MP_FREE_STRING(pThumbIconUri);
+                       evas_object_size_hint_aspect_set(pBg, EVAS_ASPECT_CONTROL_BOTH,
+                                                                                        1, 1);
+                       elm_image_file_set(pBg, pThumbIconUri, NULL);
+               } else {
+                       pBg =
+                               mp_util_create_preload_image(pObject, pThumbIconUri,
+                                                                                        GRID_VIDEO_ICON_WIDTH);
+               }
+
+               MP_FREE_STRING(pThumbIconUri);
+
+               return pBg;
+       } else if (!strcmp(pPart, "elm.progressbar.icon")) {
+               return NULL;
+       } else if (!strcmp(pPart, "elm.lock.icon")) {
+               char *pVideoFile = mp_util_svc_get_video_url(nVideoItemIndex);
+               bool bRet =
+                       mp_util_check_video_personal_status((const char *) pVideoFile);
+               MP_FREE_STRING(pVideoFile);
+               if (bRet) {
+                       Evas_Object *pLockIcon = elm_image_add(pObject);
+                       elm_image_file_set(pLockIcon, edj_path,
+                                                          VIDEO_LIST_VIEW_ICON_PERSONAL_LOCK);
+                       evas_object_size_hint_align_set(pLockIcon, EVAS_HINT_FILL,
+                                                                                       EVAS_HINT_FILL);
+                       evas_object_size_hint_weight_set(pLockIcon, EVAS_HINT_EXPAND,
+                                                                                        EVAS_HINT_EXPAND);
+                       evas_object_show(pLockIcon);
+                       return pLockIcon;
+               } else {
+                       return NULL;
+               }
+       } else if (!strcmp(pPart, "elm.dropbox.icon")) {
+               bool bRet = mp_util_svc_is_cloud_storage(nVideoItemIndex);
+               if (bRet) {
+                       Evas_Object *pDropboxIcon = elm_image_add(pObject);
+                       elm_image_file_set(pDropboxIcon, edj_path,
+                                                          VIDEO_LIST_VIEW_ICON_DROPBOX);
+                       evas_object_size_hint_align_set(pDropboxIcon, EVAS_HINT_FILL,
+                                                                                       EVAS_HINT_FILL);
+                       evas_object_size_hint_weight_set(pDropboxIcon,
+                                                                                        EVAS_HINT_EXPAND,
+                                                                                        EVAS_HINT_EXPAND);
+                       evas_object_show(pDropboxIcon);
+                       return pDropboxIcon;
+               } else {
+                       return NULL;
+               }
+       } else if (!strcmp(pPart, "elm.swallow.end")) {
+               Evas_Object *pCheckBox = elm_check_add(pObject);
+               elm_object_style_set(pCheckBox, "grid");
+               evas_object_propagate_events_set(pCheckBox, EINA_TRUE);
+               elm_check_state_pointer_set(pCheckBox,
+                                                                       (Eina_Bool *) &
+                                                                       (g_pListRemoveViewHandle->
+                                                                        pCheckedItemsEditListForRemoved
+                                                                        [nVideoItemIndex]));
+
+               evas_object_show(pCheckBox);
+
+               return pCheckBox;
+       }
+       return NULL;
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *mp_remove_view_get_icon_of_video_item_cb(const void
+                                                                                                         *pUserData,
+                                                                                                         Evas_Object *
+                                                                                                         pObject,
+                                                                                                         const char *pPart)
+{
+
+       int nVideoItemIndex = (int) pUserData;
+       Evas_Object *pLayout = NULL;
+
+       if (!pPart || !pObject) {
+               return NULL;
+       }
+
+       if (!strcmp(pPart, "elm.icon.1")) {
+               char *pThumbIconUri =
+                       mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+               Evas_Object *pBg = NULL;
+               char edj_path[1024] = { 0 };
+
+               char *path = app_get_resource_path();
+               snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                                VIDEO_CUSTOM_THEME);
+               free(path);
+               pLayout = elm_layout_add(pObject);
+               elm_layout_file_set(pLayout, edj_path,
+                                                       "listview.thumbnail.layout");
+
+               if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+                       MP_FREE_STRING(pThumbIconUri);
+               }
+
+               pBg =
+                       mp_util_create_preload_image(pLayout, pThumbIconUri,
+                                                                                VIDEO_ICON_WIDTH);
+               elm_layout_content_set(pLayout, "elm.thumbnail.icon", pBg);
+
+               if (pBg)
+                       evas_object_show(pBg);
+
+               MP_FREE_STRING(pThumbIconUri);
+
+               if (!mp_util_create_video_sub_icon(pLayout, nVideoItemIndex)) {
+                       VideoLogWarning("Local File or Create sub icon is failed.",
+                                                       nVideoItemIndex);
+               }
+
+               return pLayout;
+       } else if (!strcmp(pPart, "elm.icon.2")) {
+               pLayout = elm_layout_add(pObject);
+
+               Evas_Object *pCheckBox = elm_check_add(pLayout);
+
+               elm_layout_theme_set(pLayout, "layout", "list/C/type.2",
+                                                        "default");
+
+               elm_object_style_set(pCheckBox, "default");
+               evas_object_propagate_events_set(pCheckBox, EINA_FALSE);
+               evas_object_smart_callback_add(pCheckBox, "changed",
+                                                                          mp_remove_view_change_check_box_state_cb,
+                                                                          pUserData);
+
+               elm_check_state_pointer_set(pCheckBox,
+                                                                       (Eina_Bool *) &
+                                                                       (g_pListRemoveViewHandle->
+                                                                        pCheckedItemsEditListForRemoved
+                                                                        [nVideoItemIndex]));
+               elm_layout_content_set(pLayout, "elm.swallow.content", pCheckBox);
+
+               evas_object_show(pCheckBox);
+
+               return pLayout;
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @return
+ */
+int mp_remove_view_get_sort_type(void)
+{
+       switch (mp_sort_ctrl_get_sort_state()) {
+
+       case MP_LIST_SORT_BY_RECENTLY_ADDED:
+               g_pListRemoveViewHandle->nSortType =
+                       MP_MEDIA_SORT_BY_RECENTLY_ADDED;
+               break;
+
+       case MP_LIST_SORT_BY_NAME:
+               g_pListRemoveViewHandle->nSortType = MP_MEDIA_SORT_BY_NAME;
+               break;
+
+       }
+
+       return g_pListRemoveViewHandle->nSortType;
+}
+
+/**
+ *
+ * @param pObjVideosList
+ */
+void mp_remove_view_append_video_items(void *pObjVideosList)
+{
+       if (!g_pListRemoveViewHandle) {
+               VideoLogInfo("invalid handle");
+               return;
+       }
+       int nIndex = 0;
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       MP_DEL_ITC(g_pListRemoveViewHandle->pGenListItc);
+       g_pListRemoveViewHandle->pGenListItc = elm_genlist_item_class_new();
+       g_pListRemoveViewHandle->pGenListItc->item_style = "2line.top"; //"video/edit_list";
+       g_pListRemoveViewHandle->pGenListItc->func.text_get =
+               (void *) mp_remove_view_get_label_of_video_item_cb;
+       g_pListRemoveViewHandle->pGenListItc->func.content_get =
+               (void *) mp_remove_view_get_icon_of_video_item_cb;
+       g_pListRemoveViewHandle->pGenListItc->func.state_get = NULL;
+       g_pListRemoveViewHandle->pGenListItc->func.del = NULL;
+
+       for (nIndex = 0; nIndex < nVideoListSize; nIndex++) {
+               elm_genlist_item_append(pObjVideosList,
+                                                               g_pListRemoveViewHandle->pGenListItc,
+                                                               (void *) nIndex, NULL,
+                                                               ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       }
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW       //
+
+/**
+ *
+ * @param pObjVideosList
+ * @param nGenItemIndex
+ */
+static void __mp_remove_view_append_grid_items(void *pObjVideosList,
+                                                                                          int nGenItemIndex)
+{
+       if (!g_pListRemoveViewHandle) {
+               VideoLogInfo("invalid handle");
+               return;
+       }
+       MP_DEL_GRID_ITC(g_pListRemoveViewHandle->pGenGridItc_1);
+       MP_DEL_GRID_ITC(g_pListRemoveViewHandle->pGenGridItc_2);
+       g_pListRemoveViewHandle->pGenGridItc_1 = elm_gengrid_item_class_new();
+       g_pListRemoveViewHandle->pGenGridItc_1->item_style =
+               "video/album_grid";
+       g_pListRemoveViewHandle->pGenGridItc_1->func.text_get =
+               (void *) __mp_remove_view_get_label_of_grid_item_cb;
+       g_pListRemoveViewHandle->pGenGridItc_1->func.content_get =
+               (void *) __mp_remove_view_get_grid_icon_cb;
+       g_pListRemoveViewHandle->pGenGridItc_1->func.state_get = NULL;
+       g_pListRemoveViewHandle->pGenGridItc_1->func.del = NULL;
+
+       int nCount =
+               (mp_rotate_ctrl_check_landspace_by_win
+                ((Evas_Object *) mp_util_get_main_window_handle()) ?
+                VP_GENLIST_THUMB_LANDSPACE_COUNT :
+                VP_GENLIST_THUMB_PORTRAIT_COUNT);
+       int nIndex = nGenItemIndex * nCount;
+       int nMaxIndex = nIndex + nCount;
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+       Elm_Object_Item *gridItem = NULL;
+       for (; (nIndex < nMaxIndex) && (nIndex < nVideoListSize); nIndex++) {
+               gridItem =
+                       elm_gengrid_item_append(pObjVideosList,
+                                                                       g_pListRemoveViewHandle->pGenGridItc_1,
+                                                                       (void *) nIndex,
+                                                                       __mp_remove_view_select_grid_item_cb,
+                                                                       (void *) nIndex);
+               elm_gengrid_item_select_mode_set(gridItem,
+                                                                                ELM_OBJECT_SELECT_MODE_ALWAYS);
+               elm_object_item_data_set(gridItem, (void *) nIndex);
+       }
+}
+
+/**
+ *
+ * @param parent
+ * @param nWidth
+ * @param nHeight
+ * @return
+ */
+static Evas_Object *__mp_remove_view_create_gengrid(Evas_Object * parent,
+                                                                                                       int nWidth,
+                                                                                                       int nHeight)
+{
+       Evas_Object *pGengrid = NULL;
+       pGengrid = elm_gengrid_add(parent);
+       if (!pGengrid) {
+               VideoLogError("pVideoGrid does not exist.");
+               return NULL;
+       }
+       evas_object_size_hint_weight_set(pGengrid, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pGengrid, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       elm_gengrid_item_size_set(pGengrid, nWidth, nHeight);
+       elm_gengrid_align_set(pGengrid, 0.0, 0.0);
+       elm_gengrid_horizontal_set(pGengrid, EINA_TRUE);
+
+       return pGengrid;
+}
+
+/**
+ *
+ * @param height
+ * @param width
+ */
+static void mp_remove_view_get_icon_dimensions(int *height, int *width)
+{
+       int winHeight = 0;
+       int winWidth = 0;
+       elm_win_screen_size_get(mp_util_get_main_window_handle(), NULL, NULL,
+                                                       &winWidth, &winHeight);
+
+       bool bLandscape =
+               mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+                                                                                         mp_util_get_main_window_handle
+                                                                                         ());
+       if (bLandscape) {
+               *width = winHeight / VP_GENLIST_THUMB_LANDSPACE_COUNT;
+       } else {
+               *width = winWidth / VP_GENLIST_THUMB_PORTRAIT_COUNT;
+       }
+       *height = VP_ALBUM_THUMB_ICON_HEIGHT * MP_SCALE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_remove_view_get_icon_of_grid_cb(const void
+                                                                                                                *pUserData,
+                                                                                                                Evas_Object *
+                                                                                                                pObject,
+                                                                                                                const char *pPart)
+{
+       if (!g_pListRemoveViewHandle || !pObject) {
+               VideoLogError("g_pMainViewWidgetOfShareList is NULL");
+               return NULL;
+       }
+
+       int nGenItemIndex = (int) pUserData;
+       int nHeight = 0;
+       int nWidth = 0;
+       mp_remove_view_get_icon_dimensions(&nHeight, &nWidth);
+
+       Evas_Object *pGengrid =
+               __mp_remove_view_create_gengrid(pObject, nWidth, nHeight);
+       __mp_remove_view_append_grid_items(pGengrid, nGenItemIndex);
+
+       return pGengrid;
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+int mp_remove_view_thumbnail_to_genlist_index(int nVideoItemIndex)
+{
+       if (nVideoItemIndex < 0) {
+               VideoLogDebug("invalid nVideoItemIndex");
+               return 0;
+       }
+       int nGenlistIndex = 0;
+       int nItemCount =
+               (mp_rotate_ctrl_check_landspace_by_win
+                ((Evas_Object *) mp_util_get_main_window_handle()) ?
+                VP_GENLIST_THUMB_LANDSPACE_COUNT :
+                VP_GENLIST_THUMB_PORTRAIT_COUNT);
+       nGenlistIndex = nVideoItemIndex / nItemCount;
+       return nGenlistIndex;
+}
+
+/**
+ *
+ * @param pGenlist
+ * @return
+ */
+static bool __mp_remove_view_append_grid_layout(void *pGenlist)
+{
+       if (!pGenlist || !g_pListRemoveViewHandle) {
+               VideoLogError("error handle.");
+               return FALSE;
+       }
+       int nIndex = 0;
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       if (nVideoListSize <= 0) {
+               VideoLogWarning("nVideoListSize = %d", nVideoListSize);
+               return FALSE;
+       } else
+               VideoLogWarning("nVideoListSize = %d", nVideoListSize);
+
+       MP_DEL_ITC(g_pListRemoveViewHandle->pGenListItc);
+       g_pListRemoveViewHandle->pGenListItc = elm_genlist_item_class_new();
+       g_pListRemoveViewHandle->pGenListItc->item_style =
+               "video/1icon.thumbnail";
+       g_pListRemoveViewHandle->pGenListItc->func.text_get = NULL;
+       g_pListRemoveViewHandle->pGenListItc->func.content_get =
+               (void *) __mp_remove_view_get_icon_of_grid_cb;
+       g_pListRemoveViewHandle->pGenListItc->func.state_get = NULL;
+       g_pListRemoveViewHandle->pGenListItc->func.del = NULL;
+       g_pListRemoveViewHandle->pGenListItc->decorate_item_style = NULL;
+
+       MP_DEL_ITC(g_pListRemoveViewHandle->pGenListLandscapeItc);
+       g_pListRemoveViewHandle->pGenListLandscapeItc =
+               elm_genlist_item_class_new();
+       g_pListRemoveViewHandle->pGenListLandscapeItc->item_style =
+               "video/1icon.thumbnail.landscape";
+       g_pListRemoveViewHandle->pGenListLandscapeItc->func.text_get = NULL;
+       g_pListRemoveViewHandle->pGenListLandscapeItc->func.content_get =
+               (void *) __mp_remove_view_get_icon_of_grid_cb;
+       g_pListRemoveViewHandle->pGenListLandscapeItc->func.state_get = NULL;
+       g_pListRemoveViewHandle->pGenListLandscapeItc->func.del = NULL;
+       g_pListRemoveViewHandle->pGenListLandscapeItc->decorate_item_style =
+               NULL;
+
+       int nGenlistRow = 0;
+       nGenlistRow =
+               mp_remove_view_thumbnail_to_genlist_index(nVideoListSize - 1);
+
+       if (mp_rotate_ctrl_check_landspace_by_win
+               ((Evas_Object *) mp_util_get_main_window_handle())) {
+               for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+                       elm_genlist_item_append(pGenlist,
+                                                                       g_pListRemoveViewHandle->
+                                                                       pGenListLandscapeItc, (void *) nIndex,
+                                                                       NULL, ELM_GENLIST_ITEM_NONE, NULL,
+                                                                       NULL);
+               }
+       } else {
+               for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+                       elm_genlist_item_append(pGenlist,
+                                                                       g_pListRemoveViewHandle->pGenListItc,
+                                                                       (void *) nIndex, NULL,
+                                                                       ELM_GENLIST_ITEM_NONE, NULL, NULL);
+               }
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_remove_view_rotate_cb(void *data, Evas_Object * obj,
+                                                                          void *event_info)
+{
+       if (!g_pListRemoveViewHandle) {
+               VideoLogError("__mp_remove_view_rotate_cb IS null");
+               return;
+       }
+       bool bLandscape =
+               mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+                                                                                         mp_util_get_main_window_handle
+                                                                                         ());
+       if (bLandscape) {
+               VideoLogInfo("Landscape mode");
+               g_pListRemoveViewHandle->bLandscape = true;
+       } else {
+               VideoLogInfo("Portrait mode");
+               g_pListRemoveViewHandle->bLandscape = false;
+       }
+       g_pListRemoveViewHandle->update_view_data = true;
+       if (!g_pListRemoveViewHandle->bFolderDel)
+               __mp_remove_view_arrange_video_list(g_pListRemoveViewHandle->
+                                                                                       pObjVideosList,
+                                                                                       LIST_TAB_TYPE_PERSONAL, TRUE);
+       else
+               __mp_remove_view_arrange_folder_list(g_pListRemoveViewHandle->
+                                                                                        pObjVideosList,
+                                                                                        LIST_TAB_TYPE_PERSONAL, TRUE);
+       mp_remove_view_change_title_info();
+       g_pListRemoveViewHandle->update_view_data = false;
+}
+
+/**
+ *
+ * @param pObjVideosList
+ * @param nGenItemIndex
+ */
+static void __mp_remove_folder_view_append_grid_items(void *pObjVideosList,
+                                                                                                         int nGenItemIndex)
+{
+       if (!g_pListRemoveViewHandle) {
+               VideoLogInfo("invalid handle");
+               return;
+       }
+       MP_DEL_GRID_ITC(g_pListRemoveViewHandle->pGenGridItc_1);
+       g_pListRemoveViewHandle->pGenGridItc_1 = elm_gengrid_item_class_new();
+       g_pListRemoveViewHandle->pGenGridItc_1->item_style =
+               "video/album_grid";
+       g_pListRemoveViewHandle->pGenGridItc_1->func.text_get =
+               (void *) __mp_remove_view_get_label_of_folder_cb;
+       g_pListRemoveViewHandle->pGenGridItc_1->func.content_get =
+               (void *) __mp_remove_folder_view_get_grid_icon_cb;
+       g_pListRemoveViewHandle->pGenGridItc_1->func.state_get = NULL;
+       g_pListRemoveViewHandle->pGenGridItc_1->func.del = NULL;
+
+       int nCount =
+               (mp_rotate_ctrl_check_landspace_by_win
+                ((Evas_Object *) mp_util_get_main_window_handle()) ?
+                VP_GENLIST_THUMB_LANDSPACE_COUNT :
+                VP_GENLIST_THUMB_PORTRAIT_COUNT);
+       int nIndex = nGenItemIndex * nCount;
+       int nMaxIndex = nIndex + nCount;
+       int nFolderListSize = mp_util_svc_get_video_folder_size();
+
+       Elm_Object_Item *gridItem = NULL;
+       for (; (nIndex < nMaxIndex) && (nIndex < nFolderListSize); nIndex++) {
+               gridItem =
+                       elm_gengrid_item_append(pObjVideosList,
+                                                                       g_pListRemoveViewHandle->pGenGridItc_1,
+                                                                       (void *) nIndex,
+                                                                       __mp_remove_view_select_grid_item_cb,
+                                                                       (void *) nIndex);
+               elm_gengrid_item_select_mode_set(gridItem,
+                                                                                ELM_OBJECT_SELECT_MODE_ALWAYS);
+               elm_object_item_data_set(gridItem, (void *) nIndex);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_remove_folder_view_get_icon_of_grid_cb(const void
+                                                                                                                               *pUserData,
+                                                                                                                               Evas_Object
+                                                                                                                               *pObject,
+                                                                                                                               const char
+                                                                                                                               *pPart)
+{
+       if (!g_pListRemoveViewHandle || !pObject) {
+               VideoLogError("g_pMainViewWidgetOfShareList is NULL");
+               return NULL;
+       }
+
+       int nGenItemIndex = (int) pUserData;
+       int nHeight = 0;
+       int nWidth = 0;
+       mp_remove_view_get_icon_dimensions(&nHeight, &nWidth);
+
+       Evas_Object *pGengrid =
+               __mp_remove_view_create_gengrid(pObject, nWidth, nHeight);
+       __mp_remove_folder_view_append_grid_items(pGengrid, nGenItemIndex);
+
+       return pGengrid;
+}
+
+static bool __mp_remove_view_append_folder_grid_layout(void *pGenlist)
+{
+       if (!pGenlist || !g_pListRemoveViewHandle) {
+               VideoLogError("error handle.");
+               return FALSE;
+       }
+       int nIndex = 0;
+       int nFolderListSize = mp_util_svc_get_video_folder_size();
+       if (nFolderListSize <= 0) {
+               VideoLogWarning("nFolderListSize = %d", nFolderListSize);
+               return FALSE;
+       } else
+               VideoLogWarning("nFolderListSize = %d", nFolderListSize);
+
+       MP_DEL_ITC(g_pListRemoveViewHandle->pGenListItc);
+       g_pListRemoveViewHandle->pGenListItc = elm_genlist_item_class_new();
+       g_pListRemoveViewHandle->pGenListItc->item_style =
+               "video/1icon.thumbnail";
+       g_pListRemoveViewHandle->pGenListItc->func.text_get = NULL;
+       g_pListRemoveViewHandle->pGenListItc->func.content_get =
+               (void *) __mp_remove_folder_view_get_icon_of_grid_cb;
+       g_pListRemoveViewHandle->pGenListItc->func.state_get = NULL;
+       g_pListRemoveViewHandle->pGenListItc->func.del = NULL;
+       g_pListRemoveViewHandle->pGenListItc->decorate_item_style = NULL;
+
+       MP_DEL_ITC(g_pListRemoveViewHandle->pGenListLandscapeItc);
+       g_pListRemoveViewHandle->pGenListLandscapeItc =
+               elm_genlist_item_class_new();
+       g_pListRemoveViewHandle->pGenListLandscapeItc->item_style =
+               "video/1icon.thumbnail.landscape";
+       g_pListRemoveViewHandle->pGenListLandscapeItc->func.text_get = NULL;
+       g_pListRemoveViewHandle->pGenListLandscapeItc->func.content_get =
+               (void *) __mp_remove_folder_view_get_icon_of_grid_cb;
+       g_pListRemoveViewHandle->pGenListLandscapeItc->func.state_get = NULL;
+       g_pListRemoveViewHandle->pGenListLandscapeItc->func.del = NULL;
+       g_pListRemoveViewHandle->pGenListLandscapeItc->decorate_item_style =
+               NULL;
+
+       int nGenlistRow = 0;
+       nGenlistRow =
+               mp_remove_view_thumbnail_to_genlist_index(nFolderListSize - 1);
+
+       if (mp_rotate_ctrl_check_landspace_by_win
+               ((Evas_Object *) mp_util_get_main_window_handle())) {
+               for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+                       elm_genlist_item_append(pGenlist,
+                                                                       g_pListRemoveViewHandle->
+                                                                       pGenListLandscapeItc, (void *) nIndex,
+                                                                       NULL, ELM_GENLIST_ITEM_NONE, NULL,
+                                                                       NULL);
+               }
+       } else {
+               for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+                       elm_genlist_item_append(pGenlist,
+                                                                       g_pListRemoveViewHandle->pGenListItc,
+                                                                       (void *) nIndex, NULL,
+                                                                       ELM_GENLIST_ITEM_NONE, NULL, NULL);
+               }
+       }
+
+       return TRUE;
+}
+#endif
+
+/**
+ *
+ * @param nTotalSize
+ */
+void mp_remove_view_set_value(int nTotalSize)
+{
+       VideoLogInfo("");
+
+       if (g_pListRemoveViewHandle->pCheckedItemsEditListForRemoved) {
+               free(g_pListRemoveViewHandle->pCheckedItemsEditListForRemoved);
+               g_pListRemoveViewHandle->pCheckedItemsEditListForRemoved = NULL;
+       }
+       if (nTotalSize > 0) {
+               g_pListRemoveViewHandle->pCheckedItemsEditListForRemoved =
+                       (bool *) malloc(sizeof(bool) * nTotalSize);
+               memset(g_pListRemoveViewHandle->pCheckedItemsEditListForRemoved, 0,
+                          sizeof(bool) * nTotalSize);
+       }
+
+       g_pListRemoveViewHandle->bSelectallCheckBoxState = FALSE;
+}
+
+/**
+ *
+ * @param pObjVideosList
+ * @param eTabType
+ * @param bNeedSvc
+ * @return
+ */
+static bool __mp_remove_view_arrange_folder_list(void *pObjVideosList,
+                                                                                                MpVideoListTabType
+                                                                                                eTabType, bool bNeedSvc)
+{
+       if (!g_pListRemoveViewWidget || !g_pListRemoveViewHandle) {
+               VideoLogError("No exist g_pRemoveListViewWidget.");
+               return FALSE;
+       }
+
+       if (!pObjVideosList) {
+               VideoLogError("No exist genlist object.");
+               return FALSE;
+       }
+       int nFolderListSize = 0;
+
+       mp_util_svc_destory_video_folder_list();
+       mp_util_svc_extract_video_folder_list_by_type
+               (mp_sort_ctrl_get_sort_state(), MP_LIST_VIEW_PHONE);
+       nFolderListSize = mp_util_svc_get_video_folder_size();
+
+       if (elm_check_state_get(g_pListRemoveViewWidget->pSelectallbtn)) {
+               g_pListRemoveViewHandle->nSelectCounterForEditList =
+                       nFolderListSize;
+       }
+       if (!g_pListRemoveViewHandle->update_view_data) {
+               if (bNeedSvc) {
+                       __mp_remove_view_update_selected_video_list();
+               } else {
+                       mp_remove_view_set_value(nFolderListSize);
+               }
+       }
+
+
+       if (LIST_TAB_TYPE_PERSONAL == eTabType) {
+               VideoLogInfo("nFolderListSize : %d", nFolderListSize);
+
+               elm_genlist_clear(pObjVideosList);
+
+               if (nFolderListSize > 0) {
+                       __mp_remove_view_append_folder_grid_layout(pObjVideosList);
+               } else {
+                       elm_naviframe_item_pop(g_pListRemoveViewHandle->
+                                                                  pNaviFrameHandle);
+                       return FALSE;
+               }
+       } else {
+               VideoLogError("invalid Tabbar type!");
+       }
+
+       mp_remove_view_change_title_info();
+
+       elm_genlist_decorate_mode_set(pObjVideosList, EINA_TRUE);
+
+       evas_object_show(pObjVideosList);
+       return TRUE;
+}
+
+/**
+ *
+ * @param pObjVideosList
+ * @param eTabType
+ * @param bNeedSvc
+ * @return
+ */
+static bool __mp_remove_view_arrange_video_list(void *pObjVideosList,
+                                                                                               MpVideoListTabType
+                                                                                               eTabType, bool bNeedSvc)
+{
+       if (!g_pListRemoveViewWidget || !g_pListRemoveViewHandle) {
+               VideoLogError("No exist g_pRemoveListViewWidget.");
+               return FALSE;
+       }
+
+       if (!pObjVideosList) {
+               VideoLogError("No exist genlist object.");
+               return FALSE;
+       }
+
+       int nVideoListSize = 0;
+
+       if (LIST_TAB_TYPE_PERSONAL == eTabType) {
+               int nSortType = mp_remove_view_get_sort_type();
+               int nViewType = mp_view_as_ctrl_get_type();
+               if ((nViewType == MP_LIST_VIEW_AS_FOLDER_LIST)
+                       && g_pListRemoveViewHandle->pFolderPath) {
+                       if (g_pListRemoveViewHandle->pFolderPath) {
+                               VideoSecureLogInfo("szFolderPath : %s",
+                                                                  g_pListRemoveViewHandle->pFolderPath);
+                               if (vp_file_exists(g_pListRemoveViewHandle->pFolderPath)) {
+                                       //update video-list
+                                       mp_util_svc_destory_video_item_list();
+                                       mp_util_svc_extract_video_list_from_folder
+                                               (g_pListRemoveViewHandle->pFolderPath, nSortType,
+                                                MP_LIST_VIEW_PHONE);
+                                       if (!g_pListRemoveViewHandle->update_view_data) {
+                                               if (bNeedSvc) {
+                                                       __mp_remove_view_update_selected_video_list();
+                                               } else {
+                                                       nVideoListSize =
+                                                               mp_util_svc_get_number_of_video_item_by_type
+                                                               ();
+                                                       mp_remove_view_set_value(nVideoListSize);
+                                               }
+                                       }
+                               } else {
+                                       elm_naviframe_item_pop(g_pListRemoveViewHandle->
+                                                                                  pNaviFrameHandle);
+                                       return FALSE;
+                               }
+                       }
+               } else {
+                       mp_util_svc_destory_video_list();
+                       mp_util_svc_extract_video_list_by_item_type(nSortType,
+                                                                                                               MP_LIST_VIEW_PHONE);
+                       if (!g_pListRemoveViewHandle->update_view_data) {
+                               if (bNeedSvc) {
+                                       __mp_remove_view_update_selected_video_list();
+                               } else {
+                                       nVideoListSize =
+                                               mp_util_svc_get_number_of_video_item_by_type();
+                                       mp_remove_view_set_value(nVideoListSize);
+                               }
+                       }
+               }
+
+               nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+               VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+               if (elm_check_state_get(g_pListRemoveViewWidget->pSelectallbtn)) {
+                       g_pListRemoveViewHandle->nSelectCounterForEditList =
+                               nVideoListSize;
+               }
+
+               if (nVideoListSize > 0) {
+#ifdef VS_FEATURE_THUMBNAIL_VIEW       //
+                       if (g_pListRemoveViewHandle->bThumbnailView) {
+                               elm_genlist_clear(pObjVideosList);
+                               __mp_remove_view_append_grid_layout(pObjVideosList);
+                       } else
+#endif
+                       {
+                               elm_genlist_clear(pObjVideosList);
+                               mp_remove_view_append_video_items(pObjVideosList);
+                       }
+               } else {
+                       elm_naviframe_item_pop(g_pListRemoveViewHandle->
+                                                                  pNaviFrameHandle);
+                       return FALSE;
+               }
+       } else {
+               VideoLogError("invalid Tabbar type!");
+       }
+#ifdef VS_FEATURE_THUMBNAIL_VIEW_TODO  //
+       if (!g_pListRemoveViewHandle->bThumbnailView) {
+               elm_genlist_decorate_mode_set(pObjVideosList, EINA_TRUE);
+       }
+#endif                                                 //
+       evas_object_show(pObjVideosList);
+       return TRUE;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+Evas_Object *mp_remove_view_init_internal_layout(void *pParent)
+{
+       if (!pParent) {
+               VideoLogError("[ERR]");
+               return NULL;
+       }
+
+       VideoLogInfo("");
+
+       if (g_pListRemoveViewWidget->pRemoveViewBaselayout) {
+               evas_object_del(g_pListRemoveViewWidget->pRemoveViewBaselayout);
+               g_pListRemoveViewWidget->pRemoveViewBaselayout = NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_REMOVE_LIST_EDJ);
+       free(path);
+       g_pListRemoveViewWidget->pRemoveViewBaselayout =
+               elm_layout_add(pParent);
+       elm_layout_file_set(g_pListRemoveViewWidget->pRemoveViewBaselayout,
+                                               edj_path, REMOVE_LIST_EDJ_GROUP);
+       evas_object_size_hint_weight_set(g_pListRemoveViewWidget->
+                                                                        pRemoveViewBaselayout,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pListRemoveViewWidget->
+                                                                       pRemoveViewBaselayout, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+
+       return g_pListRemoveViewWidget->pRemoveViewBaselayout;
+}
+
+/**
+ *
+ * @param nSelectedSize
+ * @return
+ */
+static bool __mp_remove_view_get_selected_video_list(int nSelectedSize)
+{
+       if (!g_pListRemoveViewHandle || !g_pListRemoveViewWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return FALSE;
+       }
+
+       int nVideoListSize = 0;
+
+       if (LIST_TAB_TYPE_PERSONAL != g_pListRemoveViewHandle->eTabType) {
+               return FALSE;
+       }
+
+       if (!g_pListRemoveViewHandle->nSelectCounterForEditList
+               || nSelectedSize < 1) {
+               return FALSE;
+       }
+
+       if (g_pListRemoveViewHandle->bFolderDel) {
+               nVideoListSize = mp_util_svc_get_video_folder_size();
+       } else {
+               nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       }
+
+       VideoLogInfo("current size is %d", nVideoListSize);
+
+       getFolderCount = nVideoListSize;
+
+       __mp_remove_view_free_selected_list();
+
+       int nIndex = 0;
+       int nCounter = 0;
+       char *pMediaId = NULL;
+
+       g_pListRemoveViewHandle->pSelectedList =
+               (char **) calloc(sizeof(char *), nSelectedSize);
+       VideoLogInfo("current edit size===%d", nSelectedSize);
+
+       if (g_pListRemoveViewHandle->pSelectedList == NULL) {
+               return FALSE;
+       }
+
+       for (nCounter = 0; nCounter < nVideoListSize; nCounter++) {
+                       if (g_pListRemoveViewHandle->bFolderDel) {
+                               pMediaId = mp_util_svc_get_video_folder_id(nCounter);
+                       } else {
+                               pMediaId = mp_util_svc_get_video_id_by_index(nCounter);
+                       }
+
+                       if (pMediaId != NULL) {
+                               if (__mp_remove_view_is_selected_file(pMediaId)) {
+                                       g_pListRemoveViewHandle->pSelectedList[nIndex] =
+                                                       strdup(pMediaId);
+                                       MP_FREE_STRING(pMediaId);
+                                       nIndex++;
+                               }
+                       }
+                       folderStatus[nCounter] = TRUE;
+       }
+       return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+int __mp_remove_folder_view_get_folder_count()
+{
+       return getFolderCount;
+}
+
+/**
+ *
+ */
+static void __mp_remove_view_update_select_all(void)
+{
+       if (!g_pListRemoveViewHandle || !g_pListRemoveViewWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       int nItemListSize = 0;
+       if (g_pListRemoveViewHandle->bFolderDel) {
+               nItemListSize = mp_util_svc_get_video_folder_size();
+       } else {
+               nItemListSize = mp_util_svc_get_number_of_video_item_by_type();
+       }
+
+       if (nItemListSize == eina_list_count(g_pSelectedList)) {
+               VideoLogInfo(" All check box of edit list state are true.");
+               g_pListRemoveViewHandle->bSelectallCheckBoxState = TRUE;
+       } else {
+               g_pListRemoveViewHandle->bSelectallCheckBoxState = FALSE;
+       }
+
+       VideoLogInfo(" nItemListSize=%d,nSelectCounterForEditList=%d",
+                                nItemListSize,
+                                g_pListRemoveViewHandle->nSelectCounterForEditList);
+       elm_check_state_set(g_pListRemoveViewWidget->pSelectallbtn,
+                                               g_pListRemoveViewHandle->bSelectallCheckBoxState);
+}
+
+/**
+ *
+ */
+static void __mp_remove_view_update_selected_video_list(void)
+{
+       if (!g_pListRemoveViewHandle || !g_pListRemoveViewWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       int nVideoListSize = 0;
+
+       __mp_remove_view_validate_selected_list();
+
+       if (LIST_TAB_TYPE_PERSONAL != g_pListRemoveViewHandle->eTabType) {
+               return;
+       }
+
+       int nTotal = 0;
+
+       MpMediaType eMediaType = MEDIA_TYPE_FILE;
+
+       if (g_pListRemoveViewHandle->bFolderDel) {
+               eMediaType = MEDIA_TYPE_DIRECTORY;
+               nVideoListSize = mp_util_svc_get_video_folder_size();
+               nTotal = __mp_remove_folder_view_get_folder_count();
+       } else {
+               nTotal = g_pListRemoveViewHandle->nSelectCounterForEditList;
+               nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       }
+
+       int nIndex = 0;
+       bool bValidMedia = FALSE;
+
+       VideoLogInfo("OldEditList ===%d nVideoListSize :%d", nTotal, nVideoListSize);
+       g_pListRemoveViewHandle->nSelectCounterForEditList = 0;
+       mp_remove_view_set_value(nVideoListSize);
+
+       if (!g_pListRemoveViewHandle->pSelectedList) {
+               return;
+       }
+
+       VideoLogInfo("  nTotal %d", nTotal);
+
+       while ((nIndex < nVideoListSize)) {
+               char * pMediaId;
+               if (g_pListRemoveViewHandle->bFolderDel) {
+                       pMediaId = mp_util_svc_get_video_folder_id(nIndex);
+               } else {
+                       pMediaId = mp_util_svc_get_video_id_by_index(nIndex);
+               }
+
+               if (pMediaId) {
+                       bValidMedia =
+                               __mp_remove_view_is_selected_file(pMediaId);
+               } else {
+                       bValidMedia = FALSE;
+               }
+
+               VideoLogInfo(" nIndex which were true are %d and media selected is : %d",
+                                                        nIndex,
+                                                        bValidMedia);
+               if (bValidMedia) {
+                       g_pListRemoveViewHandle->
+                               pCheckedItemsEditListForRemoved[nIndex] = TRUE;
+                       folderStatus[nIndex] = TRUE;
+                       g_pListRemoveViewHandle->nSelectCounterForEditList++;
+               } else {
+                       folderStatus[nIndex] = FALSE;
+                       g_pListRemoveViewHandle->
+                                                       pCheckedItemsEditListForRemoved[nIndex] = FALSE;
+               }
+               nIndex++;
+       }
+
+       //update select all button state
+       __mp_remove_view_update_select_all();
+
+       mp_remove_view_change_title_info();
+
+       if (eina_list_count(g_pSelectedList) > 0)
+               elm_object_disabled_set(g_pListRemoveViewWidget->pSavebtn,
+                                                               EINA_FALSE);
+       else
+               elm_object_disabled_set(g_pListRemoveViewWidget->pSavebtn,
+                                                               EINA_TRUE);
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __mp_remove_view_db_changed_cb(void *pUserData)
+{
+       if (!g_pListRemoveViewHandle || !g_pListRemoveViewWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       bool bNormalShow = TRUE;
+       if (g_pListRemoveViewHandle->bFolderDel) {
+               bNormalShow =
+                       __mp_remove_view_arrange_folder_list(g_pListRemoveViewHandle->
+                                                                                                pObjVideosList,
+                                                                                                LIST_TAB_TYPE_PERSONAL,
+                                                                                                TRUE);
+               if (!bNormalShow) {
+                       VideoLogError("invalid view");
+                       return;
+               }
+       } else {
+               bNormalShow =
+                       __mp_remove_view_arrange_video_list(g_pListRemoveViewHandle->
+                                                                                               pObjVideosList,
+                                                                                               LIST_TAB_TYPE_PERSONAL,
+                                                                                               TRUE);
+               if (!bNormalShow) {
+                       VideoLogError("invalid view");
+                       return;
+               }
+       }
+       mp_remove_view_change_title_info();
+
+       Elm_Object_Item *pItem = NULL;
+#ifdef VS_FEATURE_THUMBNAIL_VIEW_TODO  //
+       if (g_pListRemoveViewHandle->bThumbnailView) {
+               pItem =
+                       elm_gengrid_first_item_get(g_pListRemoveViewHandle->
+                                                                          pObjVideosList);
+               if (pItem) {
+                       elm_gengrid_item_bring_in(pItem, ELM_GENGRID_ITEM_SCROLLTO_IN);
+               }
+       } else
+#endif                                                 //
+       {
+               pItem =
+                       elm_genlist_first_item_get(g_pListRemoveViewHandle->
+                                                                          pObjVideosList);
+               if (pItem) {
+                       elm_genlist_item_bring_in(pItem, ELM_GENLIST_ITEM_SCROLLTO_IN);
+               }
+       }
+
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __mp_remove_view_db_backup_cb(void *pUserData)
+{
+       if (!g_pListRemoveViewHandle || !g_pListRemoveViewWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+       __mp_remove_view_get_selected_video_list(g_pListRemoveViewHandle->
+                                                                                        nSelectCounterForEditList);
+}
+
+/**
+ *
+ * @param data
+ * @param evas
+ * @param obj
+ * @param event_info
+ */
+static void __mp_remove_select_all_layout_down_cb(void *data, Evas * evas,
+                                                                                                 Evas_Object * obj,
+                                                                                                 void *event_info)
+{
+       if (!g_pListRemoveViewHandle || !g_pListRemoveViewWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       Evas_Object *check =
+               elm_object_part_content_get(g_pListRemoveViewWidget->pSelAllLayout,
+                                                                       "elm.icon");
+       Eina_Bool state = elm_check_state_get(check);
+       elm_check_state_set(check, !state);
+       __mp_remove_view_select_all_change_check_box_cb(data, check, NULL);
+}
+
+/**
+ *
+ * @param pParent
+ * @param eTabType
+ */
+void mp_remove_view_init(void *pParent, MpVideoListTabType eTabType)
+{
+       if (!g_pListRemoveViewHandle || !g_pListRemoveViewWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       VideoLogInfo("");
+       g_pListRemoveViewWidget->pRemoveViewBaselayout =
+               mp_remove_view_init_internal_layout(pParent);
+       if (!g_pListRemoveViewWidget->pRemoveViewBaselayout) {
+               VideoLogError("pRemoveViewBaselayout is not existed.");
+               return;
+       }
+
+       evas_object_event_callback_add(g_pListRemoveViewWidget->
+                                                                  pRemoveViewBaselayout,
+                                                                  EVAS_CALLBACK_DEL,
+                                                                  __mp_remove_view_base_layout_del_cb,
+                                                                  NULL);
+
+       g_pListRemoveViewWidget->pVideoListBox =
+               elm_box_add(g_pListRemoveViewWidget->pRemoveViewBaselayout);
+       if (!g_pListRemoveViewWidget->pVideoListBox) {
+               VideoLogError("pVideoListBox is not existed.");
+               return;
+       }
+
+       evas_object_size_hint_weight_set(g_pListRemoveViewWidget->
+                                                                        pVideoListBox, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pListRemoveViewWidget->pVideoListBox,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       mp_widget_ctrl_create_select_all_layout(g_pListRemoveViewWidget->
+                                                                                       pVideoListBox,
+                                                                                       __mp_remove_view_select_all_change_check_box_cb,
+                                                                                       __mp_remove_select_all_layout_down_cb,
+                                                                                       (void *)
+                                                                                       g_pListRemoveViewWidget,
+                                                                                       &g_pListRemoveViewWidget->
+                                                                                       pSelectallbtn,
+                                                                                       &g_pListRemoveViewWidget->
+                                                                                       pSelAllLayout);
+
+       if (!g_pListRemoveViewWidget->pSelAllLayout) {
+               VideoLogError("pSelAllLayout is not existed.");
+               return;
+       }
+
+       elm_box_pack_start(g_pListRemoveViewWidget->pVideoListBox,
+                                          g_pListRemoveViewWidget->pSelAllLayout);
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW_TODO  //
+       if (g_pListRemoveViewHandle->bThumbnailView) {
+               g_pListRemoveViewHandle->pObjVideosList =
+                       elm_gengrid_add(g_pListRemoveViewWidget->pVideoListBox);
+               if (!g_pListRemoveViewHandle->pObjVideosList) {
+                       VideoLogError("pVideoGrid is not existed.");
+                       return;
+               }
+               evas_object_size_hint_weight_set(g_pListRemoveViewHandle->
+                                                                                pObjVideosList, EVAS_HINT_EXPAND,
+                                                                                EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(g_pListRemoveViewHandle->
+                                                                               pObjVideosList, EVAS_HINT_FILL,
+                                                                               EVAS_HINT_FILL);
+               int nHeight = VP_ALBUM_THUMB_ICON_HEIGHT * MP_SCALE;
+               int nWidth = VIDEO_GENGRID_ICON_WIDTH * MP_SCALE;
+               elm_gengrid_item_size_set(g_pListRemoveViewHandle->pObjVideosList,
+                                                                 nWidth, nHeight);
+               elm_gengrid_align_set(g_pListRemoveViewHandle->pObjVideosList, 0.0,
+                                                         0.0);
+               elm_gengrid_horizontal_set(g_pListRemoveViewHandle->pObjVideosList,
+                                                                  EINA_FALSE);
+       } else
+#endif
+       {
+               g_pListRemoveViewHandle->pObjVideosList =
+                       elm_genlist_add(g_pListRemoveViewWidget->pVideoListBox);
+               if (!g_pListRemoveViewHandle->pObjVideosList) {
+                       VideoLogError("pObjVideosList is not existed.");
+                       return;
+               }
+               elm_scroller_bounce_set(g_pListRemoveViewHandle->pObjVideosList,
+                                                               EINA_FALSE, EINA_TRUE);
+               evas_object_size_hint_weight_set(g_pListRemoveViewHandle->
+                                                                                pObjVideosList, EVAS_HINT_EXPAND,
+                                                                                EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(g_pListRemoveViewHandle->
+                                                                               pObjVideosList, EVAS_HINT_FILL,
+                                                                               EVAS_HINT_FILL);
+               elm_genlist_block_count_set(g_pListRemoveViewHandle->
+                                                                       pObjVideosList,
+                                                                       VIDEO_GENLIST_BLOCK_COUNT);
+               elm_genlist_homogeneous_set(g_pListRemoveViewHandle->
+                                                                       pObjVideosList, EINA_TRUE);
+               elm_genlist_mode_set(g_pListRemoveViewHandle->pObjVideosList,
+                                                        ELM_LIST_COMPRESS);
+               elm_genlist_select_mode_set(g_pListRemoveViewWidget->pVideoListBox,
+                                                                       ELM_OBJECT_SELECT_MODE_NONE);
+       }
+       g_pListRemoveViewHandle->eTabType = eTabType;
+
+       elm_box_pack_end(g_pListRemoveViewWidget->pVideoListBox,
+                                        g_pListRemoveViewHandle->pObjVideosList);
+       elm_object_part_content_set(g_pListRemoveViewWidget->
+                                                               pRemoveViewBaselayout,
+                                                               SWALLOW_LISTVIEW_CONTENT,
+                                                               g_pListRemoveViewWidget->pVideoListBox);
+
+       bool bNormalShow = TRUE;
+
+       if (g_pListRemoveViewHandle->bFolderDel) {
+               bNormalShow =
+                       __mp_remove_view_arrange_folder_list(g_pListRemoveViewHandle->
+                                                                                                pObjVideosList, eTabType,
+                                                                                                FALSE);
+               if (!bNormalShow) {
+                       VideoLogError("invalid view");
+                       return;
+               }
+       } else {
+               bNormalShow =
+                       __mp_remove_view_arrange_video_list(g_pListRemoveViewHandle->
+                                                                                               pObjVideosList, eTabType,
+                                                                                               FALSE);
+               if (!bNormalShow) {
+                       VideoLogError("invalid view");
+                       return;
+               }
+       }
+
+       char *szTitle =
+               g_strdup_printf(VIDEOS_SELECTVIEW_HEADER_PD_SELECTED,
+                                               g_pListRemoveViewHandle->
+                                               nSelectCounterForEditList);
+
+       g_pListRemoveViewHandle->pNaviFrameItem =
+               elm_naviframe_item_push(g_pListRemoveViewHandle->pNaviFrameHandle,
+                                                               szTitle, NULL, NULL,
+                                                               g_pListRemoveViewWidget->
+                                                               pRemoveViewBaselayout, NULL);
+       elm_object_item_domain_text_translatable_set(g_pListRemoveViewHandle->
+                                                                                                pNaviFrameItem,
+                                                                                                VIDEOS_STRING, EINA_TRUE);
+       elm_naviframe_item_pop_cb_set(g_pListRemoveViewHandle->pNaviFrameItem,
+                                                                 __mp_remove_view_back_btn_cb,
+                                                                 g_pListRemoveViewHandle);
+
+       elm_naviframe_item_title_enabled_set(g_pListRemoveViewHandle->
+                                                                                pNaviFrameItem, EINA_TRUE,
+                                                                                EINA_FALSE);
+       evas_object_smart_callback_add(g_pListRemoveViewHandle->
+                                                                  pNaviFrameHandle, "transition,finished",
+                                                                  mp_remove_view_naviframe_transition_effect_cb,
+                                                                  NULL);
+
+       g_pListRemoveViewWidget->pCancelbtn =
+               elm_button_add(g_pListRemoveViewHandle->pNaviFrameHandle);
+       elm_object_style_set(g_pListRemoveViewWidget->pCancelbtn,
+                                                "naviframe/title_left");
+       mp_util_set_translate_str(g_pListRemoveViewWidget->pCancelbtn,
+                                                         "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB");
+       elm_object_signal_callback_add(g_pListRemoveViewWidget->pCancelbtn,
+                                                                  "elm,action,click", "",
+                                                                  __mp_remove_view_run_cancel_items_cb,
+                                                                  (void *) g_pListRemoveViewHandle);
+       elm_object_item_part_content_set(g_pListRemoveViewHandle->
+                                                                        pNaviFrameItem, "title_left_btn",
+                                                                        g_pListRemoveViewWidget->pCancelbtn);
+       evas_object_show(g_pListRemoveViewWidget->pCancelbtn);
+
+       g_pListRemoveViewWidget->pSavebtn =
+               elm_button_add(g_pListRemoveViewHandle->pNaviFrameHandle);
+       elm_object_style_set(g_pListRemoveViewWidget->pSavebtn,
+                                                "naviframe/title_right");
+       mp_util_set_translate_str(g_pListRemoveViewWidget->pSavebtn,
+                                                         "IDS_TPLATFORM_ACBUTTON_DELETE_ABB");
+       elm_object_signal_callback_add(g_pListRemoveViewWidget->pSavebtn,
+                                                                  "elm,action,click", "",
+                                                                  __mp_remove_view_run_delete_items_cb,
+                                                                  (void *) g_pListRemoveViewHandle);
+       elm_object_item_part_content_set(g_pListRemoveViewHandle->
+                                                                        pNaviFrameItem, "title_right_btn",
+                                                                        g_pListRemoveViewWidget->pSavebtn);
+       evas_object_show(g_pListRemoveViewWidget->pSavebtn);
+
+       elm_object_disabled_set(g_pListRemoveViewWidget->pSavebtn, EINA_TRUE);
+
+       evas_object_show(g_pListRemoveViewHandle->pObjVideosList);
+       evas_object_show(g_pListRemoveViewWidget->pRemoveViewBaselayout);
+
+       mp_util_db_set_update_fun(g_pListRemoveViewHandle->euLev,
+                                                         __mp_remove_view_db_changed_cb);
+       mp_util_db_set_backup_fun(g_pListRemoveViewHandle->euLev,
+                                                         __mp_remove_view_db_backup_cb);
+
+       __mp_remove_view_release_selected_list();
+
+       MP_FREE_STRING(szTitle);
+       mp_util_hide_indicator();
+}
+
+/**
+ *
+ * @param pNaviFrame
+ * @param pUpdateViewCb
+ * @param pChangeViewCb
+ * @param pFolderPath
+ * @param eTabType
+ */
+void mp_remove_view_push(void *pNaviFrame,
+                                                ListRemoveViewCbFunc pUpdateViewCb,
+                                                ChangeListRemoveViewCbFunc pChangeViewCb,
+                                                char *pFolderPath, MpVideoListTabType eTabType)
+{
+       VideoLogInfo("");
+       mp_remove_view_destroy();
+       g_pListRemoveViewHandle =
+               (st_VideoListRemoveViewHandle *) calloc(1,
+                                                                                               sizeof
+                                                                                               (st_VideoListRemoveViewHandle));
+       g_pListRemoveViewWidget =
+               (st_VideoListRemoveViewWidget *) calloc(1,
+                                                                                               sizeof
+                                                                                               (st_VideoListRemoveViewWidget));
+
+       memset(g_pListRemoveViewHandle, 0,
+                  sizeof(st_VideoListRemoveViewHandle));
+       memset(g_pListRemoveViewWidget, 0,
+                  sizeof(st_VideoListRemoveViewWidget));
+       mp_remove_view_reset_value();
+
+       g_pListRemoveViewHandle->pNaviFrameHandle = pNaviFrame;
+       g_pListRemoveViewHandle->pChangeViewUserCbFunc = pChangeViewCb;
+       g_pListRemoveViewHandle->pChangeViewUpdateFunc = pUpdateViewCb;
+
+       if (pFolderPath) {
+               g_pListRemoveViewHandle->pFolderPath = strdup(pFolderPath);
+       }
+       g_pListRemoveViewHandle->bUpdateList = FALSE;
+       g_pListRemoveViewHandle->euLev = MP_DB_UPDATE_LEV_1;
+
+       int nViewType = mp_view_as_ctrl_get_type();
+       if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST
+               && g_pListRemoveViewHandle->pFolderPath) {
+               g_pListRemoveViewHandle->euLev = MP_DB_UPDATE_LEV_2;
+       }
+
+       if ((nViewType == MP_LIST_VIEW_AS_FOLDER_LIST)
+               && (!g_pListRemoveViewHandle->pFolderPath)
+               && (LIST_TAB_TYPE_PERSONAL == eTabType)) {
+               g_pListRemoveViewHandle->bFolderDel = TRUE;
+       } else {
+               g_pListRemoveViewHandle->bFolderDel = FALSE;
+       }
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+       if ((nViewType == MP_LIST_VIEW_AS_THUMBNAIL_LIST
+                || nViewType == MP_LIST_VIEW_AS_FOLDER_LIST)
+               && (LIST_TAB_TYPE_PERSONAL == eTabType)) {
+               g_pListRemoveViewHandle->bThumbnailView = TRUE;
+       } else {
+               g_pListRemoveViewHandle->bThumbnailView = FALSE;
+       }
+#endif
+       mp_remove_view_init(g_pListRemoveViewHandle->pNaviFrameHandle,
+                                               eTabType);
+       evas_object_smart_callback_add((Evas_Object *)
+                                                                  mp_util_get_main_window_handle(),
+                                                                  "wm,rotation,changed",
+                                                                  __mp_remove_view_rotate_cb,
+                                                                  (void *) g_pListRemoveViewHandle);
+       g_pListRemoveViewHandle->update_view_data = false;
+}
+
+/**
+ *
+ */
+void mp_remove_view_pop(void)
+{
+       VideoLogInfo("");
+       if (!g_pListRemoveViewHandle) {
+               VideoLogError("No existed handle of remove view.");
+               return;
+       }
+       // KEEP BELOW CALLING SEQUENCE OF FUNCTION.
+       bool bUpdateList = FALSE;
+       if (g_pListRemoveViewHandle->bUpdateList) {
+               if (g_pListRemoveViewHandle->pChangeViewUpdateFunc) {
+                       bUpdateList = TRUE;
+                       g_pListRemoveViewHandle->
+                               pChangeViewUpdateFunc(LIST_UPDATE_TYPE_ALL);
+               }
+       }
+
+       if (!bUpdateList) {
+               if (g_pListRemoveViewHandle->pChangeViewUserCbFunc) {
+                       g_pListRemoveViewHandle->pChangeViewUserCbFunc();
+               }
+       }
+
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_remove_view_is_top_view(void)
+{
+       VideoLogInfo("");
+
+       return FALSE;
+}
+
+/**
+ *
+ */
+void mp_remove_view_change_language(void)
+{
+       if (!g_pListRemoveViewHandle || !g_pListRemoveViewWidget) {
+               VideoLogError("No existed handle of remove view.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       mp_remove_view_change_title_info();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObject
+ * @param pEventInfo
+ */
+static void
+__mp_remove_view_base_layout_del_cb(void *pUserData, Evas * e,
+                                                                       Evas_Object * pObject,
+                                                                       void *pEventInfo)
+{
+       __mp_remove_view_reset();
+}
diff --git a/src/view/mp-video-list-share-via-view.c b/src/view/mp-video-list-share-via-view.c
new file mode 100755 (executable)
index 0000000..ce59923
--- /dev/null
@@ -0,0 +1,2235 @@
+/*
+ * Copyright (c) 2020 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 <Eina.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+#include <glib.h>
+
+#include "mp-util.h"
+#include "vp-file-util.h"
+#include "mp-video-log.h"
+#include "mp-external-ug.h"
+#include "mp-video-string-define.h"
+#include "mp-video-value-define.h"
+#include "mp-util-media-service.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-video-list-share-via-view.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-util-widget-ctrl.h"
+#include "mp-video-util-db-controller.h"
+#include "mp-rotate-ctrl.h"
+#include "videos-view-mgr.h"
+
+#define VIDEO_SELECTED_INFO_TIMER              4.0
+#define FIRST_SHARE_ITEM_OFFSET                        1
+#define VIDEO_SHARE_ITEM_MAX                   30
+
+typedef struct {
+       void *pNaviFrameHandle;
+       void *pNaviFrameItem;
+       /* used for list view ,thumbnail view */
+       void *pObjVideosList;
+
+       Elm_Genlist_Item_Class *pGenListItc;
+       Elm_Genlist_Item_Class *pGenListLandscapeItc;
+       Elm_Gengrid_Item_Class *pGenGridItc_1;
+       Elm_Gengrid_Item_Class *pGenGridItc_2;
+
+       bool *pCheckedItemsEditList;
+       /* save selected video id */
+       char **pSelectedList;
+       bool bSelectallCheckBoxState;
+       int nSelectCounterForEditList;
+       MpMediaSvcSortType nSortType;
+       MpDbUpdateViewLev euLev;
+       ChangeListShareViewCbFunc pChangeViewUserCbFunc;
+       char *pFolderPath;
+
+       MpVideoListTabType eTabType;
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+       bool bLandscape;
+       bool bThumbnailView;
+#endif
+} st_VideoListShareViaViewHandle;
+
+typedef struct {
+       Evas_Object *pVideoListBox;
+       Evas_Object *pChareViaViewBaselayout;
+       Evas_Object *pSelectallbtn;
+       Evas_Object *pSelAllLayout;
+       Evas_Object *pSavebtn;
+       Evas_Object *pCancelbtn;
+
+} st_VideoListShareViaViewWidget;
+
+static st_VideoListShareViaViewHandle *g_pShareViaHandle = NULL;
+static st_VideoListShareViaViewWidget *g_pShareViaWidget = NULL;
+
+static app_control_h g_pServiceShare = NULL;
+static char **g_pShareList = NULL;
+static int g_nShareListSize = 0;
+static bool g_bSharePanelLaunched = FALSE;
+
+int mp_share_view_get_sort_type(void);
+bool __mp_share_view_arrange_video_list(void *pObjVideosList,
+                                                                               bool bNeedSvc);
+void mp_share_view_naviframe_transition_effect_cb(void *pUserData,
+                                                                                                 Evas_Object * pObject,
+                                                                                                 void *pEventInfo);
+void mp_share_view_change_title_info(void);
+static void __mp_share_view_base_layout_del_cb(void *pUserData, Evas * e,
+                                                                                          Evas_Object * pObject,
+                                                                                          void *pEventInfo);
+static void __mp_share_via_view_rotate_cb(void *data, Evas_Object * obj,
+                                                                                 void *event_info);
+
+static bool __mp_share_view_get_selected_video_list(int nSelectedSize);
+
+static void __vp_share_view_create_launch_share_panel(void);
+static void __vp_share_view_destroy_share_panel(void);
+
+/**
+ *
+ */
+static void __mp_share_view_free_selected_list(void)
+{
+       if (!g_pShareViaHandle || !g_pShareViaHandle->pSelectedList) {
+               return;
+       }
+       int nIndex = 0;
+       while (g_pShareViaHandle->pSelectedList[nIndex]) {
+               nIndex++;
+               MP_FREE_STRING(g_pShareViaHandle->pSelectedList[nIndex]);
+       }
+       MP_FREE_STRING(g_pShareViaHandle->pSelectedList);
+}
+
+/**
+ *
+ */
+void mp_share_view_update_all_check_box(void)
+{
+       VideoLogInfo("");
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+       if (!g_pShareViaHandle->pObjVideosList) {
+               VideoLogInfo("genlist is NULL");
+               return;
+       }
+
+       if (nVideoListSize < 1) {
+               VideoLogInfo("nVideoListSize < 1:%d", nVideoListSize);
+               return;
+       }
+
+       Evas_Object *check_box = NULL;
+       Evas_Object *check_box_layout = NULL;
+       Elm_Object_Item *currentItem = NULL;
+       Elm_Object_Item *currentItemGengrid = NULL;
+       int nVideoItemIndex = 0;
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+       if (g_pShareViaHandle->bThumbnailView) {
+               currentItem =
+                       elm_genlist_first_item_get(g_pShareViaHandle->pObjVideosList);
+               nVideoItemIndex = 0;
+               while (currentItem && (nVideoItemIndex < nVideoListSize)) {
+                       Evas_Object *gengrid =
+                               elm_object_item_part_content_get(currentItem, "elm.icon");
+                       currentItemGengrid = elm_gengrid_first_item_get(gengrid);
+                       while (currentItemGengrid
+                                  && (nVideoItemIndex < nVideoListSize)) {
+                               Evas_Object *check_box =
+                                       elm_object_item_part_content_get(currentItemGengrid,
+                                                                                                        "elm.swallow.end");
+                               if (check_box) {
+                                       elm_check_state_set(check_box,
+                                                                               g_pShareViaHandle->
+                                                                               pCheckedItemsEditList
+                                                                               [nVideoItemIndex]);
+                               }
+                               currentItemGengrid =
+                                       elm_gengrid_item_next_get(currentItemGengrid);
+                               nVideoItemIndex++;
+                       }
+                       currentItem = elm_genlist_item_next_get(currentItem);
+               }
+
+       } else
+#endif
+       {
+               currentItem =
+                       elm_genlist_first_item_get(g_pShareViaHandle->pObjVideosList);
+               nVideoItemIndex = 0;
+               while (currentItem && (nVideoItemIndex < nVideoListSize)) {
+                       check_box_layout =
+                               elm_object_item_part_content_get(currentItem,
+                                                                                                "elm.icon.2");
+                       check_box =
+                               elm_object_part_content_get(check_box_layout,
+                                                                                       "elm.swallow.content");
+                       if (check_box) {
+                               elm_check_state_set(check_box,
+                                                                       g_pShareViaHandle->
+                                                                       pCheckedItemsEditList
+                                                                       [nVideoItemIndex]);
+                       }
+                       currentItem = elm_genlist_item_next_get(currentItem);
+                       nVideoItemIndex++;
+               }
+       }
+}
+
+/**
+ *
+ */
+void mp_share_view_destroy(void)
+{
+       VideoLogInfo("");
+
+       if (g_pShareViaHandle) {
+               evas_object_smart_callback_del(g_pShareViaHandle->pNaviFrameHandle,
+                                                                          "transition,finished",
+                                                                          mp_share_view_naviframe_transition_effect_cb);
+               __mp_share_view_free_selected_list();
+
+               MP_DEL_OBJ(g_pShareViaHandle->pObjVideosList);
+               MP_DEL_ITC(g_pShareViaHandle->pGenListItc);
+               MP_DEL_ITC(g_pShareViaHandle->pGenListLandscapeItc);
+               MP_DEL_GRID_ITC(g_pShareViaHandle->pGenGridItc_1);
+               MP_DEL_GRID_ITC(g_pShareViaHandle->pGenGridItc_2);
+               MP_FREE_STRING(g_pShareViaHandle->pCheckedItemsEditList);
+               MP_FREE_STRING(g_pShareViaHandle->pFolderPath);
+               evas_object_smart_callback_del((Evas_Object *)
+                                                                          mp_util_get_main_window_handle(),
+                                                                          "wm,rotation,changed",
+                                                                          __mp_share_via_view_rotate_cb);
+
+               MP_FREE_STRING(g_pShareViaHandle);
+       }
+
+       if (g_pShareViaWidget) {
+
+               MP_DEL_OBJ(g_pShareViaWidget->pSelectallbtn);
+               MP_DEL_OBJ(g_pShareViaWidget->pSelAllLayout);
+               MP_DEL_OBJ(g_pShareViaWidget->pVideoListBox);
+               MP_DEL_OBJ(g_pShareViaWidget->pChareViaViewBaselayout);
+               MP_DEL_OBJ(g_pShareViaWidget->pSavebtn);
+               MP_DEL_OBJ(g_pShareViaWidget->pCancelbtn);
+
+               MP_FREE_STRING(g_pShareViaWidget);
+       }
+}
+
+/**
+ *
+ */
+static void __mp_share_view_reset(void)
+{
+       VideoLogInfo("");
+
+       if (g_pShareViaHandle) {
+               mp_util_db_set_update_fun(g_pShareViaHandle->euLev, NULL);
+               mp_util_db_set_backup_fun(g_pShareViaHandle->euLev, NULL);
+               evas_object_smart_callback_del(g_pShareViaHandle->pNaviFrameHandle,
+                                                                          "transition,finished",
+                                                                          mp_share_view_naviframe_transition_effect_cb);
+               evas_object_smart_callback_del((Evas_Object *)
+                                                                          mp_util_get_main_window_handle(),
+                                                                          "wm,rotation,changed",
+                                                                          __mp_share_via_view_rotate_cb);
+               __mp_share_view_free_selected_list();
+
+               g_pShareViaHandle->pObjVideosList = NULL;
+
+               MP_DEL_ITC(g_pShareViaHandle->pGenListItc);
+               MP_DEL_ITC(g_pShareViaHandle->pGenListLandscapeItc);
+               MP_DEL_GRID_ITC(g_pShareViaHandle->pGenGridItc_1);
+               MP_DEL_GRID_ITC(g_pShareViaHandle->pGenGridItc_2);
+               MP_FREE_STRING(g_pShareViaHandle->pCheckedItemsEditList);
+               MP_FREE_STRING(g_pShareViaHandle->pFolderPath);
+
+               MP_FREE_STRING(g_pShareViaHandle);
+       }
+
+       if (g_pShareViaWidget) {
+               MP_DEL_OBJ(g_pShareViaWidget->pSelectallbtn);
+               g_pShareViaWidget->pVideoListBox = NULL;
+               g_pShareViaWidget->pSelAllLayout = NULL;
+
+               g_pShareViaWidget->pChareViaViewBaselayout = NULL;
+               MP_DEL_OBJ(g_pShareViaWidget->pSavebtn);
+               MP_DEL_OBJ(g_pShareViaWidget->pCancelbtn);
+
+               MP_FREE_STRING(g_pShareViaWidget);
+       }
+}
+
+/**
+ *
+ */
+void mp_share_view_reset_value(void)
+{
+       if (!g_pShareViaHandle) {
+               VideoLogError("[ERR] g_pShareViaHandle is not existed.");
+               return;
+       }
+       VideoLogInfo("");
+
+       g_pShareViaHandle->pNaviFrameHandle = NULL;
+       g_pShareViaHandle->pNaviFrameItem = NULL;
+       g_pShareViaHandle->pChangeViewUserCbFunc = NULL;
+
+       g_pShareViaHandle->bSelectallCheckBoxState = FALSE;
+       g_pShareViaHandle->nSelectCounterForEditList = 0;
+       g_pShareViaHandle->nSortType = MP_MEDIA_SORT_BY_RECENTLY_VIEWED;
+
+       if (g_pShareViaHandle->pNaviFrameItem) {
+               elm_object_item_part_content_unset(g_pShareViaHandle->
+                                                                                  pNaviFrameItem,
+                                                                                  "toolbar_more_btn");
+               elm_object_item_part_content_unset(g_pShareViaHandle->
+                                                                                  pNaviFrameItem, "toolbar");
+               elm_object_item_part_content_unset(g_pShareViaHandle->
+                                                                                  pNaviFrameItem,
+                                                                                  "toolbar_button2");
+       }
+}
+
+/**
+ *
+ */
+static void __vp_share_view_create_launch_share_panel(void)
+{
+       char *pOperation = VIDEO_SHARE_OPERATION_SINGLE;
+       int nCounter;
+       int nErr = 0;
+
+       if (g_nShareListSize > 1) {
+               pOperation = VIDEO_SHARE_OPERATION_MULTIPLE;
+       }
+
+       if (!g_pShareList) {
+               VideoLogWarning("[WARNING] Fail to get uri at first.");
+               goto ERROR_EXCEPTION;
+       }
+
+       if (!g_pServiceShare) {
+               nErr = app_control_create(&g_pServiceShare);
+               if (nErr != APP_CONTROL_ERROR_NONE) {
+                       VideoLogInfo("Fail to create ug service handle - [0x%x]",
+                                                nErr);
+                       goto ERROR_EXCEPTION;
+               }
+       }
+
+       nErr = app_control_create(&g_pServiceShare);
+       if (nErr != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("Fail to create ug service handle - [0x%x]", nErr);
+               goto ERROR_EXCEPTION;
+       }
+
+       nErr = app_control_set_uri(g_pServiceShare, g_pShareList[0]);
+       if (nErr != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("Fail to set uri into ug service handle - [0x%x]",
+                                        nErr);
+               goto ERROR_EXCEPTION;
+       }
+
+       nErr = app_control_set_operation(g_pServiceShare, pOperation);
+       if (nErr != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("app_control_add_extra_data_array().. [0x%x]", nErr);
+               goto ERROR_EXCEPTION;
+       }
+
+       if (g_nShareListSize >= 1) {
+               nErr = app_control_add_extra_data_array(g_pServiceShare,
+                                                                                               "http://tizen.org/appcontrol/data/path",
+                                                                                               (const char
+                                                                                                **) (&g_pShareList[1]),
+                                                                                               g_nShareListSize - 1);
+               if (nErr != APP_CONTROL_ERROR_NONE) {
+                       VideoLogWarning
+                               ("[WARNING] app_control_add_extra_data_array() [0x%x]",
+                                nErr);
+                       goto ERROR_EXCEPTION;
+               }
+       }
+
+       nErr = app_control_send_launch_request(g_pServiceShare, NULL, NULL);
+       if (nErr != APP_CONTROL_ERROR_NONE) {
+               VideoLogWarning
+                       ("[WARNING] app_control_send_launch_request().. [0x%x]", nErr);
+               goto ERROR_EXCEPTION;
+       }
+
+       g_bSharePanelLaunched = TRUE;
+
+       elm_naviframe_item_pop(g_pShareViaHandle->pNaviFrameHandle);
+
+       return;
+
+  ERROR_EXCEPTION:
+       if (g_pServiceShare) {
+               app_control_destroy(g_pServiceShare);
+               g_pServiceShare = NULL;
+       }
+
+       if (g_pShareList) {
+               for (nCounter = 0; nCounter < g_nShareListSize; nCounter++) {
+                       if (g_pShareList[nCounter]) {
+                               free(g_pShareList[nCounter]);
+                               g_pShareList[nCounter] = NULL;
+                       }
+               }
+               free(g_pShareList);
+               g_pShareList = NULL;
+       }
+
+}
+
+/**
+ *
+ */
+static void __vp_share_view_destroy_share_panel(void)
+{
+       int nCounter;
+       if (g_pServiceShare && g_bSharePanelLaunched) {
+               app_control_send_terminate_request(g_pServiceShare);
+               app_control_destroy(g_pServiceShare);
+               g_pServiceShare = NULL;
+               g_bSharePanelLaunched = FALSE;
+
+               if (g_pShareList) {
+                       for (nCounter = 0; nCounter < g_nShareListSize; nCounter++) {
+                               if (g_pShareList[nCounter]) {
+                                       free(g_pShareList[nCounter]);
+                                       g_pShareList[nCounter] = NULL;
+                               }
+                       }
+                       free(g_pShareList);
+                       g_pShareList = NULL;
+               }
+               g_nShareListSize = 0;
+       }
+}
+
+/**
+ *
+ */
+void vp_share_view_update_share_panel(void)
+{
+       bool bValidMedia = FALSE;
+       int i;
+
+       if (g_pServiceShare && g_bSharePanelLaunched == TRUE) {
+
+               for (i = 0; i < g_nShareListSize; i++) {
+
+                       if (!vp_file_exists((const char *) g_pShareList[i])) {
+                               VideoLogError("File %s doesn't exist", g_pShareList[i]);
+                               bValidMedia = FALSE;
+                       } else {
+                               bValidMedia = TRUE;
+                       }
+
+                       if (bValidMedia) {
+                               break;
+                       }
+               }
+
+               if (!bValidMedia) {
+                       VideoLogInfo
+                               ("Selected media not found. Destroying share panel");
+                       __vp_share_view_destroy_share_panel();
+               }
+       }
+}
+
+
+/**
+ *
+ */
+void mp_share_view_launching_share_panel(void)
+{
+       if (!g_pShareViaHandle || !g_pShareViaHandle->pCheckedItemsEditList) {
+               VideoLogError("g_pShareViaHandle is null.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       int nCounter = 0;
+       int nTotalVideoItem = 0;
+       int nTotalAppendedItem = 0;
+       int nExtraDataSize = 0;
+
+       g_nShareListSize = 0;
+
+       char *szFileUrlForServiceSetUri = NULL;
+       char **szFileUrlArrayForServiceExtraData = NULL;
+
+       nTotalVideoItem = mp_util_svc_get_number_of_video_item_by_type();
+       nExtraDataSize = nTotalVideoItem;
+
+       if (nExtraDataSize) {
+               szFileUrlArrayForServiceExtraData =
+                       (char **) calloc(nExtraDataSize, sizeof(char *));
+
+               /* Store the list so the share panel can be updated later */
+               g_pShareList = (char **) calloc(nExtraDataSize, sizeof(char *));
+       }
+
+       /* Extract First URI. */
+       for (nCounter = 0; nCounter < nTotalVideoItem; nCounter++) {
+               if (g_pShareViaHandle->pCheckedItemsEditList[nCounter]) {
+                       if (mp_util_svc_is_cloud_storage(nCounter)) {
+                               continue;
+                       }
+
+                       char *szFileUrl = mp_util_svc_get_video_url(nCounter);
+
+                       if (szFileUrl) {
+                               szFileUrlForServiceSetUri = szFileUrl;
+                               nCounter++;
+
+                               g_pShareList[0] = strdup(szFileUrl);
+                               g_nShareListSize++;
+                               break;
+                       } else {
+                               VideoLogError("szFileUrl is not existed.");
+                       }
+               }
+       }
+
+       VideoLogInfo("nCounter = %d", nCounter);
+
+       /* Extract another URI if existing selected items more. */
+       if (nExtraDataSize > 0 && szFileUrlArrayForServiceExtraData) {
+               for (nCounter = 0; nCounter < nTotalVideoItem; nCounter++) {
+                       if (g_pShareViaHandle->pCheckedItemsEditList[nCounter]) {
+                               if (mp_util_svc_is_cloud_storage(nCounter)) {
+                                       continue;
+                               }
+
+                               char *szFileUrl = mp_util_svc_get_video_url(nCounter);
+
+                               if (szFileUrl) {
+                                       if (nTotalAppendedItem < nExtraDataSize) {
+                                               szFileUrlArrayForServiceExtraData
+                                                       [nTotalAppendedItem] = szFileUrl;
+                                               VideoSecureLogInfo
+                                                       ("Appending share item : %s, Total Appended item : %d",
+                                                        (const char **)
+                                                        szFileUrlArrayForServiceExtraData
+                                                        [nTotalAppendedItem], nTotalAppendedItem);
+                                               nTotalAppendedItem++;
+
+                                               g_pShareList[g_nShareListSize++] =
+                                                       strdup(szFileUrl);
+                                               continue;
+                                       } else {
+                                               VideoLogWarning
+                                                       ("[WARNING] OVERFLOW ALOOCATED MEMORY SIZE.");
+                                               free(szFileUrl);
+                                       }
+                               } else {
+                                       VideoLogError("szFileUrl is not existed.");
+                               }
+                       }
+               }
+       }
+
+       __vp_share_view_create_launch_share_panel();
+
+       VideoLogInfo("Launching share panel.");
+
+       if (szFileUrlForServiceSetUri) {
+               free(szFileUrlForServiceSetUri);
+               szFileUrlForServiceSetUri = NULL;
+       }
+
+       if (szFileUrlArrayForServiceExtraData) {
+               for (nCounter = 0; nCounter < nExtraDataSize; nCounter++) {
+                       if (szFileUrlArrayForServiceExtraData[nCounter]) {
+                               free(szFileUrlArrayForServiceExtraData[nCounter]);
+                               szFileUrlArrayForServiceExtraData[nCounter] = NULL;
+                       }
+               }
+               free(szFileUrlArrayForServiceExtraData);
+               szFileUrlArrayForServiceExtraData = NULL;
+       }
+
+       return;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param emission
+ * @param source
+ */
+void __mp_share_view_show_cancel_cb(void *data, Evas_Object * obj,
+                                                                       const char *emission,
+                                                                       const char *source)
+{
+       if (!g_pShareViaHandle->pNaviFrameHandle) {
+               VideoSecureLogError("g_pShareViaHandle->pNaviFrameHandle is NULL");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       elm_naviframe_item_pop(g_pShareViaHandle->pNaviFrameHandle);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param emission
+ * @param source
+ */
+void __mp_share_view_show_share_via_panel_cb(void *data, Evas_Object * obj,
+                                                                                        const char *emission,
+                                                                                        const char *source)
+{
+       if (!g_pShareViaHandle) {
+               VideoLogInfo("[ERR] g_pMainViewHandle is NULL.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       if (!g_pShareViaHandle->pObjVideosList) {
+               VideoLogInfo("No exist genlist object.");
+               return;
+       }
+
+       VideoLogInfo("[INFO]nSelectCounterForEditList : %d",
+                                g_pShareViaHandle->nSelectCounterForEditList);
+       if (g_pShareViaHandle->nSelectCounterForEditList > 0) {
+               mp_share_view_launching_share_panel();
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param obj
+ * @param event_info
+ */
+static void __mp_share_view_trans_finished_cb(void *pUserData,
+                                                                                         Evas_Object * obj,
+                                                                                         void *event_info)
+{
+       if (!obj) {
+               VideoLogError("[ERR] g_pShareViaHandle is NULL.");
+               return;
+       }
+
+       mp_widget_ctrl_enable_navi_handle_focus(obj);
+
+       evas_object_smart_callback_del(obj, "transition,finished",
+                                                                  __mp_share_view_trans_finished_cb);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+static Eina_Bool mp_share_view_back_btn_cb(void *pUserData,
+                                                                                  Elm_Object_Item * pItem)
+{
+       if (!g_pShareViaHandle) {
+               VideoLogInfo("[ERR] g_pShareViaHandle is NULL.");
+               return EINA_TRUE;
+       }
+
+       mp_widget_ctrl_disable_navi_handle_focus_except_item
+               (g_pShareViaHandle->pNaviFrameHandle,
+                g_pShareViaHandle->pNaviFrameItem);
+       evas_object_smart_callback_add(g_pShareViaHandle->pNaviFrameHandle,
+                                                                  "transition,finished",
+                                                                  __mp_share_view_trans_finished_cb,
+                                                                  NULL);
+
+       mp_share_view_pop();
+
+       return EINA_TRUE;
+}
+
+/**
+ *
+ */
+void mp_share_view_change_title_info(void)
+{
+       VideoLogInfo("nNumOfSelectdCount : %d",
+                                g_pShareViaHandle->nSelectCounterForEditList);
+
+       if (g_pShareViaHandle->nSelectCounterForEditList > 0) {
+               elm_object_disabled_set(g_pShareViaWidget->pSavebtn, EINA_FALSE);
+       } else {
+               VideoLogInfo("Unactivate delete tab.");
+               elm_object_disabled_set(g_pShareViaWidget->pSavebtn, EINA_TRUE);
+       }
+
+       char *szCheckingTotalItem =
+               g_strdup_printf(VIDEOS_SELECTVIEW_HEADER_PD_SELECTED,
+                                               g_pShareViaHandle->nSelectCounterForEditList);
+       elm_object_item_domain_translatable_part_text_set(g_pShareViaHandle->
+                                                                                                         pNaviFrameItem,
+                                                                                                         "elm.text.title",
+                                                                                                         VIDEOS_STRING,
+                                                                                                         szCheckingTotalItem);
+       MP_FREE_STRING(szCheckingTotalItem);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_share_view_select_all_change_check_box_cb(void *pUserData,
+                                                                                                                  Evas_Object *
+                                                                                                                  pObject,
+                                                                                                                  void
+                                                                                                                  *pEventInfo)
+{
+       if (!pObject) {
+               VideoLogError("[ERR]");
+               return;
+       }
+
+       if (!g_pShareViaHandle->pObjVideosList) {
+               VideoLogError("No exist pVideoGenlist");
+               return;
+       }
+
+       int nCounter = 0;
+       int nVideoListSize = 0;
+
+       nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+
+       if (!g_pShareViaHandle->bSelectallCheckBoxState) {
+               if (nVideoListSize > VIDEO_SHARE_ITEM_MAX) {
+                       VideoLogError
+                               ("nVideoListSize is bigger than VIDEO_SHARE_ITEM_MAX");
+                       char *pStrWarning =
+                               g_strdup_printf(VIDEOS_NOTIPOP_MSG_SHARE_ITEM_MAX,
+                                                               VIDEO_SHARE_ITEM_MAX);
+                       mp_util_ticker_toast_popup(pStrWarning, false, false);
+                       MP_FREE_STRING(pStrWarning);
+                       elm_check_state_set(g_pShareViaWidget->pSelectallbtn,
+                                                               g_pShareViaHandle->
+                                                               bSelectallCheckBoxState);
+                       return;
+               }
+               g_pShareViaHandle->bSelectallCheckBoxState = TRUE;
+               g_pShareViaHandle->nSelectCounterForEditList = nVideoListSize;
+       } else {
+               g_pShareViaHandle->bSelectallCheckBoxState = FALSE;
+               g_pShareViaHandle->nSelectCounterForEditList = 0;
+
+               VideoLogInfo("Unactivate delete button.");
+               elm_object_disabled_set(g_pShareViaWidget->pSavebtn, EINA_TRUE);
+       }
+
+       elm_check_state_set(g_pShareViaWidget->pSelectallbtn,
+                                               g_pShareViaHandle->bSelectallCheckBoxState);
+
+       mp_share_view_change_title_info();
+
+       for (nCounter = 0; nCounter < nVideoListSize; nCounter++) {
+               g_pShareViaHandle->pCheckedItemsEditList[nCounter] =
+                       g_pShareViaHandle->bSelectallCheckBoxState;
+       }
+
+       mp_share_view_update_all_check_box();
+
+}
+
+/**
+ *
+ */
+void mp_share_view_delete_select_all(void)
+{
+       VideoLogInfo("");
+
+       g_pShareViaHandle->bSelectallCheckBoxState = FALSE;
+       g_pShareViaHandle->nSelectCounterForEditList = 0;
+
+       mp_share_view_change_title_info();
+}
+
+/*
+Check box callback
+*/
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_share_view_change_check_box_state_cb(void *pUserData,
+                                                                                        Evas_Object * pObject,
+                                                                                        void *pEventInfo)
+{
+       if (!pObject) {
+               VideoLogError("[ERR]");
+               return;
+       } else {
+               VideoLogError("pObject : %x", pObject);
+       }
+
+       int nVideoItemIndex = (int) pUserData;
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       bool bState = elm_check_state_get(pObject);
+
+       if (bState) {
+               if (g_pShareViaHandle->nSelectCounterForEditList >
+                       (VIDEO_SHARE_ITEM_MAX - 1)) {
+                       char *pStrWarning =
+                               g_strdup_printf(VIDEOS_NOTIPOP_MSG_SHARE_ITEM_MAX,
+                                                               VIDEO_SHARE_ITEM_MAX);
+                       mp_util_ticker_toast_popup(pStrWarning, false, false);
+                       MP_FREE_STRING(pStrWarning);
+
+                       if (pObject) {
+                               elm_check_state_set(pObject, FALSE);
+                       }
+                       return;
+               }
+               g_pShareViaHandle->pCheckedItemsEditList[nVideoItemIndex] = TRUE;
+               g_pShareViaHandle->nSelectCounterForEditList++;
+               if (nVideoListSize == g_pShareViaHandle->nSelectCounterForEditList) {
+                       VideoLogInfo("All check box of edit list state are true.");
+                       g_pShareViaHandle->bSelectallCheckBoxState = TRUE;
+               }
+       } else {
+               g_pShareViaHandle->pCheckedItemsEditList[nVideoItemIndex] = FALSE;
+               if (nVideoListSize == g_pShareViaHandle->nSelectCounterForEditList) {
+                       VideoLogInfo("All check box of edit list state are not true.");
+                       g_pShareViaHandle->bSelectallCheckBoxState = FALSE;
+               }
+
+               g_pShareViaHandle->nSelectCounterForEditList--;
+               if (g_pShareViaHandle->nSelectCounterForEditList < 1) {
+                       VideoLogInfo("Unactivate delete button.");
+                       elm_object_disabled_set(g_pShareViaWidget->pSavebtn,
+                                                                       EINA_TRUE);
+               }
+       }
+
+       elm_check_state_set(g_pShareViaWidget->pSelectallbtn,
+                                               g_pShareViaHandle->bSelectallCheckBoxState);
+       mp_share_view_change_title_info();
+}
+
+/*
+Genlist callback
+*/
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_share_view_naviframe_transition_effect_cb(void *pUserData,
+                                                                                                 Evas_Object * pObject,
+                                                                                                 void *pEventInfo)
+{
+       if (!g_pShareViaHandle) {
+               VideoLogError("[ERR] No exist g_pShareViaHandle.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       Evas_Object *pTmpContents = NULL;
+       Elm_Object_Item *pTmpItem = NULL;
+
+       if (!g_pShareViaHandle->pNaviFrameHandle) {
+               VideoLogInfo("[ERR] No exist naviframe handle.");
+               return;
+       }
+
+       pTmpItem =
+               elm_naviframe_top_item_get(g_pShareViaHandle->pNaviFrameHandle);
+       pTmpContents = elm_object_item_content_get(pTmpItem);
+       if (pTmpContents) {
+               if (pTmpContents == g_pShareViaWidget->pVideoListBox) {
+               } else {
+                       VideoLogInfo
+                               ("It's not pListShareViaViewTabbarLayout in top screen.");
+               }
+       } else {
+               VideoLogError("[ERR] No exist naviframe top item.");
+       }
+}
+
+/**
+ *
+ */
+void mp_share_view_double_tap_cb(void)
+{
+       if (!g_pShareViaHandle->pObjVideosList) {
+               VideoLogError("pObjVideosList is not exist.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       elm_genlist_item_bring_in(elm_genlist_first_item_get
+                                                         (g_pShareViaHandle->pObjVideosList),
+                                                         ELM_GENLIST_ITEM_SCROLLTO_TOP);
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+char *mp_share_view_get_duration_time(int nVideoItemIndex)
+{
+       VideoLogInfo("");
+
+       char szTmpStr[STR_LEN_MAX] = { 0, };
+       char szTmpStrDurationTime[STR_LEN_MAX] = { 0, };
+       char szTmpStrLastPlayedPos[STR_LEN_MAX] = { 0, };
+
+       unsigned int nVideoInfoDuration =
+               mp_util_svc_get_video_duration_time(nVideoItemIndex);
+       unsigned int nVideoInfoLastTime = 0;
+
+       mp_util_convert_time(nVideoInfoDuration, szTmpStrDurationTime, FALSE);
+       mp_util_convert_time(nVideoInfoLastTime, szTmpStrLastPlayedPos, TRUE);
+
+       snprintf(szTmpStr, STR_LEN_MAX, "%s/%s", szTmpStrLastPlayedPos,
+                        szTmpStrDurationTime);
+
+       return strdup(szTmpStr);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_share_view_select_grid_item_cb(void *pUserData,
+                                                                                               Evas_Object * pObject,
+                                                                                               void *pEventInfo)
+{
+       if (!g_pShareViaHandle->pObjVideosList) {
+               VideoLogError("No exist genlist object.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       int nVideoItemIndex = 0;
+
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       Elm_Object_Item *pSelectedItem =
+               elm_gengrid_selected_item_get(pObject);
+
+       if (pItem) {
+               nVideoItemIndex = (int) elm_object_item_data_get(pItem);
+               VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+               int nVideoListSize =
+                       mp_util_svc_get_number_of_video_item_by_type();
+
+               VideoLogInfo("BEFORE : nSelectCounterForEditList : %d",
+                                        g_pShareViaHandle->nSelectCounterForEditList);
+
+               if (g_pShareViaHandle->pCheckedItemsEditList[nVideoItemIndex]) {
+                       g_pShareViaHandle->pCheckedItemsEditList[nVideoItemIndex] =
+                               FALSE;
+                       if (nVideoListSize ==
+                               g_pShareViaHandle->nSelectCounterForEditList) {
+                               VideoLogInfo
+                                       ("All check box of edit list state are not true.");
+                               g_pShareViaHandle->bSelectallCheckBoxState = FALSE;
+                       }
+
+                       g_pShareViaHandle->nSelectCounterForEditList--;
+                       if (g_pShareViaHandle->nSelectCounterForEditList < 1) {
+                               VideoLogInfo("Unactivate delete button.");
+                               elm_object_disabled_set(g_pShareViaWidget->pSavebtn,
+                                                                               EINA_TRUE);
+                       }
+               } else {
+                       VideoLogInfo("selected count = %d",
+                                                g_pShareViaHandle->nSelectCounterForEditList);
+                       if (g_pShareViaHandle->nSelectCounterForEditList >
+                               (VIDEO_SHARE_ITEM_MAX - 1)) {
+                               char *pStrWarning =
+                                       g_strdup_printf(VIDEOS_NOTIPOP_MSG_SHARE_ITEM_MAX,
+                                                                       VIDEO_SHARE_ITEM_MAX);
+                               mp_util_ticker_toast_popup(pStrWarning, false, false);
+                               MP_FREE_STRING(pStrWarning);
+                               if (pSelectedItem) {
+                                       elm_genlist_item_selected_set(pSelectedItem,
+                                                                                                 EINA_FALSE);
+                                       elm_gengrid_item_update(pSelectedItem);
+                               }
+                               return;
+                       }
+                       g_pShareViaHandle->pCheckedItemsEditList[nVideoItemIndex] =
+                               TRUE;
+                       g_pShareViaHandle->nSelectCounterForEditList++;
+                       if (nVideoListSize ==
+                               g_pShareViaHandle->nSelectCounterForEditList) {
+                               VideoLogInfo("All check box of edit list state are true.");
+                               g_pShareViaHandle->bSelectallCheckBoxState = TRUE;
+                       }
+               }
+
+               VideoLogInfo("AFTER : nSelectCounterForEditList : %d",
+                                        g_pShareViaHandle->nSelectCounterForEditList);
+               elm_check_state_set(g_pShareViaWidget->pSelectallbtn,
+                                                       g_pShareViaHandle->bSelectallCheckBoxState);
+
+               mp_share_view_change_title_info();
+               elm_gengrid_item_update(pItem);
+       } else {
+               VideoLogInfo("[ERR]Error item number.");
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_share_view_select_video_item_cb(void *pUserData,
+                                                                               Evas_Object * pObject,
+                                                                               void *pEventInfo)
+{
+       if (!g_pShareViaHandle->pObjVideosList) {
+               VideoLogError("No exist genlist object.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       int nVideoItemIndex = 0;
+
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+
+       if (pItem) {
+               nVideoItemIndex = (int) elm_object_item_data_get(pItem);
+               VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+               int nVideoListSize =
+                       mp_util_svc_get_number_of_video_item_by_type();
+
+               VideoLogInfo("BEFORE : nSelectCounterForEditList : %d",
+                                        g_pShareViaHandle->nSelectCounterForEditList);
+
+               if (g_pShareViaHandle->pCheckedItemsEditList[nVideoItemIndex]) {
+                       g_pShareViaHandle->pCheckedItemsEditList[nVideoItemIndex] =
+                               FALSE;
+                       if (nVideoListSize ==
+                               g_pShareViaHandle->nSelectCounterForEditList) {
+                               VideoLogInfo
+                                       ("All check box of edit list state are not true.");
+                               g_pShareViaHandle->bSelectallCheckBoxState = FALSE;
+                       }
+
+                       g_pShareViaHandle->nSelectCounterForEditList--;
+                       if (g_pShareViaHandle->nSelectCounterForEditList < 1) {
+                               VideoLogInfo("Unactivate delete button.");
+                               elm_object_disabled_set(g_pShareViaWidget->pSavebtn,
+                                                                               EINA_TRUE);
+                       }
+               } else {
+                       VideoLogInfo("Unactivate delete button. = %d",
+                                                g_pShareViaHandle->nSelectCounterForEditList);
+                       if (g_pShareViaHandle->nSelectCounterForEditList >
+                               (VIDEO_SHARE_ITEM_MAX - 1)) {
+                               char *pStrWarning =
+                                       g_strdup_printf(VIDEOS_NOTIPOP_MSG_SHARE_ITEM_MAX,
+                                                                       VIDEO_SHARE_ITEM_MAX);
+                               mp_util_ticker_toast_popup(pStrWarning, false, false);
+                               MP_FREE_STRING(pStrWarning);
+                               if (pSelectedItem) {
+                                       elm_genlist_item_selected_set(pSelectedItem,
+                                                                                                 EINA_FALSE);
+                               }
+                               return;
+                       }
+                       g_pShareViaHandle->pCheckedItemsEditList[nVideoItemIndex] =
+                               TRUE;
+                       g_pShareViaHandle->nSelectCounterForEditList++;
+                       if (nVideoListSize ==
+                               g_pShareViaHandle->nSelectCounterForEditList) {
+                               VideoLogInfo("All check box of edit list state are true.");
+                               g_pShareViaHandle->bSelectallCheckBoxState = TRUE;
+                       }
+               }
+
+               VideoLogInfo("AFTER : nSelectCounterForEditList : %d",
+                                        g_pShareViaHandle->nSelectCounterForEditList);
+               elm_check_state_set(g_pShareViaWidget->pSelectallbtn,
+                                                       g_pShareViaHandle->bSelectallCheckBoxState);
+               mp_share_view_change_title_info();
+               Evas_Object *check_box_layout =
+                       elm_object_item_part_content_get(pItem, "elm.icon.2");
+               Evas_Object *check_box =
+                       elm_object_part_content_get(check_box_layout,
+                                                                               "elm.swallow.content");
+               if (check_box) {
+                       elm_check_state_set(check_box,
+                                                               g_pShareViaHandle->
+                                                               pCheckedItemsEditList[nVideoItemIndex]);
+               }
+
+       } else {
+               VideoLogInfo("[ERR]Error item number.");
+       }
+
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_share_view_get_label_of_grid_item_cb(const void
+                                                                                                          *pUserData,
+                                                                                                          Evas_Object *
+                                                                                                          pObject,
+                                                                                                          const char *pPart)
+{
+       int nVideoItemIndex = (int) pUserData;
+
+       if (!strcmp(pPart, "elm.text")) {
+               char *szTitle = NULL;
+               szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+               char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+               if (szTitle) {
+                       free(szTitle);
+                       szTitle = NULL;
+               }
+
+               return szTitleUtf8;
+       } else if (!strcmp(pPart, "elm.text.2")) {
+               return mp_util_svc_get_duration_str_time(nVideoItemIndex);
+       }
+
+       return NULL;
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+char *mp_share_view_get_label_of_video_item_cb(const void *pUserData,
+                                                                                          Evas_Object * pObject,
+                                                                                          const char *pPart)
+{
+       int nVideoItemIndex = (int) pUserData;
+
+       if (!strcmp(pPart, "elm.text.main.left.top")) {
+               char *szTitle = NULL;
+               szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+               char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+               if (szTitle) {
+                       free(szTitle);
+                       szTitle = NULL;
+               }
+
+               return szTitleUtf8;
+       } else if (!strcmp(pPart, "elm.text.sub.left.bottom")) {
+               return mp_util_svc_get_duration_str_time(nVideoItemIndex);
+       }
+       return NULL;
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_share_view_get_grid_icon_cb(const void *pUserData,
+                                                                                                        Evas_Object * pObject,
+                                                                                                        const char *pPart)
+{
+       int nVideoItemIndex = (int) pUserData;
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_IMAGE_NAME_EDJ);
+       free(path);
+       if (!strcmp(pPart, "elm.swallow.icon")) {
+               char *pThumbIconUri =
+                       mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+               Evas_Object *pBg = NULL;
+
+               if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+                       pBg = elm_image_add(pObject);
+                       MP_FREE_STRING(pThumbIconUri);
+                       evas_object_size_hint_aspect_set(pBg, EVAS_ASPECT_CONTROL_BOTH,
+                                                                                        1, 1);
+                       elm_image_file_set(pBg, pThumbIconUri, NULL);
+               } else {
+                       pBg =
+                               mp_util_create_preload_image(pObject, pThumbIconUri,
+                                                                                        GRID_VIDEO_ICON_WIDTH);
+               }
+
+               MP_FREE_STRING(pThumbIconUri);
+
+               return pBg;
+       } else if (!strcmp(pPart, "elm.progressbar.icon")) {
+               return NULL;
+       } else if (!strcmp(pPart, "elm.lock.icon")) {
+               char *pVideoFile = mp_util_svc_get_video_url(nVideoItemIndex);
+               bool bRet = mp_util_check_video_personal_status((const char *)
+                                                                                                               pVideoFile);
+               MP_FREE_STRING(pVideoFile);
+               if (bRet) {
+                       Evas_Object *pLockIcon = elm_image_add(pObject);
+                       elm_image_file_set(pLockIcon,
+                                                          edj_path,
+                                                          VIDEO_LIST_VIEW_ICON_PERSONAL_LOCK);
+                       evas_object_size_hint_align_set(pLockIcon,
+                                                                                       EVAS_HINT_FILL,
+                                                                                       EVAS_HINT_FILL);
+                       evas_object_size_hint_weight_set(pLockIcon, EVAS_HINT_EXPAND,
+                                                                                        EVAS_HINT_EXPAND);
+                       evas_object_show(pLockIcon);
+                       return pLockIcon;
+               } else {
+                       return NULL;
+               }
+       } else if (!strcmp(pPart, "elm.dropbox.icon")) {
+               bool bRet = mp_util_svc_is_cloud_storage(nVideoItemIndex);
+               if (bRet) {
+                       Evas_Object *pDropboxIcon = elm_image_add(pObject);
+                       elm_image_file_set(pDropboxIcon,
+                                                          edj_path, VIDEO_LIST_VIEW_ICON_DROPBOX);
+                       evas_object_size_hint_align_set(pDropboxIcon,
+                                                                                       EVAS_HINT_FILL,
+                                                                                       EVAS_HINT_FILL);
+                       evas_object_size_hint_weight_set(pDropboxIcon,
+                                                                                        EVAS_HINT_EXPAND,
+                                                                                        EVAS_HINT_EXPAND);
+                       evas_object_show(pDropboxIcon);
+                       return pDropboxIcon;
+               } else {
+                       return NULL;
+               }
+       } else if (!strcmp(pPart, "elm.swallow.end")) {
+               Evas_Object *pCheckBox = elm_check_add(pObject);
+               elm_object_style_set(pCheckBox, "default");
+               elm_check_state_pointer_set(pCheckBox,
+                                                                       (Eina_Bool *) & (g_pShareViaHandle->
+                                                                                                        pCheckedItemsEditList
+                                                                                                        [nVideoItemIndex]));
+
+               evas_object_show(pCheckBox);
+
+               return pCheckBox;
+       }
+       return NULL;
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *mp_share_view_get_icon_of_video_item_cb(const void *pUserData,
+                                                                                                        Evas_Object * pObject,
+                                                                                                        const char *pPart)
+{
+       int nVideoItemIndex = (int) pUserData;
+       Evas_Object *pLayout = NULL;
+
+       if (!strcmp(pPart, "elm.icon.1")) {
+               pLayout = elm_layout_add(pObject);
+               char *pThumbIconUri =
+                       mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+               Evas_Object *pBg = NULL;
+
+               if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+                       MP_FREE_STRING(pThumbIconUri);
+               }
+
+               pBg = mp_util_create_preload_image(pLayout, pThumbIconUri,
+                                                                                  VIDEO_ICON_WIDTH);
+               if (pBg)
+                       evas_object_show(pBg);
+               char edj_path[1024] = { 0 };
+
+               char *path = app_get_resource_path();
+               snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                                VIDEO_CUSTOM_THEME);
+               free(path);
+               elm_layout_file_set(pLayout, edj_path,
+                                                       "listview.thumbnail.layout");
+               elm_layout_content_set(pLayout, "elm.thumbnail.icon", pBg);
+
+               MP_FREE_STRING(pThumbIconUri);
+
+               if (!mp_util_create_video_sub_icon(pLayout, nVideoItemIndex)) {
+                       VideoLogWarning("Create sub icon is failed.", nVideoItemIndex);
+               }
+
+               return pLayout;
+       } else if (!strcmp(pPart, "elm.icon.2")) {
+               pLayout = elm_layout_add(pObject);
+               Evas_Object *pCheckBox = elm_check_add(pLayout);
+
+               elm_layout_theme_set(pLayout, "layout", "list/C/type.2",
+                                                        "default");
+               evas_object_propagate_events_set(pCheckBox, EINA_FALSE);
+               evas_object_smart_callback_add(pCheckBox, "changed",
+                                                                          mp_share_view_change_check_box_state_cb,
+                                                                          pUserData);
+               elm_check_state_pointer_set(pCheckBox,
+                                                                       (Eina_Bool *) & (g_pShareViaHandle->
+                                                                                                        pCheckedItemsEditList
+                                                                                                        [nVideoItemIndex]));
+
+               evas_object_show(pCheckBox);
+
+               elm_layout_content_set(pLayout, "elm.swallow.content", pCheckBox);
+
+               return pLayout;
+       }
+
+       MP_DEL_OBJ(pLayout);
+       return NULL;
+}
+
+/**
+ *
+ * @return
+ */
+int mp_share_view_get_sort_type(void)
+{
+       switch (mp_sort_ctrl_get_sort_state()) {
+
+       case MP_LIST_SORT_BY_RECENTLY_ADDED:
+               g_pShareViaHandle->nSortType = MP_MEDIA_SORT_BY_RECENTLY_ADDED;
+               break;
+
+       case MP_LIST_SORT_BY_NAME:
+               g_pShareViaHandle->nSortType = MP_MEDIA_SORT_BY_NAME;
+               break;
+
+       }
+
+       return g_pShareViaHandle->nSortType;
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+/**
+ *
+ * @param pObjVideosList
+ * @param nGenItemIndex
+ */
+static void __mp_share_view_append_grid_items(void *pObjVideosList,
+                                                                                         int nGenItemIndex)
+{
+       if (!g_pShareViaHandle) {
+               VideoLogInfo("invalid handle");
+               return;
+       }
+       MP_DEL_GRID_ITC(g_pShareViaHandle->pGenGridItc_1);
+       MP_DEL_GRID_ITC(g_pShareViaHandle->pGenGridItc_2);
+       g_pShareViaHandle->pGenGridItc_1 = elm_gengrid_item_class_new();
+       g_pShareViaHandle->pGenGridItc_1->item_style = "video/album_grid";
+       g_pShareViaHandle->pGenGridItc_1->func.text_get =
+               (void *) __mp_share_view_get_label_of_grid_item_cb;
+       g_pShareViaHandle->pGenGridItc_1->func.content_get =
+               (void *) __mp_share_view_get_grid_icon_cb;
+       g_pShareViaHandle->pGenGridItc_1->func.state_get = NULL;
+       g_pShareViaHandle->pGenGridItc_1->func.del = NULL;
+
+       int nCount = (mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+                                                                                                               mp_util_get_main_window_handle
+                                                                                                               ()) ?
+                                 VP_GENLIST_THUMB_LANDSPACE_COUNT :
+                                 VP_GENLIST_THUMB_PORTRAIT_COUNT);
+       int nIndex = nGenItemIndex * nCount;
+       int nMaxIndex = nIndex + nCount;
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+       Elm_Object_Item *gridItem = NULL;
+       for (; (nIndex < nMaxIndex) && (nIndex < nVideoListSize); nIndex++) {
+               gridItem =
+                       elm_gengrid_item_append(pObjVideosList,
+                                                                       g_pShareViaHandle->pGenGridItc_1,
+                                                                       (void *) nIndex,
+                                                                       __mp_share_view_select_grid_item_cb,
+                                                                       (void *) nIndex);
+               elm_gengrid_item_select_mode_set(gridItem,
+                                                                                ELM_OBJECT_SELECT_MODE_ALWAYS);
+               elm_object_item_data_set(gridItem, (void *) nIndex);
+       }
+}
+
+/**
+ *
+ * @param parent
+ * @param nWidth
+ * @param nHeight
+ * @return
+ */
+static Evas_Object *__mp_share_view_create_gengrid(Evas_Object * parent,
+                                                                                                  int nWidth, int nHeight)
+{
+       Evas_Object *pGengrid;
+       pGengrid = elm_gengrid_add(parent);
+       if (!pGengrid) {
+               VideoLogError("pVideoGrid is not existed.");
+               return NULL;
+       }
+       evas_object_size_hint_weight_set(pGengrid, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pGengrid, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       elm_gengrid_item_size_set(pGengrid, nWidth, nHeight);
+       elm_gengrid_align_set(pGengrid, 0.0, 0.0);
+       elm_gengrid_horizontal_set(pGengrid, EINA_TRUE);
+
+       return pGengrid;
+}
+
+/**
+ *
+ * @param height
+ * @param width
+ */
+static void mp_share_view_get_icon_dimensions(int *height, int *width)
+{
+       int winHeight = 0;
+       int winWidth = 0;
+       elm_win_screen_size_get(mp_util_get_main_window_handle(), NULL, NULL,
+                                                       &winWidth, &winHeight);
+
+       bool bLandscape = mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+                                                                                                                       mp_util_get_main_window_handle
+                                                                                                                       ());
+       if (bLandscape) {
+               *width = winHeight / VP_GENLIST_THUMB_LANDSPACE_COUNT;
+       } else {
+               *width = winWidth / VP_GENLIST_THUMB_PORTRAIT_COUNT;
+       }
+       *height = VP_ALBUM_THUMB_ICON_HEIGHT * MP_SCALE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_share_view_get_icon_of_grid_cb(const void
+                                                                                                               *pUserData,
+                                                                                                               Evas_Object *
+                                                                                                               pObject,
+                                                                                                               const char *pPart)
+{
+       if (!g_pShareViaHandle || !pObject) {
+               VideoLogError("g_pMainViewWidgetOfShareList is NULL");
+               return NULL;
+       }
+
+       int nGenItemIndex = (int) pUserData;
+       int nHeight = 0;
+       int nWidth = 0;
+       mp_share_view_get_icon_dimensions(&nHeight, &nWidth);
+
+       Evas_Object *pGengrid = __mp_share_view_create_gengrid(pObject,
+                                                                                                                  nWidth,
+                                                                                                                  nHeight);
+       __mp_share_view_append_grid_items(pGengrid, nGenItemIndex);
+
+       return pGengrid;
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+int mp_share_view_thumbnail_to_genlist_index(int nVideoItemIndex)
+{
+       if (nVideoItemIndex < 0) {
+               VideoLogDebug("invalid nVideoItemIndex");
+               return 0;
+       }
+       int nGenlistIndex = 0;
+       int nItemCount = (mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+                                                                                                                       mp_util_get_main_window_handle
+                                                                                                                       ()) ?
+                                         VP_GENLIST_THUMB_LANDSPACE_COUNT :
+                                         VP_GENLIST_THUMB_PORTRAIT_COUNT);
+       nGenlistIndex = nVideoItemIndex / nItemCount;
+       return nGenlistIndex;
+}
+
+/**
+ *
+ * @param pGenlist
+ * @return
+ */
+static bool __mp_share_view_append_grid_layout(void *pGenlist)
+{
+       if (!pGenlist || !g_pShareViaHandle) {
+               VideoLogError("error handle.");
+               return FALSE;
+       }
+       int nIndex = 0;
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       if (nVideoListSize <= 0) {
+               VideoLogWarning("nVideoListSize = %d", nVideoListSize);
+               return FALSE;
+       } else {
+               VideoLogWarning("nVideoListSize = %d", nVideoListSize);
+       }
+
+       MP_DEL_ITC(g_pShareViaHandle->pGenListItc);
+       g_pShareViaHandle->pGenListItc = elm_genlist_item_class_new();
+       g_pShareViaHandle->pGenListItc->item_style = "video/1icon.thumbnail";
+       g_pShareViaHandle->pGenListItc->func.text_get = NULL;
+       g_pShareViaHandle->pGenListItc->func.content_get =
+               (void *) __mp_share_view_get_icon_of_grid_cb;
+       g_pShareViaHandle->pGenListItc->func.state_get = NULL;
+       g_pShareViaHandle->pGenListItc->func.del = NULL;
+       g_pShareViaHandle->pGenListItc->decorate_item_style = NULL;
+
+       MP_DEL_ITC(g_pShareViaHandle->pGenListLandscapeItc);
+       g_pShareViaHandle->pGenListLandscapeItc = elm_genlist_item_class_new();
+       g_pShareViaHandle->pGenListLandscapeItc->item_style =
+               "video/1icon.thumbnail.landscape";
+       g_pShareViaHandle->pGenListLandscapeItc->func.text_get = NULL;
+       g_pShareViaHandle->pGenListLandscapeItc->func.content_get =
+               (void *) __mp_share_view_get_icon_of_grid_cb;
+       g_pShareViaHandle->pGenListLandscapeItc->func.state_get = NULL;
+       g_pShareViaHandle->pGenListLandscapeItc->func.del = NULL;
+       g_pShareViaHandle->pGenListLandscapeItc->decorate_item_style = NULL;
+
+       int nGenlistRow = 0;
+       nGenlistRow =
+               mp_share_view_thumbnail_to_genlist_index(nVideoListSize - 1);
+
+       if (mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+                                                                                         mp_util_get_main_window_handle
+                                                                                         ())) {
+               for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+                       elm_genlist_item_append(pGenlist,
+                                                                       g_pShareViaHandle->
+                                                                       pGenListLandscapeItc, (void *) nIndex,
+                                                                       NULL, ELM_GENLIST_ITEM_NONE, NULL,
+                                                                       NULL);
+               }
+       } else {
+               for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+                       elm_genlist_item_append(pGenlist,
+                                                                       g_pShareViaHandle->pGenListItc,
+                                                                       (void *) nIndex,
+                                                                       NULL,
+                                                                       ELM_GENLIST_ITEM_NONE, NULL, NULL);
+               }
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_share_via_view_rotate_cb(void *data, Evas_Object * obj,
+                                                                                 void *event_info)
+{
+       if (!g_pShareViaHandle) {
+               VideoLogError("__mp_share_via_view_rotate_cb IS null");
+               return;
+       }
+       bool bLandscape = mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+                                                                                                                       mp_util_get_main_window_handle
+                                                                                                                       ());
+       if (bLandscape) {
+               VideoLogInfo("Landscape mode");
+               g_pShareViaHandle->bLandscape = true;
+       } else {
+               VideoLogInfo("Portrait mode");
+               g_pShareViaHandle->bLandscape = false;
+       }
+       __mp_share_view_arrange_video_list(g_pShareViaHandle->pObjVideosList,
+                                                                          TRUE);
+       mp_share_view_change_title_info();
+}
+#endif
+
+/**
+ *
+ * @param pObjVideosList
+ */
+static void __mp_share_view_append_video_items(void *pObjVideosList)
+{
+       VideoLogInfo("");
+       if (!g_pShareViaHandle) {
+               VideoLogError("No exist g_pShareViaHandle.");
+               return;
+       }
+
+       int nIndex = 0;
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       MP_DEL_ITC(g_pShareViaHandle->pGenListItc);
+       g_pShareViaHandle->pGenListItc = elm_genlist_item_class_new();
+       g_pShareViaHandle->pGenListItc->item_style = "2line.top";
+       g_pShareViaHandle->pGenListItc->func.text_get =
+               (void *) mp_share_view_get_label_of_video_item_cb;
+       g_pShareViaHandle->pGenListItc->func.content_get =
+               (void *) mp_share_view_get_icon_of_video_item_cb;
+       g_pShareViaHandle->pGenListItc->func.state_get = NULL;
+       g_pShareViaHandle->pGenListItc->func.del = NULL;
+
+       for (nIndex = 0; nIndex < nVideoListSize; nIndex++) {
+               elm_genlist_item_append(pObjVideosList,
+                                                               g_pShareViaHandle->pGenListItc,
+                                                               (void *) nIndex, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               mp_share_view_select_video_item_cb, NULL);
+       }
+}
+
+/**
+ *
+ * @param nTotalSize
+ */
+void mp_share_view_set_value(int nTotalSize)
+{
+       VideoLogInfo("nTotalSize : [%d]", nTotalSize);
+
+       if (g_pShareViaHandle->pCheckedItemsEditList) {
+               free(g_pShareViaHandle->pCheckedItemsEditList);
+               g_pShareViaHandle->pCheckedItemsEditList = NULL;
+       }
+
+       if (nTotalSize > 0) {
+               g_pShareViaHandle->pCheckedItemsEditList =
+                       (bool *) malloc(sizeof(bool) * nTotalSize);
+               memset(g_pShareViaHandle->pCheckedItemsEditList, 0,
+                          sizeof(bool) * nTotalSize);
+       }
+
+       g_pShareViaHandle->bSelectallCheckBoxState = FALSE;
+}
+
+/**
+ *
+ * @param pObjVideosList
+ * @param bNeedSvc
+ * @return
+ */
+bool __mp_share_view_arrange_video_list(void *pObjVideosList,
+                                                                               bool bNeedSvc)
+{
+       if (!g_pShareViaWidget || !g_pShareViaHandle) {
+               VideoLogError("No exist g_pShareViaListViewWidget.");
+               return FALSE;
+       }
+
+       if (!pObjVideosList) {
+               VideoLogError("No exist genlist object.");
+               return FALSE;
+       }
+
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       int nSortType = mp_share_view_get_sort_type();
+       int nViewType = mp_view_as_ctrl_get_type();
+
+       if ((nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) &&
+               (g_pShareViaHandle->pFolderPath)) {
+               VideoSecureLogInfo("szFolderPath : %s",
+                                                  g_pShareViaHandle->pFolderPath);
+               if (g_pShareViaHandle->pFolderPath) {
+                       if (vp_file_exists(g_pShareViaHandle->pFolderPath)) {
+                               /* update video-list */
+                               VideoLogInfo("update delete item");
+                               mp_util_svc_destory_video_item_list();
+                               mp_util_svc_extract_video_list_from_folder
+                                       (g_pShareViaHandle->pFolderPath, nSortType,
+                                        MP_LIST_VIEW_PHONE);
+#ifdef ENABLE_DRM_FEATURE
+                               mp_util_svc_filter_drm_video_item_list();
+#endif
+                               if (bNeedSvc) {
+                               } else {
+                                       mp_share_view_set_value(nVideoListSize);
+                               }
+                       } else {
+                               VideoLogInfo("popup folder item");
+                               elm_naviframe_item_pop(g_pShareViaHandle->
+                                                                          pNaviFrameHandle);
+                               return FALSE;
+                       }
+               }
+       } else {
+               mp_util_svc_destory_video_item_list();
+               mp_util_svc_extract_video_list_by_item_type(nSortType,
+                                                                                                       MP_LIST_VIEW_PHONE);
+#ifdef ENABLE_DRM_FEATURE
+               mp_util_svc_filter_drm_video_item_list();
+#endif
+               if (bNeedSvc) {
+               } else {
+                       mp_share_view_set_value(nVideoListSize);
+               }
+       }
+
+       VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+
+       if (nVideoListSize > 0) {
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+               if (g_pShareViaHandle->bThumbnailView) {
+                       elm_genlist_clear(pObjVideosList);
+                       __mp_share_view_append_grid_layout(pObjVideosList);
+               } else
+#endif
+               {
+                       elm_genlist_clear(pObjVideosList);
+                       __mp_share_view_append_video_items(pObjVideosList);
+               }
+       } else {
+               elm_naviframe_item_pop(g_pShareViaHandle->pNaviFrameHandle);
+               return FALSE;
+       }
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+       if (!g_pShareViaHandle->bThumbnailView) {
+               elm_genlist_decorate_mode_set(pObjVideosList, EINA_TRUE);
+       }
+#endif
+       evas_object_show(pObjVideosList);
+       return TRUE;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+Evas_Object *mp_share_view_create_internal_layout(void *pParent)
+{
+       if (!pParent) {
+               VideoLogInfo("[ERR]");
+               return NULL;
+       }
+
+       VideoLogInfo("");
+
+       if (g_pShareViaWidget->pChareViaViewBaselayout) {
+               evas_object_del(g_pShareViaWidget->pChareViaViewBaselayout);
+               g_pShareViaWidget->pChareViaViewBaselayout = NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_REMOVE_LIST_EDJ);
+       free(path);
+       g_pShareViaWidget->pChareViaViewBaselayout = elm_layout_add(pParent);
+       elm_layout_file_set(g_pShareViaWidget->pChareViaViewBaselayout,
+                                               edj_path, REMOVE_LIST_EDJ_GROUP);
+       evas_object_size_hint_weight_set(g_pShareViaWidget->
+                                                                        pChareViaViewBaselayout,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pShareViaWidget->
+                                                                       pChareViaViewBaselayout,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       return g_pShareViaWidget->pChareViaViewBaselayout;
+}
+
+/**
+ *
+ * @param nSelectedSize
+ * @return
+ */
+static bool __mp_share_view_get_selected_video_list(int nSelectedSize)
+{
+       if (!g_pShareViaHandle || !g_pShareViaWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return FALSE;
+       }
+
+       int nVideoListSize = 0;
+
+       if (LIST_TAB_TYPE_PERSONAL != g_pShareViaHandle->eTabType) {
+               return FALSE;
+       }
+
+       if (!g_pShareViaHandle->nSelectCounterForEditList || nSelectedSize < 1) {
+               return FALSE;
+       }
+
+       nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+       __mp_share_view_free_selected_list();
+
+       int nIndex = 0;
+       int nCounter = 0;
+       char *pMediaId = NULL;
+
+       g_pShareViaHandle->pSelectedList = (char **) calloc(sizeof(char *),
+                                                                                                               nSelectedSize);
+       if (g_pShareViaHandle->pSelectedList) {
+               VideoLogError("pSelectedList is NULL");
+               return FALSE;
+       }
+
+       VideoLogInfo("current edit size===%d", nSelectedSize);
+
+       for (nCounter = 0; nCounter < nVideoListSize; nCounter++) {
+               if (g_pShareViaHandle->pCheckedItemsEditList[nCounter]) {
+                       pMediaId = mp_util_svc_get_video_id_by_index(nCounter);
+
+                       if (pMediaId) {
+                               g_pShareViaHandle->pSelectedList[nIndex] =
+                                       strdup(pMediaId);
+                               MP_FREE_STRING(pMediaId);
+                               nIndex++;
+                       }
+               }
+       }
+       return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __mp_share_view_db_changed_cb(void *pUserData)
+{
+       if (!g_pShareViaHandle || !g_pShareViaWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+       bool bNormalShow = TRUE;
+       bNormalShow =
+               __mp_share_view_arrange_video_list(g_pShareViaHandle->
+                                                                                  pObjVideosList, TRUE);
+       if (!bNormalShow) {
+               VideoLogError("invalid view");
+               return;
+       }
+
+       Elm_Object_Item *pItem = NULL;
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+       if (g_pShareViaHandle->bThumbnailView) {
+               pItem =
+                       elm_gengrid_first_item_get(g_pShareViaHandle->pObjVideosList);
+               if (pItem) {
+                       elm_gengrid_item_bring_in(pItem, ELM_GENGRID_ITEM_SCROLLTO_IN);
+               }
+       } else
+#endif
+       {
+               pItem =
+                       elm_genlist_first_item_get(g_pShareViaHandle->pObjVideosList);
+               if (pItem) {
+                       elm_genlist_item_bring_in(pItem, ELM_GENLIST_ITEM_SCROLLTO_IN);
+               }
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __mp_share_view_db_backup_cb(void *pUserData)
+{
+       if (!g_pShareViaHandle || !g_pShareViaWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+       __mp_share_view_get_selected_video_list(g_pShareViaHandle->
+                                                                                       nSelectCounterForEditList);
+}
+
+/**
+ *
+ * @param data
+ * @param evas
+ * @param obj
+ * @param event_info
+ */
+static void __mp_share_select_all_layout_down_cb(void *data, Evas * evas,
+                                                                                                Evas_Object * obj,
+                                                                                                void *event_info)
+{
+       if (!g_pShareViaHandle || !g_pShareViaWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+
+       Evas_Object *check =
+               elm_object_part_content_get(g_pShareViaWidget->pSelAllLayout,
+                                                                       "elm.icon");
+       Eina_Bool state = elm_check_state_get(check);
+
+       if (nVideoListSize <= VIDEO_SHARE_ITEM_MAX) {
+               elm_check_state_set(check, !state);
+       }
+
+       __mp_share_view_select_all_change_check_box_cb(data, check, NULL);
+}
+
+/**
+ *
+ * @param pParent
+ */
+void mp_share_view_init(void *pParent)
+{
+       if (!g_pShareViaHandle || !g_pShareViaWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       VideoLogInfo("");
+       g_pShareViaWidget->pChareViaViewBaselayout =
+               mp_share_view_create_internal_layout(pParent);
+       if (!g_pShareViaWidget->pChareViaViewBaselayout) {
+               VideoLogError("pChareViaViewBaselayout is not existed.");
+               return;
+       }
+       evas_object_event_callback_add(g_pShareViaWidget->
+                                                                  pChareViaViewBaselayout,
+                                                                  EVAS_CALLBACK_DEL,
+                                                                  __mp_share_view_base_layout_del_cb,
+                                                                  NULL);
+
+       g_pShareViaWidget->pVideoListBox =
+               elm_box_add(g_pShareViaWidget->pChareViaViewBaselayout);
+       if (!g_pShareViaWidget->pVideoListBox) {
+               VideoLogError("pVideoListBox is not existed.");
+               return;
+       }
+
+       evas_object_size_hint_weight_set(g_pShareViaWidget->pVideoListBox,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pShareViaWidget->pVideoListBox,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       mp_widget_ctrl_create_select_all_layout(g_pShareViaWidget->
+                                                                                       pVideoListBox,
+                                                                                       __mp_share_view_select_all_change_check_box_cb,
+                                                                                       __mp_share_select_all_layout_down_cb,
+                                                                                       (void *) g_pShareViaWidget,
+                                                                                       &g_pShareViaWidget->
+                                                                                       pSelectallbtn,
+                                                                                       &g_pShareViaWidget->
+                                                                                       pSelAllLayout);
+
+       if (!g_pShareViaWidget->pSelAllLayout) {
+               VideoLogError("pSelAllLayout is not existed.");
+               return;
+       }
+
+       elm_box_pack_start(g_pShareViaWidget->pVideoListBox,
+                                          g_pShareViaWidget->pSelAllLayout);
+
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+       if (g_pShareViaHandle->bThumbnailView) {
+               g_pShareViaHandle->pObjVideosList =
+                       elm_genlist_add(g_pShareViaWidget->pVideoListBox);
+               if (!g_pShareViaHandle->pObjVideosList) {
+                       VideoLogError("pObjVideosList does not exist.");
+                       return;
+               }
+               elm_scroller_bounce_set(g_pShareViaHandle->pObjVideosList,
+                                                               EINA_FALSE, EINA_TRUE);
+               evas_object_size_hint_weight_set(g_pShareViaHandle->pObjVideosList,
+                                                                                EVAS_HINT_EXPAND,
+                                                                                EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(g_pShareViaHandle->pObjVideosList,
+                                                                               EVAS_HINT_FILL, EVAS_HINT_FILL);
+               elm_genlist_block_count_set(g_pShareViaHandle->pObjVideosList,
+                                                                       VIDEO_GENLIST_BLOCK_COUNT);
+               elm_genlist_homogeneous_set(g_pShareViaHandle->pObjVideosList,
+                                                                       EINA_TRUE);
+               elm_genlist_mode_set(g_pShareViaHandle->pObjVideosList,
+                                                        ELM_LIST_COMPRESS);
+       } else
+#endif
+       {
+               g_pShareViaHandle->pObjVideosList =
+                       elm_genlist_add(g_pShareViaWidget->pVideoListBox);
+               if (!g_pShareViaHandle->pObjVideosList) {
+                       VideoLogError("pObjVideosList is not existed.");
+                       return;
+               }
+               evas_object_size_hint_weight_set(g_pShareViaHandle->pObjVideosList,
+                                                                                EVAS_HINT_EXPAND,
+                                                                                EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(g_pShareViaHandle->pObjVideosList,
+                                                                               EVAS_HINT_FILL, EVAS_HINT_FILL);
+               elm_genlist_block_count_set(g_pShareViaHandle->pObjVideosList,
+                                                                       VIDEO_GENLIST_BLOCK_COUNT);
+               elm_genlist_homogeneous_set(g_pShareViaHandle->pObjVideosList,
+                                                                       EINA_TRUE);
+               elm_genlist_mode_set(g_pShareViaHandle->pObjVideosList,
+                                                        ELM_LIST_COMPRESS);
+       }
+
+       elm_box_pack_end(g_pShareViaWidget->pVideoListBox,
+                                        g_pShareViaHandle->pObjVideosList);
+       elm_object_part_content_set(g_pShareViaWidget->pChareViaViewBaselayout,
+                                                               SWALLOW_LISTVIEW_CONTENT,
+                                                               g_pShareViaWidget->pVideoListBox);
+
+       bool bNormalShow = TRUE;
+       bNormalShow =
+               __mp_share_view_arrange_video_list(g_pShareViaHandle->
+                                                                                  pObjVideosList, FALSE);
+       if (!bNormalShow) {
+               VideoLogError("invalid view");
+               return;
+       }
+
+       char *szTitle = g_strdup_printf(VIDEOS_SELECTVIEW_HEADER_PD_SELECTED,
+                                                                       g_pShareViaHandle->
+                                                                       nSelectCounterForEditList);
+
+       g_pShareViaHandle->pNaviFrameItem =
+               elm_naviframe_item_push(g_pShareViaHandle->pNaviFrameHandle,
+                                                               szTitle, NULL, NULL,
+                                                               g_pShareViaWidget->pChareViaViewBaselayout,
+                                                               NULL);
+       elm_object_item_domain_text_translatable_set(g_pShareViaHandle->
+                                                                                                pNaviFrameItem,
+                                                                                                VIDEOS_STRING, EINA_TRUE);
+       elm_naviframe_item_pop_cb_set(g_pShareViaHandle->pNaviFrameItem,
+                                                                 mp_share_view_back_btn_cb,
+                                                                 g_pShareViaHandle);
+
+       elm_naviframe_item_title_enabled_set(g_pShareViaHandle->pNaviFrameItem,
+                                                                                EINA_TRUE, EINA_FALSE);
+       evas_object_smart_callback_add(g_pShareViaHandle->pNaviFrameHandle,
+                                                                  "transition,finished",
+                                                                  mp_share_view_naviframe_transition_effect_cb,
+                                                                  NULL);
+
+
+       g_pShareViaWidget->pCancelbtn =
+               elm_button_add(g_pShareViaHandle->pNaviFrameHandle);
+       elm_object_style_set(g_pShareViaWidget->pCancelbtn,
+                                                "naviframe/title_left");
+       mp_util_set_translate_str(g_pShareViaWidget->pCancelbtn,
+                                                         "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB");
+       elm_object_signal_callback_add(g_pShareViaWidget->pCancelbtn,
+                                                                  "elm,action,click", "",
+                                                                  __mp_share_view_show_cancel_cb,
+                                                                  (void *) g_pShareViaHandle);
+       elm_object_item_part_content_set(g_pShareViaHandle->pNaviFrameItem,
+                                                                        "title_left_btn",
+                                                                        g_pShareViaWidget->pCancelbtn);
+       evas_object_show(g_pShareViaWidget->pCancelbtn);
+
+       /* Title Done layout */
+       g_pShareViaWidget->pSavebtn =
+               elm_button_add(g_pShareViaHandle->pNaviFrameHandle);
+       elm_object_style_set(g_pShareViaWidget->pSavebtn,
+                                                "naviframe/title_right");
+       mp_util_set_translate_str(g_pShareViaWidget->pSavebtn,
+                                                         "IDS_TPLATFORM_ACBUTTON_DONE_ABB");
+       elm_object_signal_callback_add(g_pShareViaWidget->pSavebtn,
+                                                                  "elm,action,click", "",
+                                                                  __mp_share_view_show_share_via_panel_cb,
+                                                                  (void *) g_pShareViaHandle);
+       elm_object_item_part_content_set(g_pShareViaHandle->pNaviFrameItem,
+                                                                        "title_right_btn",
+                                                                        g_pShareViaWidget->pSavebtn);
+       evas_object_show(g_pShareViaWidget->pSavebtn);
+       elm_object_disabled_set(g_pShareViaWidget->pSavebtn, EINA_TRUE);
+
+       evas_object_show(g_pShareViaHandle->pObjVideosList);
+       evas_object_show(g_pShareViaWidget->pChareViaViewBaselayout);
+
+       mp_util_db_set_update_fun(g_pShareViaHandle->euLev,
+                                                         __mp_share_view_db_changed_cb);
+       mp_util_db_set_backup_fun(g_pShareViaHandle->euLev,
+                                                         __mp_share_view_db_backup_cb);
+
+       MP_FREE_STRING(szTitle);
+       mp_util_hide_indicator();
+}
+
+/**
+ *
+ * @param pNaviFrame
+ * @param pChangeViewCb
+ * @param pFolderPath
+ * @param eTabType
+ */
+void mp_share_view_push(void *pNaviFrame,
+                                               ChangeListShareViewCbFunc pChangeViewCb,
+                                               char *pFolderPath, MpVideoListTabType eTabType)
+{
+       VideoLogInfo("");
+       if (g_pShareViaHandle || g_pShareViaWidget) {
+               mp_share_view_destroy();
+       }
+
+       g_pShareViaHandle = (st_VideoListShareViaViewHandle *) calloc(1,
+                                                                                                                                 sizeof
+                                                                                                                                 (st_VideoListShareViaViewHandle));
+       g_pShareViaWidget =
+               (st_VideoListShareViaViewWidget *) calloc(1,
+                                                                                                 sizeof
+                                                                                                 (st_VideoListShareViaViewWidget));
+
+       memset(g_pShareViaHandle, 0, sizeof(st_VideoListShareViaViewHandle));
+       memset(g_pShareViaWidget, 0, sizeof(st_VideoListShareViaViewWidget));
+       mp_share_view_reset_value();
+
+       g_pShareViaHandle->pNaviFrameHandle = pNaviFrame;
+       g_pShareViaHandle->pChangeViewUserCbFunc = pChangeViewCb;
+       if (pFolderPath) {
+               g_pShareViaHandle->pFolderPath = strdup(pFolderPath);
+       }
+
+       g_pShareViaHandle->eTabType = eTabType;
+       g_pShareViaHandle->euLev = MP_DB_UPDATE_LEV_1;
+
+       int nViewType = mp_view_as_ctrl_get_type();
+
+       if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST &&
+               g_pShareViaHandle->pFolderPath) {
+               g_pShareViaHandle->euLev = MP_DB_UPDATE_LEV_2;
+       }
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+       if ((nViewType == MP_LIST_VIEW_AS_THUMBNAIL_LIST ||
+                nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) &&
+               (LIST_TAB_TYPE_PERSONAL == eTabType)) {
+               g_pShareViaHandle->bThumbnailView = TRUE;
+       } else {
+               g_pShareViaHandle->bThumbnailView = FALSE;
+       }
+#endif
+
+       mp_share_view_init(g_pShareViaHandle->pNaviFrameHandle);
+       evas_object_smart_callback_add((Evas_Object *)
+                                                                  mp_util_get_main_window_handle(),
+                                                                  "wm,rotation,changed",
+                                                                  __mp_share_via_view_rotate_cb,
+                                                                  (void *) g_pShareViaHandle);
+}
+
+/**
+ *
+ */
+void mp_share_view_pop(void)
+{
+       VideoLogInfo("");
+
+       if (!g_pShareViaHandle) {
+               VideoLogError("No existed handle of share view.");
+               return;
+       }
+       if (g_pShareViaHandle->pChangeViewUserCbFunc) {
+               g_pShareViaHandle->pChangeViewUserCbFunc();
+       }
+
+       mp_util_hide_indicator();
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_share_view_is_top_view(void)
+{
+       VideoLogInfo("");
+
+       return FALSE;
+}
+
+/**
+ *
+ */
+void mp_share_view_change_language(void)
+{
+       if (!g_pShareViaHandle || !g_pShareViaWidget) {
+               VideoLogError("No existed handle of share view.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       mp_share_view_change_title_info();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObject
+ * @param pEventInfo
+ */
+static void
+__mp_share_view_base_layout_del_cb(void *pUserData, Evas * e,
+                                                                  Evas_Object * pObject, void *pEventInfo)
+{
+       __mp_share_view_reset();
+}
diff --git a/src/view/mp-video-list-view-common.c b/src/view/mp-video-list-view-common.c
new file mode 100755 (executable)
index 0000000..351299f
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2020 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-video-list-view-common.h"
+
+/**
+ *
+ * @param viewHandle
+ * @param pGenlistItemtLanguageChangedCb
+ * @param pGenlistItemtRealizeCb
+ * @param pGenlistItemtPressCb
+ * @param pGenlistItemtLongPressCb
+ */
+void mp_list_common_set_callabcks(void *viewHandle,
+                                                                 Evas_Smart_Cb
+                                                                 pGenlistItemtLanguageChangedCb,
+                                                                 Evas_Smart_Cb pGenlistItemtRealizeCb,
+                                                                 Evas_Smart_Cb pGenlistItemtPressCb,
+                                                                 Evas_Smart_Cb pGenlistItemtLongPressCb)
+{
+       st_VideoListViewMainViewHandle *handle =
+               (st_VideoListViewMainViewHandle *) viewHandle;
+       if (handle) {
+               handle->pGenlistItemtLanguageChangedCb =
+                       pGenlistItemtLanguageChangedCb;
+               handle->pGenlistItemtRealizeCb = pGenlistItemtRealizeCb;
+               handle->pGenlistItemtPressCb = pGenlistItemtPressCb;
+               handle->pGenlistItemtLongPressCb = pGenlistItemtLongPressCb;
+       }
+}
+
+/**
+ *
+ * @param viewHandle
+ */
+void mp_list_common_unset_callabcks(void *viewHandle)
+{
+       st_VideoListViewMainViewHandle *handle =
+               (st_VideoListViewMainViewHandle *) viewHandle;
+       if (handle) {
+               handle->pGenlistItemtLanguageChangedCb = NULL;
+               handle->pGenlistItemtRealizeCb = NULL;
+               handle->pGenlistItemtPressCb = NULL;
+               handle->pGenlistItemtLongPressCb = NULL;
+       }
+}
diff --git a/src/view/mp-video-list-view-folder.c b/src/view/mp-video-list-view-folder.c
new file mode 100755 (executable)
index 0000000..ca0e548
--- /dev/null
@@ -0,0 +1,1290 @@
+/*
+ * Copyright (c) 2020 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 <glib.h>
+#include <media_content.h>
+
+#include "mp-util.h"
+#include "video-player.h"
+#include "mp-video-log.h"
+#include "mp-video-string-define.h"
+#include "mp-video-value-define.h"
+
+#include "mp-util-media-service.h"
+#include "mp-video-list-view-folder.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-footer-toolbar.h"
+#include "mp-video-search-view.h"
+#include "mp-external-ug.h"
+#include "videos-view-mgr.h"
+#include "mp-video-list-view-common.h"
+#include "mp-video-list-view-item-of-folder.h"
+#include "mp-video-list-option-ctrl.h"
+#include "vp-util.h"
+#include "vp-file-util.h"
+#include "mp-video-list-view-main.h"
+#include "mp-video-nocontent-layout.h"
+#include "mp-video-list-share-via-view.h"
+#include "mp-video-detail-view.h"
+#include "mp-rotate-ctrl.h"
+
+#define NO_CONTENTS_W                                  720
+#define        NO_CONTENTS_H                                   897
+
+
+typedef struct {
+       st_VideoListViewMainViewHandle *pMainHandle;
+       st_VideoListViewMainViewWidget *pMainWidget;
+       UpdateListItemsCbFunc fUpdateListItemUserCb;
+
+       Evas_Object *pVideosGenlist;
+       Evas_Object *pNocontentlayout;
+       Elm_Genlist_Item_Class *pFolderList_Itc;
+       Elm_Genlist_Item_Class *pFolderListLandscape_Itc;
+       Elm_Genlist_Item_Class *pGenGridItc;
+
+       bool bItemSelected;
+
+       /*start popup */
+       Ecore_Idler *pRemoveIdler;
+       Evas_Object *pRemovePopUpHandle;
+       Evas_Object *pProgressbar;
+       Ecore_Timer *pStartDelTimer;
+       Ecore_Timer *pFinishDelTimer;
+       int nCompltedDeleteItem;
+       /*end popup */
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+       bool bLandscape;
+#endif
+
+} stFolderView;
+
+
+static stFolderView *g_pFolderView = NULL;
+
+static void __mp_folder_view_button_popup_cb(void *pUserData,
+                                                                                        Evas_Object * pObject,
+                                                                                        void *pEventInfo);
+static void __mp_folder_view_delete_popup_handle(void);
+
+/**
+ *
+ */
+void __mp_folder_view_create_no_content()
+{
+       if (!g_pFolderView) {
+               VideoLogError("");
+               return;
+       }
+
+       if (!g_pFolderView->pNocontentlayout) {
+               g_pFolderView->pNocontentlayout =
+                       mp_create_nocontent_layout(g_pFolderView->
+                                                                          pMainWidget->pListViewBaselayout,
+                                                                          VIDEOS_NOCONTENT_MSG_NO_VIDEOS_IDS,
+                                                                          VIDEOS_NOCONTENT_MSG_NO_VIDEOS_DESC_IDS);
+               elm_object_part_content_unset(g_pFolderView->
+                                                                         pMainWidget->pListViewBaselayout,
+                                                                         SWALLOW_LISTVIEW_CONTENT);
+               if (g_pFolderView->pVideosGenlist) {
+                       evas_object_hide(g_pFolderView->pVideosGenlist);
+               }
+               evas_object_show(g_pFolderView->pMainWidget->pListViewBaselayout);
+               elm_object_part_content_set(g_pFolderView->
+                                                                       pMainWidget->pListViewBaselayout,
+                                                                       SWALLOW_LISTVIEW_CONTENT,
+                                                                       g_pFolderView->pNocontentlayout);
+       }
+
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_folder_view_is_top_view(void)
+{
+       VideoLogInfo("");
+
+
+       if (!g_pFolderView) {
+               VideoLogError("g_pFolderView is NULL");
+               return FALSE;
+       }
+
+       if (mp_mgr_get_library_naviframe()) {
+               int count =
+                       eina_list_count(elm_naviframe_items_get
+                                                       (mp_mgr_get_library_naviframe()));
+               return (count == 1);
+       }
+       return FALSE;
+}
+
+/**
+ *
+ */
+void mp_folder_view_destroy(void)
+{
+       VideoLogInfo("");
+
+       if (g_pFolderView) {
+               __mp_folder_view_delete_popup_handle();
+
+               MP_DEL_ITC(g_pFolderView->pFolderList_Itc);
+               g_pFolderView->fUpdateListItemUserCb = NULL;
+               g_pFolderView->pMainHandle = NULL;
+               g_pFolderView->pMainWidget = NULL;
+               MP_DEL_OBJ(g_pFolderView->pNocontentlayout);
+               MP_DEL_OBJ(g_pFolderView->pVideosGenlist);
+       }
+       MP_FREE_STRING(g_pFolderView);
+
+}
+
+/**
+ *
+ * @param eUpdateType
+ */
+static void __mp_folder_view_reset(MpListUpdateType eUpdateType)
+{
+       if (g_pFolderView) {
+               __mp_folder_view_delete_popup_handle();
+
+               MP_DEL_ITC(g_pFolderView->pFolderList_Itc);
+               g_pFolderView->fUpdateListItemUserCb = NULL;
+               g_pFolderView->pMainHandle = NULL;
+               g_pFolderView->pMainWidget = NULL;
+               if (g_pFolderView->pVideosGenlist) {
+                       elm_genlist_clear(g_pFolderView->pVideosGenlist);
+               }
+
+       }
+
+}
+
+/**
+ *
+ */
+static void __mp_folder_view_delete_popup_handle(void)
+{
+       VideoLogInfo("");
+       if (g_pFolderView->pRemovePopUpHandle) {
+               eext_object_event_callback_del(g_pFolderView->pRemovePopUpHandle,
+                                                                          EEXT_CALLBACK_BACK,
+                                                                          __mp_folder_view_button_popup_cb);
+       }
+       MP_DEL_TIMER(g_pFolderView->pStartDelTimer);
+       MP_DEL_TIMER(g_pFolderView->pFinishDelTimer);
+       MP_DEL_IDLER(g_pFolderView->pRemoveIdler);
+       MP_DEL_OBJ(g_pFolderView->pProgressbar);
+       MP_DEL_OBJ(g_pFolderView->pRemovePopUpHandle);
+       g_pFolderView->nCompltedDeleteItem = 0;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_folder_view_warning_popup_cb(void *pUserData,
+                                                                        Evas_Object * pObject,
+                                                                        void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_util_delete_popup_handle();
+}
+
+
+/*//////////////////////////////////////////////////*/
+/* For Folder View*/
+/**
+ *
+ * @param nFolderItemIndex
+ * @return
+ */
+static int mp_folder_view_get_respective_video_no(int nFolderItemIndex)
+{
+       mp_util_svc_destory_video_item_list();
+       char *szPath = mp_util_svc_get_video_folder_url(nFolderItemIndex);
+       mp_util_svc_extract_video_list_from_folder(szPath,
+                                                                                          mp_sort_ctrl_get_sort_state
+                                                                                          (), MP_LIST_VIEW_ALL);
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+       MP_FREE_STRING(szPath);
+
+       return nVideoListSize;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *mp_folder_view_get_label_of_folder_cb(const void *pUserData,
+                                                                                                  Evas_Object * pObject,
+                                                                                                  const char *pPart)
+{
+
+       int nFolderItemIndex = (int) pUserData;
+
+       if (!g_strcmp0(pPart, "elm.text.main.left.top")) {
+               char *szTitle = NULL;
+               szTitle = mp_util_svc_get_video_folder_name(nFolderItemIndex);
+
+               char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+               MP_FREE_STRING(szTitle);
+               return szTitleUtf8;
+       } else if (!g_strcmp0(pPart, "elm.text.sub.left.bottom")) {
+               char *szFolderPath = NULL;
+               szFolderPath = mp_util_svc_get_video_folder_url(nFolderItemIndex);
+               char *pDes_path = mp_util_get_dir_by_path(szFolderPath);
+               MP_FREE_STRING(szFolderPath);
+               char *szFolderUtf8 = elm_entry_utf8_to_markup(pDes_path);
+               MP_FREE_STRING(pDes_path);
+               return szFolderUtf8;
+
+       } else if (!strcmp(pPart, "elm.text")) {
+               char *szTitle1 = NULL;
+               szTitle1 = mp_util_svc_get_video_folder_name(nFolderItemIndex);
+               char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle1);
+
+               MP_FREE_STRING(szTitle1);
+
+               return szTitleUtf8;
+       } else if (!strcmp(pPart, "elm.text.number")) {
+               char szTitle2[10] = { 0, };
+               int nVideoListSize =
+                       mp_folder_view_get_respective_video_no(nFolderItemIndex);
+               snprintf(szTitle2, 10, "(%d)", nVideoListSize);
+               char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle2);
+
+               return szTitleUtf8;
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *mp_folder_view_get_icon_of_folder_cb(const void
+                                                                                                                *pUserData,
+                                                                                                                Evas_Object *
+                                                                                                                pObject,
+                                                                                                                const char
+                                                                                                                *pPart)
+{
+       int nFolderItemIndex = (int) pUserData;
+       VideoLogInfo("Index : %d", nFolderItemIndex);
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje", VIDEO_CUSTOM_THEME);
+       free(path);
+       if (!g_strcmp0(pPart, "elm.icon.1")) {
+               VideoLogInfo("pPart: elm.icon.1 - thumbnail");
+
+               Evas_Object *pLayout = NULL;
+               Evas_Object *pBg = NULL;
+               char *pThumbIconUri =
+                       mp_util_get_folder_thumbnail(nFolderItemIndex,
+                                                                                mp_sort_ctrl_get_sort_state());
+
+               pLayout = elm_layout_add(pObject);
+               elm_layout_file_set(pLayout, edj_path,
+                                                       "listview.thumbnail.layout");
+
+               if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+                       MP_FREE_STRING(pThumbIconUri);
+               }
+
+               pBg =
+                       mp_util_create_preload_image(pLayout, pThumbIconUri,
+                                                                                VIDEO_ICON_WIDTH);
+               elm_layout_content_set(pLayout, "elm.thumbnail.icon", pBg);
+               if (pBg)
+                       evas_object_show(pBg);
+
+               if (!mp_util_create_folder_sub_icon(pLayout, nFolderItemIndex)) {
+                       VideoLogWarning
+                               ("Create sub icon is failed. nFolderItemIndex: %d",
+                                nFolderItemIndex);
+               }
+
+               MP_FREE_STRING(pThumbIconUri);
+
+               evas_object_show(pLayout);
+
+               return pLayout;
+       } else if (!strcmp(pPart, "elm.swallow.icon")) {
+               char *pThumbIconUri =
+                       mp_util_get_folder_thumbnail(nFolderItemIndex,
+                                                                                mp_sort_ctrl_get_sort_state());
+               Evas_Object *thumb = NULL;
+               int nWidth = 0;
+               int nHeight = 0;
+
+               thumb = elm_image_add(pObject);
+
+               elm_image_preload_disabled_set(thumb, EINA_FALSE);
+               elm_image_smooth_set(thumb, EINA_FALSE);
+               elm_image_prescale_set(thumb, 50 * MP_SCALE);
+               elm_image_file_set(thumb, pThumbIconUri, NULL);
+               elm_image_object_size_get(thumb, &nWidth, &nHeight);
+
+               if (nWidth > nHeight) {
+                       elm_image_aspect_fixed_set(thumb, EINA_FALSE);
+               }
+               if (thumb)
+                       evas_object_show(thumb);
+               MP_FREE_STRING(pThumbIconUri);
+
+               return thumb;
+       } else if (!strcmp(pPart, "elm.sdcard.icon")) {
+               MpMediaStorageType StorageType = MP_MEDIA_TYPE_STORAGE_UNKNOWN;
+               StorageType = mp_util_svc_get_folder_storage(nFolderItemIndex);
+               if (StorageType == MP_MEDIA_TYPE_STORAGE_EXTERNAL) {
+                       Evas_Object *pSdcardIcon = elm_image_add(pObject);
+                       elm_image_file_set(pSdcardIcon, edj_path,
+                                                          VIDEO_LIST_VIEW_ICON_FOLDER_SDCARD);
+                       evas_object_size_hint_align_set(pSdcardIcon, EVAS_HINT_FILL,
+                                                                                       EVAS_HINT_FILL);
+                       evas_object_size_hint_weight_set(pSdcardIcon,
+                                                                                        EVAS_HINT_EXPAND,
+                                                                                        EVAS_HINT_EXPAND);
+                       evas_object_show(pSdcardIcon);
+                       return pSdcardIcon;
+               } else {
+                       return NULL;
+               }
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *mp_folder_view_get_icon_of_no_folder_item_cb(const void
+                                                                                                                 *pUserData,
+                                                                                                                 Evas_Object *
+                                                                                                                 pObject,
+                                                                                                                 const char
+                                                                                                                 *pPart)
+{
+       VideoSecureLogInfo("");
+
+       if (!strcmp(pPart, "elm.icon")) {
+               int width = NO_ITEM_GENLIST_WIDTH * elm_config_scale_get();
+               int height = NO_ITEM_GENLIST_HEIGHT * elm_config_scale_get();
+               char edj_path[1024] = { 0 };
+
+               char *path = app_get_resource_path();
+               snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                                VIDEO_PLAYER_NO_ITEM_EDJ);
+               free(path);
+               Evas_Object *pNoItemLayout = NULL;
+               pNoItemLayout = elm_layout_add(pObject);
+               elm_layout_file_set(pNoItemLayout, edj_path,
+                                                       GENLIST_NOITEM_EDJ_GROUP);
+               evas_object_size_hint_min_set(pNoItemLayout, width, height);
+
+               elm_object_part_text_set(pNoItemLayout,
+                                                                SWALLOW_LISTVIEW_NO_ITEM_TEXT,
+                                                                VIDEOS_NOCONTENT_MSG_NO_VIDEOS_DESC);
+
+               evas_object_show(pNoItemLayout);
+               return pNoItemLayout;
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param isSelected
+ */
+void mp_folder_view_set_is_item_view(bool isSelected)
+{
+       if (g_pFolderView)
+               g_pFolderView->bItemSelected = isSelected;
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_folder_view_is_item_view()
+{
+       if (g_pFolderView)
+               return g_pFolderView->bItemSelected;
+       else
+               return false;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void mp_folder_view_gen_select_video_folder_cb(void *pUserData,
+                                                                                                         Evas_Object *
+                                                                                                         pObject,
+                                                                                                         void *pEventInfo)
+{
+       if (!g_pFolderView || !pObject) {
+               VideoLogWarning
+                       ("[WARNING] Main handles of list view are not existed.");
+               return;
+       }
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+       if (pSelectedItem) {
+               VideoLogInfo("pSelectedItem is NULL");
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+       Evas_Object *pPopup = evas_object_data_get(pObject, "popup");   /* Get popup */
+       if (pPopup) {
+               VideoLogInfo("long press is called");
+               return;                                 /* If popup exists, do nothing */
+       }
+
+       if (!g_pFolderView->fUpdateListItemUserCb) {
+               VideoLogWarning("[WARNING] No existed pMainViewWidget.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       int nFolderItemIndex = 0;
+
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+
+       if (!pItem) {
+               VideoLogInfo("[ERR]Error item number.");
+               return;
+       }
+       nFolderItemIndex = (int) elm_object_item_data_get(pItem);
+       g_pFolderView->bItemSelected = true;
+
+       VideoLogInfo("nFolderItemIndex:%d", nFolderItemIndex);
+       mp_folder_item_view_push((void *) mp_mgr_get_library_naviframe(),
+                                                        nFolderItemIndex,
+                                                        (UpdateListItemsCbFunc)
+                                                        g_pFolderView->fUpdateListItemUserCb);
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+/**
+ *
+ * @param pObjVideosList
+ * @param nGenItemIndex
+ */
+static void __mp_folder_view_append_gengrid_items(void *pObjVideosList,
+                                                                                                 int nGenItemIndex)
+{
+       if (!g_pFolderView) {
+               VideoLogInfo("invalid handle");
+               return;
+       }
+
+       MP_DEL_GRID_ITC(g_pFolderView->pGenGridItc);
+       g_pFolderView->pGenGridItc = elm_gengrid_item_class_new();
+       g_pFolderView->pGenGridItc->item_style = "video/folder_grid";
+       g_pFolderView->pGenGridItc->func.text_get =
+               (void *) mp_folder_view_get_label_of_folder_cb;
+       g_pFolderView->pGenGridItc->func.content_get =
+               (void *) mp_folder_view_get_icon_of_folder_cb;
+       g_pFolderView->pGenGridItc->func.state_get = NULL;
+       g_pFolderView->pGenGridItc->func.del = NULL;
+
+       int nCount =
+               (mp_rotate_ctrl_check_landspace() ?
+                VP_GENLIST_THUMB_LANDSPACE_COUNT :
+                VP_GENLIST_THUMB_PORTRAIT_COUNT);
+       int nIndex = nGenItemIndex * nCount;
+       int nMaxIndex = nIndex + nCount;
+       int nVideoListSize = mp_util_svc_get_video_folder_size();
+
+       Elm_Object_Item *gridItem = NULL;
+       for (; (nIndex < nMaxIndex) && (nIndex < nVideoListSize); nIndex++) {
+               elm_gengrid_item_append(pObjVideosList,
+                                                               g_pFolderView->pGenGridItc,
+                                                               (void *) nIndex,
+                                                               mp_folder_view_gen_select_video_folder_cb,
+                                                               NULL);
+               elm_object_item_data_set(gridItem, (void *) nIndex);
+       }
+}
+
+/**
+ *
+ * @param parent
+ * @param nWidth
+ * @param nHeight
+ * @return
+ */
+static Evas_Object *__mp_folder_view_create_gengrid(Evas_Object * parent,
+                                                                                                       int nWidth,
+                                                                                                       int nHeight)
+{
+       Evas_Object *pGengrid;
+       pGengrid = elm_gengrid_add(parent);
+       if (!pGengrid) {
+               VideoLogError("pVideoGrid is not existed.");
+               return NULL;
+       }
+       evas_object_size_hint_weight_set(pGengrid, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pGengrid, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       elm_gengrid_item_size_set(pGengrid, nWidth, nHeight);
+       elm_gengrid_align_set(pGengrid, 0.0, 0.0);
+       elm_gengrid_horizontal_set(pGengrid, EINA_TRUE);
+
+       return pGengrid;
+}
+
+/**
+ *
+ * @param height
+ * @param width
+ */
+static void mp_folder_view_get_icon_dimensions(int *height, int *width)
+{
+       int winHeight = 0;
+       int winWidth = 0;
+       elm_win_screen_size_get(mp_util_get_main_window_handle(), NULL, NULL,
+                                                       &winWidth, &winHeight);
+
+       bool bLandscape =
+               mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+                                                                                         mp_util_get_main_window_handle
+                                                                                         ());
+       if (bLandscape) {
+               *width = winHeight / VP_GENLIST_THUMB_LANDSPACE_COUNT;
+       } else {
+               *width = winWidth / VP_GENLIST_THUMB_PORTRAIT_COUNT;
+       }
+       *height = VP_ALBUM_THUMB_ICON_HEIGHT * MP_SCALE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_folder_view_get_icon_of_grid_cb(const void
+                                                                                                                *pUserData,
+                                                                                                                Evas_Object *
+                                                                                                                pObject,
+                                                                                                                const char
+                                                                                                                *pPart)
+{
+       VideoLogInfo("in __mp_folder_view_get_icon_of_grid_cb");
+       if (!g_pFolderView || !pObject) {
+               VideoLogError("g_pMainViewWidgetOfFolderList is NULL");
+               return NULL;
+       }
+
+       int nGenItemIndex = (int) pUserData;
+       int nHeight = 0;
+       int nWidth = 0;
+       mp_folder_view_get_icon_dimensions(&nHeight, &nWidth);
+
+       Evas_Object *pGengrid =
+               __mp_folder_view_create_gengrid(pObject, nWidth, nHeight);
+       __mp_folder_view_append_gengrid_items(pGengrid, nGenItemIndex);
+
+       return pGengrid;
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+int mp_folder_view_thumbnail_to_genlist_index(int nVideoItemIndex)
+{
+       if (nVideoItemIndex < 0) {
+               VideoLogDebug("invalid nVideoItemIndex");
+               return 0;
+       }
+       int nItemCount = VP_GENLIST_THUMB_PORTRAIT_COUNT;
+       int nGenlistIndex = 0;
+       if (g_pFolderView->bLandscape) {
+               nItemCount = VP_GENLIST_THUMB_LANDSPACE_COUNT;
+       }
+       nGenlistIndex = nVideoItemIndex / nItemCount;
+       return nGenlistIndex;
+}
+
+/**
+ *
+ * @param pGenlist
+ * @return
+ */
+static bool __mp_folder_view_append_grid_layout(void *pGenlist)
+{
+       if (!pGenlist || !g_pFolderView) {
+               VideoLogError("error handle.");
+               return FALSE;
+       }
+       int nIndex = 0;
+       int nVideoListSize = mp_util_svc_get_video_folder_size();
+       if (nVideoListSize <= 0) {
+               VideoLogWarning("nVideoListSize = %d", nVideoListSize);
+               return FALSE;
+       }
+
+       MP_DEL_ITC(g_pFolderView->pGenGridItc);
+       g_pFolderView->pFolderList_Itc = elm_genlist_item_class_new();
+
+       g_pFolderView->pFolderList_Itc->item_style = "video/1icon.thumbnail";
+       g_pFolderView->pFolderList_Itc->func.text_get = NULL;
+       g_pFolderView->pFolderList_Itc->func.content_get =
+               (void *) __mp_folder_view_get_icon_of_grid_cb;
+       g_pFolderView->pFolderList_Itc->func.state_get = NULL;
+       g_pFolderView->pFolderList_Itc->func.del = NULL;
+       g_pFolderView->pFolderList_Itc->decorate_item_style = NULL;
+
+       MP_DEL_ITC(g_pFolderView->pFolderListLandscape_Itc);
+       g_pFolderView->pFolderListLandscape_Itc = elm_genlist_item_class_new();
+       g_pFolderView->pFolderListLandscape_Itc->item_style =
+               "video/1icon.thumbnail.landscape";
+       g_pFolderView->pFolderListLandscape_Itc->func.text_get = NULL;
+       g_pFolderView->pFolderListLandscape_Itc->func.content_get =
+               (void *) __mp_folder_view_get_icon_of_grid_cb;
+       g_pFolderView->pFolderListLandscape_Itc->func.state_get = NULL;
+       g_pFolderView->pFolderListLandscape_Itc->func.del = NULL;
+       g_pFolderView->pFolderListLandscape_Itc->decorate_item_style = NULL;
+
+       int nGenlistRow = 0;
+       nGenlistRow =
+               mp_folder_view_thumbnail_to_genlist_index(nVideoListSize - 1);
+
+       if (mp_rotate_ctrl_check_landspace()) {
+               for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+                       elm_genlist_item_append(pGenlist,
+                                                                       g_pFolderView->pFolderListLandscape_Itc,
+                                                                       (void *) nIndex, NULL,
+                                                                       ELM_GENLIST_ITEM_NONE, NULL, NULL);
+               }
+       } else {
+               for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+                       elm_genlist_item_append(pGenlist,
+                                                                       g_pFolderView->pFolderList_Itc,
+                                                                       (void *) nIndex, NULL,
+                                                                       ELM_GENLIST_ITEM_NONE, NULL, NULL);
+               }
+       }
+
+       return TRUE;
+}
+#endif
+
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_folder_view_delete_popup_cb(void *pUserData,
+                                                                                        Evas_Object * pObject,
+                                                                                        void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_util_delete_popup_handle();
+}
+
+static void __mp_folder_view_mouse_back_up_popup_cb(void *pUserData,
+                                                                                                       Evas * pEvas,
+                                                                                                       Evas_Object * pObject,
+                                                                                                       void *pEventInfo)
+{
+       Evas_Event_Mouse_Up *pEvent = pEventInfo;
+       if (!pEvent) {
+               return;
+       }
+
+       if (pEvent->button == 3) {
+               mp_util_delete_popup_handle();
+       }
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObject
+ * @param pEventInfo
+ */
+void __mp_folder_view_key_back_popup_cb(void *pUserData, Evas * pEvas,
+                                                                               Evas_Object * pObject,
+                                                                               void *pEventInfo)
+{
+       Evas_Event_Key_Down *pEvent = pEventInfo;
+       if (!pEvent) {
+               return;
+       }
+
+       if (!g_strcmp0(pEvent->keyname, "XF86Back")) {
+               mp_util_delete_popup_handle();
+       }
+}
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_folder_view_remove_video_item(int nVideoItemIndex)
+{
+       char *szFileUrl = mp_util_svc_get_video_url(nVideoItemIndex);
+       if (szFileUrl) {
+               VideoSecureLogInfo("Delete file url : %s", szFileUrl);
+               mp_util_svc_remove_item_from_db_by_list_index(nVideoItemIndex);
+               unlink(szFileUrl);
+               free(szFileUrl);
+               szFileUrl = NULL;
+
+       }
+}
+
+static Eina_Bool __mp_folder_view_finish_del_timer_cb(void *pUserData)
+{
+
+       g_pFolderView->pFinishDelTimer = NULL;
+       if (pUserData) {
+               int nFolderItemIndex = (int) pUserData;
+               char *szTmpFolderUrl =
+                       mp_util_svc_get_video_folder_url(nFolderItemIndex);
+               if (szTmpFolderUrl) {
+                       if (vp_file_rmdir(szTmpFolderUrl) == EINA_FALSE) {
+                               VideoLogError("vp_file_rmdir failed!");
+                       }
+
+                       MP_FREE_STRING(szTmpFolderUrl);
+               }
+       }
+       mp_util_svc_destory_video_item_list();
+       __mp_folder_view_delete_popup_handle();
+
+       if (g_pFolderView->fUpdateListItemUserCb) {
+               g_pFolderView->fUpdateListItemUserCb(LIST_UPDATE_TYPE_ALL);
+       }
+
+       return FALSE;
+}
+
+static Eina_Bool __mp_folder_view_delete_item_idler_cb(void *pUserData)
+{
+
+       int nVideoTotal = mp_util_svc_get_video_list_size_for_checking_index();
+       VideoLogInfo("nVideoTotal = %d", nVideoTotal);
+       double nDeleteRate = 0.0;
+
+       __mp_folder_view_remove_video_item(g_pFolderView->nCompltedDeleteItem);
+
+       g_pFolderView->nCompltedDeleteItem++;
+
+       if (g_pFolderView->pProgressbar) {
+               VideoLogInfo("Set progress bar");
+               nDeleteRate =
+                       ((double) g_pFolderView->nCompltedDeleteItem) /
+                       ((double) nVideoTotal);
+               elm_progressbar_value_set(g_pFolderView->pProgressbar,
+                                                                 nDeleteRate);
+       }
+
+       if (g_pFolderView->nCompltedDeleteItem == nVideoTotal) {
+               g_pFolderView->pRemoveIdler = NULL;
+               MP_DEL_TIMER(g_pFolderView->pFinishDelTimer);
+               g_pFolderView->pFinishDelTimer =
+                       ecore_timer_add(0.1, __mp_folder_view_finish_del_timer_cb,
+                                                       pUserData);
+
+               return FALSE;
+       }
+       return TRUE;
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_folder_view_button_popup_cb(void *pUserData,
+                                                                                        Evas_Object * pObject,
+                                                                                        void *pEventInfo)
+{
+       VideoLogInfo("");
+       __mp_folder_view_delete_popup_handle();
+
+       if (g_pFolderView->fUpdateListItemUserCb) {
+               g_pFolderView->fUpdateListItemUserCb(LIST_UPDATE_TYPE_ALL);
+       }
+
+}
+
+#ifdef ENABLE_LONGPRESS
+static Eina_Bool __mp_folder_view_start_del_timer_cb(void *pUserData)
+{
+       g_pFolderView->pStartDelTimer = NULL;
+       g_pFolderView->pRemoveIdler =
+               ecore_idler_add(__mp_folder_view_delete_item_idler_cb, pUserData);
+       return FALSE;
+}
+
+static void __mp_folder_view_respones_delete_popup_cb(void *pUserData,
+                                                                                                         Evas_Object *
+                                                                                                         pObject,
+                                                                                                         void *pEventInfo)
+{
+       mp_util_delete_popup_handle();
+
+       int nFolderItemIndex = (int) pUserData;
+       if (nFolderItemIndex < 0
+               || nFolderItemIndex >= mp_util_svc_get_video_folder_size()) {
+               VideoLogError("nFolderItemIndex is invalid");
+               return;
+       }
+
+       char *szTmpFolderUrl =
+               mp_util_svc_get_video_folder_url(nFolderItemIndex);
+
+       VideoSecureLogInfo("folder_index : %d, szTmpFolderUrl : %s",
+                                          nFolderItemIndex, szTmpFolderUrl);
+       mp_util_svc_destory_video_item_list();
+
+       if (szTmpFolderUrl) {
+               mp_util_svc_extract_video_list_from_folder(szTmpFolderUrl,
+                                                                                                  MP_MEDIA_SORT_BY_NAME,
+                                                                                                  MP_LIST_VIEW_ALL);
+       } else {
+               VideoLogError("folder path is NULL");
+               return;
+       }
+       MP_FREE_STRING(szTmpFolderUrl);
+#ifdef _MULTI_WINDOW
+       g_pFolderView->pRemovePopUpHandle =
+               ea_center_popup_add(mp_util_get_main_window_handle());
+#else
+       g_pFolderView->pRemovePopUpHandle =
+               elm_popup_add(mp_util_get_main_window_handle());
+#endif
+       eext_object_event_callback_add(g_pFolderView->pRemovePopUpHandle,
+                                                                  EEXT_CALLBACK_BACK,
+                                                                  __mp_folder_view_button_popup_cb, NULL);
+       Evas_Object *pLabel = elm_label_add(g_pFolderView->pRemovePopUpHandle);
+       elm_object_style_set(pLabel, "popup/default");
+       elm_label_line_wrap_set(pLabel, ELM_WRAP_MIXED);
+       elm_object_domain_translatable_text_set(pLabel, MP_SYS_STRING,
+                                                                                       VIDEOS_DELETEPOP_MSG_DELETING_IDS);
+       evas_object_size_hint_weight_set(pLabel, EVAS_HINT_EXPAND, 0.0);
+       evas_object_size_hint_align_set(pLabel, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       evas_object_show(pLabel);
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_POPUP_PROGRESSBAR_EDJ);
+       free(path);
+       Evas_Object *pPopupLayout =
+               elm_layout_add(g_pFolderView->pRemovePopUpHandle);
+       elm_layout_file_set(pPopupLayout, edj_path,
+                                               "popup_center_text_progressview");
+       evas_object_size_hint_weight_set(pPopupLayout, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+
+       Evas_Object *pProgressbar =
+               elm_progressbar_add(g_pFolderView->pRemovePopUpHandle);
+       elm_object_style_set(pProgressbar, "list_progress");
+       elm_progressbar_horizontal_set(pProgressbar, EINA_TRUE);
+       evas_object_size_hint_align_set(pProgressbar, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(pProgressbar, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       elm_progressbar_value_set(pProgressbar, 0.0);
+
+       evas_object_show(pProgressbar);
+       g_pFolderView->pProgressbar = pProgressbar;
+
+       elm_object_part_content_set(pPopupLayout, "elm.swallow.content",
+                                                               pLabel);
+       elm_object_part_content_set(pPopupLayout, "elm.swallow.end",
+                                                               pProgressbar);
+       elm_object_part_text_set(pPopupLayout, "elm.text.subtext1", "");
+       elm_object_part_text_set(pPopupLayout, "elm.text.subtext2", "");
+
+       elm_object_content_set(g_pFolderView->pRemovePopUpHandle,
+                                                  pPopupLayout);
+       Evas_Object *pButton =
+               elm_button_add(g_pFolderView->pRemovePopUpHandle);
+       elm_object_style_set(pButton, "popup_button/default");
+       elm_object_domain_translatable_text_set(pButton, VIDEOS_STRING,
+                                                                                       VIDEOS_COMMON_BUTTON_CANCEL_IDS);
+       elm_object_part_content_set(g_pFolderView->pRemovePopUpHandle,
+                                                               "button1", pButton);
+       evas_object_smart_callback_add(pButton, "clicked",
+                                                                  __mp_folder_view_button_popup_cb,
+                                                                  pUserData);
+
+       evas_object_show(g_pFolderView->pRemovePopUpHandle);
+       g_pFolderView->nCompltedDeleteItem = 0;
+
+       MP_DEL_TIMER(g_pFolderView->pStartDelTimer);
+       g_pFolderView->pStartDelTimer =
+               ecore_timer_add(0.3, __mp_folder_view_start_del_timer_cb,
+                                               pUserData);
+
+}
+
+static void __mp_folder_view_popup_delete_cb(void *pUserData,
+                                                                                        Evas_Object * pObject,
+                                                                                        void *pEventInfo)
+{
+       mp_option_ctrl_delete_handle();
+
+       if (!g_pFolderView) {
+               VideoLogError("g_pFolderView of list view are not existed.");
+               return;
+       }
+
+       int nFolderItemIndex = (int) pUserData;
+       MpListViewAsType type = MP_LIST_VIEW_AS_FOLDER_LIST;
+       mp_util_remove_question_popup(nFolderItemIndex, type,
+                                                                 __mp_folder_view_respones_delete_popup_cb,
+                                                                 __mp_folder_view_delete_popup_cb,
+                                                                 __mp_folder_view_mouse_back_up_popup_cb,
+                                                                 __mp_folder_view_key_back_popup_cb);
+
+       VideoLogInfo("");
+}
+
+static void __mp_folder_view_share_via_cb(void *pUserData,
+                                                                                 Evas_Object * pObject,
+                                                                                 void *pEventInfo)
+{
+       mp_option_ctrl_delete_handle();
+
+       if (!g_pFolderView) {
+               VideoLogError("g_pFolderView of list view are not existed.");
+               return;
+       }
+
+       if (!g_pFolderView->pMainHandle) {
+               VideoLogError("pMainHandle is null.");
+               return;
+       }
+
+       int nFolderItemIndex = (int) pUserData;
+       char *szFolderPath = NULL;
+       szFolderPath = mp_util_svc_get_video_folder_url(nFolderItemIndex);
+       VideoSecureLogInfo("nFolderItemIndex=%d, szFolderPath=%s",
+                                          nFolderItemIndex, szFolderPath);
+       mp_share_view_push(g_pFolderView->pMainHandle->pNaviFrameHandle,
+                                          (ChangeListShareViewCbFunc)
+                                          g_pFolderView->fUpdateListItemUserCb, szFolderPath,
+                                          LIST_TAB_TYPE_PERSONAL);
+
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+}
+
+static void __mp_folder_view_normal_result_popup()
+{
+       if (!g_pFolderView) {
+               VideoLogError("Invalid list and object");
+               return;
+       }
+       evas_object_data_set(g_pFolderView->pVideosGenlist, "popup", NULL);
+       elm_object_scroll_freeze_pop(g_pFolderView->pVideosGenlist);
+}
+
+static void __mp_folder_view_long_press_item_cb(void *pUserData,
+                                                                                               Evas_Object * obj,
+                                                                                               void *event_info)
+{
+
+       if (!g_pFolderView || !event_info || !obj) {
+               VideoLogError("Invalid list and object");
+               return;
+       }
+
+       Elm_Object_Item *long_item = (Elm_Object_Item *) event_info;
+       int nFolderItemIndex = elm_genlist_item_index_get(long_item);
+       if (nFolderItemIndex < 0) {
+               VideoLogError("nGenlistItemIndex is invalid");
+               return;
+       }
+
+       st_RegisteOptionCbFunc *pRegisteCbFunc =
+               (st_RegisteOptionCbFunc *) calloc(1,
+                                                                                 sizeof(st_RegisteOptionCbFunc));
+       if (pRegisteCbFunc) {
+               pRegisteCbFunc->ShareViaItemCb =
+                       (void *) __mp_folder_view_share_via_cb;
+               pRegisteCbFunc->AddToHomeItemCb = NULL;
+               pRegisteCbFunc->DeleteItemCb =
+                       (void *) __mp_folder_view_popup_delete_cb;
+       }
+
+       VideoLogDebug("nVideoItemIndex=%d", nFolderItemIndex);
+       char *title = mp_util_svc_get_video_folder_name(nFolderItemIndex);
+       mp_option_ctrl_show(g_pFolderView->pMainHandle->pNaviFrameHandle,
+                                               (const char *) title, nFolderItemIndex,
+                                               pRegisteCbFunc,
+                                               __mp_folder_view_normal_result_popup, NULL,
+                                               MP_LIST_OPTION_DOWNLOAD_NONE);
+       if (mp_option_ctrl_get_handle()) {
+               evas_object_data_set(g_pFolderView->pVideosGenlist, "popup",
+                                                        mp_option_ctrl_get_handle());
+               elm_object_scroll_freeze_push(g_pFolderView->pVideosGenlist);
+       }
+       MP_FREE_STRING(pRegisteCbFunc);
+       MP_FREE_STRING(title);
+
+}
+
+static void __mp_folder_view_del_genlist_cb(Evas_Object * pVideosGenlist)
+{
+       if (!pVideosGenlist) {
+               VideoSecureLogError("pVideosGenlist is NULL");
+               return;
+       }
+       evas_object_smart_callback_del(pVideosGenlist, "longpressed",
+                                                                  __mp_folder_view_long_press_item_cb);
+}
+
+static void __mp_folder_view_add_genlist_cb(Evas_Object * pVideosGenlist)
+{
+       if (!pVideosGenlist) {
+               VideoSecureLogError("pVideosGenlist is NULL");
+               return;
+       }
+
+       evas_object_smart_callback_add(pVideosGenlist, "longpressed",
+                                                                  __mp_folder_view_long_press_item_cb,
+                                                                  NULL);
+
+}
+#endif
+
+/* External APIs*/
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_folder_view_rotate_cb(void *data, Evas_Object * obj,
+                                                                          void *event_info)
+{
+       if (!g_pFolderView) {
+               VideoLogError("__mp_folder_view_rotate_cb IS null");
+               return;
+       }
+       if (!mp_folder_view_is_top_view())
+               return;
+       bool bLandscape = mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+                                                                                                                       mp_util_get_main_window_handle
+                                                                                                                       ());
+       if (bLandscape) {
+               VideoLogInfo("landscape mode");
+               g_pFolderView->bLandscape = true;
+       } else {
+               g_pFolderView->bLandscape = false;
+       }
+       elm_genlist_clear(g_pFolderView->pVideosGenlist);
+       __mp_folder_view_append_grid_layout(g_pFolderView->pVideosGenlist);
+}
+
+/**
+ *
+ * @param pMainViewHandle
+ * @param pMainViewWidget
+ * @param eUpdateType
+ * @param pUpdateVideoListUserCb
+ */
+void mp_folder_view_arrange_folder_list(void *pMainViewHandle,
+                                                                               void *pMainViewWidget,
+                                                                               MpListUpdateType eUpdateType,
+                                                                               UpdateListItemsCbFunc
+                                                                               pUpdateVideoListUserCb)
+{
+       if (!pMainViewHandle || !pMainViewWidget || !pUpdateVideoListUserCb) {
+               VideoLogInfo
+                       ("pMainViewHandle or pMainViewHandle or pUpdateVideoListUserCb are not existed.");
+               return;
+       }
+       if (eUpdateType == LIST_UPDATE_TYPE_NONE) {
+               VideoLogInfo("don't need to update and create");
+               return;
+       }
+
+       __mp_folder_view_reset(eUpdateType);
+
+       if (!g_pFolderView) {
+               g_pFolderView = (stFolderView *) calloc(1, sizeof(stFolderView));
+               if (!g_pFolderView) {
+                       return;
+               }
+       }
+
+       g_pFolderView->bItemSelected = false;
+       g_pFolderView->pMainHandle = pMainViewHandle;
+       g_pFolderView->pMainWidget = pMainViewWidget;
+       g_pFolderView->fUpdateListItemUserCb = pUpdateVideoListUserCb;
+       g_pFolderView->bLandscape =
+               mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+                                                                                         mp_util_get_main_window_handle
+                                                                                         ());
+
+       elm_object_item_part_text_set(g_pFolderView->
+                                                                 pMainHandle->pNaviFrameItem,
+                                                                 "elm.text.title",
+                                                                 VIDEOS_TITLE_OPT_FOLDER);
+
+       VideoLogInfo("");
+
+       int nFolderListSize = 0;
+
+       if (eUpdateType == LIST_UPDATE_TYPE_ALL
+               || eUpdateType == LIST_UPDATE_TYPE_DATA) {
+               mp_util_svc_destory_video_list();
+               mp_util_svc_extract_video_list_by_item_type
+                       (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+               mp_util_svc_extract_video_folder_list_by_type
+                       (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+       }
+
+       nFolderListSize = mp_util_svc_get_video_folder_size();
+       VideoLogInfo("nVideoListSize : %d", nFolderListSize);
+
+       if (nFolderListSize > 0) {
+               if (g_pFolderView->pNocontentlayout) {
+                       elm_object_part_content_unset(g_pFolderView->pNocontentlayout,
+                                                                                 SWALLOW_LISTVIEW_CONTENT);
+                       MP_DEL_OBJ(g_pFolderView->pNocontentlayout);
+               }
+               if (!g_pFolderView->pVideosGenlist) {
+                       g_pFolderView->pVideosGenlist =
+                               elm_genlist_add(g_pFolderView->
+                                                               pMainHandle->pNaviFrameHandle);
+                       elm_scroller_bounce_set(g_pFolderView->pVideosGenlist,
+                                                                       EINA_FALSE, EINA_TRUE);
+                       evas_object_size_hint_weight_set(g_pFolderView->pVideosGenlist,
+                                                                                        EVAS_HINT_EXPAND,
+                                                                                        EVAS_HINT_EXPAND);
+                       evas_object_size_hint_align_set(g_pFolderView->pVideosGenlist,
+                                                                                       EVAS_HINT_FILL,
+                                                                                       EVAS_HINT_FILL);
+                       elm_genlist_mode_set(g_pFolderView->pVideosGenlist,
+                                                                ELM_LIST_COMPRESS);
+                       elm_genlist_homogeneous_set(g_pFolderView->pVideosGenlist,
+                                                                               EINA_TRUE);
+
+                       elm_genlist_block_count_set(g_pFolderView->pVideosGenlist,
+                                                                               VIDEO_MAIN_LIST_BLOCK_COUNT);
+                       elm_scroller_single_direction_set
+                               (g_pFolderView->pVideosGenlist,
+                                ELM_SCROLLER_SINGLE_DIRECTION_HARD);
+#ifdef ENABLE_LONGPRESS
+                       __mp_folder_view_del_genlist_cb(g_pFolderView->pVideosGenlist);
+                       __mp_folder_view_add_genlist_cb(g_pFolderView->pVideosGenlist);
+#endif
+               }
+               elm_object_part_content_set(g_pFolderView->
+                                                                       pMainWidget->pListViewBaselayout,
+                                                                       SWALLOW_LISTVIEW_CONTENT,
+                                                                       g_pFolderView->pVideosGenlist);
+               __mp_folder_view_append_grid_layout(g_pFolderView->pVideosGenlist);
+               evas_object_smart_callback_add((Evas_Object *)
+                                                                          mp_util_get_main_window_handle(),
+                                                                          "wm,rotation,changed",
+                                                                          __mp_folder_view_rotate_cb, NULL);
+               evas_object_show(g_pFolderView->pVideosGenlist);
+       } else {
+               __mp_folder_view_create_no_content();
+       }
+
+       mp_list_view_update_count_layout();
+
+}
+
+/**
+ *
+ */
+void mp_folder_view_update_video_items(void)
+{
+       if (!g_pFolderView->pVideosGenlist) {
+               VideoLogWarning
+                       ("[WARNING] g_pFolderView->pFolderItemList is not existed.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       int nFolderListSize = mp_util_svc_get_video_folder_size();
+       Elm_Object_Item *pTmpVideoGenlistItem = NULL;
+       if (nFolderListSize > 0) {
+
+               pTmpVideoGenlistItem =
+                       elm_genlist_first_item_get(g_pFolderView->pVideosGenlist);
+               while (pTmpVideoGenlistItem) {
+                       elm_genlist_item_update(pTmpVideoGenlistItem);
+                       pTmpVideoGenlistItem =
+                               elm_genlist_item_next_get(pTmpVideoGenlistItem);
+               }
+       }
+}
+
+/**
+ *
+ */
+void mp_folder_view_change_language(void)
+{
+       if (!g_pFolderView) {
+               VideoLogInfo("No existed handle of Folder view.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       mp_folder_view_update_video_items();
+}
diff --git a/src/view/mp-video-list-view-item-of-folder.c b/src/view/mp-video-list-view-item-of-folder.c
new file mode 100755 (executable)
index 0000000..5dc2bf8
--- /dev/null
@@ -0,0 +1,2292 @@
+/*
+ * Copyright (c) 2020 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 <glib.h>
+
+#include "vp-util.h"
+#include "vp-file-util.h"
+#include "mp-video-log.h"
+#include "mp-util.h"
+#include "video-player.h"
+#include "mp-video-string-define.h"
+#include "mp-video-value-define.h"
+#include "mp-video-type-define.h"
+
+#include "mp-util-media-service.h"
+#include "mp-video-list-view-item-of-folder.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-footer-toolbar.h"
+#include "mp-video-search-view.h"
+#include "mp-external-ug.h"
+#include "mp-launching-video-displayer.h"
+#ifdef ENABLE_DRM_FEATURE
+#include "mp-drm-ctrl.h"
+#endif
+#include "videos-view-mgr.h"
+#include "mp-video-list-remove-view.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-video-list-option-ctrl.h"
+#include "mp-video-list-share-via-view.h"
+
+#include "mp-video-list-personal-view.h"
+#include "mp-video-rename-ctrl.h"
+#include "mp-video-info-ctrl.h"
+#include "mp-util-widget-ctrl.h"
+#include "mp-video-util-db-controller.h"
+#include "mp-video-list-view-select.h"
+#include "mp-video-nocontent-layout.h"
+#include "mp-video-detail-view.h"
+#include "mp-rotate-ctrl.h"
+
+#define NO_CONTENTS_W                                  720
+#define        NO_CONTENTS_H                                   897
+
+
+/****************************folder view***************************/
+
+typedef struct {
+       void *pNaviFrameHandle;
+       void *pNaviFrameItem;
+       void *pVideosGenlist;
+
+       Elm_Genlist_Item_Class *pGenGridItc;
+       Elm_Genlist_Item_Class *pGenGridLandscapeItc;
+       Elm_Gengrid_Item_Class *pGenGridItc_l;
+
+       int nFolder_index;
+       int currentItemCount;
+       char *pFolderUrl;
+       int nPlayVideoIndex;
+       bool bExist;
+       bool bLandscape;
+       MpDbUpdateViewLev euLev;
+       UpdateListItemsCbFunc pUpdateListUserCbFunc;
+
+} st_VideoFolderViewHandle;
+
+typedef struct {
+       Evas_Object *pFolderViewBox;
+       Evas_Object *pFolderViewCountlayout;
+       Evas_Object *pFolderViewBaselayout;
+       Evas_Object *pNocontentsLayout;
+       Evas_Object *pViewButton;
+
+       Evas_Object *pFolderViewGenlistTitle;
+       Elm_Genlist_Item_Class *pFolderViewGenlistTitleItc;
+       Elm_Object_Item *pFolderViewGenlistItemForTitle;
+       Eina_List *pVideolistItemList;
+} st_VideoFolderViewWidget;
+
+st_VideoFolderViewHandle *g_pFolderViewHandle = NULL;
+st_VideoFolderViewWidget *g_pFolderViewWidget = NULL;
+Elm_Genlist_Item_Class VideoFolder_Itc;
+
+
+static bool __mp_folder_item_view_update_video_list(MpListUpdateType
+                                                                                                       eUpdateType);
+static void __mp_folder_item_view_db_changed_cb(void *pUserData);
+#ifdef ENABLE_LONGPRESS
+static void __mp_folder_item_view_delete_video_items(int nVideoItemIndex);
+#endif
+static void __mp_folder_item_view_db_result_data_update_cb(void);
+static void __mp_folder_item_view_result_user_cb(MpListUpdateType
+                                                                                                eUpdateType);
+static void __mp_folder_item_view_result_view_update_cb(void);
+static void __mp_folder_item_view_rotate_cb(void *data, Evas_Object * obj,
+                                                                                       void *event_info);
+static void mp_folder_view_cancel_thumbnail_update(int nIndexGenlist);
+static int mp_folder_item_view_thumbnail_to_genlist_index(int
+                                                                                                                 nVideoItemIndex);
+static int __mp_folder_item_view_get_sort_type(void);
+
+/**
+ *
+ * @return
+ */
+static bool __mp_folder_item_view_free_video_genlistItem(void)
+{
+       if (!g_pFolderViewWidget || !g_pFolderViewWidget->pVideolistItemList) {
+               VideoLogError
+                       ("g_pMainViewWidget->pVideoGenlistItemList is already empty.");
+               return FALSE;
+       }
+
+       VideoLogInfo("");
+
+       Elm_Object_Item *pTmpVideoGenlistItem = NULL;
+       EINA_LIST_FREE(g_pFolderViewWidget->pVideolistItemList,
+                                  pTmpVideoGenlistItem) {
+               if (pTmpVideoGenlistItem) {
+                       int nIndex =
+                               (int) elm_object_item_data_get(pTmpVideoGenlistItem);
+
+                       mp_folder_view_cancel_thumbnail_update(nIndex);
+                       pTmpVideoGenlistItem = NULL;
+               }
+       }
+
+       g_pFolderViewWidget->pVideolistItemList = NULL;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pVideosGenlist
+ */
+static void __mp_folder_item_view_clear_genlist(void *pVideosGenlist)
+{
+       VideoLogInfo("");
+       if (pVideosGenlist && g_pFolderViewWidget) {
+               __mp_folder_item_view_free_video_genlistItem();
+               elm_genlist_clear(pVideosGenlist);
+       }
+}
+
+/**
+ *
+ */
+static void __mp_folder_item_view_destroy(void)
+{
+       VideoLogInfo("");
+       if (g_pFolderViewHandle) {
+               g_pFolderViewHandle->nFolder_index = 0;
+               __mp_folder_item_view_clear_genlist(g_pFolderViewHandle->
+                                                                                       pVideosGenlist);
+               MP_DEL_OBJ(g_pFolderViewHandle->pVideosGenlist);
+
+               g_pFolderViewHandle->nPlayVideoIndex = -1;
+               MP_FREE_STRING(g_pFolderViewHandle->pFolderUrl);
+
+               free(g_pFolderViewHandle);
+               g_pFolderViewHandle = NULL;
+       }
+
+       if (g_pFolderViewWidget) {
+               MP_DEL_ITC(g_pFolderViewWidget->pFolderViewGenlistTitleItc);
+               MP_DEL_OBJ(g_pFolderViewWidget->pViewButton);
+               MP_DEL_OBJ(g_pFolderViewWidget->pNocontentsLayout);
+               MP_DEL_OBJ(g_pFolderViewWidget->pFolderViewBaselayout);
+               MP_DEL_OBJ(g_pFolderViewWidget->pFolderViewCountlayout);
+               MP_DEL_OBJ(g_pFolderViewWidget->pFolderViewBox);
+
+               free(g_pFolderViewWidget);
+               g_pFolderViewWidget = NULL;
+       }
+       evas_object_smart_callback_del((Evas_Object *)
+                                                                  mp_util_get_main_window_handle(),
+                                                                  "wm,rotation,changed",
+                                                                  __mp_folder_item_view_rotate_cb);
+}
+
+/**
+ *
+ */
+static void __mp_folder_item_view_reset(void)
+{
+       VideoLogInfo("");
+       if (g_pFolderViewHandle) {
+               mp_util_db_set_update_fun(g_pFolderViewHandle->euLev, NULL);
+               g_pFolderViewHandle->nFolder_index = 0;
+               __mp_folder_item_view_clear_genlist(g_pFolderViewHandle->
+                                                                                       pVideosGenlist);
+               g_pFolderViewHandle->pVideosGenlist = NULL;
+
+               MP_FREE_STRING(g_pFolderViewHandle->pFolderUrl);
+
+               g_pFolderViewHandle->nPlayVideoIndex = -1;
+
+               free(g_pFolderViewHandle);
+               g_pFolderViewHandle = NULL;
+       }
+
+       if (g_pFolderViewWidget) {
+               MP_DEL_ITC(g_pFolderViewWidget->pFolderViewGenlistTitleItc);
+               g_pFolderViewWidget->pFolderViewBaselayout = NULL;
+               g_pFolderViewWidget->pNocontentsLayout = NULL;
+               g_pFolderViewWidget->pViewButton = NULL;
+
+               free(g_pFolderViewWidget);
+               g_pFolderViewWidget = NULL;
+       }
+       evas_object_smart_callback_del((Evas_Object *)
+                                                                  mp_util_get_main_window_handle(),
+                                                                  "wm,rotation,changed",
+                                                                  __mp_folder_item_view_rotate_cb);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *__mp_folder_item_view_init_base_layout(void *pParent)
+{
+       if (!pParent) {
+               VideoLogError("[ERR]");
+               return NULL;
+       }
+
+       VideoLogInfo("");
+
+       MP_DEL_OBJ(g_pFolderViewWidget->pFolderViewBaselayout);
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_LISTVIEW_EDJ);
+       free(path);
+       // Create folder view base layout.
+       g_pFolderViewWidget->pFolderViewBaselayout = elm_layout_add(pParent);
+       elm_layout_file_set(g_pFolderViewWidget->pFolderViewBaselayout,
+                                               edj_path, LISTVIEW_EDJ_GROUP);
+       evas_object_size_hint_weight_set(g_pFolderViewWidget->
+                                                                        pFolderViewBaselayout,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pFolderViewWidget->
+                                                                       pFolderViewBaselayout, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       return g_pFolderViewWidget->pFolderViewBaselayout;
+}
+
+/**
+ *
+ * @param pNaviFrame
+ * @param pUserData
+ */
+static void __mp_folder_item_view_pop(void *pNaviFrame, void *pUserData)
+{
+       if (!g_pFolderViewHandle) {
+               VideoLogInfo("[ERR] g_pFolderViewHandle");
+               return;
+       }
+       mp_ft_ctrl_destroy();
+
+       if (g_pFolderViewHandle && g_pFolderViewHandle->pUpdateListUserCbFunc) {
+               g_pFolderViewHandle->pUpdateListUserCbFunc(LIST_UPDATE_TYPE_ALL);
+
+               VideoLogInfo("");
+       }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param obj
+ * @param event_info
+ */
+static void __mp_folder_item_view_trans_finished_cb(void *pUserData,
+                                                                                                       Evas_Object * obj,
+                                                                                                       void *event_info)
+{
+       if (!obj) {
+               VideoLogError("[ERR] g_pAsfDeviceListViewHandle is NULL.");
+               return;
+       }
+
+       mp_widget_ctrl_enable_navi_handle_focus(obj);
+
+       evas_object_smart_callback_del(obj, "transition,finished",
+                                                                  __mp_folder_item_view_trans_finished_cb);
+}
+
+// Back button
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+static Eina_Bool __mp_folder_item_view_back_btn_cb(void *pUserData,
+                                                                                                  Elm_Object_Item * pItem)
+{
+       if (!g_pFolderViewHandle) {
+               VideoLogInfo("[ERR] g_pListRemoveViewHandle is NULL.");
+               return EINA_TRUE;
+       }
+       VideoLogInfo("");
+       g_pFolderViewHandle->bExist = true;
+       mp_widget_ctrl_disable_navi_handle_focus_except_item
+               (g_pFolderViewHandle->pNaviFrameHandle,
+                g_pFolderViewHandle->pNaviFrameItem);
+       evas_object_smart_callback_add(g_pFolderViewHandle->pNaviFrameHandle,
+                                                                  "transition,finished",
+                                                                  __mp_folder_item_view_trans_finished_cb,
+                                                                  NULL);
+       __mp_folder_item_view_pop(g_pFolderViewHandle->pNaviFrameHandle, NULL);
+       mp_folder_view_set_is_item_view(false);
+
+       return EINA_TRUE;
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+static char *__mp_folder_item_view_get_guration_time(int nVideoItemIndex)
+{
+       VideoLogInfo("");
+
+       char szTmpStr[STR_LEN_MAX] = { 0, };
+       char szTmpStrDurationTime[STR_LEN_MAX] = { 0, };
+
+       unsigned int nVideoInfoDuration =
+               mp_util_svc_get_video_duration_time(nVideoItemIndex);
+
+       mp_util_convert_time(nVideoInfoDuration, szTmpStrDurationTime, FALSE);
+       snprintf(szTmpStr, STR_LEN_MAX, "%s", szTmpStrDurationTime);
+
+       return strdup(szTmpStr);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_folder_item_view_get_label_of_video_item_cb(void
+                                                                                                                         *pUserData,
+                                                                                                                         Evas_Object *
+                                                                                                                         pObject,
+                                                                                                                         const char
+                                                                                                                         *pPart)
+{
+
+       int nVideoItemIndex = (int) pUserData;
+       mp_util_svc_destory_video_item_list();
+       mp_util_svc_extract_video_list_from_folder(g_pFolderViewHandle->
+                                                                                          pFolderUrl,
+                                                                                          __mp_folder_item_view_get_sort_type
+                                                                                          (), MP_LIST_VIEW_ALL);
+       if (!strcmp(pPart, "elm.text.main.left.top")) {
+               char *szTitle;
+               szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+               char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+               VideoLogWarning("testestesteste = %d, %s", nVideoItemIndex,
+                                               szTitleUtf8);
+
+               if (szTitle) {
+                       free(szTitle);
+                       szTitle = NULL;
+               }
+
+               return szTitleUtf8;
+       } else if (!strcmp(pPart, "elm.text.sub.left.bottom")) {
+               return __mp_folder_item_view_get_guration_time(nVideoItemIndex);
+       } else if (!strcmp(pPart, "elm.text")) {
+               char *szTitle;
+               szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+               char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+               VideoLogInfo("%s", szTitle);
+               if (szTitle) {
+                       free(szTitle);
+                       szTitle = NULL;
+               }
+
+               return szTitleUtf8;
+       } else if (!strcmp(pPart, "elm.text.2")) {
+               return __mp_folder_item_view_get_guration_time(nVideoItemIndex);
+       }
+
+       return NULL;
+}
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_folder_item_view_HW_mouse_back_up_popup_cb(void
+                                                                                                                       *pUserData,
+                                                                                                                       Evas * pEvas,
+                                                                                                                       Evas_Object *
+                                                                                                                       pObject,
+                                                                                                                       void
+                                                                                                                       *pEventInfo)
+{
+       Evas_Event_Mouse_Up *pEvent = pEventInfo;
+
+       if (pEvent->button == 3) {
+               mp_util_delete_popup_handle();
+       }
+}
+
+static void __mp_folder_item_view_HW_key_back_popup_cb(void *pUserData,
+                                                                                                          Evas * pEvas,
+                                                                                                          Evas_Object *
+                                                                                                          pObject,
+                                                                                                          void *pEventInfo)
+{
+       Evas_Event_Key_Down *pEvent = pEventInfo;
+
+       if (!g_strcmp0(pEvent->keyname, "XF86Back")) {
+               mp_util_delete_popup_handle();
+       }
+}
+#endif
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_folder_item_view_respones_delete_popup_cb(void *pUserData,
+                                                                                                                  Evas_Object *
+                                                                                                                  pObject,
+                                                                                                                  void
+                                                                                                                  *pEventInfo)
+{
+       mp_util_delete_popup_handle();
+
+       int nVideoItemIndex = (int) pUserData;
+
+       VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+       if (nVideoItemIndex < 0
+               || nVideoItemIndex >=
+               mp_util_svc_get_video_list_size_for_checking_index()) {
+               VideoLogError("[ERR] list item index.");
+               return;
+       }
+
+       char *szFileUrl = mp_util_svc_get_video_url(nVideoItemIndex);
+       if (szFileUrl) {
+               VideoLogInfo("Delete file url : %s", szFileUrl);
+               vp_file_unlink(szFileUrl);
+               free(szFileUrl);
+               szFileUrl = NULL;
+
+               mp_util_svc_remove_item_by_list_index(nVideoItemIndex);
+               __mp_folder_item_view_delete_video_items(nVideoItemIndex);
+
+       }
+}
+
+static void __mp_folder_item_view_respones_cancel_popup_cb(void *pUserData,
+                                                                                                                  Evas_Object *
+                                                                                                                  pObject,
+                                                                                                                  void
+                                                                                                                  *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_util_delete_popup_handle();
+}
+
+static void __mp_folder_item_view_delete_btn_cb(void *pUserData,
+                                                                                               Evas_Object * pObject,
+                                                                                               void *pEventInfo)
+{
+       VideoLogInfo("");
+       mp_option_ctrl_delete_handle();
+
+       int nVideoItemIndex = (int) pUserData;
+       MpListViewAsType type = MP_LIST_VIEW_AS_THUMBNAIL_LIST;
+       mp_util_remove_question_popup(nVideoItemIndex, type,
+                                                                 __mp_folder_item_view_respones_delete_popup_cb,
+                                                                 __mp_folder_item_view_respones_cancel_popup_cb,
+                                                                 __mp_folder_item_view_HW_mouse_back_up_popup_cb,
+                                                                 __mp_folder_item_view_HW_key_back_popup_cb);
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *__mp_folder_item_view_get_icon_of_video_item_cb(void
+                                                                                                                        *pUserData,
+                                                                                                                        Evas_Object *
+                                                                                                                        pObject,
+                                                                                                                        const char
+                                                                                                                        *pPart)
+{
+
+       Evas_Object *pLayout = NULL;
+
+       int nVideoItemIndex = (int) pUserData;
+       if (!pPart || !pObject) {
+               return NULL;
+       }
+       mp_util_svc_destory_video_item_list();
+       mp_util_svc_extract_video_list_from_folder(g_pFolderViewHandle->
+                                                                                          pFolderUrl,
+                                                                                          __mp_folder_item_view_get_sort_type
+                                                                                          (), MP_LIST_VIEW_ALL);
+       if (!strcmp(pPart, "elm.icon.1")) {
+               VideoLogInfo("pPart: elm.icon.1 - thumbnail");
+
+               char *pThumbIconUri =
+                       mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+               Evas_Object *pBg = NULL;
+               char edj_path[1024] = { 0 };
+
+               char *path = app_get_resource_path();
+               snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                                VIDEO_CUSTOM_THEME);
+               free(path);
+               pLayout = elm_layout_add(pObject);
+               elm_layout_file_set(pLayout, edj_path,
+                                                       "listview.thumbnail.layout");
+
+               if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+                       MP_FREE_STRING(pThumbIconUri);
+               }
+
+               pBg =
+                       mp_util_create_preload_image(pLayout, pThumbIconUri,
+                                                                                VIDEO_ICON_WIDTH);
+               elm_layout_content_set(pLayout, "elm.thumbnail.icon", pBg);
+
+               if (pBg)
+                       evas_object_show(pBg);
+
+               MP_FREE_STRING(pThumbIconUri);
+
+               if (!mp_util_create_video_sub_icon(pLayout, nVideoItemIndex)) {
+                       VideoLogWarning("Local File or Create sub icon is failed.",
+                                                       nVideoItemIndex);
+               }
+
+               if (pLayout) {
+                       evas_object_show(pLayout);
+               }
+
+               return pLayout;
+       } else if (!strcmp(pPart, "elm.swallow.icon")) {
+               char *pThumbIconUri =
+                       mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+               Evas_Object *thumb = NULL;
+               int nWidth = 0;
+               int nHeight = 0;
+
+               thumb = elm_image_add(pObject);
+               elm_image_preload_disabled_set(thumb, EINA_FALSE);
+               elm_image_smooth_set(thumb, EINA_FALSE);
+               elm_image_prescale_set(thumb, 50 * MP_SCALE);
+               elm_image_file_set(thumb, pThumbIconUri, NULL);
+               elm_image_object_size_get(thumb, &nWidth, &nHeight);
+
+               if (nWidth > nHeight) {
+                       elm_image_aspect_fixed_set(thumb, EINA_FALSE);
+               }
+               if (thumb)
+                       evas_object_show(thumb);
+
+               MP_FREE_STRING(pThumbIconUri);
+
+               return thumb;
+       } else if (!strcmp(pPart, "elm.progressbar.icon")) {
+               return NULL;
+       }
+
+       MP_DEL_OBJ(pLayout);
+
+       return NULL;
+}
+
+// Genlist item callback.
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_folder_item_view_warning_popup_cb(void *pUserData,
+                                                                                                  Evas_Object * pObject,
+                                                                                                  void *pEventInfo)
+{
+       if (!pUserData) {
+               VideoLogInfo("No exist pUserData");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       mp_util_delete_popup_handle();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_folder_item_view_select_video_item_cb(void *pUserData,
+                                                                                                          Evas_Object *
+                                                                                                          pObject,
+                                                                                                          void *pEventInfo)
+{
+       if (!pObject) {
+               VideoLogError("[ERR]No have pUserData");
+               return;
+       }
+       Evas_Object *pPopup = evas_object_data_get(pObject, "popup");   // Get popup
+       if (pPopup) {
+               VideoLogError("long press is called");
+               return;                                 // If popup exists, do nothing
+       }
+
+       if (!mp_util_call_off()) {
+               mp_util_ticker_toast_popup
+                       (VIDEOS_NOTIPOP_MSG_UNABLE_TO_PLAY_VIDEO_DURING_CALL, false,
+                        false);
+               return;
+       }
+
+       if (!mp_launch_video_allow_check()) {
+               VideoLogWarning("nVideoItemIndex < 0 ===>>> RETURN");
+               return;
+       }
+
+       int nVideoItemIndex = (int) pUserData;
+       int nVideoListSize = g_pFolderViewHandle->currentItemCount;
+
+       VideoLogDebug("nVideoItemIndex = %d--%d", nVideoItemIndex,
+                                 nVideoListSize);
+
+       if (nVideoItemIndex < 0 || nVideoItemIndex >= nVideoListSize) {
+               VideoLogError("nVideoItemIndex < 0 ===>>> RETURN");
+               return;
+       }
+
+       g_pFolderViewHandle->nPlayVideoIndex = nVideoItemIndex;
+
+       char *szVideoUrl = mp_util_svc_get_video_url(nVideoItemIndex);
+
+       if (szVideoUrl) {
+               if (!mp_util_check_local_file_exist(szVideoUrl)) {
+                       mp_util_notify_popup(NULL, VIDEOS_COMMON_HEADER_ERROR,
+                                                                VIDEOS_NOTIPOP_MSG_FILE_NOT_EXIST,
+                                                                __mp_folder_item_view_warning_popup_cb);
+                       MP_FREE_STRING(szVideoUrl);
+                       return;
+               }
+               mp_launch_video_play(szVideoUrl, MP_PLAYER_TYPE_VIDEO, NULL);
+       } else {
+               VideoLogInfo("[Err] Fail to get video uri from media service.");
+               return;
+       }
+
+       MP_FREE_STRING(szVideoUrl);
+}
+
+/**
+ *
+ * @param nIndexGenlist
+ */
+static void mp_folder_view_cancel_thumbnail_update(int nIndexGenlist)
+{
+       if (!g_pFolderViewWidget) {
+               VideoLogError("");
+               return;
+       }
+       bool bLandscape = mp_rotate_ctrl_check_landspace();
+       int nVideoItemIndex = 0;
+       int nItemCount = VP_GENLIST_THUMB_PORTRAIT_COUNT;
+
+       if (bLandscape) {
+               nItemCount = VP_GENLIST_THUMB_LANDSPACE_COUNT;
+       }
+
+       nVideoItemIndex = nIndexGenlist * nItemCount;
+       int nVideoListSize = g_pFolderViewHandle->currentItemCount;
+       VideoLogInfo("realize is %d--%d--%d", nItemCount, nVideoItemIndex,
+                                nVideoListSize);
+
+       int nIndex = 0;
+       for (; (nIndex < nItemCount) && (nVideoItemIndex < nVideoListSize);
+                nIndex++) {
+               mp_util_svc_cancel_thumbnail_update(nVideoItemIndex);
+               nVideoItemIndex++;
+       }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_folder_item_view_video_item_del_cb(void *data,
+                                                                                                       Evas_Object * obj,
+                                                                                                       void *event_info)
+{
+       if (!g_pFolderViewWidget || !event_info
+               || !g_pFolderViewWidget->pVideolistItemList) {
+               VideoLogError("g_pMainViewWidge is NULL");
+               return;
+       }
+
+       int nIndexGenlist = 0;
+       Elm_Object_Item *pCurrentItem = (Elm_Object_Item *) event_info;
+       Eina_List *pCurList = NULL;
+       Elm_Object_Item *pTmpVideoItem = NULL;
+       EINA_LIST_FOREACH(g_pFolderViewWidget->pVideolistItemList, pCurList,
+                                         pTmpVideoItem) {
+               if (pCurrentItem == pTmpVideoItem) {
+                       nIndexGenlist = (int) elm_object_item_data_get(pCurrentItem);
+                       mp_folder_view_cancel_thumbnail_update(nIndexGenlist);
+                       pTmpVideoItem = NULL;
+                       pCurList->data = NULL;
+                       break;
+               }
+       }
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+/**
+ *
+ * @param pObjVideosList
+ * @param nGenItemIndex
+ */
+static void __mp_folder_item_view_append_gengrid_items(Evas_Object *
+                                                                                                          pObjVideosList,
+                                                                                                          int nGenItemIndex)
+{
+       if (!g_pFolderViewHandle) {
+               VideoLogInfo("invalid handle");
+               return;
+       }
+       MP_DEL_GRID_ITC(g_pFolderViewHandle->pGenGridItc_l);
+       g_pFolderViewHandle->pGenGridItc_l = elm_gengrid_item_class_new();
+       g_pFolderViewHandle->pGenGridItc_l->item_style = "video/album_grid";
+       g_pFolderViewHandle->pGenGridItc_l->func.text_get =
+               (void *) __mp_folder_item_view_get_label_of_video_item_cb;
+       g_pFolderViewHandle->pGenGridItc_l->func.content_get =
+               (void *) __mp_folder_item_view_get_icon_of_video_item_cb;
+       g_pFolderViewHandle->pGenGridItc_l->func.state_get = NULL;
+       g_pFolderViewHandle->pGenGridItc_l->func.del = NULL;
+
+       int nCount =
+               (mp_rotate_ctrl_check_landspace() ? VP_GENLIST_THUMB_LANDSPACE_COUNT
+                : VP_GENLIST_THUMB_PORTRAIT_COUNT);
+       int nIndex = nGenItemIndex * nCount;
+       int nMaxIndex = nIndex + nCount;
+       int nVideoListSize = g_pFolderViewHandle->currentItemCount;
+       Elm_Object_Item *gridItem = NULL;
+       for (; (nIndex < nMaxIndex) && (nIndex < nVideoListSize); nIndex++) {
+               gridItem =
+                       elm_gengrid_item_append(pObjVideosList,
+                                                                       g_pFolderViewHandle->pGenGridItc_l,
+                                                                       (void *) nIndex,
+                                                                       __mp_folder_item_view_select_video_item_cb,
+                                                                       (void *) nIndex);
+               elm_gengrid_item_select_mode_set(gridItem,
+                                                                                ELM_OBJECT_SELECT_MODE_ALWAYS);
+               elm_object_item_data_set(gridItem, (void *) nIndex);
+       }
+}
+
+/**
+ *
+ * @param parent
+ * @param nWidth
+ * @param nHeight
+ * @return
+ */
+static Evas_Object *__mp_folder_item_view_create_gengrid(Evas_Object *
+                                                                                                                parent,
+                                                                                                                int nWidth,
+                                                                                                                int nHeight)
+{
+       Evas_Object *pGengrid;
+       pGengrid = elm_gengrid_add(parent);
+       if (!pGengrid) {
+               VideoLogError("pVideoGrid is not existed.");
+               return NULL;
+       }
+       evas_object_size_hint_weight_set(pGengrid, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pGengrid, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       elm_gengrid_item_size_set(pGengrid, nWidth, nHeight);
+       elm_gengrid_align_set(pGengrid, 0.0, 0.0);
+       elm_gengrid_horizontal_set(pGengrid, EINA_TRUE);
+
+       return pGengrid;
+}
+
+/**
+ *
+ * @param height
+ * @param width
+ */
+static void mp_item_of_folder_view_get_icon_dimensions(int *height,
+                                                                                                          int *width)
+{
+       int winHeight = 0;
+       int winWidth = 0;
+       elm_win_screen_size_get(mp_util_get_main_window_handle(), NULL, NULL,
+                                                       &winWidth, &winHeight);
+
+       bool bLandscape =
+               mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+                                                                                         mp_util_get_main_window_handle
+                                                                                         ());
+       if (bLandscape) {
+               *width = winHeight / VP_GENLIST_THUMB_LANDSPACE_COUNT;
+       } else {
+               *width = winWidth / VP_GENLIST_THUMB_PORTRAIT_COUNT;
+       }
+       *height = VP_ALBUM_THUMB_ICON_HEIGHT * MP_SCALE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_folder_item_view_get_icon_of_grid_cb(const void
+                                                                                                                         *pUserData,
+                                                                                                                         Evas_Object *
+                                                                                                                         pObject,
+                                                                                                                         const char
+                                                                                                                         *pPart)
+{
+       if (!g_pFolderViewHandle || !pObject) {
+               VideoLogError("g_pMainViewWidgetOfFolderItemList is NULL");
+               return NULL;
+       }
+
+       int nGenItemIndex = (int) pUserData;
+       int nHeight = 0;
+       int nWidth = 0;
+       mp_item_of_folder_view_get_icon_dimensions(&nHeight, &nWidth);
+
+       Evas_Object *pGengrid =
+               __mp_folder_item_view_create_gengrid(pObject, nWidth, nHeight);
+       __mp_folder_item_view_append_gengrid_items(pGengrid, nGenItemIndex);
+
+       return pGengrid;
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+static int mp_folder_item_view_thumbnail_to_genlist_index(int
+                                                                                                                 nVideoItemIndex)
+{
+       if (nVideoItemIndex < 0) {
+               VideoLogDebug("invalid nVideoItemIndex");
+               return 0;
+       }
+       int nItemCount = VP_GENLIST_THUMB_PORTRAIT_COUNT;
+       int nGenlistIndex = 0;
+       if (g_pFolderViewHandle->bLandscape) {
+               nItemCount = VP_GENLIST_THUMB_LANDSPACE_COUNT;
+       }
+       nGenlistIndex = nVideoItemIndex / nItemCount;
+       return nGenlistIndex;
+}
+
+/**
+ *
+ * @param pGenlist
+ */
+static void __mp_folder_item_view_append_grid_layout(void *pGenlist)
+{
+       if (!pGenlist || !g_pFolderViewHandle) {
+               VideoLogError("error handle.");
+               return;
+       }
+       int nIndex = 0;
+       int nVideoListSize = g_pFolderViewHandle->currentItemCount;
+       if (nVideoListSize <= 0) {
+               VideoLogWarning("nVideoListSize = %d", nVideoListSize);
+               return;
+       }
+
+       MP_DEL_ITC(g_pFolderViewHandle->pGenGridItc);
+       g_pFolderViewHandle->pGenGridItc = elm_genlist_item_class_new();
+       g_pFolderViewHandle->pGenGridItc->item_style = "video/1icon.thumbnail";
+       g_pFolderViewHandle->pGenGridItc->func.text_get = NULL;
+       g_pFolderViewHandle->pGenGridItc->func.content_get =
+               (void *) __mp_folder_item_view_get_icon_of_grid_cb;
+       g_pFolderViewHandle->pGenGridItc->func.state_get = NULL;
+       g_pFolderViewHandle->pGenGridItc->func.del = NULL;
+       g_pFolderViewHandle->pGenGridItc->decorate_item_style = NULL;
+
+       MP_DEL_ITC(g_pFolderViewHandle->pGenGridLandscapeItc);
+       g_pFolderViewHandle->pGenGridLandscapeItc =
+               elm_genlist_item_class_new();
+       g_pFolderViewHandle->pGenGridLandscapeItc->item_style =
+               "video/1icon.thumbnail.landscape";
+       g_pFolderViewHandle->pGenGridLandscapeItc->func.text_get = NULL;
+       g_pFolderViewHandle->pGenGridLandscapeItc->func.content_get =
+               (void *) __mp_folder_item_view_get_icon_of_grid_cb;
+       g_pFolderViewHandle->pGenGridLandscapeItc->func.state_get = NULL;
+       g_pFolderViewHandle->pGenGridLandscapeItc->func.del = NULL;
+       g_pFolderViewHandle->pGenGridLandscapeItc->decorate_item_style = NULL;
+
+       int nGenlistRow = 0;
+       nGenlistRow =
+               mp_folder_item_view_thumbnail_to_genlist_index(nVideoListSize - 1);
+       Elm_Object_Item *pTmpVideoGenlistItem = NULL;
+
+       if (mp_rotate_ctrl_check_landspace()) {
+               for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+                       pTmpVideoGenlistItem =
+                               elm_genlist_item_append(pGenlist,
+                                                                               g_pFolderViewHandle->pGenGridItc,
+                                                                               (void *) nIndex, NULL,
+                                                                               ELM_GENLIST_ITEM_NONE, NULL, NULL);
+                       g_pFolderViewWidget->pVideolistItemList =
+                               eina_list_append(g_pFolderViewWidget->pVideolistItemList,
+                                                                pTmpVideoGenlistItem);
+                       elm_object_item_del_cb_set(pTmpVideoGenlistItem,
+                                                                          __mp_folder_item_view_video_item_del_cb);
+               }
+       } else {
+               for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+                       pTmpVideoGenlistItem =
+                               elm_genlist_item_append(pGenlist,
+                                                                               g_pFolderViewHandle->
+                                                                               pGenGridLandscapeItc,
+                                                                               (void *) nIndex, NULL,
+                                                                               ELM_GENLIST_ITEM_NONE, NULL, NULL);
+                       g_pFolderViewWidget->pVideolistItemList =
+                               eina_list_append(g_pFolderViewWidget->pVideolistItemList,
+                                                                pTmpVideoGenlistItem);
+                       elm_object_item_del_cb_set(pTmpVideoGenlistItem,
+                                                                          __mp_folder_item_view_video_item_del_cb);
+               }
+       }
+}
+#endif
+
+/**
+ *
+ */
+static void __mp_folder_item_view_hide_genlist(void)
+{
+       if (!g_pFolderViewWidget || !g_pFolderViewHandle) {
+               VideoLogError("g_pSearchViewWidget == NULL");
+               return;
+       }
+
+       elm_object_part_content_unset(g_pFolderViewWidget->
+                                                                 pFolderViewBaselayout,
+                                                                 SWALLOW_LISTVIEW_CONTENT);
+       if (g_pFolderViewHandle->pVideosGenlist) {
+               evas_object_hide(g_pFolderViewHandle->pVideosGenlist);
+       }
+}
+
+/**
+ *
+ */
+static void __mp_folder_item_view_hide_no_layout(void)
+{
+       if (!g_pFolderViewWidget || !g_pFolderViewHandle) {
+               VideoLogError("g_pSearchViewWidget == NULL");
+               return;
+       }
+       if (g_pFolderViewWidget->pNocontentsLayout) {
+               elm_object_part_content_unset(g_pFolderViewWidget->
+                                                                         pFolderViewBaselayout,
+                                                                         SWALLOW_LISTVIEW_CONTENT);
+               MP_DEL_OBJ(g_pFolderViewWidget->pNocontentsLayout);
+       }
+}
+
+/**
+ *
+ * @return
+ */
+static Evas_Object *__mp_folder_item_view_add_no_contents_layout()
+{
+       if (!g_pFolderViewWidget) {
+               VideoLogError("g_pFolderViewWidget is not existed.");
+               return NULL;
+       }
+       VideoLogInfo("");
+       MP_DEL_OBJ(g_pFolderViewWidget->pNocontentsLayout);
+       g_pFolderViewWidget->pNocontentsLayout =
+               mp_create_nocontent_layout(g_pFolderViewWidget->
+                                                                  pFolderViewBaselayout,
+                                                                  VIDEOS_NOCONTENT_MSG_NO_VIDEOS_IDS,
+                                                                  NULL);
+       return g_pFolderViewWidget->pNocontentsLayout;
+}
+
+/**
+ *
+ * @param nItemSortType
+ * @param eUpdateType
+ * @param pVideosGenlist
+ * @return
+ */
+static bool __mp_folder_item_view_arrange_video_list(int nItemSortType,
+                                                                                                        MpListUpdateType
+                                                                                                        eUpdateType,
+                                                                                                        void *pVideosGenlist)
+{
+       if (!g_pFolderViewWidget || !g_pFolderViewHandle) {
+               VideoLogError("No exist g_pSearchViewWidget.");
+               return false;
+       }
+
+       int nVideoListSize = 0;
+       bool bUnset = FALSE;
+       if (eUpdateType == LIST_UPDATE_TYPE_ALL
+               || eUpdateType == LIST_UPDATE_TYPE_DATA) {
+               mp_util_svc_destory_video_item_list();
+               if (g_pFolderViewHandle->pFolderUrl) {
+                       mp_util_svc_extract_video_list_from_folder
+                               (g_pFolderViewHandle->pFolderUrl, nItemSortType,
+                                MP_LIST_VIEW_ALL);
+               }
+       }
+       nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       g_pFolderViewHandle->currentItemCount = nVideoListSize;
+
+       elm_genlist_clear(pVideosGenlist);
+
+       if (nVideoListSize > 0) {
+               __mp_folder_item_view_free_video_genlistItem();
+               if (g_pFolderViewWidget->pNocontentsLayout) {
+                       __mp_folder_item_view_hide_no_layout();
+                       bUnset = TRUE;
+               }
+               __mp_folder_item_view_append_grid_layout(pVideosGenlist);
+               if (bUnset) {
+                       elm_object_part_content_set(g_pFolderViewWidget->
+                                                                               pFolderViewBaselayout,
+                                                                               SWALLOW_LISTVIEW_CONTENT,
+                                                                               pVideosGenlist);
+                       evas_object_show(pVideosGenlist);
+               }
+       } else {
+               __mp_folder_item_view_hide_genlist();
+               __mp_folder_item_view_add_no_contents_layout();
+               elm_object_part_content_set(g_pFolderViewWidget->
+                                                                       pFolderViewBaselayout,
+                                                                       SWALLOW_LISTVIEW_CONTENT,
+                                                                       g_pFolderViewWidget->
+                                                                       pNocontentsLayout);
+               evas_object_show(g_pFolderViewWidget->pNocontentsLayout);
+       }
+
+       return true;
+}
+
+/**
+ *
+ */
+void __mp_folder_item_view_show_search_view(void)
+{
+       VideoLogInfo("");
+
+       mp_ft_ctrl_hide_more_popup();
+
+       char *szFolderPath = NULL;
+       szFolderPath =
+               mp_util_svc_get_video_folder_url(g_pFolderViewHandle->
+                                                                                nFolder_index);
+       mp_search_view_push((void *) mp_mgr_get_library_naviframe(),
+                                               szFolderPath);
+       MP_FREE_STRING(szFolderPath);
+
+       mp_search_view_register_update_list_func
+               (__mp_folder_item_view_result_user_cb,
+                __mp_folder_item_view_result_view_update_cb);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void __mp_folder_item_view_search_item_cb(void *pUserData,
+                                                                                 Evas_Object * pObject,
+                                                                                 void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       __mp_folder_item_view_show_search_view();
+}
+
+// Naviframe title button
+/**
+ *
+ * @param pParent
+ * @param pFunc
+ * @return
+ */
+Evas_Object *__mp_folder_item_view_create_title_btn(Evas_Object * pParent,
+                                                                                                       Evas_Smart_Cb pFunc)
+{
+       VideoLogInfo("");
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_IMAGE_NAME_EDJ);
+       free(path);
+       Evas_Object *search_ic = elm_image_add(pParent);
+       elm_image_file_set(search_ic, edj_path, VIDEO_LIST_VIEW_ICON_SEARCH);
+       elm_image_resizable_set(search_ic, EINA_TRUE, EINA_TRUE);
+       evas_object_show(search_ic);
+
+       Evas_Object *pTitleBtn = elm_button_add(pParent);
+       elm_object_style_set(pTitleBtn, "naviframe/title_icon");
+       elm_object_part_content_set(pTitleBtn, "icon", search_ic);
+       evas_object_smart_callback_add(pTitleBtn, "clicked", pFunc, NULL);
+
+       return pTitleBtn;
+}
+
+// Smart callback of Genlist.
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_folder_item_view_realize_genlist_item_cb(void *pUserData,
+                                                                                                                 Evas_Object *
+                                                                                                                 pObject,
+                                                                                                                 void *pEventInfo)
+{
+       if (!pEventInfo) {
+               VideoLogError("invalid pEveninfo");
+               return;
+       }
+       if (elm_config_access_get()) {
+               VideoLogWarning("Support TTS.");
+               const Eina_List *org =
+                       elm_object_item_access_order_get(pEventInfo);
+               Evas_Object *content =
+                       elm_object_item_part_content_get(pEventInfo, "elm.icon");
+               if (content && !eina_list_data_find(org, content)) {
+                       Evas_Object *tmp;
+                       Eina_List *l;
+                       Eina_List *items = NULL;
+                       // Duplicate original access order
+                       EINA_LIST_FOREACH((Eina_List *) org, l, tmp)
+                               items = eina_list_append(items, tmp);
+                       Evas_Object *ao = elm_access_object_register(content, pObject);
+                       items = eina_list_append(items, ao);
+                       elm_object_item_access_order_set(pEventInfo, items);
+               }
+       }
+}
+
+/**
+ *
+ * @return
+ */
+static int __mp_folder_item_view_get_sort_type(void)
+{
+
+       int nSortType = MP_MEDIA_SORT_BY_RECENTLY_VIEWED;
+
+       switch (mp_sort_ctrl_get_sort_state()) {
+       case MP_LIST_SORT_BY_RECENTLY_ADDED:
+               nSortType = MP_MEDIA_SORT_BY_RECENTLY_ADDED;
+               break;
+
+       case MP_LIST_SORT_BY_NAME:
+               nSortType = MP_MEDIA_SORT_BY_NAME;
+               break;
+       }
+
+       VideoLogInfo("current sorttype = %d", nSortType);
+
+       return nSortType;
+}
+
+/**
+ *
+ * @param pVideosGenlist
+ */
+static void __mp_folder_item_view_update_video_items(void *pVideosGenlist)
+{
+       if (!pVideosGenlist) {
+               VideoLogInfo
+                       ("[ERR] pVideosGenlist or g_pMainViewWidget are NULL.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       Elm_Object_Item *pNextGenlistItem = NULL;
+       Elm_Object_Item *pCurrGenlistItem =
+               elm_genlist_first_item_get(pVideosGenlist);
+
+       while (pCurrGenlistItem) {
+
+               pNextGenlistItem = elm_genlist_item_next_get(pCurrGenlistItem);
+               elm_genlist_item_update(pCurrGenlistItem);
+               pCurrGenlistItem = pNextGenlistItem;
+       }
+}
+
+/**
+ *
+ */
+static void __mp_folder_item_view_db_result_data_update_cb(void)
+{
+       if (!g_pFolderViewHandle) {
+               VideoLogInfo
+                       ("g_pFolderViewHandle handles of list view are not existed.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       if (!g_pFolderViewHandle->pVideosGenlist) {
+               VideoLogInfo("g_pMainViewHandle->pVideosGenlist is NULL.");
+               return;
+       }
+       if (g_pFolderViewHandle->pFolderUrl) {
+               mp_util_svc_destory_video_item_list();
+               mp_util_svc_extract_video_list_from_folder(g_pFolderViewHandle->
+                                                                                                  pFolderUrl,
+                                                                                                  __mp_folder_item_view_get_sort_type
+                                                                                                  (), MP_LIST_VIEW_ALL);
+       } else {
+               VideoLogError("url is NULL.");
+       }
+
+       __mp_folder_item_view_update_video_items(g_pFolderViewHandle->
+                                                                                        pVideosGenlist);
+}
+
+/**
+ *
+ */
+static void __mp_folder_item_view_result_view_update_cb(void)
+{
+       if (!g_pFolderViewHandle) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return;
+       }
+       VideoLogInfo("");
+       if (g_pFolderViewHandle->pFolderUrl) {
+               mp_util_svc_destory_video_item_list();
+               mp_util_svc_extract_video_list_from_folder(g_pFolderViewHandle->
+                                                                                                  pFolderUrl,
+                                                                                                  mp_sort_ctrl_get_sort_state
+                                                                                                  (), MP_LIST_VIEW_ALL);
+       } else {
+               VideoLogError("url is NULL.");
+       }
+       __mp_folder_item_view_update_video_list(LIST_UPDATE_TYPE_ALL);
+
+       VideoLogInfo("");
+}
+
+/**
+ *
+ * @param eUpdateType
+ */
+static void __mp_folder_item_view_result_user_cb(MpListUpdateType
+                                                                                                eUpdateType)
+{
+       if (!g_pFolderViewHandle) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return;
+       }
+
+       VideoLogInfo("");
+       if (__mp_folder_item_view_update_video_list(eUpdateType)) {
+               Elm_Object_Item *pItem =
+                       elm_genlist_first_item_get(g_pFolderViewHandle->
+                                                                          pVideosGenlist);
+               if (pItem) {
+                       elm_genlist_item_bring_in(pItem, ELM_GENLIST_ITEM_SCROLLTO_IN);
+               }
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_folder_item_view_delete_cb(void *pUserData,
+                                                                                       Evas_Object * pObject,
+                                                                                       void *pEventInfo)
+{
+       if (!g_pFolderViewHandle) {
+               VideoLogError("g_pFolderViewHandle == NULL");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       mp_ft_ctrl_hide_more_popup();
+       char *szFolderPath = NULL;
+       szFolderPath =
+               mp_util_svc_get_video_folder_url(g_pFolderViewHandle->
+                                                                                nFolder_index);
+
+       mp_remove_view_push(g_pFolderViewHandle->pNaviFrameHandle,
+                                               __mp_folder_item_view_result_user_cb,
+                                               __mp_folder_item_view_result_view_update_cb,
+                                               szFolderPath, LIST_TAB_TYPE_PERSONAL);
+       MP_FREE_STRING(szFolderPath);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_folder_item_view_sort_item_cb(void *pUserData,
+                                                                                          Evas_Object * pObject,
+                                                                                          void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_ft_ctrl_hide_more_popup();
+
+       mp_sort_ctrl_show(__mp_folder_item_view_db_result_data_update_cb);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void __mp_folder_item_view_auto_play_cb(void *pUserData,
+                                                                               Evas_Object * pObject,
+                                                                               void *pEventInfo)
+{
+
+       mp_ft_ctrl_hide_more_popup();
+
+       MpFooterLibraryMainListTabType footerTabType =
+               (MpFooterLibraryMainListTabType) pUserData;
+       if (FOOTER_TAB_TYPE_PERSONAL == footerTabType) {
+               mp_auto_play_ctrl_show();
+       } else {
+               VideoLogError("invalid footer type");
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void __mp_folder_item_view_rename_cb(void *pUserData,
+                                                                        Evas_Object * pObject,
+                                                                        void *pEventInfo)
+{
+       if (!g_pFolderViewHandle) {
+               VideoLogError("g_pFolderViewHandle == NULL");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       mp_ft_ctrl_hide_more_popup();
+       char *szFolderPath = NULL;
+       szFolderPath =
+               mp_util_svc_get_video_folder_url(g_pFolderViewHandle->
+                                                                                nFolder_index);
+       mp_select_view_push((void *) mp_mgr_get_library_naviframe(),
+                                               g_pFolderViewHandle->pNaviFrameItem,
+                                               __mp_folder_item_view_result_user_cb, szFolderPath,
+                                               SELECT_TYPE_RENAME, LIST_TAB_TYPE_PERSONAL);
+       MP_FREE_STRING(szFolderPath);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_folder_item_view_download_cb(void *pUserData,
+                                                                                         Evas_Object * pObject,
+                                                                                         void *pEventInfo)
+{
+       if (!g_pFolderViewHandle) {
+               VideoLogError("g_pFolderViewHandle == NULL");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       mp_ft_ctrl_hide_more_popup();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_folder_item_view_share_cb(void *pUserData,
+                                                                                  Evas_Object * pObject,
+                                                                                  void *pEventInfo)
+{
+       if (!g_pFolderViewHandle) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return;
+       }
+
+       mp_ft_ctrl_hide_more_popup();
+
+       char *szFolderPath = NULL;
+       szFolderPath =
+               mp_util_svc_get_video_folder_url(g_pFolderViewHandle->
+                                                                                nFolder_index);
+
+       mp_share_view_push(g_pFolderViewHandle->pNaviFrameHandle,
+                                          __mp_folder_item_view_result_view_update_cb,
+                                          szFolderPath, LIST_TAB_TYPE_PERSONAL);
+       MP_FREE_STRING(szFolderPath);
+}
+
+#ifdef ENABLE_PRIVATE_MODE
+static void __mp_folder_item_view_add_personal_cb(void *pUserData,
+                                                                                                 Evas_Object * pObject,
+                                                                                                 void *pEventInfo)
+{
+       if (!g_pFolderViewHandle) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return;
+       }
+
+       mp_ft_ctrl_hide_more_popup();
+       char *szFolderPath = NULL;
+       szFolderPath =
+               mp_util_svc_get_video_folder_url(g_pFolderViewHandle->
+                                                                                nFolder_index);
+
+       mp_personal_view_push(g_pFolderViewHandle->pNaviFrameHandle,
+                                                 __mp_folder_item_view_result_user_cb,
+                                                 szFolderPath, 0);
+       MP_FREE_STRING(szFolderPath);
+}
+
+static void __mp_folder_item_view_remove_personal_cb(void *pUserData,
+                                                                                                        Evas_Object * pObject,
+                                                                                                        void *pEventInfo)
+{
+       if (!g_pFolderViewHandle) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return;
+       }
+
+       mp_ft_ctrl_hide_more_popup();
+       char *szFolderPath = NULL;
+       szFolderPath =
+               mp_util_svc_get_video_folder_url(g_pFolderViewHandle->
+                                                                                nFolder_index);
+       mp_personal_view_push(g_pFolderViewHandle->pNaviFrameHandle,
+                                                 __mp_folder_item_view_result_user_cb,
+                                                 szFolderPath, 1);
+       MP_FREE_STRING(szFolderPath);
+}
+#endif
+#ifdef ENABLE_LONGPRESS
+static void __mp_folder_item_view_share_via_cb(void *pUserData,
+                                                                                          Evas_Object * pObject,
+                                                                                          void *pEventInfo)
+{
+       mp_option_ctrl_delete_handle();
+
+       if (!g_pFolderViewHandle) {
+               VideoLogError("g_pFolderViewHandle of list view are not existed.");
+               return;
+       }
+
+       int videoItemIndex = (int) pUserData;
+       char *pVideo_url = mp_util_svc_get_video_url(videoItemIndex);
+#ifdef ENABLE_DRM_FEATURE
+       bool bDRMLock = FALSE;
+       mp_util_check_drm_lock((const char *) pVideo_url, &bDRMLock);
+       if (bDRMLock) {
+               MP_FREE_STRING(pVideo_url);
+               mp_util_notify_popup(NULL, VIDEOS_COMMON_HEADER_ERROR,
+                                                        VIDEOS_NOTIPOP_MSG_UNABLE_TO_SHARE_DRM_FILE,
+                                                        __mp_folder_item_view_warning_popup_cb);
+               return;
+       }
+#endif
+       mp_external_service_share_panel(pVideo_url);
+       MP_FREE_STRING(pVideo_url);
+       //to do share
+}
+#endif
+
+/**
+ *
+ */
+void mp_folder_item_view_result_user_cb(void)
+{
+       VideoLogInfo("");
+       __mp_folder_item_view_update_video_list(LIST_UPDATE_TYPE_ALL);
+}
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_folder_item_view_add_to_home_cb(void *pUserData,
+                                                                                                Evas_Object * pObject,
+                                                                                                void *pEventInfo)
+{
+       mp_option_ctrl_delete_handle();
+
+       if (!g_pFolderViewHandle) {
+               VideoLogInfo("g_pFolderViewHandle of list view are not existed.");
+               return;
+       }
+
+       int nVideoItemIndex = (int) pUserData;
+
+       VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+
+       char *pVideo_id = mp_util_svc_get_video_id_by_index(nVideoItemIndex);
+       char *pVideo_thumbnail =
+               mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+       if (pVideo_id) {
+               {
+                       mp_util_status_bar_noti_popup_show(MP_COM_OPT_UNABLE_ADDED);
+               }
+       } else {
+               VideoLogError("[ERR] No exist file uri.");
+       }
+       MP_FREE_STRING(pVideo_id);
+       MP_FREE_STRING(pVideo_thumbnail);
+
+       //to do share
+}
+#endif
+
+#if 0                                                  //Unused function
+bool __mp_folder_item_view_get_detail_info(int nVideoItemIndex,
+                                                                                  stDetailInfo ** pDetailInfo)
+{
+       char *szFilePath = NULL;
+       char *szVideoTitle = NULL;
+
+       char szTmpStr[FORMAT_LEN_MAX] = { 0, };
+       char szTmpFileDate[FORMAT_LEN_MAX] = { 0, };
+       char szTmpFileExtension[FORMAT_LEN_MAX] = { 0, };
+       char szTmpFileSize[FORMAT_LEN_MAX] = { 0, };
+       char *szTmpModifiedTime = NULL;
+
+       int nWidth = 0;
+       int nHeight = 0;
+       stDetailInfo *pDetail = NULL;
+
+       szFilePath = mp_util_svc_get_video_url(nVideoItemIndex);
+       szVideoTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+
+       mp_info_ctrl_get_file_info(szFilePath, szTmpFileDate,
+                                                          FORMAT_LEN_MAX - 1, szTmpFileExtension,
+                                                          FORMAT_LEN_MAX - 1, szTmpFileSize,
+                                                          FORMAT_LEN_MAX - 1);
+
+       nWidth = mp_util_svc_get_video_item_width(nVideoItemIndex);
+       nHeight = mp_util_svc_get_video_item_height(nVideoItemIndex);
+       szTmpModifiedTime =
+               mp_util_svc_get_video_item_modified_time(nVideoItemIndex);
+
+       pDetail = calloc(1, sizeof(stDetailInfo));
+       if (!pDetail) {
+               MP_FREE_STRING(szFilePath);
+               MP_FREE_STRING(szVideoTitle);
+               VideoLogError("pDetailPopup alloc fail");
+               return FALSE;
+       }
+
+       pDetail->szTitle = g_strdup(szVideoTitle);
+       pDetail->szLocation = vp_util_convert_file_location(szFilePath);
+       MP_FREE_STRING(szFilePath);
+
+       snprintf(szTmpStr, FORMAT_LEN_MAX - 1, "%s", szTmpFileExtension);
+       pDetail->szFormat = g_strdup(szTmpStr);
+       memset(szTmpStr, 0, FORMAT_LEN_MAX);
+
+       snprintf(szTmpStr, FORMAT_LEN_MAX - 1, "%s", szTmpFileSize);
+       pDetail->szSize = g_strdup(szTmpStr);
+       memset(szTmpStr, 0, FORMAT_LEN_MAX);
+
+       pDetail->szLastModifiedTime = g_strdup(szTmpModifiedTime);
+       MP_FREE_STRING(szTmpModifiedTime);
+
+       snprintf(szTmpStr, FORMAT_LEN_MAX - 1, "%d X %d", nWidth, nHeight);
+       pDetail->szResolution = g_strdup(szTmpStr);
+       memset(szTmpStr, 0, FORMAT_LEN_MAX);
+
+       *pDetailInfo = pDetail;
+       return TRUE;
+}
+#endif
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_folder_item_view_normal_result_popup()
+{
+       if (!g_pFolderViewHandle) {
+               VideoLogError("Invalid list and object");
+               return;
+       }
+       evas_object_data_set(g_pFolderViewHandle->pVideosGenlist, "popup",
+                                                NULL);
+       elm_object_scroll_freeze_pop(g_pFolderViewHandle->pVideosGenlist);
+}
+
+static void __mp_folder_item_view_long_press_item_cb(void *data,
+                                                                                                        Evas_Object * obj,
+                                                                                                        void *pEventInfo)
+{
+       if (!g_pFolderViewHandle || !pEventInfo) {
+               VideoLogError("Invalid list");
+               return;
+       }
+
+       Elm_Object_Item *long_item = (Elm_Object_Item *) pEventInfo;
+
+       int nIndexGenlist = elm_genlist_item_index_get(long_item);
+       VideoLogDebug("nIndexGenlist : %d", nIndexGenlist);
+
+       if (nIndexGenlist < 0
+               || nIndexGenlist >=
+               mp_util_svc_get_video_list_size_for_checking_index()) {
+               VideoSecureLogError("nVideoItemIndex is invalid");
+               return;
+       }
+       st_RegisteOptionCbFunc *pRegisteCbFunc =
+               (st_RegisteOptionCbFunc *) calloc(1,
+                                                                                 sizeof(st_RegisteOptionCbFunc));
+       if (pRegisteCbFunc) {
+               pRegisteCbFunc->ShareViaItemCb =
+                       (void *) __mp_folder_item_view_share_via_cb;
+               pRegisteCbFunc->AddToHomeItemCb =
+                       (void *) __mp_folder_item_view_add_to_home_cb;
+               pRegisteCbFunc->DeleteItemCb =
+                       (void *) __mp_folder_item_view_delete_btn_cb;
+       }
+
+       char *title = mp_util_svc_get_video_title(nIndexGenlist);
+       mp_option_ctrl_show(g_pFolderViewHandle->pNaviFrameHandle,
+                                               (const char *) title, nIndexGenlist,
+                                               pRegisteCbFunc,
+                                               __mp_folder_item_view_normal_result_popup, NULL,
+                                               0);
+       if (mp_option_ctrl_get_handle()) {
+               evas_object_data_set(g_pFolderViewHandle->pVideosGenlist, "popup",
+                                                        mp_option_ctrl_get_handle());
+               elm_object_scroll_freeze_push(g_pFolderViewHandle->pVideosGenlist);
+       }
+       MP_FREE_STRING(pRegisteCbFunc);
+       MP_FREE_STRING(title);
+
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void __mp_folder_item_view_language_changed(void *pUserData,
+                                                                                       Evas_Object * pObject,
+                                                                                       void *pEventInfo)
+{
+       VideoLogInfo("");
+       if (!pObject) {
+               VideoSecureLogError("error genlist handle");
+       }
+       elm_genlist_realized_items_update(pObject);
+}
+
+
+/*internal*/
+/**
+ *
+ */
+static void __mp_folder_item_view_del_genlist_cb(void)
+{
+       if (!g_pFolderViewHandle || !g_pFolderViewHandle->pVideosGenlist) {
+               VideoSecureLogError
+                       ("g_pFolderViewHandle or pVideosGenlist is NULL");
+               return;
+       }
+       VideoLogInfo("");
+       evas_object_smart_callback_del(g_pFolderViewHandle->pVideosGenlist,
+                                                                  "language,changed",
+                                                                  __mp_folder_item_view_language_changed);
+       evas_object_smart_callback_del(g_pFolderViewHandle->pVideosGenlist,
+                                                                  "realized",
+                                                                  __mp_folder_item_view_realize_genlist_item_cb);
+#ifdef ENABLE_LONGPRESS
+       evas_object_smart_callback_del(g_pFolderViewHandle->pVideosGenlist,
+                                                                  "longpressed",
+                                                                  __mp_folder_item_view_long_press_item_cb);
+#endif
+}
+
+/*internal*/
+/**
+ *
+ * @param pVideosGenlist
+ */
+static void __mp_folder_item_view_add_genlist_cb(void *pVideosGenlist)
+{
+       if (!g_pFolderViewHandle || !g_pFolderViewHandle->pVideosGenlist) {
+               VideoSecureLogError("g_pFolderViewHandle is NULL");
+               return;
+       }
+       VideoLogInfo("");
+
+       evas_object_smart_callback_add(g_pFolderViewHandle->pVideosGenlist,
+                                                                  "language,changed",
+                                                                  __mp_folder_item_view_language_changed,
+                                                                  NULL);
+       evas_object_smart_callback_add(g_pFolderViewHandle->pVideosGenlist,
+                                                                  "realized",
+                                                                  __mp_folder_item_view_realize_genlist_item_cb,
+                                                                  NULL);
+#ifdef ENABLE_LONGPRESS
+       evas_object_smart_callback_add(g_pFolderViewHandle->pVideosGenlist,
+                                                                  "longpressed",
+                                                                  __mp_folder_item_view_long_press_item_cb,
+                                                                  NULL);
+#endif
+}
+
+/**
+ *
+ * @param eUpdateType
+ * @return
+ */
+static bool __mp_folder_item_view_update_video_list(MpListUpdateType
+                                                                                                       eUpdateType)
+{
+       if (!g_pFolderViewHandle || !g_pFolderViewWidget
+               || !g_pFolderViewHandle->pVideosGenlist) {
+               VideoLogError("handles of list view are not existed.");
+               return false;
+       }
+
+       __mp_folder_item_view_del_genlist_cb();
+
+       bool bRet =
+               __mp_folder_item_view_arrange_video_list
+               (__mp_folder_item_view_get_sort_type(), eUpdateType,
+                g_pFolderViewHandle->pVideosGenlist);
+       int nVideoListSize = 0;
+       if (bRet) {
+               nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+               if (nVideoListSize > 0) {
+                       VideoLogInfo("listsize:%d", nVideoListSize);
+                       g_pFolderViewHandle->currentItemCount = nVideoListSize;
+                       __mp_folder_item_view_add_genlist_cb(g_pFolderViewHandle->
+                                                                                                pVideosGenlist);
+               }
+       }
+
+       return bRet;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __mp_folder_item_view_db_changed_cb(void *pUserData)
+{
+       if (!g_pFolderViewHandle || !g_pFolderViewWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       if (g_pFolderViewHandle->pFolderUrl) {
+               VideoSecureLogInfo("szFolderPath : %s",
+                                                  g_pFolderViewHandle->pFolderUrl);
+               if (vp_file_exists(g_pFolderViewHandle->pFolderUrl)) {
+                       //update video-list
+                       VideoLogInfo("update folder item");
+                       __mp_folder_item_view_result_user_cb(LIST_UPDATE_TYPE_ALL);
+               } else {
+                       VideoLogInfo("pop folder item");
+                       elm_naviframe_item_pop(g_pFolderViewHandle->pNaviFrameHandle);
+               }
+       }
+}
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_folder_item_view_delete_video_items(int nVideoItemIndex)
+{
+       int nVideoListSize = g_pFolderViewHandle->currentItemCount;
+
+       if (nVideoListSize == 0) {
+               __mp_folder_item_view_update_video_list(LIST_UPDATE_TYPE_ALL);
+               return;
+       }
+
+       if (!g_pFolderViewHandle || !g_pFolderViewWidget
+               || !g_pFolderViewWidget->pVideolistItemList) {
+               VideoLogWarning("[WARNING] g_pFolderViewWidget is not existed.");
+               return;
+       }
+
+       Elm_Object_Item *pTmpVideoGenlistItem =
+               (Elm_Object_Item *) eina_list_nth(g_pFolderViewWidget->
+                                                                                 pVideolistItemList,
+                                                                                 nVideoItemIndex);
+       if (!pTmpVideoGenlistItem) {
+               VideoLogWarning("[WARNING] pVideolistItemList is not existed.");
+               return;
+       }
+
+
+       Elm_Object_Item *pNextGenlistItem = NULL;
+       Elm_Object_Item *pCurrGenlistItem =
+               elm_genlist_item_next_get(pTmpVideoGenlistItem);
+
+       g_pFolderViewWidget->pVideolistItemList =
+               eina_list_remove(g_pFolderViewWidget->pVideolistItemList,
+                                                pTmpVideoGenlistItem);
+       elm_object_item_del(pTmpVideoGenlistItem);
+
+       if (!pCurrGenlistItem) {
+               return;
+       }
+
+       while (pCurrGenlistItem) {
+               pNextGenlistItem = elm_genlist_item_next_get(pCurrGenlistItem);
+               g_pFolderViewWidget->pVideolistItemList =
+                       eina_list_remove(g_pFolderViewWidget->pVideolistItemList,
+                                                        pCurrGenlistItem);
+               elm_object_item_del(pCurrGenlistItem);
+               pCurrGenlistItem = pNextGenlistItem;
+       }
+
+       int nIndex = nVideoItemIndex;
+       for (nIndex = nVideoItemIndex; nIndex < nVideoListSize; nIndex++) {
+               pTmpVideoGenlistItem =
+                       elm_genlist_item_append(g_pFolderViewHandle->pVideosGenlist,
+                                                                       &VideoFolder_Itc, (void *) nIndex,
+                                                                       NULL, ELM_GENLIST_ITEM_NONE,
+                                                                       __mp_folder_item_view_select_video_item_cb,
+                                                                       NULL);
+               g_pFolderViewWidget->pVideolistItemList =
+                       eina_list_append(g_pFolderViewWidget->pVideolistItemList,
+                                                        pTmpVideoGenlistItem);
+
+               elm_object_item_del_cb_set(pTmpVideoGenlistItem,
+                                                                  __mp_folder_item_view_video_item_del_cb);
+       }
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObject
+ * @param pEventInfo
+ */
+static void
+__mp_folder_item_view_base_layout_del_cb(void *pUserData, Evas * e,
+                                                                                Evas_Object * pObject,
+                                                                                void *pEventInfo)
+{
+       VideoLogInfo("");
+       __mp_folder_item_view_reset();
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_folder_item_view_rotate_cb(void *data, Evas_Object * obj,
+                                                                                       void *event_info)
+{
+       if (!g_pFolderViewWidget || !g_pFolderViewHandle) {
+               VideoLogError("__mp_folder_view_rotate_cb IS null");
+               return;
+       }
+       bool bLandscape =
+               mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+                                                                                         mp_util_get_main_window_handle
+                                                                                         ());
+       if (bLandscape) {
+               g_pFolderViewHandle->bLandscape = true;
+       } else {
+               g_pFolderViewHandle->bLandscape = false;
+       }
+       elm_genlist_clear(g_pFolderViewHandle->pVideosGenlist);
+       __mp_folder_item_view_append_grid_layout(g_pFolderViewHandle->
+                                                                                        pVideosGenlist);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+void __mp_folder_soft_back_button_cb(void *data, Evas_Object * obj,
+                                                                        void *event_info)
+{
+       VideoLogInfo(" ");
+       Evas_Object *pTopNaviFrame = NULL;
+       pTopNaviFrame =
+               elm_naviframe_item_pop(g_pFolderViewHandle->pNaviFrameHandle);
+       evas_object_del(pTopNaviFrame);
+}
+
+/**
+ *
+ * @param pParent
+ */
+static void __mp_folder_item_view_init(void *pParent)
+{
+       if (!g_pFolderViewHandle || !g_pFolderViewWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       g_pFolderViewWidget->pFolderViewBox =
+               elm_box_add((Evas_Object *) pParent);
+       elm_box_horizontal_set(g_pFolderViewWidget->pFolderViewBox,
+                                                  EINA_FALSE);
+       evas_object_show(g_pFolderViewWidget->pFolderViewBox);
+
+       g_pFolderViewWidget->pFolderViewBaselayout =
+               __mp_folder_item_view_init_base_layout(g_pFolderViewWidget->
+                                                                                          pFolderViewBox);
+       evas_object_show(g_pFolderViewWidget->pFolderViewBaselayout);
+
+       elm_box_pack_end(g_pFolderViewWidget->pFolderViewBox,
+                                        g_pFolderViewWidget->pFolderViewBaselayout);
+
+       evas_object_event_callback_add(g_pFolderViewWidget->
+                                                                  pFolderViewBaselayout,
+                                                                  EVAS_CALLBACK_DEL,
+                                                                  __mp_folder_item_view_base_layout_del_cb,
+                                                                  NULL);
+
+       g_pFolderViewHandle->pVideosGenlist =
+               elm_genlist_add(g_pFolderViewWidget->pFolderViewBaselayout);
+       elm_scroller_bounce_set(g_pFolderViewHandle->pVideosGenlist,
+                                                       EINA_FALSE, EINA_TRUE);
+       evas_object_size_hint_weight_set(g_pFolderViewHandle->pVideosGenlist,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pFolderViewHandle->pVideosGenlist,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_genlist_block_count_set(g_pFolderViewHandle->pVideosGenlist,
+                                                               VIDEO_GENLIST_BLOCK_COUNT);
+       elm_scroller_single_direction_set(g_pFolderViewHandle->pVideosGenlist,
+                                                                         ELM_SCROLLER_SINGLE_DIRECTION_HARD);
+       elm_genlist_mode_set(g_pFolderViewHandle->pVideosGenlist,
+                                                ELM_LIST_COMPRESS);
+       elm_object_part_content_set(g_pFolderViewWidget->pFolderViewBaselayout,
+                                                               SWALLOW_LISTVIEW_CONTENT,
+                                                               g_pFolderViewHandle->pVideosGenlist);
+       __mp_folder_item_view_update_video_list(LIST_UPDATE_TYPE_ALL);
+       evas_object_show(g_pFolderViewHandle->pVideosGenlist);
+       g_pFolderViewHandle->bLandscape = false;
+       evas_object_smart_callback_add((Evas_Object *)
+                                                                  mp_util_get_main_window_handle(),
+                                                                  "wm,rotation,changed",
+                                                                  __mp_folder_item_view_rotate_cb, NULL);
+
+       Evas_Object *pLeftbtn =
+               elm_button_add(g_pFolderViewHandle->pNaviFrameHandle);
+       elm_object_style_set(pLeftbtn, "naviframe/end_btn/default");
+       evas_object_smart_callback_add(pLeftbtn, "clicked",
+                                                                  __mp_folder_soft_back_button_cb, NULL);
+
+       char *folder_name =
+               mp_util_svc_get_video_folder_name(g_pFolderViewHandle->
+                                                                                 nFolder_index);
+
+       g_pFolderViewHandle->pNaviFrameItem =
+               elm_naviframe_item_push(g_pFolderViewHandle->pNaviFrameHandle,
+                                                               (const char *) folder_name, pLeftbtn, NULL,
+                                                               g_pFolderViewWidget->pFolderViewBox, NULL);
+
+       elm_naviframe_item_pop_cb_set(g_pFolderViewHandle->pNaviFrameItem,
+                                                                 __mp_folder_item_view_back_btn_cb,
+                                                                 g_pFolderViewHandle);
+
+       MP_FREE_STRING(folder_name);
+
+       mp_folder_item_view_check_more_button_of_toolbar();
+
+       elm_naviframe_item_title_enabled_set(g_pFolderViewHandle->
+                                                                                pNaviFrameItem, TRUE, EINA_FALSE);
+
+       mp_util_db_set_update_fun(g_pFolderViewHandle->euLev,
+                                                         __mp_folder_item_view_db_changed_cb);
+
+       mp_util_hide_indicator();
+
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_folder_item_view_is_current_view()
+{
+       return (g_pFolderViewHandle != NULL && !g_pFolderViewHandle->bExist);
+}
+
+/**
+ *
+ */
+void mp_folder_item_view_check_more_button_of_toolbar(void)
+{
+       if (!g_pFolderViewHandle) {
+               VideoLogError("g_pFolderViewHandle is null");
+               return;
+       }
+
+       st_RegisteCbFunc *pRegisteCbFunc =
+               (st_RegisteCbFunc *) calloc(1, sizeof(st_RegisteCbFunc));
+       if (!pRegisteCbFunc) {
+               VideoLogError("failed to allocate memory");
+               return;
+       }
+
+       pRegisteCbFunc->DownloadCb =
+               (void *) __mp_folder_item_view_download_cb;
+       pRegisteCbFunc->SearchCb =
+               (void *) __mp_folder_item_view_search_item_cb;
+       pRegisteCbFunc->ShareViaCb = (void *) __mp_folder_item_view_share_cb;
+       pRegisteCbFunc->DeleteCb = (void *) __mp_folder_item_view_delete_cb;
+       pRegisteCbFunc->SortItemCb =
+               (void *) __mp_folder_item_view_sort_item_cb;
+       pRegisteCbFunc->RenameCb = (void *) __mp_folder_item_view_rename_cb;
+       pRegisteCbFunc->AutoPlayCb =
+               (void *) __mp_folder_item_view_auto_play_cb;
+#ifdef ENABLE_PRIVATE_MODE
+       pRegisteCbFunc->AddToPersonalCB =
+               (void *) __mp_folder_item_view_add_personal_cb;
+       pRegisteCbFunc->RemoveFromPersonalCB =
+               (void *) __mp_folder_item_view_remove_personal_cb;
+#endif
+       mp_ft_ctrl_create(g_pFolderViewHandle->pNaviFrameHandle,
+                                         g_pFolderViewHandle->pNaviFrameItem,
+                                         FOOTER_TAB_TYPE_PERSONAL, pRegisteCbFunc);
+       free(pRegisteCbFunc);
+
+       elm_naviframe_item_title_enabled_set(g_pFolderViewHandle->
+                                                                                pNaviFrameItem, EINA_TRUE,
+                                                                                EINA_FALSE);
+       mp_util_db_set_update_fun(g_pFolderViewHandle->euLev,
+                                                         __mp_folder_item_view_db_changed_cb);
+
+       mp_util_hide_indicator();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param part
+ * @return
+ */
+char *__mp_folder_item_view_text_get_video_number_cb(void *pUserData,
+                                                                                                        Evas_Object * pObj,
+                                                                                                        const char *part)
+{
+       VideoLogInfo("");
+
+       if (!g_pFolderViewHandle) {
+               VideoLogWarning("g_pFolderViewHandle is NULL.");
+               return NULL;
+       }
+
+       if (!g_pFolderViewWidget) {
+               VideoLogWarning("g_pFolderViewWidget is NULL.");
+               return NULL;
+       }
+
+       if (!g_strcmp0(part, "elm.text.sub")) {
+               int nCount = (int) pUserData;
+
+               if (nCount == 1) {
+                       return g_strdup_printf(VIDEOS_LISTVIEW_BODY_ONE_VIDEO);
+               } else {
+                       return g_strdup_printf(VIDEOS_LISTVIEW_BODY_PD_VIDEOS, nCount);
+               }
+       }
+
+       return NULL;
+}
+
+
+/**
+ *
+ * @param pNaviFrame
+ * @param folder_index
+ * @param pChangeViewCb
+ */
+void mp_folder_item_view_push(void *pNaviFrame, int folder_index,
+                                                         UpdateListItemsCbFunc pChangeViewCb)
+{
+       if (!pNaviFrame) {
+               VideoLogError("[ERR] pNaviFrame");
+               return;
+       }
+
+       VideoLogInfo("");
+       __mp_folder_item_view_destroy();
+       g_pFolderViewHandle =
+               (st_VideoFolderViewHandle *) calloc(1,
+                                                                                       sizeof
+                                                                                       (st_VideoFolderViewHandle));
+       g_pFolderViewWidget =
+               (st_VideoFolderViewWidget *) calloc(1,
+                                                                                       sizeof
+                                                                                       (st_VideoFolderViewWidget));
+
+       memset(g_pFolderViewHandle, 0, sizeof(st_VideoFolderViewHandle));
+       memset(g_pFolderViewWidget, 0, sizeof(st_VideoFolderViewWidget));
+
+       g_pFolderViewHandle->pNaviFrameHandle = pNaviFrame;
+       g_pFolderViewHandle->pUpdateListUserCbFunc = pChangeViewCb;
+       g_pFolderViewHandle->nFolder_index = folder_index;
+       g_pFolderViewHandle->bExist = false;
+       g_pFolderViewHandle->bLandscape =
+               mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+                                                                                         mp_util_get_main_window_handle
+                                                                                         ());
+       char *szPath = mp_util_svc_get_video_folder_url(folder_index);
+       g_pFolderViewHandle->pFolderUrl = g_strdup(szPath);
+       VideoSecureLogInfo("folder path = %s", szPath);
+       MP_FREE_STRING(szPath);
+
+       g_pFolderViewHandle->euLev = MP_DB_UPDATE_LEV_1;
+
+       __mp_folder_item_view_init(g_pFolderViewHandle->pNaviFrameHandle);
+       g_pFolderViewHandle->nPlayVideoIndex = -1;
+
+}
+
+/**
+ *
+ */
+void mp_folder_item_view_update_played_item(void)
+{
+       if (!g_pFolderViewHandle || !g_pFolderViewWidget) {
+               VideoLogInfo("Folderitem View does not exist.");
+               return;
+       }
+       VideoLogInfo("");
+
+       if (g_pFolderViewHandle->pVideosGenlist) {
+               int nGenItemIndex = g_pFolderViewHandle->nPlayVideoIndex;
+               VideoLogInfo("%d", nGenItemIndex);
+
+               int nGenlistIndex = nGenItemIndex;
+               if (!g_pFolderViewHandle->bLandscape)
+                       nGenlistIndex =
+                               nGenlistIndex / VP_GENLIST_THUMB_PORTRAIT_COUNT;
+               else
+                       nGenlistIndex =
+                               nGenlistIndex / VP_GENLIST_THUMB_LANDSPACE_COUNT;
+
+               Elm_Object_Item *pTmpVideoGenlistItem = NULL;
+               pTmpVideoGenlistItem =
+                       elm_genlist_nth_item_get((const Evas_Object *)
+                                                                        g_pFolderViewHandle->pVideosGenlist,
+                                                                        nGenlistIndex);
+               mp_util_svc_destory_video_item_list();
+               mp_util_svc_extract_video_list_from_folder(g_pFolderViewHandle->
+                                                                                                  pFolderUrl,
+                                                                                                  __mp_folder_item_view_get_sort_type
+                                                                                                  (), MP_LIST_VIEW_ALL);
+               mp_util_svc_update_thumbnail_info(g_pFolderViewHandle->
+                                                                                 nPlayVideoIndex);
+               elm_genlist_item_update(pTmpVideoGenlistItem);
+               if (pTmpVideoGenlistItem) {
+                       elm_genlist_item_selected_set(pTmpVideoGenlistItem,
+                                                                                 EINA_FALSE);
+                       Evas_Object *pIconContent =
+                               elm_object_item_part_content_get(pTmpVideoGenlistItem,
+                                                                                                "elm.icon.1");
+                       if (!pIconContent) {
+                               VideoLogError("");
+                               return;
+                       }
+                       Evas_Object *pProgressbar =
+                               elm_layout_content_get(pIconContent,
+                                                                          "elm.progressbar.icon");
+
+                       if (pProgressbar) {
+                               elm_layout_content_unset(pIconContent,
+                                                                                "elm.progressbar.icon");
+                               MP_DEL_OBJ(pProgressbar);
+                       }
+
+                       elm_genlist_item_fields_update(pTmpVideoGenlistItem,
+                                                                                  "elm.text.sub.left.bottom",
+                                                                                  ELM_GENLIST_ITEM_FIELD_TEXT);
+               }
+       }
+}
+
+/**
+ *
+ */
+void mp_folder_item_view_change_language(void)
+{
+       if (!g_pFolderViewHandle || !g_pFolderViewWidget) {
+               VideoLogError("No existed handle of Folder item view.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+}
+
+/*external interface*/
+/**
+ *
+ * @param eUpdateType
+ */
+void mp_folder_item_view_update_video_list(MpListUpdateType eUpdateType)
+{
+       if (!g_pFolderViewHandle || !g_pFolderViewWidget
+               || !g_pFolderViewHandle->pVideosGenlist) {
+               VideoLogError("handles of list view are not existed.");
+               return;
+       }
+       if (eUpdateType != LIST_UPDATE_TYPE_NONE) {
+               __mp_folder_item_view_update_video_list(eUpdateType);
+       }
+}
diff --git a/src/view/mp-video-list-view-main.c b/src/view/mp-video-list-view-main.c
new file mode 100755 (executable)
index 0000000..0dfc34e
--- /dev/null
@@ -0,0 +1,1530 @@
+/*
+ * Copyright (c) 2020 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 <app.h>
+#include <glib.h>
+#include <unistd.h>
+#include <stdbool.h>
+#include <media_content.h>
+
+
+#include "mp-util.h"
+#include "vp-util.h"
+#include "mp-video-log.h"
+#include "mp-external-ug.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-util-media-service.h"
+
+#include "mp-footer-toolbar.h"
+#include "mp-video-list-view-main.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-remove-ctrl.h"
+#include "mp-video-list-remove-view.h"
+#include "mp-video-search-view.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-video-list-auto-play-ctrl.h"
+#include "mp-launching-video-displayer.h"
+#include "mp-video-list-view-normal.h"
+#include "mp-video-info-ctrl.h"
+#include "mp-rotate-ctrl.h"
+#include "mp-video-list-view-thumbnail.h"
+#include "mp-video-list-view-item-of-folder.h"
+#include "mp-util-widget-ctrl.h"
+
+#include "videos-view-mgr.h"
+#include "mp-video-list-view-folder.h"
+#include "mp-video-list-share-via-view.h"
+#include "mp-video-list-view-common.h"
+#include "mp-video-list-option-ctrl.h"
+#include "mp-video-list-personal-view.h"
+#include "mp-video-nocontent-layout.h"
+
+#include "mp-video-rename-ctrl.h"
+#include "mp-video-util-db-controller.h"
+#include "mp-video-list-view-select.h"
+#include "mp-video-list-folder-share-via-view.h"
+
+#include "mp-util-preference.h"
+#include "mp-util-config.h"
+
+
+static st_VideoListViewMainViewHandle *g_pMainViewHandle = NULL;
+static st_VideoListViewMainViewWidget *g_pMainViewWidget = NULL;
+
+
+/*///////////////////////////////////////////////////*/
+/* Pre-define function for building.*/
+static void __mp_list_view_update_list(int nListTabType,
+                                                                          MpListUpdateType eUpdateType);
+/*static void mp_list_view_check_center_button_of_toolbar(void);*/
+static void mp_list_view_check_more_button_of_toolbar(void);
+
+static bool __mp_list_view_is_top_view(void);
+
+/*use used for poping view situation,update data list-->reset DB callback*/
+static void __mp_list_view_result_view_update_cb(void);
+
+/*use used for popup situation,update data list-->update videos items*/
+static void __mp_list_view_result_data_update_cb(void);
+
+/*use used for whole update,  clear videos items -->update data list-->append video items*/
+static void __mp_list_view_result_user_cb(MpListUpdateType eUpdateType);
+
+/*use used for personal storage style -->update data list-->update video items*/
+static void __mp_list_view_result_media_data_update_cb(void);
+
+static char *__mp_list_view_count_layout_tts_cb(void *data,
+                                                                                               Evas_Object * obj);
+
+/**
+ *
+ * @param key
+ * @param data
+ */
+static void __mp_list_view_recently_change_cb(const char *key, void *data)
+{
+       VideoLogInfo("");
+       char *pszVideo = mp_util_config_get_preview();
+       if (!pszVideo) {
+               return;
+       }
+       MP_FREE_STRING(pszVideo);
+
+       mp_list_view_update_widget();
+}
+
+/**
+ *
+ */
+static void __mp_list_view_register_recently_config()
+{
+       mp_util_config_ignore_preview_key_changed_cb();
+       mp_util_config_preview_key_changed_cb
+               (__mp_list_view_recently_change_cb, NULL);
+}
+
+/**
+ *
+ */
+void mp_list_view_free_main_view_widget(void)
+{
+       VideoLogInfo("");
+
+       if (g_pMainViewWidget) {
+               if (g_pMainViewWidget->pToolBar) {
+                       evas_object_del(g_pMainViewWidget->pToolBar);
+                       g_pMainViewWidget->pToolBar = NULL;
+               }
+
+               if (g_pMainViewWidget->pListViewBaselayout) {
+                       evas_object_del(g_pMainViewWidget->pListViewBaselayout);
+                       g_pMainViewWidget->pListViewBaselayout = NULL;
+               }
+
+               if (g_pMainViewWidget->pListViewTitlelayout) {
+                       evas_object_del(g_pMainViewWidget->pListViewTitlelayout);
+                       g_pMainViewWidget->pListViewTitlelayout = NULL;
+               }
+
+               if (g_pMainViewWidget->pBox) {
+                       evas_object_del(g_pMainViewWidget->pBox);
+                       g_pMainViewWidget->pBox = NULL;
+               }
+               MP_DEL_ITC(g_pMainViewWidget->pVideoGenlistTitleItc);
+               free(g_pMainViewWidget);
+               g_pMainViewWidget = NULL;
+       }
+}
+
+
+/*//////////////////////////////////////////////////*/
+/* Callback function of more of footer widget.*/
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_delete_cb(void *pUserData, Evas_Object * pObject,
+                                                       void *pEventInfo)
+{
+       if (!g_pMainViewHandle) {
+               VideoLogWarning
+                       ("[WARNING] Main handles of list view are not existed.");
+               return;
+       }
+
+       mp_ft_ctrl_hide_more_popup();
+
+       MpFooterLibraryMainListTabType footerTabType =
+               (MpFooterLibraryMainListTabType) pUserData;
+       if (FOOTER_TAB_TYPE_PERSONAL == footerTabType) {
+               mp_remove_view_push((void *) mp_mgr_get_library_naviframe(),
+                                                       (void *) __mp_list_view_result_user_cb,
+                                                       (void *) __mp_list_view_result_view_update_cb,
+                                                       NULL, LIST_TAB_TYPE_PERSONAL);
+       } else {
+               VideoLogError("invalid footer type");
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_sort_item_cb(void *pUserData, Evas_Object * pObject,
+                                                          void *pEventInfo)
+{
+
+       mp_ft_ctrl_hide_more_popup();
+
+       MpFooterLibraryMainListTabType footerTabType =
+               (MpFooterLibraryMainListTabType) pUserData;
+       if (FOOTER_TAB_TYPE_PERSONAL == footerTabType) {
+               mp_sort_ctrl_show((void *) __mp_list_view_result_data_update_cb);
+       } else {
+               VideoLogError("invalid footer type");
+       }
+}
+
+/**
+ *
+ */
+static void __mp_list_view_view_as_result_user_cb(void)
+{
+       if (!g_pMainViewHandle) {
+               VideoLogWarning("g_pMainViewHandle == NULL");
+               return;
+       }
+
+       int nPreViewType = g_pMainViewHandle->nCurrentViewType;
+       g_pMainViewHandle->nCurrentViewType = mp_view_as_ctrl_get_type();
+
+       if (g_pMainViewHandle->nCurrentViewType != nPreViewType) {
+
+               elm_object_part_content_unset
+                       (g_pMainViewWidget->pListViewBaselayout,
+                        SWALLOW_LISTVIEW_CONTENT);
+#ifdef VS_FEATURE_LIST_VIEW
+               if (nPreViewType == MP_LIST_VIEW_AS_NORMAL_LIST) {
+                       mp_normal_view_destroy();
+               } else
+#endif
+               if (nPreViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+                       mp_folder_view_destroy();
+               } else if (nPreViewType == MP_LIST_VIEW_AS_THUMBNAIL_LIST) {
+                       mp_thumbnail_view_destroy();
+               } else {
+                       VideoLogError("invalid type");
+#ifdef VS_FEATURE_LIST_VIEW
+                       mp_normal_view_destroy();
+#endif
+                       mp_folder_view_destroy();
+                       mp_thumbnail_view_destroy();
+               }
+       }
+       __mp_list_view_result_user_cb(LIST_UPDATE_TYPE_ALL);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_view_as_cb(void *pUserData, Evas_Object * pObject,
+                                                        void *pEventInfo)
+{
+
+       mp_ft_ctrl_hide_more_popup();
+
+       MpFooterLibraryMainListTabType footerTabType =
+               (MpFooterLibraryMainListTabType) pUserData;
+       if (FOOTER_TAB_TYPE_PERSONAL == footerTabType) {
+               mp_view_as_ctrl_show(footerTabType, (void *)
+                                                        __mp_list_view_view_as_result_user_cb);
+       } else {
+               VideoLogError("invalid footer type");
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_auto_play_cb(void *pUserData, Evas_Object * pObject,
+                                                          void *pEventInfo)
+{
+
+       mp_ft_ctrl_hide_more_popup();
+
+       MpFooterLibraryMainListTabType footerTabType =
+               (MpFooterLibraryMainListTabType) pUserData;
+       if (FOOTER_TAB_TYPE_PERSONAL == footerTabType) {
+               mp_auto_play_ctrl_show();
+       } else {
+               VideoLogError("invalid footer type");
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_rename_cb(void *pUserData, Evas_Object * pObject,
+                                                       void *pEventInfo)
+{
+       if (!g_pMainViewHandle) {
+               VideoLogWarning
+                       ("[WARNING] Main handles of list view are not existed.");
+               return;
+       }
+
+       mp_ft_ctrl_hide_more_popup();
+       mp_select_view_push((void *) mp_mgr_get_library_naviframe(),
+                                               g_pMainViewHandle->pNaviFrameItem,
+                                               __mp_list_view_result_user_cb, NULL,
+                                               SELECT_TYPE_RENAME, LIST_TAB_TYPE_PERSONAL);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_content_to_display_cb(void *pUserData,
+                                                                               Evas_Object * pObject,
+                                                                               void *pEventInfo)
+{
+       mp_ft_ctrl_hide_more_popup();
+
+       mp_view_ctrl_show((void *) __mp_list_view_result_user_cb);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_sign_in_cb(void *pUserData, Evas_Object * pObject,
+                                                        void *pEventInfo)
+{
+
+       mp_ft_ctrl_hide_more_popup();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_share_via_cb(void *pUserData, Evas_Object * pObject,
+                                                          void *pEventInfo)
+{
+       if (!g_pMainViewHandle) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       mp_ft_ctrl_hide_more_popup();
+
+       if (mp_view_as_ctrl_get_type() == MP_LIST_VIEW_AS_FOLDER_LIST) {
+               VideoLogWarning("Select folder for sharing.");
+               mp_folder_share_view_push((void *) mp_mgr_get_library_naviframe(),
+                                                                 (void *)
+                                                                 __mp_list_view_result_view_update_cb,
+                                                                 LIST_TAB_TYPE_PERSONAL);
+       } else {
+               mp_share_view_push((void *) mp_mgr_get_library_naviframe(),
+                                                  (void *) __mp_list_view_result_view_update_cb,
+                                                  NULL, LIST_TAB_TYPE_PERSONAL);
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_add_personal_cb(void *pUserData, Evas_Object * pObject,
+                                                                 void *pEventInfo)
+{
+       if (!g_pMainViewHandle) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       mp_ft_ctrl_hide_more_popup();
+
+       mp_personal_view_push((void *) mp_mgr_get_library_naviframe(), (void *)
+                                                 __mp_list_view_result_media_data_update_cb,
+                                                 NULL, 0);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_remove_personal_cb(void *pUserData,
+                                                                        Evas_Object * pObject,
+                                                                        void *pEventInfo)
+{
+       if (!g_pMainViewHandle) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       mp_ft_ctrl_hide_more_popup();
+
+       mp_personal_view_push((void *) mp_mgr_get_library_naviframe(), (void *)
+                                                 __mp_list_view_result_media_data_update_cb,
+                                                 NULL, 1);
+}
+
+
+ /**/
+/*//////////////////////////////////////////////////*/
+/*//////////////////////////////////////////////////*/
+/* Footer widgets*/
+/**
+ *
+ */
+void mp_list_view_check_more_button_of_toolbar(void)
+{
+       if (!g_pMainViewHandle) {
+               VideoLogInfo("g_pMainViewHandle == NULL");
+               return;
+       }
+
+       VideoLogInfo("nListTabType=%d", g_pMainViewHandle->nListTabType);
+
+       if (g_pMainViewHandle->nListTabType == LIST_TAB_TYPE_PERSONAL) {
+               if (mp_folder_item_view_is_current_view()) {
+                       VideoLogInfo("Update more button of folder item view");
+                       mp_folder_item_view_check_more_button_of_toolbar();
+               } else {
+                       VideoLogInfo("Update more button of main list view");
+                       st_RegisteCbFunc *pRegisteCbFunc =
+                               (st_RegisteCbFunc *) calloc(1, sizeof(st_RegisteCbFunc));
+                       if (!pRegisteCbFunc) {
+                               VideoLogError("failed to allocate memory");
+                               return;
+                       }
+
+                       pRegisteCbFunc->SearchCb =
+                               (void *) mp_list_view_search_item_cb;
+                       pRegisteCbFunc->DeleteCb = (void *) mp_list_view_delete_cb;
+                       pRegisteCbFunc->ViewAsCb = (void *) mp_list_view_view_as_cb;
+                       if (mp_view_as_ctrl_get_type() != MP_LIST_VIEW_AS_FOLDER_LIST) {
+                               pRegisteCbFunc->SortItemCb =
+                                       (void *) mp_list_view_sort_item_cb;
+                               pRegisteCbFunc->RenameCb = (void *) mp_list_view_rename_cb;
+                               /*pRegisteCbFunc->DetailsCb= (void*)mp_list_view_details_cb; */
+                               pRegisteCbFunc->ShareViaCb =
+                                       (void *) mp_list_view_share_via_cb;
+                               pRegisteCbFunc->AutoPlayCb =
+                                       (void *) mp_list_view_auto_play_cb;
+                       }
+                       pRegisteCbFunc->SignInCb = (void *) mp_list_view_sign_in_cb;
+
+#ifdef ENABLE_PRIVATE_MODE
+                       pRegisteCbFunc->AddToPersonalCB =
+                               (void *) mp_list_view_add_personal_cb;
+                       pRegisteCbFunc->RemoveFromPersonalCB =
+                               (void *) mp_list_view_remove_personal_cb;
+#endif
+                       bool bShowFT = mp_ft_ctrl_is_show();
+                       if (bShowFT == FALSE) {
+                               mp_ft_ctrl_create(g_pMainViewHandle->pNaviFrameHandle,
+                                                                 g_pMainViewHandle->pNaviFrameItem,
+                                                                 g_pMainViewHandle->nListTabType,
+                                                                 pRegisteCbFunc);
+                       }
+                       free(pRegisteCbFunc);
+               }
+       } else {
+               mp_ft_ctrl_disable();
+       }
+}
+
+ /**/
+/*//////////////////////////////////////////////////*/
+/*//////////////////////////////////////////////////*/
+/* Search view*/
+/**
+ *
+ */
+void mp_list_view_show_search_view(void)
+{
+       if (!g_pMainViewHandle) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       mp_ft_ctrl_hide_more_popup();
+
+       mp_search_view_push((void *) mp_mgr_get_library_naviframe(), NULL);
+
+       mp_search_view_register_update_list_func((void *)
+                                                                                        __mp_list_view_result_user_cb,
+                                                                                        (void *)
+                                                                                        __mp_list_view_result_view_update_cb);
+}
+
+ /**/
+/*//////////////////////////////////////////////////*/
+/*//////////////////////////////////////////////////*/
+/* Callback function of base widget in main list view.*/
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_naviframe_transition_effect_cb(void *pUserData,
+                                                                                                Evas_Object * pObject,
+                                                                                                void *pEventInfo)
+{
+       if (!g_pMainViewHandle) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       Evas_Object *pTmpContents = NULL;
+       Elm_Object_Item *pTmpItem = NULL;
+
+       if (!g_pMainViewHandle->pNaviFrameHandle) {
+               VideoLogInfo("[ERR] No exist naviframe handle.");
+               return;
+       }
+
+       pTmpItem =
+               elm_naviframe_top_item_get(g_pMainViewHandle->pNaviFrameHandle);
+       pTmpContents = elm_object_item_content_get(pTmpItem);
+       if (pTmpContents) {
+       } else {
+               VideoLogInfo("[ERR] No exist naviframe top item.");
+       }
+}
+
+/**
+ *
+ */
+void mp_list_view_double_tap_sensor_cb(void)
+{
+       if (!g_pMainViewHandle) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       if (!__mp_list_view_is_top_view()) {
+               VideoLogInfo("Main list view is not top view.");
+               return;
+       }
+
+}
+
+/**
+ *
+ */
+static void __mp_list_view_result_media_data_update_cb(void)
+{
+       if (!g_pMainViewHandle || !g_pMainViewWidget) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       mp_util_svc_destory_video_list();
+       mp_util_svc_extract_video_list_by_item_type
+               (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+
+       int nViewType = mp_view_as_ctrl_get_type();
+#ifdef VS_FEATURE_LIST_VIEW
+       if (nViewType == MP_LIST_VIEW_AS_NORMAL_LIST) {
+               mp_normal_view_update_video_list();
+       } else
+#endif
+       if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+               mp_folder_view_update_video_items();
+               mp_util_svc_extract_video_folder_list_by_type
+                       (mp_sort_ctrl_get_sort_state(), MP_LIST_VIEW_ALL);
+       } else {
+               VideoLogError("");
+       }
+
+       mp_list_view_check_more_button_of_toolbar();
+       /*mp_list_view_check_center_button_of_toolbar(); */
+}
+
+/**
+ *
+ * @param eUpdateType
+ */
+static void __mp_list_view_result_user_cb(MpListUpdateType eUpdateType)
+{
+       if (!g_pMainViewHandle || !g_pMainViewWidget) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return;
+       }
+
+       VideoLogInfo("");
+       elm_object_item_part_text_set(g_pMainViewHandle->pNaviFrameItem,
+                                                                 "elm.text.title", VIDEOS_TITLE_VIDEO);
+
+       __mp_list_view_update_list(g_pMainViewHandle->nListTabType,
+                                                          eUpdateType);
+
+       mp_list_view_check_more_button_of_toolbar();
+}
+
+/**
+ *
+ */
+static void __mp_list_view_result_data_update_cb(void)
+{
+       if (!g_pMainViewHandle || !g_pMainViewWidget) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       int nViewType = mp_view_as_ctrl_get_type();
+#ifdef VS_FEATURE_LIST_VIEW
+       if (nViewType == MP_LIST_VIEW_AS_NORMAL_LIST) {
+               mp_util_svc_destory_video_item_list();
+               mp_util_svc_extract_video_list_by_item_type
+                       (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+               mp_normal_view_update_video_list();
+       } else
+#endif
+       if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+               mp_util_svc_destory_video_folder_list();
+               mp_util_svc_extract_video_folder_list_by_type
+                       (mp_sort_ctrl_get_sort_state(), MP_LIST_VIEW_ALL);
+               mp_folder_view_update_video_items();
+       } else if (nViewType == MP_LIST_VIEW_AS_THUMBNAIL_LIST) {
+               mp_util_svc_destory_video_item_list();
+               mp_util_svc_extract_video_list_by_item_type
+                       (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+               mp_thumbnail_view_update_video_list();
+       } else {
+
+               VideoLogError("");
+       }
+
+       mp_list_view_check_more_button_of_toolbar();
+}
+
+/**
+ *
+ */
+static void __mp_list_view_result_view_update_cb(void)
+{
+       if (!g_pMainViewHandle || !g_pMainViewWidget) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return;
+       }
+       VideoLogInfo("");
+       int nViewType = mp_view_as_ctrl_get_type();
+       mp_util_svc_destory_video_list();
+       mp_util_svc_extract_video_list_by_item_type
+               (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+
+       if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+               /*refresh folder view */
+               mp_util_svc_extract_video_folder_list_by_type
+                       (mp_sort_ctrl_get_sort_state(), MP_LIST_VIEW_ALL);
+               if (!mp_folder_view_is_item_view()
+                       && !mp_search_view_get_active_view())
+                       mp_folder_view_arrange_folder_list(g_pMainViewHandle,
+                                                                                          g_pMainViewWidget,
+                                                                                          LIST_UPDATE_TYPE_VIEW,
+                                                                                          (void *)
+                                                                                          __mp_list_view_result_user_cb);
+       }
+       if (nViewType == MP_LIST_VIEW_AS_THUMBNAIL_LIST) {
+               /*refresh thumbnail view */
+               mp_thumbnail_view_update_video_list();
+       }
+       mp_list_view_check_more_button_of_toolbar();
+
+}
+
+/**
+ *
+ * @param nUpdateStyle
+ */
+static void __mp_list_view_db_update(int nUpdateStyle)
+{
+
+       if (!g_pMainViewHandle || !g_pMainViewWidget) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return;
+       }
+
+       mp_util_db_run_backup_fun_except_lev0(NULL, NULL, NULL, NULL);
+       __mp_list_view_update_list(g_pMainViewHandle->nListTabType,
+                                                          LIST_UPDATE_TYPE_ALL);
+
+       mp_util_db_run_update_fun_except_lev0(NULL, NULL, NULL, NULL);
+
+       g_pMainViewHandle->pDbUpdateTimer = NULL;
+       VideoLogInfo("db change ----update");
+}
+
+/*pUserData = update style,  insert, delete, update or -1*/
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __mp_list_view_db_update_timer_cb(void *pUserData)
+{
+
+       if (!g_pMainViewHandle || !g_pMainViewWidget) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return ECORE_CALLBACK_CANCEL;
+       }
+       if (!g_pMainViewHandle->pDbUpdateTimer) {
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       int nUpdateStyle = (int) pUserData;
+
+       __mp_list_view_db_update(nUpdateStyle);
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param fTime
+ * @param nUpdateStyle
+ */
+static void __mp_list_view_db_change_cb(void *pUserData, float fTime,
+                                                                               int nUpdateStyle)
+{
+       if (!g_pMainViewHandle || !g_pMainViewWidget) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return;
+       }
+
+       VideoLogInfo("db change----");
+
+       MP_DEL_TIMER(g_pMainViewHandle->pDbUpdateTimer);
+       g_pMainViewHandle->pDbUpdateTimer =
+               ecore_timer_add(fTime, __mp_list_view_db_update_timer_cb,
+                                               (void *) nUpdateStyle);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_list_view_search_item_cb(void *pUserData, Evas_Object * pObject,
+                                                                void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       if (!g_pMainViewHandle || !g_pMainViewWidget) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return;
+       }
+
+       mp_list_view_show_search_view();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+Eina_Bool mp_list_view_back_btn_cb(void *pUserData,
+                                                                  Elm_Object_Item * pItem)
+{
+       VideoLogInfo("");
+
+       if (mp_util_get_main_window_handle()) {
+               elm_win_lower(mp_util_get_main_window_handle());
+       }
+
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pBuffer
+ * @param nBufferSize
+ */
+void mp_list_view_launching_video_player_cb(void *pUserData,
+                                                                                       void *pBuffer,
+                                                                                       unsigned int nBufferSize)
+{
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+
+}
+
+
+/*//////////////////////////////////////////////////*/
+ /**/
+/**
+ *
+ * @param nListTabType
+ * @param eUpdateType
+ */
+       void __mp_list_view_update_list(int nListTabType,
+                                                                       MpListUpdateType eUpdateType)
+{
+       VideoLogInfo("");
+
+       mp_option_ctrl_delete_handle();
+       mp_util_delete_popup_handle();
+
+       int nViewType = mp_view_as_ctrl_get_type();
+#ifdef VS_FEATURE_LIST_VIEW
+       if (nViewType == MP_LIST_VIEW_AS_NORMAL_LIST) {
+               mp_normal_view_arrange_list_item(g_pMainViewHandle,
+                                                                                g_pMainViewWidget, eUpdateType,
+                                                                                (void *)
+                                                                                __mp_list_view_result_user_cb);
+       } else
+#endif
+       if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+               mp_folder_view_arrange_folder_list(g_pMainViewHandle,
+                                                                                  g_pMainViewWidget, eUpdateType,
+                                                                                  (void *)
+                                                                                  __mp_list_view_result_user_cb);
+       } else if (nViewType == MP_LIST_VIEW_AS_THUMBNAIL_LIST) {
+               mp_thumbnail_view_arrange_list_item(g_pMainViewHandle,
+                                                                                       g_pMainViewWidget,
+                                                                                       eUpdateType, (void *)
+                                                                                       __mp_list_view_result_user_cb);
+       }
+
+       mp_list_view_check_more_button_of_toolbar();
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param part
+ * @return
+ */
+char *__mp_list_view_text_get_video_number_cb(void *pUserData,
+                                                                                         Evas_Object * pObj,
+                                                                                         const char *part)
+{
+       VideoLogInfo("");
+
+       if (g_pMainViewHandle == NULL) {
+               VideoLogError("g_pMainViewHandle == NUL!!!");
+               VideoLogAssert(0);
+               return NULL;
+       }
+
+       if (g_pMainViewWidget == NULL) {
+               VideoLogError("g_pMainViewWidget == NUL!!!");
+               VideoLogAssert(0);
+               return NULL;
+       }
+
+       if (!strcmp(part, "elm.text.sub")) {
+               unsigned int nCount = 0;
+               int nViewType = mp_view_as_ctrl_get_type();
+
+               if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+                       nCount = mp_util_svc_get_video_folder_size();
+               } else {
+                       nCount = mp_util_svc_get_number_of_video_item_by_type();
+               }
+
+               VideoLogInfo("nViewType : [%d], nCount : [%d]", nViewType, nCount);
+
+               if (nCount == 1) {
+                       if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+                               return g_strdup_printf("%s",
+                                                                          VIDEOS_FOLDERVIEW_BODY_ONE_FOLDER);
+                       } else {
+                               return g_strdup_printf("%s",
+                                                                          VIDEOS_LISTVIEW_BODY_ONE_VIDEO);
+                       }
+               } else {
+                       if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+                               return g_strdup_printf(VIDEOS_FOLDERVIEW_BODY_PD_FOLDERS,
+                                                                          nCount);
+                       } else {
+                               return g_strdup_printf(VIDEOS_LISTVIEW_BODY_PD_VIDEOS,
+                                                                          nCount);
+                       }
+               }
+       }
+
+       return NULL;
+}
+
+ /**/
+/*//////////////////////////////////////////////////*/
+/**
+ *
+ * @param eUpdateType
+ */
+void mp_list_view_update_whole_genlist(MpListUpdateType eUpdateType)
+{
+       if (!g_pMainViewHandle) {
+               VideoLogInfo("[ERR] g_pMainViewHandle is NULL.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       if (g_pMainViewHandle->nListTabType == LIST_TAB_TYPE_PERSONAL) {
+               int nViewType = mp_view_as_ctrl_get_type();
+#ifdef VS_FEATURE_LIST_VIEW
+               if (nViewType == MP_LIST_VIEW_AS_NORMAL_LIST) {
+                       mp_normal_view_arrange_list_item(g_pMainViewHandle,
+                                                                                        g_pMainViewWidget,
+                                                                                        eUpdateType, (void *)
+                                                                                        __mp_list_view_result_user_cb);
+               } else
+#endif
+               if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+                       mp_folder_view_arrange_folder_list(g_pMainViewHandle,
+                                                                                          g_pMainViewWidget,
+                                                                                          eUpdateType, (void *)
+                                                                                          __mp_list_view_result_user_cb);
+                       mp_folder_item_view_update_video_list(LIST_UPDATE_TYPE_NONE);   /*folder item view, update NONE */
+               }
+               if (mp_personal_view_is_top_view()) {
+                       mp_personal_view_update();
+               }
+       } else {
+               VideoLogInfo("It's not relevant list arrange.");
+       }
+
+       mp_ft_ctrl_rotate_update();
+}
+
+/**
+ *
+ * @param eUpdateType
+ */
+void mp_list_view_rotate_view(MpListUpdateType eUpdateType)
+{
+       if (!g_pMainViewHandle) {
+               VideoLogInfo("[ERR] g_pMainViewHandle is NULL.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       mp_ft_ctrl_rotate_update();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_main_title_layout_del_cb(void *pUserData, Evas * e,
+                                                                                 Evas_Object * pObject,
+                                                                                 void *pEventInfo)
+{
+       if (!g_pMainViewWidget) {
+               VideoLogError("g_pMainViewWidget == NUL!!!");
+               return;
+       }
+
+       g_pMainViewWidget->pListViewTitlelayout = NULL;
+       g_pMainViewWidget->pVideoGenlistTitle = NULL;
+       g_pMainViewWidget->pVideoGenlistItemForTitle = NULL;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_main_video_index_item_del_cb(void *data,
+                                                                                         Evas_Object * obj,
+                                                                                         void *event_info)
+{
+       if (!g_pMainViewWidget) {
+               VideoLogError("g_pMainViewWidget == NUL!!!");
+               return;
+       }
+       g_pMainViewWidget->pVideoGenlistItemForTitle = NULL;
+}
+
+/**
+ *
+ */
+void mp_list_view_update_count_layout()
+{
+       unsigned int nCount = 0;
+       int nViewType = mp_view_as_ctrl_get_type();
+
+       if (g_pMainViewHandle == NULL) {
+               VideoLogError("g_pMainViewHandle == NUL!!!");
+               VideoLogAssert(0);
+
+               return;
+       }
+
+       if (g_pMainViewWidget == NULL) {
+               VideoLogError("g_pMainViewWidget == NUL!!!");
+               VideoLogAssert(0);
+
+               return;
+       }
+
+       if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+               nCount = mp_util_svc_get_video_folder_size();
+       } else {
+               nCount = mp_util_svc_get_number_of_video_item_by_type();
+       }
+
+       VideoLogInfo("nViewType : [%d], nCount : [%d]", nViewType, nCount);
+
+       if (nCount == 0) {
+               if (g_pMainViewWidget->pListViewTitlelayout != NULL) {
+                       elm_box_unpack(g_pMainViewWidget->pBox,
+                                                  g_pMainViewWidget->pListViewTitlelayout);
+                       evas_object_del(g_pMainViewWidget->pListViewTitlelayout);
+                       g_pMainViewWidget->pListViewTitlelayout = NULL;
+               }
+       } else {
+               /* genlist - groupindex */
+               if (g_pMainViewWidget->pVideoGenlistItemForTitle != NULL) {
+                       elm_object_item_del
+                               (g_pMainViewWidget->pVideoGenlistItemForTitle);
+               }
+
+               if (g_pMainViewWidget->pVideoGenlistTitleItc == NULL) {
+                       g_pMainViewWidget->pVideoGenlistTitleItc =
+                               elm_genlist_item_class_new();
+                       g_pMainViewWidget->pVideoGenlistTitleItc->item_style =
+                               "groupindex.sub";
+                       g_pMainViewWidget->pVideoGenlistTitleItc->func.text_get =
+                               __mp_list_view_text_get_video_number_cb;
+                       g_pMainViewWidget->pVideoGenlistTitleItc->func.content_get =
+                               NULL;
+                       g_pMainViewWidget->pVideoGenlistTitleItc->func.del = NULL;
+               }
+
+               if (g_pMainViewWidget->pVideoGenlistTitle == NULL) {
+                       g_pMainViewWidget->pVideoGenlistTitle =
+                               elm_genlist_add(g_pMainViewWidget->pBox);
+                       elm_genlist_mode_set(g_pMainViewWidget->pVideoGenlistTitle,
+                                                                ELM_LIST_COMPRESS);
+                       evas_object_show(g_pMainViewWidget->pVideoGenlistTitle);
+               }
+
+               if (g_pMainViewWidget->pListViewTitlelayout == NULL) {
+                       Evas_Object *pTTSObject = NULL;
+                       char edj_path[1024] = { 0 };
+
+                       char *path = app_get_resource_path();
+                       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                                        VIDEO_CUSTOM_THEME);
+
+                       /* create layout */
+                       g_pMainViewWidget->pListViewTitlelayout =
+                               elm_layout_add(g_pMainViewWidget->pBox);
+                       evas_object_size_hint_weight_set
+                               (g_pMainViewWidget->pListViewTitlelayout, EVAS_HINT_EXPAND,
+                                0);
+                       evas_object_size_hint_align_set
+                               (g_pMainViewWidget->pListViewTitlelayout, EVAS_HINT_FILL,
+                                EVAS_HINT_FILL);
+                       elm_layout_file_set(g_pMainViewWidget->pListViewTitlelayout,
+                                                               edj_path, "count_info_groupindex");
+                       evas_object_event_callback_add
+                               (g_pMainViewWidget->pListViewTitlelayout,
+                                EVAS_CALLBACK_DEL, __mp_main_title_layout_del_cb, NULL);
+
+                       evas_object_show(g_pMainViewWidget->pListViewTitlelayout);
+
+                       pTTSObject =
+                               elm_access_object_register
+                               (g_pMainViewWidget->pListViewTitlelayout,
+                                g_pMainViewWidget->pBox);
+                       elm_access_info_cb_set(pTTSObject, ELM_ACCESS_TYPE,
+                                                                  __mp_list_view_count_layout_tts_cb,
+                                                                  NULL);
+
+                       elm_layout_content_set(g_pMainViewWidget->pListViewTitlelayout,
+                                                                  "elm.swallow.groupindex",
+                                                                  g_pMainViewWidget->pVideoGenlistTitle);
+
+                       elm_box_pack_start(g_pMainViewWidget->pBox,
+                                                          g_pMainViewWidget->pListViewTitlelayout);
+               }
+
+               g_pMainViewWidget->pVideoGenlistItemForTitle =
+                       elm_genlist_item_append(g_pMainViewWidget->pVideoGenlistTitle,
+                                                                       g_pMainViewWidget->pVideoGenlistTitleItc,
+                                                                       NULL, NULL, ELM_GENLIST_ITEM_NONE,
+                                                                       NULL, NULL);
+               elm_object_item_del_cb_set
+                       (g_pMainViewWidget->pVideoGenlistItemForTitle,
+                        __mp_main_video_index_item_del_cb);
+       }
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+Evas_Object *mp_list_view_create_base_layout(void *pParent)
+{
+       if (!g_pMainViewWidget) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return NULL;
+       }
+
+       if (!pParent) {
+               VideoLogInfo("[ERR]");
+               return NULL;
+       }
+
+       VideoLogInfo("");
+
+       if (g_pMainViewWidget->pListViewBaselayout) {
+               evas_object_del(g_pMainViewWidget->pListViewBaselayout);
+               g_pMainViewWidget->pListViewBaselayout = NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_LISTVIEW_EDJ);
+
+       g_pMainViewWidget->pListViewBaselayout = elm_layout_add(pParent);
+       elm_layout_file_set(g_pMainViewWidget->pListViewBaselayout,
+                                               edj_path, LISTVIEW_EDJ_GROUP);
+       evas_object_size_hint_weight_set
+               (g_pMainViewWidget->pListViewBaselayout, EVAS_HINT_EXPAND,
+                EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pMainViewWidget->pListViewBaselayout,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       return g_pMainViewWidget->pListViewBaselayout;
+}
+
+/**
+ *
+ */
+static void __mp_list_personal_view_display(void)
+{
+       if (g_pMainViewHandle == NULL) {
+               VideoLogError("g_pMainViewHandle == NULL!!!");
+               VideoLogAssert(0);
+               return;
+       }
+
+       if (g_pMainViewWidget == NULL) {
+               VideoLogError("g_pMainViewWidget == NULL!!!");
+               VideoLogAssert(0);
+               return;
+       }
+
+       evas_object_show(g_pMainViewWidget->pListViewBaselayout);
+       mp_list_view_check_more_button_of_toolbar();
+       __mp_list_view_update_list(g_pMainViewHandle->nListTabType,
+                                                          LIST_UPDATE_TYPE_ALL);
+}
+
+/**
+ *
+ * @param pNaviFrameHandle
+ */
+void mp_list_view_init_widget(void *pNaviFrameHandle)
+{
+       if (!g_pMainViewHandle || !g_pMainViewWidget || !pNaviFrameHandle) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return;
+       }
+
+       g_pMainViewHandle->nListTabType = mp_util_get_main_tab_type();
+
+       VideoLogInfo("g_pMainViewHandle->nListTabType : [%d]",
+                                g_pMainViewHandle->nListTabType);
+
+       if (g_pMainViewHandle->nListTabType != LIST_TAB_TYPE_PERSONAL
+               && g_pMainViewHandle->nListTabType != LIST_TAB_TYPE_DEVICES) {
+               VideoLogError("ListTabType error : [%d]!!!",
+                                         g_pMainViewHandle->nListTabType);
+               g_pMainViewHandle->nListTabType = LIST_TAB_TYPE_PERSONAL;
+               mp_util_set_main_tab_type(g_pMainViewHandle->nListTabType);
+       }
+
+       g_pMainViewHandle->pNaviFrameHandle = pNaviFrameHandle;
+
+       if (g_pMainViewWidget->pListViewBaselayout == NULL) {
+               g_pMainViewWidget->pListViewBaselayout =
+                       mp_list_view_create_base_layout
+                       (g_pMainViewHandle->pNaviFrameHandle);
+       }
+
+       g_pMainViewHandle->pNaviFrameItem =
+               elm_naviframe_item_push(g_pMainViewHandle->pNaviFrameHandle,
+                                                               VIDEOS_TITLE_VIDEO, NULL, NULL,
+                                                               g_pMainViewWidget->pListViewBaselayout,
+                                                               NULL);
+
+       elm_naviframe_item_pop_cb_set(g_pMainViewHandle->pNaviFrameItem,
+                                                                 mp_list_view_back_btn_cb,
+                                                                 g_pMainViewHandle);
+       elm_naviframe_item_title_enabled_set(g_pMainViewHandle->pNaviFrameItem,
+                                                                                EINA_TRUE, EINA_FALSE);
+       evas_object_smart_callback_add(g_pMainViewHandle->pNaviFrameHandle,
+                                                                  "transition,finished",
+                                                                  mp_list_view_naviframe_transition_effect_cb,
+                                                                  NULL);
+
+       __mp_list_view_register_recently_config();
+       mp_util_svc_set_update_db_cb_func((UpdateDatabaseCbFunc)
+                                                                         __mp_list_view_db_change_cb);
+       mp_util_hide_indicator();
+
+       g_pMainViewHandle->nListTabType = mp_util_get_main_tab_type();
+
+       if (g_pMainViewHandle->nListTabType == LIST_TAB_TYPE_PERSONAL) {
+               __mp_list_personal_view_display();
+       }
+}
+
+/**
+ *
+ */
+void mp_list_view_init_handles(void)
+{
+       VideoLogInfo("");
+
+       if (g_pMainViewHandle) {
+               free(g_pMainViewHandle);
+               g_pMainViewHandle = NULL;
+       }
+
+       if (g_pMainViewWidget) {
+               free(g_pMainViewWidget);
+               g_pMainViewWidget = NULL;
+       }
+
+       g_pMainViewHandle =
+               (st_VideoListViewMainViewHandle *) calloc(1,
+                                                                                                 sizeof
+                                                                                                 (st_VideoListViewMainViewHandle));
+       g_pMainViewWidget =
+               (st_VideoListViewMainViewWidget *) calloc(1,
+                                                                                                 sizeof
+                                                                                                 (st_VideoListViewMainViewWidget));
+}
+
+
+/*///////////////////////////////////////////////////////////////*/
+/* External APIs*/
+/**
+ *
+ * @param pNaviFrame
+ */
+void mp_list_view_push(void *pNaviFrame)
+{
+       VideoLogInfo("");
+
+       mp_list_view_init_handles();
+       mp_list_view_init_widget(pNaviFrame);
+}
+
+/**
+ *
+ */
+void mp_list_view_destroy(void)
+{
+       if (!g_pMainViewHandle) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return;
+       }
+#ifdef VS_FEATURE_LIST_VIEW
+       mp_normal_view_destroy();
+#endif
+       mp_folder_view_destroy();
+       mp_thumbnail_view_destroy();
+       VideoLogInfo("");
+
+       mp_util_db_reset_all_update_fun();
+       mp_util_db_reset_all_backup_fun();
+
+       mp_ft_ctrl_destroy();
+       mp_ft_ctrl_delete_center_toolbar();
+
+       mp_list_view_free_main_view_widget();
+       mp_util_svc_unset_update_db_cb_func();
+       mp_util_config_ignore_preview_key_changed_cb();
+
+       if (g_pMainViewHandle) {
+               g_pMainViewHandle->pNaviFrameHandle = NULL;
+               g_pMainViewHandle->pNaviFrameItem = NULL;
+               g_pMainViewHandle->nListTabType = LIST_TAB_TYPE_PERSONAL;
+               MP_DEL_TIMER(g_pMainViewHandle->pDbUpdateTimer);
+
+               free(g_pMainViewHandle);
+               g_pMainViewHandle = NULL;
+       }
+}
+
+/**
+ *
+ * @return
+ */
+static bool __mp_list_view_is_top_view(void)
+{
+
+       if (!g_pMainViewHandle || !g_pMainViewWidget) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return FALSE;
+       }
+
+       if (!g_pMainViewHandle->pNaviFrameHandle) {
+               VideoLogInfo("[ERR] No exist naviframe handle.");
+               return FALSE;
+       }
+       if (mp_mgr_get_library_naviframe()) {
+               int count =
+                       eina_list_count(elm_naviframe_items_get
+                                                       (mp_mgr_get_library_naviframe()));
+               VideoLogInfo("eina_list_count = %d", count);
+               return (count == 1);
+       }
+       return FALSE;
+
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @return
+ */
+static char *__mp_list_view_count_layout_tts_cb(void *data,
+                                                                                               Evas_Object * obj)
+{
+       Elm_Object_Item *pItem = NULL;
+       const char *pText = NULL;
+
+       if (g_pMainViewHandle == NULL) {
+               VideoLogError("g_pMainViewHandle == NULL!!!");
+               return NULL;
+       }
+
+       if (g_pMainViewWidget == NULL) {
+               VideoLogError("g_pMainViewWidget == NULL!!!");
+               return NULL;
+       }
+
+       if (g_pMainViewWidget->pListViewTitlelayout == NULL) {
+               VideoLogError
+                       ("g_pMainViewWidget->pListViewTitlelayout == NULL!!!");
+               return NULL;
+       }
+
+       pItem =
+               elm_genlist_first_item_get(g_pMainViewWidget->pVideoGenlistTitle);
+       pText = elm_object_item_part_text_get(pItem, "elm.text.sub");
+       if (pText != NULL) {
+               VideoLogInfo("pText : [%s]", pText);
+               return g_strdup(pText);
+       } else {
+               VideoLogError("pText == NULL!!!");
+       }
+
+       return NULL;
+}
+
+/*   update---------------------------------------------- situation   *
+  *  1,When it is folder view or download view,                                                       *
+  *     only update recently played part;                                                                   *
+  *  2,When it is normal view or thumbnail view,                                                      *
+  *     update both recently played part and genlist item.                                        *
+  *  Consider different situation for clicking recently played part and genlist item,  *
+  *  First to get just played url,Get genlist index by this url,                                    *
+  *  If url is NULL, get genlist index by related view.                                                */
+
+/**
+ *
+ */
+void mp_list_view_update_widget(void)
+{
+       if (!g_pMainViewHandle || !g_pMainViewWidget) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return;
+       }
+
+       int nViewType = mp_view_as_ctrl_get_type();
+       int nVideoCount = mp_util_svc_get_number_of_video_item_by_type();
+       if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+               nVideoCount = mp_util_svc_get_video_folder_size();
+       }
+
+       if (nVideoCount < 1) {
+               VideoLogWarning("No video item");
+               return;
+       }
+
+       mp_ft_ctrl_hide_more_popup();
+
+       if (g_pMainViewHandle->nListTabType == LIST_TAB_TYPE_PERSONAL) {
+               mp_search_view_update_played_item(-1);
+#ifdef VS_FEATURE_LIST_VIEW
+               if (nViewType == MP_LIST_VIEW_AS_NORMAL_LIST) {
+                       int nSelectedVideoItemIndex =
+                               mp_normal_view_get_selected_video_item_index();
+                       if (MP_LIST_SORT_BY_RECENTLY_ADDED == nSortType) {
+                               nSelectedVideoItemIndex = 0;
+                       }
+                       mp_util_svc_update_thumbnail_info(nSelectedVideoItemIndex);
+                       mp_normal_view_update_video_items(nSelectedVideoItemIndex);
+               } else
+#endif
+               if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+                       VideoLogInfo("MP_LIST_VIEW_AS_FOLDER_LIST");
+                       mp_folder_item_view_update_played_item();
+                       mp_search_view_update_genlist();
+               } else if (nViewType == MP_LIST_VIEW_AS_THUMBNAIL_LIST) {
+                       VideoLogInfo("MP_LIST_VIEW_AS_THUMBNAIL_LIST");
+                       mp_thumbnail_view_update_played_item();
+               } else {
+                       VideoLogInfo("Don't need to update video item");
+               }
+
+       }
+
+}
+
+/**
+ *
+ */
+void mp_list_view_update_widget_resume(void)
+{
+       if (!g_pMainViewHandle || !g_pMainViewWidget) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return;
+       }
+
+       __mp_list_view_result_view_update_cb();
+       int nViewType = mp_view_as_ctrl_get_type();
+       mp_search_view_update_played_item(-1);
+       if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+               VideoLogInfo("MP_LIST_VIEW_AS_FOLDER_LIST");
+               mp_folder_item_view_update_played_item();
+               mp_search_view_update_genlist();
+       } else if (nViewType == MP_LIST_VIEW_AS_THUMBNAIL_LIST) {
+               VideoLogInfo("MP_LIST_VIEW_AS_THUMBNAIL_LIST");
+               mp_thumbnail_view_update_played_item();
+       } else {
+               VideoLogInfo("Don't need to update video item");
+       }
+}
+
+/**
+ *
+ */
+void mp_list_view_change_language(void)
+{
+       if (!g_pMainViewHandle || !g_pMainViewWidget) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       elm_object_item_domain_translatable_part_text_set
+               (g_pMainViewHandle->pNaviFrameItem, "elm.text.title", PACKAGE,
+                VIDEOS_TITLE_VIDEO);
+#ifdef VS_FEATURE_LIST_VIEW
+       mp_normal_view_change_language();
+#endif
+       mp_folder_item_view_change_language();
+       mp_remove_view_change_language();
+       mp_sort_ctrl_change_language();
+       mp_folder_view_change_language();
+       mp_view_ctrl_change_language();
+       mp_search_view_change_language();
+       mp_share_view_change_language();
+       mp_select_view_change_language();
+       mp_view_as_ctrl_change_language();
+       mp_option_ctrl_change_language();
+       mp_list_view_update_count_layout();
+       mp_auto_play_ctrl_change_language();
+}
+
+/**
+ *
+ */
+void mp_list_view_change_color(void)
+{
+       if (!g_pMainViewHandle || !g_pMainViewWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+}
+
+/**
+ *
+ */
+void mp_list_view_destroy_player(void)
+{
+       mp_launch_video_stop();
+}
diff --git a/src/view/mp-video-list-view-normal.c b/src/view/mp-video-list-view-normal.c
new file mode 100755 (executable)
index 0000000..f491fe7
--- /dev/null
@@ -0,0 +1,1276 @@
+/*
+ * Copyright (c) 2020 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 <app.h>
+#include <glib.h>
+#include <unistd.h>
+#include <stdbool.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include "vp-util.h"
+#include "vp-file-util.h"
+#include "mp-util.h"
+#ifdef ENABLE_DRM_FEATURE
+#include "mp-drm-ctrl.h"
+#endif
+#include "mp-video-log.h"
+#include "mp-util-media-service.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+
+#include "mp-footer-toolbar.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-view-common.h"
+#include "mp-video-list-view-normal.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-launching-video-displayer.h"
+#include "mp-video-list-option-ctrl.h"
+#include "mp-video-rename-ctrl.h"
+#include "mp-external-ug.h"
+#include "videos-view-mgr.h"
+#include "mp-video-rename-ctrl.h"
+#include "mp-video-info-ctrl.h"
+#include "mp-video-list-view-main.h"
+#include "mp-video-nocontent-layout.h"
+#include "mp-video-list-personal-ctrl.h"
+#include "mp-video-detail-view.h"
+#include "mp-util-preference.h"
+#include "mp-util-config.h"
+#include "mp-util-widget-ctrl.h"
+
+#ifdef VS_FEATURE_LIST_VIEW
+typedef struct {
+       st_VideoListViewMainViewHandle *pMainHandle;
+       st_VideoListViewMainViewWidget *pMainWidget;
+       UpdateListItemsCbFunc fUpdateListItemUserCb;
+
+       Evas_Object *pVideosGenlist;
+       Evas_Object *pNocontentlayout;
+       Elm_Genlist_Item_Class *pVideoList_Itc;
+
+       Eina_List *pVideoItemList;
+
+       int nSelectedVideoItem;
+       bool bRunLongPress;
+
+} stNormalView;
+
+
+static stNormalView *g_pNormalView = NULL;
+
+/**
+ *
+ */
+void __mp_normal_view_create_no_content()
+{
+       if (!g_pNormalView) {
+               VideoLogError("");
+               return;
+       }
+
+       if (!g_pNormalView->pNocontentlayout) {
+               g_pNormalView->pNocontentlayout =
+                       mp_create_nocontent_layout(g_pNormalView->
+                                                                          pMainWidget->pListViewBaselayout,
+                                                                          VIDEOS_NOCONTENT_MSG_NO_VIDEOS_IDS,
+                                                                          VIDEOS_NOCONTENT_MSG_NO_VIDEOS_DESC_IDS);
+               elm_object_part_content_unset(g_pNormalView->
+                                                                         pMainWidget->pListViewBaselayout,
+                                                                         SWALLOW_LISTVIEW_CONTENT);
+               if (g_pNormalView->pVideosGenlist) {
+                       evas_object_hide(g_pNormalView->pVideosGenlist);
+               }
+               evas_object_show(g_pNormalView->pMainWidget->pListViewBaselayout);
+               elm_object_part_content_set(g_pNormalView->
+                                                                       pMainWidget->pListViewBaselayout,
+                                                                       SWALLOW_LISTVIEW_CONTENT,
+                                                                       g_pNormalView->pNocontentlayout);
+       }
+
+}
+
+/**
+ *
+ * @return
+ */
+static bool __mp_normal_view_clear_genlist_item(void)
+{
+       if (!g_pNormalView) {
+               VideoLogError("");
+               return FALSE;
+       }
+       if (g_pNormalView->pVideoItemList) {
+               Elm_Object_Item *pTmpVideoGenlistItem = NULL;
+               EINA_LIST_FREE(g_pNormalView->pVideoItemList, pTmpVideoGenlistItem) {
+                       if (pTmpVideoGenlistItem) {
+                               int nIndex =
+                                       (int) elm_object_item_data_get(pTmpVideoGenlistItem);
+                               mp_util_svc_cancel_thumbnail_update(nIndex);
+                               elm_object_item_del(pTmpVideoGenlistItem);
+                       }
+
+                       pTmpVideoGenlistItem = NULL;
+               }
+
+               g_pNormalView->pVideoItemList = NULL;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ */
+void mp_normal_view_destroy(void)
+{
+       VideoLogInfo("");
+
+       if (g_pNormalView) {
+               __mp_normal_view_clear_genlist_item();
+
+               MP_DEL_ITC(g_pNormalView->pVideoList_Itc);
+               g_pNormalView->bRunLongPress = FALSE;
+               g_pNormalView->fUpdateListItemUserCb = NULL;
+               g_pNormalView->pMainHandle = NULL;
+               g_pNormalView->pMainWidget = NULL;
+               g_pNormalView->nSelectedVideoItem = -1;
+               MP_DEL_OBJ(g_pNormalView->pNocontentlayout);
+               MP_DEL_OBJ(g_pNormalView->pVideosGenlist);
+       }
+       MP_FREE_STRING(g_pNormalView);
+
+}
+
+/**
+ *
+ * @param eUpdateType
+ */
+static void __mp_normal_view_reset(MpListUpdateType eUpdateType)
+{
+       if (g_pNormalView) {
+               __mp_normal_view_clear_genlist_item();
+
+               MP_DEL_ITC(g_pNormalView->pVideoList_Itc);
+               g_pNormalView->bRunLongPress = FALSE;
+               g_pNormalView->fUpdateListItemUserCb = NULL;
+               g_pNormalView->pMainHandle = NULL;
+               g_pNormalView->pMainWidget = NULL;
+               if (g_pNormalView->pVideosGenlist) {
+                       elm_genlist_clear(g_pNormalView->pVideosGenlist);
+               }
+
+       }
+
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ */
+void mp_normal_view_update_video_items(int nVideoItemIndex)
+{
+       if (!g_pNormalView) {
+               VideoLogError("");
+               return;
+       }
+
+       if (!g_pNormalView->pVideoItemList) {
+               VideoLogWarning
+                       ("[WARNING] g_pNormalView->pVideoItemList is not existed.");
+               return;
+       }
+
+       Elm_Object_Item *pTmpVideoGenlistItem =
+               (Elm_Object_Item *) eina_list_nth(g_pNormalView->pVideoItemList,
+                                                                                 nVideoItemIndex);
+       if (pTmpVideoGenlistItem) {
+               elm_genlist_item_selected_set(pTmpVideoGenlistItem, EINA_FALSE);
+               Evas_Object *pIconContent =
+                       elm_object_item_part_content_get(pTmpVideoGenlistItem,
+                                                                                        "elm.icon.1");
+               if (!pIconContent) {
+                       VideoLogError("");
+                       return;
+               }
+               Evas_Object *pProgressbar =
+                       elm_layout_content_get(pIconContent, "elm.progressbar.icon");
+               if (pProgressbar) {
+                       elm_layout_content_unset(pIconContent,
+                                                                        "elm.progressbar.icon");
+                       MP_DEL_OBJ(pProgressbar);
+               }
+
+               elm_genlist_item_fields_update(pTmpVideoGenlistItem,
+                                                                          "elm.text.sub.left.bottom",
+                                                                          ELM_GENLIST_ITEM_FIELD_TEXT);
+       }
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_normal_view_is_top_view(void)
+{
+       VideoLogInfo("");
+
+
+       if (!g_pNormalView || !g_pNormalView->pMainHandle) {
+               VideoLogError("g_pNormalView->pMainHandle is NULL");
+               return FALSE;
+       }
+       if (!g_pNormalView->pMainHandle->pNaviFrameHandle) {
+               VideoLogInfo("[ERR] No exist naviframe handle.");
+               return FALSE;
+       }
+       if (mp_mgr_get_library_naviframe()) {
+               int count =
+                       eina_list_count(elm_naviframe_items_get
+                                                       (mp_mgr_get_library_naviframe()));
+               return (count == 1);
+       }
+       return FALSE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_normal_view_warning_popup_cb(void *pUserData,
+                                                                                         Evas_Object * pObject,
+                                                                                         void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_util_delete_popup_handle();
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_normal_view_is_normal_list(void)
+{
+       if (!g_pNormalView || !g_pNormalView->pMainHandle) {
+               VideoLogError("");
+               return FALSE;
+       }
+
+       if (mp_view_as_ctrl_get_type() != MP_LIST_VIEW_AS_NORMAL_LIST) {
+               VideoLogError("Invalid to call realize function.");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+ /**/
+/*////////////////////////////////////////////////////////////*/
+/*////////////////////////////////////////////////////////////*/
+ /**/
+/**
+ *
+ * @param nError
+ * @param szPath
+ * @param pUserData
+ */
+       void mp_normal_view_thumbnail_update_cb(int nError, const char *szPath,
+                                                                                       void *pUserData)
+{
+       if (!g_pNormalView) {
+               VideoLogError("");
+               return;
+       }
+
+       if (mp_normal_view_is_normal_list() == FALSE) {
+               VideoLogError("Current list is not for normal video item.");
+               return;
+       }
+
+       int nVideoItemIndex = (int) pUserData;
+
+       VideoLogInfo("Index : %d", nVideoItemIndex);
+
+       if (!g_pNormalView->pMainHandle) {
+               VideoLogError("g_pNormalView->pMainHandle is not existed.");
+               return;
+       }
+
+       if (!g_pNormalView->pMainWidget) {
+               VideoLogError("g_pNormalView->pMainWidget is not existed.");
+               return;
+       }
+
+       if (!mp_normal_view_is_top_view()) {
+               VideoLogError("Main list view is not top view.");
+               return;
+       }
+
+       mp_util_svc_update_thumbnail_info(nVideoItemIndex);
+
+       if (g_pNormalView->pVideoItemList) {
+               Elm_Object_Item *pTmpVideoGenlistItem =
+                       (Elm_Object_Item *)
+                       eina_list_nth(g_pNormalView->pVideoItemList,
+                                                 nVideoItemIndex);
+               if (pTmpVideoGenlistItem) {
+                       elm_genlist_item_fields_update(pTmpVideoGenlistItem,
+                                                                                  "elm.icon.1",
+                                                                                  ELM_GENLIST_ITEM_FIELD_CONTENT);
+               } else {
+                       VideoLogError
+                               ("[ERR] Fail to update genlist filed thumbnail icon.");
+               }
+       } else {
+               VideoLogError("[ERR] No exist g_pNormalView->pVideoItemList.");
+       }
+}
+
+ /**/
+/*////////////////////////////////////////////////////////////*/
+/*////////////////////////////////////////////////////////////*/
+/* Smart callback of Genlist about normal.*/
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_normal_view_genlist_language_changed_cb(void *pUserData,
+                                                                                                                Evas_Object *
+                                                                                                                pObject,
+                                                                                                                void *pEventInfo)
+{
+       if (mp_normal_view_is_normal_list() == FALSE) {
+               VideoLogError("Current list is not for normal video item.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       elm_genlist_realized_items_update(pObject);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_normal_view_realize_genlist_item_cb(void *pUserData,
+                                                                                                        Evas_Object *
+                                                                                                        pObject,
+                                                                                                        void *pEventInfo)
+{
+       if (!g_pNormalView) {
+               VideoLogError("");
+               return;
+       }
+
+       if (!pEventInfo) {
+               VideoLogError("Invalid pEveninfo.");
+               return;
+       }
+
+       int nIndexGenlist = elm_genlist_item_index_get(pEventInfo);
+
+       if (nIndexGenlist < 0) {
+               VideoLogError("nIndexGenlist < 0 = RETURN");
+               return;
+       }
+
+       if ((nIndexGenlist < 0)
+               || (nIndexGenlist >=
+                       mp_util_svc_get_number_of_video_item_by_type())) {
+               VideoLogError("nIndexGenlist < 0 = RETURN = %d", nIndexGenlist);
+               return;
+       }
+
+       char *pThumbIconUri = mp_util_svc_get_video_thumbnail(nIndexGenlist);
+       if (!pThumbIconUri) {
+               VideoLogInfo("nIndexGenlist : %d", nIndexGenlist);
+               mp_util_svc_register_thumbnail_update_func(nIndexGenlist, (void *)
+                                                                                                  mp_normal_view_thumbnail_update_cb,
+                                                                                                  (void *)
+                                                                                                  nIndexGenlist);
+       } else {
+               free(pThumbIconUri);
+               pThumbIconUri = NULL;
+       }
+}
+
+/*////////////////////////////////////////////////////////////*/
+/* Content/Text Callback of Elm_Genlist_Item_Class.*/
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+char *mp_normal_view_get_label_of_video_item_cb(const void *pUserData,
+                                                                                               Evas_Object * pObject,
+                                                                                               const char *pPart)
+{
+       int nVideoItemIndex = (int) pUserData;
+
+       if (!strcmp(pPart, "elm.text.main.left.top")) {
+               char *szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+               char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+               if (szTitle) {
+                       free(szTitle);
+                       szTitle = NULL;
+               }
+
+               return szTitleUtf8;
+       } else if (!strcmp(pPart, "elm.text.sub.left.bottom")) {
+               return mp_util_svc_get_duration_str_time(nVideoItemIndex);
+       }
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *mp_normal_view_get_icon_of_video_item_cb(const void
+                                                                                                         *pUserData,
+                                                                                                         Evas_Object *
+                                                                                                         pObject,
+                                                                                                         const char *pPart)
+{
+       Evas_Object *pLayout = NULL;
+
+       int nVideoItemIndex = (int) pUserData;
+       if (!pPart || !pObject) {
+               return NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje", VIDEO_CUSTOM_THEME);
+       free(path);
+       if (!strcmp(pPart, "elm.icon.1")) {
+               VideoLogInfo("pPart: elm.icon.1 - thumbnail");
+
+               char *pThumbIconUri =
+                       mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+               Evas_Object *pBg = NULL;
+
+               pLayout = elm_layout_add(pObject);
+               elm_layout_file_set(pLayout, edj_path,
+                                                       "listview.thumbnail.layout");
+
+               if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+                       MP_FREE_STRING(pThumbIconUri);
+               }
+
+               pBg =
+                       mp_util_create_preload_image(pLayout, pThumbIconUri,
+                                                                                VIDEO_ICON_WIDTH);
+               elm_layout_content_set(pLayout, "elm.thumbnail.icon", pBg);
+
+               if (pBg)
+                       evas_object_show(pBg);
+
+               MP_FREE_STRING(pThumbIconUri);
+
+               if (!mp_util_create_video_sub_icon(pLayout, nVideoItemIndex)) {
+                       VideoLogWarning("Local File or Create sub icon is failed.",
+                                                       nVideoItemIndex);
+               }
+
+               if (pLayout) {
+                       evas_object_show(pLayout);
+               }
+
+               return pLayout;
+       }
+
+       MP_DEL_OBJ(pLayout);
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *mp_normal_view_get_icon_of_no_item_cb(const void *pUserData,
+                                                                                                  Evas_Object * pObject,
+                                                                                                  const char *pPart)
+{
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_NO_ITEM_EDJ);
+       free(path);
+       if (!strcmp(pPart, "elm.icon")) {
+               int width = NO_ITEM_GENLIST_WIDTH * elm_config_scale_get();
+               int height = NO_ITEM_GENLIST_HEIGHT * elm_config_scale_get();
+
+               Evas_Object *pNoItemLayout = NULL;
+               pNoItemLayout = elm_layout_add(pObject);
+               elm_layout_file_set(pNoItemLayout, edj_path,
+                                                       GENLIST_NOITEM_EDJ_GROUP);
+               evas_object_size_hint_min_set(pNoItemLayout, width, height);
+
+               elm_object_part_text_set(pNoItemLayout,
+                                                                SWALLOW_LISTVIEW_NO_ITEM_TEXT,
+                                                                VIDEOS_NOCONTENT_MSG_NO_VIDEOS_DESC);
+               evas_object_show(pNoItemLayout);
+               return pNoItemLayout;
+       }
+
+       return NULL;
+}
+
+
+/*////////////////////////////////////////////////////////////*/
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+       static void mp_normal_view_select_video_item_cb(void *pUserData,
+                                                                                                       Evas_Object * pObject,
+                                                                                                       void *pEventInfo)
+{
+       if (!pObject) {
+               VideoLogError("[ERR]No have pUserData");
+               return;
+       }
+
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+       if (!pSelectedItem) {
+               VideoLogInfo("pSelectedItem is NULL");
+               return;
+       } else {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+
+       if (g_pNormalView->bRunLongPress) {
+               VideoLogInfo("run long pressed event");
+               g_pNormalView->bRunLongPress = false;
+
+               return;
+       }
+
+       if (!mp_launch_video_allow_check()) {
+               return;
+       }
+       Evas_Object *pPopup = evas_object_data_get(pObject, "popup");   /* Get popup */
+       if (pPopup) {
+               VideoLogError("long press is called");
+               return;                                 /* If popup exists, do nothing */
+       }
+
+       int nTotal = elm_genlist_items_count(pObject);
+
+       int nVideoItemIndex = (int) elm_object_item_data_get(pSelectedItem);
+
+       if (nVideoItemIndex < 0) {
+               VideoLogError("nGenlistItemIndex is invalid");
+               return;
+       }
+
+       VideoLogInfo("nVideoIndex:ngenIndex : %d:%d", nVideoItemIndex, nTotal);
+
+
+       if (nVideoItemIndex < 0) {
+               VideoLogWarning("nVideoItemIndex < 0 ===>>> RETURN");
+               return;
+       }
+
+       if (!mp_util_call_off()) {
+               mp_util_ticker_toast_popup
+                       (VIDEOS_NOTIPOP_MSG_UNABLE_TO_PLAY_VIDEO_DURING_CALL, false,
+                        false);
+               return;
+       }
+
+       g_pNormalView->nSelectedVideoItem = nVideoItemIndex;
+
+       char *szMediaUrl = mp_util_svc_get_video_url(nVideoItemIndex);
+
+       if (szMediaUrl) {
+               if (!mp_util_check_local_file_exist(szMediaUrl)) {
+                       mp_util_notify_popup(NULL, VIDEOS_COMMON_HEADER_ERROR,
+                                                                VIDEOS_NOTIPOP_MSG_FILE_NOT_EXIST,
+                                                                __mp_normal_view_warning_popup_cb);
+                       free(szMediaUrl);
+                       return;
+               }
+               mp_launch_video_play(szMediaUrl, MP_PLAYER_TYPE_VIDEO, NULL);
+       } else {
+               VideoLogInfo("[Err] Fail to get video uri from media service.");
+               return;
+       }
+
+       if (szMediaUrl) {
+               free(szMediaUrl);
+       }
+}
+
+ /**/
+/*////////////////////////////////////////////////////////////*/
+/*////////////////////////////////////////////////////////////*/
+/* Append item into genlist.*/
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_normal_view_video_item_del_cb(void *data,
+                                                                                          Evas_Object * obj,
+                                                                                          void *event_info)
+{
+       if (!g_pNormalView) {
+               VideoLogError("");
+               return;
+       }
+
+       if (!g_pNormalView->pVideoItemList || !event_info) {
+               VideoLogError("g_pMainViewWidge is NULL");
+               return;
+       }
+
+       int nIndexGenlist = 0;
+       Elm_Object_Item *pCurrentItem = (Elm_Object_Item *) event_info;
+
+       Eina_List *pCurList = NULL;
+       Elm_Object_Item *pTmpVideoItem = NULL;
+       EINA_LIST_FOREACH(g_pNormalView->pVideoItemList, pCurList,
+                                         pTmpVideoItem) {
+               if (pCurrentItem == pTmpVideoItem) {
+                       mp_util_svc_cancel_thumbnail_update(nIndexGenlist);
+                       VideoLogInfo("testestesteste=%p", pCurrentItem);
+                       pTmpVideoItem = NULL;
+                       pCurList->data = NULL;
+                       break;
+               }
+               nIndexGenlist++;
+       }
+}
+
+/**
+ *
+ * @param pVideosGenlist
+ */
+void mp_normal_view_append_video_items(void *pVideosGenlist)
+{
+       VideoLogInfo("");
+       if (!g_pNormalView) {
+               VideoLogError("");
+               return;
+       }
+
+       int nIndex = 0;
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       Elm_Object_Item *pTmpVideoGenlistItem = NULL;
+
+       MP_DEL_ITC(g_pNormalView->pVideoList_Itc);
+       g_pNormalView->pVideoList_Itc = elm_genlist_item_class_new();
+       g_pNormalView->pVideoList_Itc->item_style = "2line.top";
+       g_pNormalView->pVideoList_Itc->func.text_get =
+               (void *) mp_normal_view_get_label_of_video_item_cb;
+       g_pNormalView->pVideoList_Itc->func.content_get =
+               (void *) mp_normal_view_get_icon_of_video_item_cb;
+       g_pNormalView->pVideoList_Itc->func.state_get = NULL;
+       g_pNormalView->pVideoList_Itc->func.del = NULL;
+       g_pNormalView->pVideoList_Itc->decorate_item_style = NULL;
+
+       for (nIndex = 0; nIndex < nVideoListSize; nIndex++) {
+               pTmpVideoGenlistItem =
+                       elm_genlist_item_append(pVideosGenlist,
+                                                                       g_pNormalView->pVideoList_Itc,
+                                                                       (void *) nIndex, NULL,
+                                                                       ELM_GENLIST_ITEM_NONE,
+                                                                       mp_normal_view_select_video_item_cb,
+                                                                       NULL);
+               g_pNormalView->pVideoItemList =
+                       eina_list_append(g_pNormalView->pVideoItemList,
+                                                        pTmpVideoGenlistItem);
+               elm_object_item_data_set(pTmpVideoGenlistItem, (void *) nIndex);
+               elm_object_item_del_cb_set(pTmpVideoGenlistItem,
+                                                                  __mp_normal_view_video_item_del_cb);
+       }
+}
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_normal_view_share_via_cb(void *pUserData,
+                                                                                 Evas_Object * pObject,
+                                                                                 void *pEventInfo)
+{
+       mp_option_ctrl_delete_handle();
+
+       if (!g_pNormalView->pMainHandle) {
+               VideoLogInfo
+                       ("g_pNormalView->pMainHandle of list view are not existed.");
+               return;
+       }
+       VideoLogInfo("");
+
+       int videoItemIndex = (int) pUserData;
+       char *pVideo_url = mp_util_svc_get_video_url(videoItemIndex);
+#ifdef ENABLE_DRM_FEATURE
+       bool bDRMLock = FALSE;
+       mp_util_check_drm_lock((const char *) pVideo_url, &bDRMLock);
+       if (bDRMLock) {
+               MP_FREE_STRING(pVideo_url);
+               mp_util_notify_popup(NULL, VIDEOS_COMMON_HEADER_ERROR,
+                                                        VIDEOS_NOTIPOP_MSG_UNABLE_TO_SHARE_DRM_FILE,
+                                                        __mp_normal_view_warning_popup_cb);
+               return;
+       }
+#endif
+       if (g_pNormalView->pMainHandle) {
+               mp_external_service_share_panel(pVideo_url);    /*,  g_pNormalView->pMainHandle->pNaviFrameHandle); */
+       }
+       MP_FREE_STRING(pVideo_url);
+}
+
+static void __mp_normal_view_add_to_home_cb(void *pUserData,
+                                                                                       Evas_Object * pObject,
+                                                                                       void *pEventInfo)
+{
+       mp_option_ctrl_delete_handle();
+
+       if (!g_pNormalView->pMainHandle) {
+               VideoLogError
+                       ("g_pNormalView->pMainHandle of list view are not existed.");
+               return;
+       }
+
+       int nVideoItemIndex = (int) pUserData;
+
+       VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+
+       char *pVideo_id = mp_util_svc_get_video_id_by_index(nVideoItemIndex);
+       char *pVideo_thumbnail =
+               mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+
+       if (pVideo_id) {
+               {
+                       mp_util_status_bar_noti_popup_show(MP_COM_OPT_UNABLE_ADDED);
+               }
+       } else {
+               VideoLogError("[ERR] No exist file uri.");
+       }
+       MP_FREE_STRING(pVideo_id);
+       MP_FREE_STRING(pVideo_thumbnail);
+
+       /*to do share */
+}
+#endif
+
+/**
+ *
+ */
+void mp_normal_view_result_user_cb(void)
+{
+       VideoLogInfo("");
+       if (!g_pNormalView) {
+               VideoLogError("");
+               return;
+       }
+       if (g_pNormalView->fUpdateListItemUserCb) {
+               g_pNormalView->fUpdateListItemUserCb(LIST_UPDATE_TYPE_ALL);
+       }
+}
+
+#ifdef ENABLE_LONGPRESS
+static void mp_normal_view_detail_video_popup_cb(void *pUserData,
+                                                                                                Evas_Object * pObject,
+                                                                                                void *pEventInfo)
+{
+       mp_util_delete_popup_handle();
+}
+
+static void mp_normal_view_detail_mouse_back_popup_cb(void *pUserData,
+                                                                                                         Evas * pEvas,
+                                                                                                         Evas_Object *
+                                                                                                         pObject,
+                                                                                                         void *pEventInfo)
+{
+       Evas_Event_Mouse_Up *pEvent = pEventInfo;
+       if (!pEvent) {
+               return;
+       }
+
+       if (pEvent->button == 3) {
+               mp_util_delete_popup_handle();
+       }
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_normal_view_detail_key_back_popup_cb(void *pUserData,
+                                                                                        Evas * pEvas,
+                                                                                        Evas_Object * pObject,
+                                                                                        void *pEventInfo)
+{
+       Evas_Event_Key_Down *pEvent = pEventInfo;
+       if (!pEvent) {
+               return;
+       }
+
+       if (!g_strcmp0(pEvent->keyname, "XF86Back")) {
+               mp_util_delete_popup_handle();
+       }
+}
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_normal_view_delete_video_items(int nVideoItemIndex)
+{
+       if (!g_pNormalView->pVideoItemList || !g_pNormalView->pMainHandle) {
+               VideoLogWarning
+                       ("[WARNING] g_pNormalView->pVideoItemList is not existed.");
+               return;
+       }
+
+       Elm_Object_Item *pTmpVideoGenlistItem =
+               (Elm_Object_Item *) eina_list_nth(g_pNormalView->pVideoItemList,
+                                                                                 nVideoItemIndex);
+       if (!pTmpVideoGenlistItem) {
+               VideoLogWarning
+                       ("[WARNING] g_pNormalView->pVideoItemList is not existed.");
+               return;
+       }
+
+
+       Elm_Object_Item *pNextGenlistItem = NULL;
+       Elm_Object_Item *pCurrGenlistItem =
+               elm_genlist_item_next_get(pTmpVideoGenlistItem);
+
+       g_pNormalView->pVideoItemList =
+               eina_list_remove(g_pNormalView->pVideoItemList,
+                                                pTmpVideoGenlistItem);
+       elm_object_item_del(pTmpVideoGenlistItem);
+
+       if (!pCurrGenlistItem) {
+               return;
+       }
+
+       while (pCurrGenlistItem) {
+               pNextGenlistItem = elm_genlist_item_next_get(pCurrGenlistItem);
+               g_pNormalView->pVideoItemList =
+                       eina_list_remove(g_pNormalView->pVideoItemList,
+                                                        pCurrGenlistItem);
+               elm_object_item_del(pCurrGenlistItem);
+               pCurrGenlistItem = pNextGenlistItem;
+       }
+
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       int nIndex = nVideoItemIndex;
+       for (nIndex = nVideoItemIndex; nIndex < nVideoListSize; nIndex++) {
+               pTmpVideoGenlistItem =
+                       elm_genlist_item_append(g_pNormalView->pVideosGenlist,
+                                                                       g_pNormalView->pVideoList_Itc,
+                                                                       (void *) nIndex, NULL,
+                                                                       ELM_GENLIST_ITEM_NONE,
+                                                                       mp_normal_view_select_video_item_cb,
+                                                                       NULL);
+               g_pNormalView->pVideoItemList =
+                       eina_list_append(g_pNormalView->pVideoItemList,
+                                                        pTmpVideoGenlistItem);
+               elm_object_item_del_cb_set(pTmpVideoGenlistItem,
+                                                                  __mp_normal_view_video_item_del_cb);
+       }
+
+       if (nVideoListSize == 0) {
+               if (g_pNormalView->fUpdateListItemUserCb) {
+                       g_pNormalView->fUpdateListItemUserCb(LIST_UPDATE_TYPE_VIEW);
+               }
+       }
+
+
+}
+
+
+static void mp_normal_view_respones_delete_popup_cb(void *pUserData,
+                                                                                                       Evas_Object * pObject,
+                                                                                                       void *pEventInfo)
+{
+       mp_util_delete_popup_handle();
+
+       int nVideoItemIndex = (int) pUserData;
+
+       VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+       if (nVideoItemIndex < 0
+               || nVideoItemIndex >=
+               mp_util_svc_get_video_list_size_for_checking_index()) {
+               VideoLogError("[ERR] list item index.");
+               return;
+       }
+
+       char *szFileUrl = mp_util_svc_get_video_url(nVideoItemIndex);
+       if (szFileUrl) {
+
+               char *szMediaUrlForPreview = mp_util_config_get_preview();
+               if (szMediaUrlForPreview) {
+                       if (!g_strcmp0(szMediaUrlForPreview, szFileUrl)) {
+                               VideoLogInfo("Erase preview url.");
+                               mp_util_config_set_preview(NULL);
+                       }
+               }
+               MP_FREE_STRING(szMediaUrlForPreview);
+               VideoSecureLogInfo("Delete file url : %s", szFileUrl);
+
+               vp_file_unlink(szFileUrl);
+               free(szFileUrl);
+               szFileUrl = NULL;
+               mp_util_svc_remove_item_by_list_index(nVideoItemIndex);
+
+               __mp_normal_view_delete_video_items(nVideoItemIndex);
+
+               mp_list_view_update_count_layout();
+               int nCount = mp_util_svc_get_number_of_video_item_by_type();
+               if (nCount < 1) {
+                       __mp_normal_view_create_no_content();
+               }
+       }
+}
+
+static void __mp_normal_view_delete_cb(void *pUserData,
+                                                                          Evas_Object * pObject,
+                                                                          void *pEventInfo)
+{
+       mp_option_ctrl_delete_handle();
+
+       if (!g_pNormalView->pMainHandle) {
+               VideoLogError
+                       ("g_pNormalView->pMainHandle of list view are not existed.");
+               return;
+       }
+
+       int nVideoItemIndex = (int) pUserData;
+       MpListViewAsType type = MP_LIST_VIEW_AS_NORMAL_LIST;
+       mp_util_remove_question_popup(nVideoItemIndex, type,
+                                                                 mp_normal_view_respones_delete_popup_cb,
+                                                                 mp_normal_view_detail_video_popup_cb,
+                                                                 mp_normal_view_detail_mouse_back_popup_cb,
+                                                                 mp_normal_view_detail_mouse_back_popup_cb);
+
+}
+
+static void __mp_normal_view_result_pop_up()
+{
+       if (!g_pNormalView) {
+               VideoLogError("");
+               return;
+       }
+
+       if (!g_pNormalView->pMainHandle) {
+               VideoLogError("Invalid list and object");
+               return;
+       }
+       evas_object_data_set(g_pNormalView->pVideosGenlist, "popup", NULL);
+       elm_object_scroll_freeze_pop(g_pNormalView->pVideosGenlist);
+}
+
+ /**/
+/*////////////////////////////////////////////////////////////*/
+static void __mp_normal_view_long_pressed_item_cb(void *data,
+                                                                                                 Evas_Object * obj,
+                                                                                                 void *event_info)
+{
+       if (!g_pNormalView || !event_info || !obj) {
+               VideoLogError("Invalid list and object");
+               return;
+       }
+       g_pNormalView->bRunLongPress = true;
+
+       Elm_Object_Item *long_item = (Elm_Object_Item *) event_info;
+       int nVideoItemIndex = elm_genlist_item_index_get(long_item);
+       if (nVideoItemIndex < 0) {
+               VideoLogError("nGenlistItemIndex is invalid");
+               return;
+       }
+
+       if (nVideoItemIndex < 0
+               || nVideoItemIndex >=
+               mp_util_svc_get_video_list_size_for_checking_index()) {
+               VideoSecureLogError("nVideoItemIndex is invalid");
+               return;
+       }
+
+       st_RegisteOptionCbFunc *pRegisteCbFunc =
+               (st_RegisteOptionCbFunc *) calloc(1,
+                                                                                 sizeof(st_RegisteOptionCbFunc));
+       if (pRegisteCbFunc) {
+               pRegisteCbFunc->ShareViaItemCb =
+                       (void *) __mp_normal_view_share_via_cb;
+               pRegisteCbFunc->AddToHomeItemCb =
+                       (void *) __mp_normal_view_add_to_home_cb;
+               pRegisteCbFunc->DeleteItemCb = (void *) __mp_normal_view_delete_cb;
+       }
+
+       VideoLogDebug("nVideoItemIndex=:%d", nVideoItemIndex);
+
+       char *szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+       mp_option_ctrl_show(g_pNormalView->pMainHandle->pNaviFrameHandle,
+                                               (const char *) szTitle, nVideoItemIndex,
+                                               pRegisteCbFunc, __mp_normal_view_result_pop_up,
+                                               NULL, 0);
+       if (mp_option_ctrl_get_handle()) {
+               evas_object_data_set(g_pNormalView->pVideosGenlist, "popup",
+                                                        mp_option_ctrl_get_handle());
+               elm_object_scroll_freeze_push(g_pNormalView->pVideosGenlist);
+       }
+
+       MP_FREE_STRING(pRegisteCbFunc);
+       MP_FREE_STRING(szTitle);
+}
+#endif
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_normal_view_pressed_item_cb(void *data,
+                                                                                        Evas_Object * obj,
+                                                                                        void *event_info)
+{
+       if (!g_pNormalView) {
+               VideoLogError("Invalid list");
+               return;
+       }
+       VideoLogInfo("");
+       g_pNormalView->bRunLongPress = false;
+}
+
+/**
+ *
+ * @param pVideosGenlist
+ */
+static void __mp_normal_view_del_genlist_cb(Evas_Object * pVideosGenlist)
+{
+       if (!pVideosGenlist) {
+               VideoSecureLogError("pVideosGenlist is NULL");
+               return;
+       }
+       evas_object_smart_callback_del(pVideosGenlist, "language,changed",
+                                                                  __mp_normal_view_genlist_language_changed_cb);
+       evas_object_smart_callback_del(pVideosGenlist, "realized",
+                                                                  __mp_normal_view_realize_genlist_item_cb);
+#ifdef ENABLE_LONGPRESS
+       evas_object_smart_callback_del(pVideosGenlist, "longpressed",
+                                                                  __mp_normal_view_long_pressed_item_cb);
+#endif
+       evas_object_smart_callback_del(pVideosGenlist, "pressed",
+                                                                  __mp_normal_view_pressed_item_cb);
+}
+
+/**
+ *
+ * @param pVideosGenlist
+ */
+static void __mp_normal_view_add_genlist_cb(Evas_Object * pVideosGenlist)
+{
+       if (!pVideosGenlist) {
+               VideoSecureLogError("pVideosGenlist is NULL");
+               return;
+       }
+
+       evas_object_smart_callback_add(pVideosGenlist, "language,changed",
+                                                                  __mp_normal_view_genlist_language_changed_cb,
+                                                                  NULL);
+       evas_object_smart_callback_add(pVideosGenlist, "realized",
+                                                                  __mp_normal_view_realize_genlist_item_cb,
+                                                                  NULL);
+#ifdef ENABLE_LONGPRESS
+       evas_object_smart_callback_add(pVideosGenlist, "longpressed",
+                                                                  __mp_normal_view_long_pressed_item_cb,
+                                                                  NULL);
+#endif
+       evas_object_smart_callback_add(pVideosGenlist, "pressed",
+                                                                  __mp_normal_view_pressed_item_cb, NULL);
+
+}
+
+/*//////////////////////////////////////////////////*/
+/* External APIs*/
+/**
+ *
+ * @param pMainViewHandle
+ * @param pMainViewWidget
+ * @param eUpdateType
+ * @param pUpdateVideoListUserCb
+ * @return
+ */
+bool mp_normal_view_arrange_list_item(void *pMainViewHandle,
+                                                                         void *pMainViewWidget,
+                                                                         MpListUpdateType eUpdateType,
+                                                                         UpdateListItemsCbFunc
+                                                                         pUpdateVideoListUserCb)
+{
+       if (!pMainViewHandle || !pMainViewWidget || !pUpdateVideoListUserCb) {
+               VideoLogError
+                       ("pMainViewHandle or pMainViewHandle or pUpdateVideoListUserCb are not existed.");
+               return FALSE;
+       }
+
+       if (eUpdateType == LIST_UPDATE_TYPE_NONE) {
+               VideoLogInfo("don't need to update and create");
+               return TRUE;
+       }
+
+       __mp_normal_view_reset(eUpdateType);
+
+       if (!g_pNormalView) {
+               g_pNormalView = (stNormalView *) calloc(1, sizeof(stNormalView));
+       }
+
+       g_pNormalView->pMainHandle = pMainViewHandle;
+       g_pNormalView->pMainWidget = pMainViewWidget;
+       g_pNormalView->fUpdateListItemUserCb = pUpdateVideoListUserCb;
+
+       int nVideoListSize = 0;
+
+       if (eUpdateType == LIST_UPDATE_TYPE_ALL
+               || eUpdateType == LIST_UPDATE_TYPE_DATA) {
+               mp_util_svc_destory_video_list();
+               mp_util_svc_extract_video_list_by_item_type
+                       (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+       }
+
+       nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+
+       mp_list_view_update_count_layout();
+
+       if (nVideoListSize > 0) {
+               if (g_pNormalView->pNocontentlayout) {
+                       elm_object_part_content_unset(g_pNormalView->pNocontentlayout,
+                                                                                 SWALLOW_LISTVIEW_CONTENT);
+                       MP_DEL_OBJ(g_pNormalView->pNocontentlayout);
+               }
+               if (!g_pNormalView->pVideosGenlist) {
+                       g_pNormalView->pVideosGenlist =
+                               elm_genlist_add(g_pNormalView->
+                                                               pMainWidget->pListViewBaselayout);
+                       elm_scroller_bounce_set(g_pNormalView->pVideosGenlist,
+                                                                       EINA_FALSE, EINA_TRUE);
+                       evas_object_size_hint_weight_set(g_pNormalView->pVideosGenlist,
+                                                                                        EVAS_HINT_EXPAND,
+                                                                                        EVAS_HINT_EXPAND);
+                       evas_object_size_hint_align_set(g_pNormalView->pVideosGenlist,
+                                                                                       EVAS_HINT_FILL,
+                                                                                       EVAS_HINT_FILL);
+                       elm_genlist_mode_set(g_pNormalView->pVideosGenlist,
+                                                                ELM_LIST_COMPRESS);
+                       elm_genlist_homogeneous_set(g_pNormalView->pVideosGenlist,
+                                                                               EINA_TRUE);
+
+                       elm_genlist_block_count_set(g_pNormalView->pVideosGenlist,
+                                                                               VIDEO_MAIN_LIST_BLOCK_COUNT);
+                       elm_scroller_single_direction_set
+                               (g_pNormalView->pVideosGenlist,
+                                ELM_SCROLLER_SINGLE_DIRECTION_HARD);
+                       evas_object_show(g_pNormalView->
+                                                        pMainWidget->pListViewBaselayout);
+                       __mp_normal_view_del_genlist_cb(g_pNormalView->pVideosGenlist);
+                       __mp_normal_view_add_genlist_cb(g_pNormalView->pVideosGenlist);
+               }
+               elm_object_part_content_set(g_pNormalView->
+                                                                       pMainWidget->pListViewBaselayout,
+                                                                       SWALLOW_LISTVIEW_CONTENT,
+                                                                       g_pNormalView->pVideosGenlist);
+
+               mp_normal_view_append_video_items(g_pNormalView->pVideosGenlist);
+
+               evas_object_show(g_pNormalView->pVideosGenlist);
+       } else {
+               __mp_normal_view_create_no_content();
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+int mp_normal_view_get_selected_video_item_index(void)
+{
+
+       return g_pNormalView->nSelectedVideoItem;
+}
+
+/**
+ *
+ */
+void mp_normal_view_change_language(void)
+{
+       if (!mp_normal_view_is_top_view()) {
+               VideoLogError("Main list view is not top view.");
+               return;
+       }
+
+       VideoLogInfo("");
+}
+
+/**
+ *
+ */
+void mp_normal_view_update_video_list(void)
+{
+       if (!g_pNormalView || !g_pNormalView->pVideosGenlist) {
+               VideoLogWarning
+                       ("[ERR] pVideosGenlist or g_pMainViewWidget are NULL.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       Elm_Object_Item *pNextGenlistItem = NULL;
+       Elm_Object_Item *pCurrGenlistItem =
+               elm_genlist_first_item_get(g_pNormalView->pVideosGenlist);
+
+       while (pCurrGenlistItem) {
+               elm_genlist_item_update(pCurrGenlistItem);
+               pNextGenlistItem = elm_genlist_item_next_get(pCurrGenlistItem);
+               pCurrGenlistItem = pNextGenlistItem;
+       }
+}
+#endif
diff --git a/src/view/mp-video-list-view-select.c b/src/view/mp-video-list-view-select.c
new file mode 100755 (executable)
index 0000000..3e99c87
--- /dev/null
@@ -0,0 +1,1435 @@
+/*
+ * Copyright (c) 2020 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 <Eina.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+#include <glib.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-external-ug.h"
+#include "mp-video-string-define.h"
+#include "mp-video-value-define.h"
+#include "mp-util-media-service.h"
+#include "mp-video-list-view-select.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-util-widget-ctrl.h"
+#include "mp-video-util-db-controller.h"
+#include "mp-video-rename-ctrl.h"
+#include "mp-video-detail-view.h"
+#include "vp-file-util.h"
+#include "mp-rotate-ctrl.h"
+#include "videos-view-mgr.h"
+
+typedef struct {
+       void *pNaviFrameHandle;
+       void *pNaviFrameItem;
+       void *pPreNaviItem;
+       void *pGenlist;
+       Elm_Genlist_Item_Class *pGenListItc;
+       Elm_Genlist_Item_Class *pGenListLandscapeItc;
+       Elm_Gengrid_Item_Class *pGenGridItc_1;
+       Elm_Gengrid_Item_Class *pGenGridItc_2;
+       MpMediaSvcSortType nSortType;
+       MpDbUpdateViewLev euLev;
+       ChangeSelectViewCbFunc pChangeViewUserCbFunc;
+       char *pFolderUrl;
+       MpVideoListTabType eTabType;
+       SelectType eSelType;
+       int nViewType;
+       bool bRename;
+#ifdef VS_FEATURE_THUMBNAIL_VIEW       //
+       bool bLandscape;
+#endif
+} st_SelectViewHandle;
+
+typedef struct {
+       Evas_Object *pBox;
+       Evas_Object *pBaselayout;
+} st_SelectViewWidget;
+
+static st_SelectViewHandle *g_pSelectHandle = NULL;
+static st_SelectViewWidget *g_pSelectWidget = NULL;
+
+static Evas_Object *g_pRenameLayout = NULL;
+
+// Pre define function
+int mp_select_view_get_sort_type(void);
+bool mp_select_view_arrange_video_list(void *pGenlist, bool bNeedSvc);
+void mp_select_view_naviframe_transition_effect_cb(void *pUserData,
+                                                                                                  Evas_Object * pObject,
+                                                                                                  void *pEventInfo);
+static void __mp_select_view_base_layout_del_cb(void *pUserData, Evas * e,
+                                                                                               Evas_Object * pObject,
+                                                                                               void *pEventInfo);
+
+/**
+ *
+ */
+void mp_select_view_destroy(void)
+{
+       VideoLogInfo("");
+
+       if (g_pSelectHandle) {
+               evas_object_smart_callback_del(g_pSelectHandle->pNaviFrameHandle,
+                                                                          "transition,finished",
+                                                                          mp_select_view_naviframe_transition_effect_cb);
+
+               MP_DEL_OBJ(g_pSelectHandle->pGenlist);
+               MP_DEL_ITC(g_pSelectHandle->pGenListItc);
+               MP_FREE_STRING(g_pSelectHandle->pFolderUrl);
+               MP_FREE_STRING(g_pSelectHandle);
+       }
+
+       if (g_pSelectWidget) {
+               MP_DEL_OBJ(g_pSelectWidget->pBox);
+
+               if (g_pSelectWidget->pBaselayout != NULL) {
+                       evas_object_event_callback_del(g_pSelectWidget->pBaselayout,
+                                                                                  EVAS_CALLBACK_DEL,
+                                                                                  __mp_select_view_base_layout_del_cb);
+                       MP_DEL_OBJ(g_pSelectWidget->pBaselayout);
+               }
+               MP_FREE_STRING(g_pSelectWidget);
+       }
+}
+
+/**
+ *
+ */
+static void __mp_select_view_reset(void)
+{
+       VideoLogInfo("");
+
+       if (g_pSelectHandle) {
+               MP_FREE_STRING(g_pSelectHandle->pFolderUrl);
+               mp_util_db_set_update_fun(g_pSelectHandle->euLev, NULL);
+               mp_util_db_set_backup_fun(g_pSelectHandle->euLev, NULL);
+               evas_object_smart_callback_del(g_pSelectHandle->pNaviFrameHandle,
+                                                                          "transition,finished",
+                                                                          mp_select_view_naviframe_transition_effect_cb);
+               g_pSelectHandle->pGenlist = NULL;
+               MP_FREE_STRING(g_pSelectHandle);
+       }
+
+       if (g_pSelectWidget) {
+
+               g_pSelectWidget->pBox = NULL;
+               g_pSelectWidget->pBaselayout = NULL;
+
+               MP_FREE_STRING(g_pSelectWidget);
+       }
+}
+
+/**
+ *
+ */
+void mp_select_view_reset_value(void)
+{
+       VideoLogInfo("");
+
+       if (!g_pSelectHandle) {
+               VideoLogError("[ERR] g_pSelectHandle is not existed.");
+               return;
+       }
+
+       g_pSelectHandle->pNaviFrameHandle = NULL;
+       g_pSelectHandle->pNaviFrameItem = NULL;
+       g_pSelectHandle->pChangeViewUserCbFunc = NULL;
+       g_pSelectHandle->nSortType = MP_MEDIA_SORT_BY_RECENTLY_VIEWED;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param obj
+ * @param event_info
+ */
+static void __mp_select_view_trans_finished_cb(void *pUserData,
+                                                                                          Evas_Object * obj,
+                                                                                          void *event_info)
+{
+       if (!obj) {
+               VideoLogError("[ERR] g_pSelectHandle is NULL.");
+               return;
+       }
+
+       mp_widget_ctrl_enable_navi_handle_focus(obj);
+
+       evas_object_smart_callback_del(obj, "transition,finished",
+                                                                  __mp_select_view_trans_finished_cb);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+static Eina_Bool mp_select_view_back_btn_cb(void *pUserData,
+                                                                                       Elm_Object_Item * pItem)
+{
+       if (!g_pSelectHandle) {
+               VideoLogInfo("[ERR] g_pSelectHandle is NULL.");
+               return EINA_TRUE;
+       }
+       // Register transition finished callback.
+       mp_widget_ctrl_disable_navi_handle_focus_except_item(g_pSelectHandle->
+                                                                                                                pNaviFrameHandle,
+                                                                                                                g_pSelectHandle->
+                                                                                                                pNaviFrameItem);
+       evas_object_smart_callback_add(g_pSelectHandle->pNaviFrameHandle,
+                                                                  "transition,finished",
+                                                                  __mp_select_view_trans_finished_cb,
+                                                                  NULL);
+
+       mp_select_view_pop();
+
+       return EINA_TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_select_view_naviframe_transition_effect_cb(void *pUserData,
+                                                                                                  Evas_Object * pObject,
+                                                                                                  void *pEventInfo)
+{
+       if (!g_pSelectHandle) {
+               VideoLogError("[ERR] No exist g_pSelectHandle.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       Evas_Object *pTmpContents = NULL;
+       Elm_Object_Item *pTmpItem = NULL;
+
+       if (!g_pSelectHandle->pNaviFrameHandle) {
+               VideoLogInfo("[ERR] No exist naviframe handle.");
+               return;
+       }
+
+       pTmpItem =
+               elm_naviframe_top_item_get(g_pSelectHandle->pNaviFrameHandle);
+       pTmpContents = elm_object_item_content_get(pTmpItem);
+
+       if (g_pRenameLayout) {
+               mp_rename_ctrl_set_focus();
+       }
+
+       if (pTmpContents) {
+               if (pTmpContents == g_pSelectWidget->pBox) {
+               } else {
+                       VideoLogInfo
+                               ("It's not pListShareViaViewTabbarLayout in top screen.");
+               }
+       } else {
+               VideoLogError("[ERR] No exist naviframe top item.");
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_select_view_get_label_of_folder_cb(const void *pUserData,
+                                                                                                        Evas_Object * pObject,
+                                                                                                        const char *pPart)
+{
+
+       int nFolderItemIndex = (int) pUserData;
+
+       if (!g_strcmp0(pPart, "elm.text.main.left.top")) {
+               char *szTitle = NULL;
+               szTitle = mp_util_svc_get_video_folder_name(nFolderItemIndex);
+
+               char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+               MP_FREE_STRING(szTitle);
+               return szTitleUtf8;
+       } else if (!g_strcmp0(pPart, "elm.text.sub.left.bottom")) {
+               char *szFolderPath = NULL;
+               szFolderPath = mp_util_svc_get_video_folder_url(nFolderItemIndex);
+               char *pDes_path = mp_util_get_dir_by_path(szFolderPath);
+               MP_FREE_STRING(szFolderPath);
+               char *szFolderUtf8 = elm_entry_utf8_to_markup(pDes_path);
+               MP_FREE_STRING(pDes_path);
+               return szFolderUtf8;
+
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_select_view_get_icon_of_folder_cb(const void
+                                                                                                                  *pUserData,
+                                                                                                                  Evas_Object *
+                                                                                                                  pObject,
+                                                                                                                  const char
+                                                                                                                  *pPart)
+{
+       int nFolderItemIndex = (int) pUserData;
+       VideoLogInfo("Index : %d", nFolderItemIndex);
+
+       if (!g_strcmp0(pPart, "elm.icon.1")) {
+               VideoLogInfo("pPart: elm.icon.1 - thumbnail");
+
+               Evas_Object *pLayout = NULL;
+               Evas_Object *pBg = NULL;
+               char *pThumbIconUri =
+                       mp_util_get_folder_thumbnail(nFolderItemIndex,
+                                                                                mp_sort_ctrl_get_sort_state());
+               char edj_path[1024] = { 0 };
+
+               char *path = app_get_resource_path();
+               snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                                VIDEO_CUSTOM_THEME);
+               free(path);
+               pLayout = elm_layout_add(pObject);
+               elm_layout_file_set(pLayout, edj_path,
+                                                       "listview.thumbnail.layout");
+
+               if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+                       MP_FREE_STRING(pThumbIconUri);
+               }
+
+               pBg =
+                       mp_util_create_preload_image(pLayout, pThumbIconUri,
+                                                                                VIDEO_ICON_WIDTH);
+               elm_layout_content_set(pLayout, "elm.thumbnail.icon", pBg);
+               if (pBg)
+                       evas_object_show(pBg);
+
+               if (!mp_util_create_folder_sub_icon(pLayout, nFolderItemIndex)) {
+                       VideoLogWarning
+                               ("Create sub icon is failed. nFolderItemIndex: %d",
+                                nFolderItemIndex);
+               }
+
+               MP_FREE_STRING(pThumbIconUri);
+
+               evas_object_show(pLayout);
+
+               return pLayout;
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @return
+ */
+int mp_select_view_get_sort_type(void)
+{
+
+       switch (mp_sort_ctrl_get_sort_state()) {
+       case MP_LIST_SORT_BY_RECENTLY_ADDED:
+               g_pSelectHandle->nSortType = MP_MEDIA_SORT_BY_RECENTLY_ADDED;
+               break;
+
+       case MP_LIST_SORT_BY_NAME:
+               g_pSelectHandle->nSortType = MP_MEDIA_SORT_BY_NAME;
+               break;
+       }
+
+       return g_pSelectHandle->nSortType;
+}
+
+#ifdef VS_FEATURE_LIST_VIEW
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_select_view_get_label_of_video_item_cb(const void
+                                                                                                                *pUserData,
+                                                                                                                Evas_Object *
+                                                                                                                pObject,
+                                                                                                                const char *pPart)
+{
+       int nVideoItemIndex = (int) pUserData;
+
+       if (!strcmp(pPart, "elm.text.main.left.top")) {
+               char *szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+               char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+               if (szTitle) {
+                       free(szTitle);
+                       szTitle = NULL;
+               }
+
+               return szTitleUtf8;
+       } else if (!strcmp(pPart, "elm.text.sub.left.bottom")) {
+               return mp_util_svc_get_duration_str_time(nVideoItemIndex);
+       }
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_select_view_get_icon_of_video_item_cb(const void
+                                                                                                                          *pUserData,
+                                                                                                                          Evas_Object
+                                                                                                                          *pObject,
+                                                                                                                          const char
+                                                                                                                          *pPart)
+{
+       Evas_Object *pLayout = NULL;
+
+       int nVideoItemIndex = (int) pUserData;
+       if (!pPart || !pObject) {
+               return NULL;
+       }
+
+       if (!strcmp(pPart, "elm.icon.1")) {
+               VideoLogInfo("pPart: elm.icon.1 - thumbnail");
+
+               char *pThumbIconUri =
+                       mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+               Evas_Object *pBg = NULL;
+               char edj_path[1024] = { 0 };
+
+               char *path = app_get_resource_path();
+               snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                                VIDEO_CUSTOM_THEME);
+               free(path);
+               pLayout = elm_layout_add(pObject);
+               elm_layout_file_set(pLayout, edj_path,
+                                                       "listview.thumbnail.layout");
+
+               if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+                       MP_FREE_STRING(pThumbIconUri);
+               }
+
+               pBg =
+                       mp_util_create_preload_image(pLayout, pThumbIconUri,
+                                                                                VIDEO_ICON_WIDTH);
+               elm_layout_content_set(pLayout, "elm.thumbnail.icon", pBg);
+
+               if (pBg)
+                       evas_object_show(pBg);
+
+               MP_FREE_STRING(pThumbIconUri);
+
+               if (!mp_util_create_video_sub_icon(pLayout, nVideoItemIndex)) {
+                       VideoLogWarning("Local File or Create sub icon is failed.",
+                                                       nVideoItemIndex);
+               }
+
+               if (pLayout) {
+                       evas_object_show(pLayout);
+               }
+
+               return pLayout;
+       }
+
+       MP_DEL_OBJ(pLayout);
+
+       return NULL;
+}
+#endif
+
+/*if other view need update select view, need register this update callback*/
+/**
+ *
+ */
+static void __mp_select_view_result_view_update_cb(void)
+{
+       if (!g_pSelectHandle) {
+               VideoLogInfo("g_pSelectHandle is null.");
+               return;
+       }
+       if (!g_pSelectHandle->bRename)
+               g_pSelectHandle->bRename = TRUE;
+
+
+       bool bNormalShow =
+               mp_select_view_arrange_video_list(g_pSelectHandle->pGenlist, TRUE);
+       if (bNormalShow) {
+               Elm_Object_Item *pItem = NULL;
+               pItem = elm_genlist_first_item_get(g_pSelectHandle->pGenlist);
+               if (pItem) {
+                       elm_genlist_item_bring_in(pItem, ELM_GENLIST_ITEM_SCROLLTO_IN);
+               }
+       } else {
+               elm_naviframe_item_pop(g_pSelectHandle->pNaviFrameHandle);
+       }
+       g_pSelectHandle->pChangeViewUserCbFunc(LIST_UPDATE_TYPE_ALL);
+       elm_naviframe_item_pop_to(g_pSelectHandle->pPreNaviItem);
+}
+
+/**
+ *
+ * @param nIndex
+ * @param IsFolder
+ */
+static void __mp_select_view_show_detail_view(int nIndex, bool IsFolder)
+{
+
+       if (!g_pSelectHandle) {
+               VideoLogInfo("g_pSelectHandle of list view are not existed.");
+               return;
+       }
+
+       VideoLogInfo("nVideoItemIndex : %d", nIndex);
+
+       stDetailInfo *pDetail = NULL;
+       char *pMediaId = NULL;
+       if (IsFolder) {
+               mp_detail_view_get_folder_detail_info(nIndex, &pDetail);
+               pMediaId = mp_util_svc_get_video_folder_id(nIndex);
+       } else {
+               mp_detail_view_get_video_detail_info(nIndex, &pDetail);
+               pMediaId = mp_util_svc_get_video_id_by_index(nIndex);
+       }
+
+       mp_detail_view_push((void *) g_pSelectHandle->pNaviFrameHandle,
+                                               IsFolder, pMediaId, pDetail);
+       mp_detail_view_free_detail_info(pDetail);
+       MP_FREE_STRING(pMediaId);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_select_view_genlist_selected_cb(void *pUserData,
+                                                                                                Evas_Object * pObject,
+                                                                                                void *pEventInfo)
+{
+       if (!g_pSelectHandle || !pObject) {
+               VideoLogWarning
+                       ("[WARNING] Main handles of list view are not existed.");
+               return;
+       }
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+       Elm_Object_Item *pSelectedItem =
+               elm_gengrid_selected_item_get(pObject);
+       if (pSelectedItem) {
+               elm_gengrid_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+#else
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+#endif
+       int nSelectedIndex = (int) pUserData;
+       VideoLogInfo("selected index is %d", nSelectedIndex);
+
+       if (SELECT_TYPE_DETAIL == g_pSelectHandle->eSelType) {
+               VideoLogInfo("Show detail view");
+               /*Todo: show detail view */
+               if (MP_LIST_VIEW_AS_THUMBNAIL_LIST == g_pSelectHandle->nViewType) {
+                       __mp_select_view_show_detail_view(nSelectedIndex, FALSE);
+               } else if (MP_LIST_VIEW_AS_FOLDER_LIST ==
+                                  g_pSelectHandle->nViewType) {
+                       if (g_pSelectHandle->pFolderUrl) {
+                               VideoLogWarning("Folder item view");
+                               __mp_select_view_show_detail_view(nSelectedIndex, FALSE);
+                       } else {
+                               VideoLogWarning("Folder view");
+                               __mp_select_view_show_detail_view(nSelectedIndex, TRUE);
+                       }
+               }
+       } else if (SELECT_TYPE_RENAME == g_pSelectHandle->eSelType) {
+               VideoLogInfo("Show rename popup");
+
+               g_pRenameLayout =
+                       mp_rename_ctrl_show(g_pSelectHandle->pNaviFrameHandle, NULL,
+                                                               (void *)
+                                                               __mp_select_view_result_view_update_cb,
+                                                               nSelectedIndex);
+       }
+}
+
+/**
+ *
+ * @param pFolderGenlist
+ */
+static void __mp_select_view_append_folder_items(void *pFolderGenlist)
+{
+       VideoLogInfo("");
+       int nIndex = 0;
+       int nFolderListSize = 0;
+
+       nFolderListSize = mp_util_svc_get_video_folder_size();
+       VideoLogInfo("nVideoListSize : %d", nFolderListSize);
+
+       if (nFolderListSize > 0) {
+               MP_DEL_ITC(g_pSelectHandle->pGenListItc);
+               g_pSelectHandle->pGenListItc = elm_genlist_item_class_new();
+               g_pSelectHandle->pGenListItc->item_style = "2line.top";
+               g_pSelectHandle->pGenListItc->func.text_get =
+                       (void *) __mp_select_view_get_label_of_folder_cb;
+               g_pSelectHandle->pGenListItc->func.content_get =
+                       (void *) __mp_select_view_get_icon_of_folder_cb;
+               g_pSelectHandle->pGenListItc->func.state_get = NULL;
+               g_pSelectHandle->pGenListItc->func.del = NULL;
+               g_pSelectHandle->pGenListItc->decorate_item_style = NULL;
+
+               for (nIndex = 0; nIndex < nFolderListSize; nIndex++) {
+                       VideoLogInfo("nCounter : %d", nIndex);
+                       elm_genlist_item_append(pFolderGenlist,
+                                                                       g_pSelectHandle->pGenListItc,
+                                                                       (void *) nIndex, NULL,
+                                                                       ELM_GENLIST_ITEM_NONE,
+                                                                       __mp_select_view_genlist_selected_cb,
+                                                                       (void *) nIndex);
+               }
+       }
+}
+
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+/**
+ *
+ * @param parent
+ * @param nWidth
+ * @param nHeight
+ * @return
+ */
+static Evas_Object *__mp_select_view_create_gengrid(Evas_Object * parent,
+                                                                                                       int nWidth,
+                                                                                                       int nHeight)
+{
+       Evas_Object *pGengrid;
+       pGengrid = elm_gengrid_add(parent);
+       if (!pGengrid) {
+               VideoLogError("pVideoGrid does not exist.");
+               return NULL;
+       }
+       evas_object_size_hint_weight_set(pGengrid, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pGengrid, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       elm_gengrid_item_size_set(pGengrid, nWidth, nHeight);
+       elm_gengrid_align_set(pGengrid, 0.0, 0.0);
+       elm_gengrid_horizontal_set(pGengrid, EINA_TRUE);
+
+       return pGengrid;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_select_view_get_label_of_grid_item_cb(const void
+                                                                                                               *pUserData,
+                                                                                                               Evas_Object *
+                                                                                                               pObject,
+                                                                                                               const char *pPart)
+{
+       int nVideoItemIndex = (int) pUserData;
+
+       if (!strcmp(pPart, "elm.text")) {
+               char *szTitle;
+               szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+               char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+               if (szTitle) {
+                       free(szTitle);
+                       szTitle = NULL;
+               }
+
+               return szTitleUtf8;
+       } else if (!strcmp(pPart, "elm.text.2")) {
+               return mp_util_svc_get_duration_str_time(nVideoItemIndex);
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_select_view_get_grid_icon_cb(const void
+                                                                                                         *pUserData,
+                                                                                                         Evas_Object *
+                                                                                                         pObject,
+                                                                                                         const char *pPart)
+{
+       int nVideoItemIndex = (int) pUserData;
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_IMAGE_NAME_EDJ);
+       free(path);
+       if (!strcmp(pPart, "elm.swallow.icon")) {
+               char *pThumbIconUri =
+                       mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+               Evas_Object *pBg = NULL;
+
+               if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+                       pBg = elm_image_add(pObject);
+                       MP_FREE_STRING(pThumbIconUri);
+                       evas_object_size_hint_aspect_set(pBg, EVAS_ASPECT_CONTROL_BOTH,
+                                                                                        1, 1);
+                       elm_image_file_set(pBg, pThumbIconUri, NULL);
+               } else {
+                       pBg =
+                               mp_util_create_preload_image(pObject, pThumbIconUri,
+                                                                                        GRID_VIDEO_ICON_WIDTH);
+               }
+
+               MP_FREE_STRING(pThumbIconUri);
+
+               return pBg;
+       } else if (!strcmp(pPart, "elm.progressbar.icon")) {
+                       return NULL;
+       } else if (!strcmp(pPart, "elm.lock.icon")) {
+               char *pVideoFile = mp_util_svc_get_video_url(nVideoItemIndex);
+               bool bRet =
+                       mp_util_check_video_personal_status((const char *) pVideoFile);
+               MP_FREE_STRING(pVideoFile);
+               if (bRet) {
+                       Evas_Object *pLockIcon = elm_image_add(pObject);
+                       elm_image_file_set(pLockIcon, edj_path,
+                                                          VIDEO_LIST_VIEW_ICON_PERSONAL_LOCK);
+                       evas_object_size_hint_align_set(pLockIcon, EVAS_HINT_FILL,
+                                                                                       EVAS_HINT_FILL);
+                       evas_object_size_hint_weight_set(pLockIcon, EVAS_HINT_EXPAND,
+                                                                                        EVAS_HINT_EXPAND);
+                       evas_object_show(pLockIcon);
+                       return pLockIcon;
+               } else {
+                       return NULL;
+               }
+       } else if (!strcmp(pPart, "elm.dropbox.icon")) {
+               bool bRet = mp_util_svc_is_cloud_storage(nVideoItemIndex);
+               if (bRet) {
+                       Evas_Object *pDropboxIcon = elm_image_add(pObject);
+                       elm_image_file_set(pDropboxIcon, edj_path,
+                                                          VIDEO_LIST_VIEW_ICON_DROPBOX);
+                       evas_object_size_hint_align_set(pDropboxIcon, EVAS_HINT_FILL,
+                                                                                       EVAS_HINT_FILL);
+                       evas_object_size_hint_weight_set(pDropboxIcon,
+                                                                                        EVAS_HINT_EXPAND,
+                                                                                        EVAS_HINT_EXPAND);
+                       evas_object_show(pDropboxIcon);
+                       return pDropboxIcon;
+               } else {
+                       return NULL;
+               }
+       } else if (!strcmp(pPart, "elm.swallow.end")) {
+       }
+       return NULL;
+}
+
+/**
+ *
+ * @param pObjVideosList
+ * @param nGenItemIndex
+ */
+static void __mp_select_view_append_grid_items(void *pObjVideosList,
+                                                                                          int nGenItemIndex)
+{
+       if (!g_pSelectHandle) {
+               VideoLogInfo("invalid handle");
+               return;
+       }
+
+       MP_DEL_GRID_ITC(g_pSelectHandle->pGenGridItc_1);
+       MP_DEL_GRID_ITC(g_pSelectHandle->pGenGridItc_2);
+       g_pSelectHandle->pGenGridItc_1 = elm_gengrid_item_class_new();
+       g_pSelectHandle->pGenGridItc_1->item_style = "video/album_grid";
+       g_pSelectHandle->pGenGridItc_1->func.text_get =
+               (void *) __mp_select_view_get_label_of_grid_item_cb;
+       g_pSelectHandle->pGenGridItc_1->func.content_get =
+               (void *) __mp_select_view_get_grid_icon_cb;
+       g_pSelectHandle->pGenGridItc_1->func.state_get = NULL;
+       g_pSelectHandle->pGenGridItc_1->func.del = NULL;
+
+       g_pSelectHandle->pGenGridItc_2 = elm_gengrid_item_class_new();
+       g_pSelectHandle->pGenGridItc_2->item_style = "video/album_grid";
+       g_pSelectHandle->pGenGridItc_2->func.text_get =
+               (void *) __mp_select_view_get_label_of_grid_item_cb;
+       g_pSelectHandle->pGenGridItc_2->func.content_get =
+               (void *) __mp_select_view_get_grid_icon_cb;
+       g_pSelectHandle->pGenGridItc_2->func.state_get = NULL;
+       g_pSelectHandle->pGenGridItc_2->func.del = NULL;
+
+       int nCount =
+               (mp_rotate_ctrl_check_landspace() ? VP_GENLIST_THUMB_LANDSPACE_COUNT
+                : VP_GENLIST_THUMB_PORTRAIT_COUNT);
+       int nIndex = nGenItemIndex * nCount;
+       int nMaxIndex = nIndex + nCount;
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+       Elm_Object_Item *gridItem = NULL;
+       for (; (nIndex < nMaxIndex) && (nIndex < nVideoListSize); nIndex++) {
+               if (nIndex % 2 == 0) {
+                       elm_gengrid_item_append(pObjVideosList,
+                                                                       g_pSelectHandle->pGenGridItc_1,
+                                                                       (void *) nIndex,
+                                                                       __mp_select_view_genlist_selected_cb,
+                                                                       (void *) nIndex);
+               } else {
+                       elm_gengrid_item_append(pObjVideosList,
+                                                                       g_pSelectHandle->pGenGridItc_2,
+                                                                       (void *) nIndex,
+                                                                       __mp_select_view_genlist_selected_cb,
+                                                                       (void *) nIndex);
+               }
+               elm_object_item_data_set(gridItem, (void *) nIndex);
+       }
+}
+
+/**
+ *
+ * @param height
+ * @param width
+ */
+static void mp_select_view_get_icon_dimensions(int *height, int *width)
+{
+       int winHeight = 0;
+       int winWidth = 0;
+       elm_win_screen_size_get(mp_util_get_main_window_handle(), NULL, NULL,
+                                                       &winWidth, &winHeight);
+
+       bool bLandscape =
+               mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+                                                                                         mp_util_get_main_window_handle
+                                                                                         ());
+       if (bLandscape) {
+               *width = winHeight / VP_GENLIST_THUMB_LANDSPACE_COUNT;
+       } else {
+               *width = winWidth / VP_GENLIST_THUMB_PORTRAIT_COUNT;
+       }
+       *height = VP_ALBUM_THUMB_ICON_HEIGHT * MP_SCALE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_select_view_get_icon_of_grid_cb(const void
+                                                                                                                *pUserData,
+                                                                                                                Evas_Object *
+                                                                                                                pObject,
+                                                                                                                const char *pPart)
+{
+       VideoLogInfo("in __mp_select_view_get_icon_of_grid_cb");
+       if (!g_pSelectHandle || !pObject) {
+               VideoLogError("g_pMainViewWidgetOfSelectList is NULL");
+               return NULL;
+       }
+
+       int nGenItemIndex = (int) pUserData;
+       int nHeight = 0;
+       int nWidth = 0;
+       mp_select_view_get_icon_dimensions(&nHeight, &nWidth);
+
+       Evas_Object *pGengrid =
+               __mp_select_view_create_gengrid(pObject, nWidth, nHeight);
+       __mp_select_view_append_grid_items(pGengrid, nGenItemIndex);
+
+       return pGengrid;
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+int mp_select_view_thumbnail_to_genlist_index(int nVideoItemIndex)
+{
+       /*nVideoItemIndex = 0-->max */
+       if (nVideoItemIndex < 0) {
+               VideoLogDebug("invalid nVideoItemIndex");
+               return 0;
+       }
+       g_pSelectHandle->bLandscape =
+               mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+                                                                                         mp_util_get_main_window_handle
+                                                                                         ());
+       int nItemCount = VP_GENLIST_THUMB_PORTRAIT_COUNT;
+       int nGenlistIndex = 0;
+       if (g_pSelectHandle->bLandscape) {
+               nItemCount = VP_GENLIST_THUMB_LANDSPACE_COUNT;
+       }
+       nGenlistIndex = nVideoItemIndex / nItemCount;
+       VideoLogWarning("in mp_select_view_thumbnail_to_genlist_index %d",
+                                       nGenlistIndex);
+       return nGenlistIndex;
+}
+
+/**
+ *
+ * @param pGenlist
+ * @return
+ */
+static bool __mp_select_view_append_grid_layout(void *pGenlist)
+{
+       VideoLogInfo("in append grid layout");
+       if (!pGenlist || !g_pSelectHandle) {
+               VideoLogError("error handle.");
+               return FALSE;
+       }
+       int nIndex = 0;
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       if (nVideoListSize <= 0) {
+               VideoLogWarning("nVideoListSize = %d", nVideoListSize);
+               return FALSE;
+       } else
+               VideoLogWarning("nVideoListSize = %d", nVideoListSize);
+
+       MP_DEL_ITC(g_pSelectHandle->pGenListItc);
+       g_pSelectHandle->pGenListItc = elm_genlist_item_class_new();
+
+       g_pSelectHandle->pGenListItc->item_style = "video/1icon.thumbnail";
+       g_pSelectHandle->pGenListItc->func.text_get = NULL;
+       g_pSelectHandle->pGenListItc->func.content_get =
+               (void *) __mp_select_view_get_icon_of_grid_cb;
+       g_pSelectHandle->pGenListItc->func.state_get = NULL;
+       g_pSelectHandle->pGenListItc->func.del = NULL;
+       g_pSelectHandle->pGenListItc->decorate_item_style = NULL;
+
+       MP_DEL_ITC(g_pSelectHandle->pGenListLandscapeItc);
+       g_pSelectHandle->pGenListLandscapeItc = elm_genlist_item_class_new();
+       g_pSelectHandle->pGenListLandscapeItc->item_style =
+               "video/1icon.thumbnail.landscape";
+       g_pSelectHandle->pGenListLandscapeItc->func.text_get = NULL;
+       g_pSelectHandle->pGenListLandscapeItc->func.content_get =
+               (void *) __mp_select_view_get_icon_of_grid_cb;
+       g_pSelectHandle->pGenListLandscapeItc->func.state_get = NULL;
+       g_pSelectHandle->pGenListLandscapeItc->func.del = NULL;
+       g_pSelectHandle->pGenListLandscapeItc->decorate_item_style = NULL;
+
+       int nGenlistRow = 0;
+       nGenlistRow =
+               mp_select_view_thumbnail_to_genlist_index(nVideoListSize - 1);
+
+       if (g_pSelectHandle->bLandscape) {
+               for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+                       elm_genlist_item_append(pGenlist,
+                                                                       g_pSelectHandle->pGenListLandscapeItc,
+                                                                       (void *) nIndex, NULL,
+                                                                       ELM_GENLIST_ITEM_NONE, NULL, NULL);
+               }
+       } else {
+               for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+                       elm_genlist_item_append(pGenlist, g_pSelectHandle->pGenListItc,
+                                                                       (void *) nIndex, NULL,
+                                                                       ELM_GENLIST_ITEM_NONE, NULL, NULL);
+               }
+       }
+
+       return TRUE;
+}
+#endif
+
+#ifdef VS_FEATURE_LIST_VIEW
+/**
+ *
+ * @param pVideosGenlist
+ */
+static void __mp_select_view_append_video_items(void *pVideosGenlist)
+{
+       VideoLogInfo("");
+       if (!g_pSelectHandle) {
+               VideoLogError("");
+               return;
+       }
+
+       int nIndex = 0;
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+       MP_DEL_ITC(g_pSelectHandle->pGenListItc);
+       g_pSelectHandle->pGenListItc = elm_genlist_item_class_new();
+       g_pSelectHandle->pGenListItc->item_style = "2line.top";
+       g_pSelectHandle->pGenListItc->func.text_get =
+               (void *) __mp_select_view_get_label_of_video_item_cb;
+       g_pSelectHandle->pGenListItc->func.content_get =
+               (void *) __mp_select_view_get_icon_of_video_item_cb;
+       g_pSelectHandle->pGenListItc->func.state_get = NULL;
+       g_pSelectHandle->pGenListItc->func.del = NULL;
+       g_pSelectHandle->pGenListItc->decorate_item_style = NULL;
+
+       for (nIndex = 0; nIndex < nVideoListSize; nIndex++) {
+               elm_genlist_item_append(pVideosGenlist,
+                                                               g_pSelectHandle->pGenListItc,
+                                                               (void *) nIndex, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               __mp_select_view_genlist_selected_cb,
+                                                               (void *) nIndex);
+       }
+}
+#endif
+
+/**
+ *
+ * @param pGenlist
+ * @param bNeedSvc
+ * @return
+ */
+bool mp_select_view_arrange_video_list(void *pGenlist, bool bNeedSvc)
+{
+       if (!g_pSelectWidget || !g_pSelectHandle) {
+               VideoLogError("No exist g_pSelectListViewWidget.");
+               return FALSE;
+       }
+
+       if (!pGenlist) {
+               VideoLogError("No exist genlist object.");
+               return FALSE;
+       }
+
+       int nVideoListSize = 0;
+#ifdef VS_FEATURE_LIST_VIEW
+       if (g_pSelectHandle->nViewType == MP_LIST_VIEW_AS_NORMAL_LIST) {
+               /*update video list data */
+               mp_util_svc_destory_video_list();
+               mp_util_svc_extract_video_list_by_item_type
+                       (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+
+               nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+               if (nVideoListSize <= 0) {
+                       VideoLogWarning("nVideoListSize=%d", nVideoListSize);
+                       return FALSE;
+               }
+
+               elm_genlist_clear(pGenlist);
+               __mp_select_view_append_video_items(pGenlist);
+       } else
+#endif
+       if (g_pSelectHandle->nViewType == MP_LIST_VIEW_AS_FOLDER_LIST) {
+               if (g_pSelectHandle->pFolderUrl) {
+                       VideoLogWarning("Folder item view");
+                       /*update folder item list data */
+                       mp_util_svc_destory_video_item_list();
+                       mp_util_svc_extract_video_list_from_folder(g_pSelectHandle->
+                                                                                                          pFolderUrl,
+                                                                                                          mp_sort_ctrl_get_sort_state
+                                                                                                          (),
+                                                                                                          MP_LIST_VIEW_ALL);
+
+                       nVideoListSize =
+                               mp_util_svc_get_number_of_video_item_by_type();
+                       if (nVideoListSize <= 0) {
+                               VideoLogWarning("nVideoListSize=%d", nVideoListSize);
+                               return FALSE;
+                       }
+
+                       elm_genlist_clear(pGenlist);
+                       __mp_select_view_append_grid_layout(pGenlist);
+               } else {
+                       VideoLogWarning("Folder view");
+                       /*update folder list data */
+                       mp_util_svc_destory_video_list();
+                       mp_util_svc_extract_video_list_by_item_type
+                               (mp_sort_ctrl_get_sort_state(),
+                                mp_view_ctrl_get_list_type());
+                       mp_util_svc_extract_video_folder_list_by_type
+                               (mp_sort_ctrl_get_sort_state(),
+                                mp_view_ctrl_get_list_type());
+
+                       nVideoListSize = mp_util_svc_get_video_folder_size();
+                       if (nVideoListSize <= 0) {
+                               VideoLogWarning("nVideoListSize=%d", nVideoListSize);
+                               return FALSE;
+                       }
+
+                       elm_genlist_clear(pGenlist);
+                       __mp_select_view_append_folder_items(pGenlist);
+               }
+       } else if (g_pSelectHandle->nViewType ==
+                          MP_LIST_VIEW_AS_THUMBNAIL_LIST) {
+               /*update video list data */
+               mp_util_svc_destory_video_list();
+               mp_util_svc_extract_video_list_by_item_type
+                       (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+
+               nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+               if (nVideoListSize <= 0) {
+                       VideoLogWarning("nVideoListSize=%d", nVideoListSize);
+                       return FALSE;
+               }
+
+               elm_genlist_clear(pGenlist);
+               __mp_select_view_append_grid_layout(pGenlist);
+       }
+
+       evas_object_show(pGenlist);
+       return TRUE;
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+Evas_Object *mp_select_view_create_internal_layout(void *pParent)
+{
+       if (!pParent) {
+               VideoLogInfo("[ERR]");
+               return NULL;
+       }
+
+       VideoLogInfo("");
+
+       if (g_pSelectWidget->pBaselayout) {
+               evas_object_del(g_pSelectWidget->pBaselayout);
+               g_pSelectWidget->pBaselayout = NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_REMOVE_LIST_EDJ);
+       free(path);
+       g_pSelectWidget->pBaselayout = elm_layout_add(pParent);
+       elm_layout_file_set(g_pSelectWidget->pBaselayout, edj_path,
+                                               REMOVE_LIST_EDJ_GROUP);
+       evas_object_size_hint_weight_set(g_pSelectWidget->pBaselayout,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pSelectWidget->pBaselayout,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       return g_pSelectWidget->pBaselayout;
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __mp_select_view_db_changed_cb(void *pUserData)
+{
+       VideoLogWarning("Video DB has been changed.");
+       if (!g_pSelectHandle || !g_pSelectWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       bool bNormalShow = TRUE;
+
+       bNormalShow =
+               mp_select_view_arrange_video_list(g_pSelectHandle->pGenlist, TRUE);
+       if (bNormalShow) {
+               Elm_Object_Item *pItem = NULL;
+               pItem = elm_genlist_first_item_get(g_pSelectHandle->pGenlist);
+               if (pItem) {
+                       elm_genlist_item_bring_in(pItem, ELM_GENLIST_ITEM_SCROLLTO_IN);
+               }
+               if (SELECT_TYPE_DETAIL == g_pSelectHandle->eSelType) {
+                       mp_detail_view_update();
+               } else if (SELECT_TYPE_RENAME == g_pSelectHandle->eSelType) {
+                       //if needed, todo;
+               }
+       }
+       mp_rename_ctrl_focus_out_cb();
+       g_pSelectHandle->pChangeViewUserCbFunc(LIST_UPDATE_TYPE_ALL);
+       elm_naviframe_item_pop_to(g_pSelectHandle->pPreNaviItem);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+void __mp_select_soft_back_button_cb(void *data, Evas_Object * obj,
+                                                                        void *event_info)
+{
+       Evas_Object *pTopNaviFrame = NULL;
+       pTopNaviFrame =
+               elm_naviframe_item_pop(g_pSelectHandle->pNaviFrameHandle);
+       evas_object_del(pTopNaviFrame);
+}
+
+/**
+ *
+ */
+void mp_select_view_create_genlist()
+{
+       if (!g_pSelectHandle || !g_pSelectWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       g_pSelectHandle->pGenlist = elm_genlist_add(g_pSelectWidget->pBox);
+       if (!g_pSelectHandle->pGenlist) {
+               VideoLogError("pGenlist is not existed.");
+               return;
+       }
+       elm_scroller_bounce_set(g_pSelectHandle->pGenlist, EINA_FALSE,
+                                                       EINA_TRUE);
+       evas_object_size_hint_weight_set(g_pSelectHandle->pGenlist,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pSelectHandle->pGenlist,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_genlist_block_count_set(g_pSelectHandle->pGenlist,
+                                                               VIDEO_GENLIST_BLOCK_COUNT);
+       elm_genlist_homogeneous_set(g_pSelectHandle->pGenlist, EINA_TRUE);
+       elm_genlist_mode_set(g_pSelectHandle->pGenlist, ELM_LIST_COMPRESS);
+       elm_genlist_select_mode_set(g_pSelectHandle->pGenlist,
+                                                               ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+       elm_box_pack_end(g_pSelectWidget->pBox, g_pSelectHandle->pGenlist);
+       elm_object_part_content_set(g_pSelectWidget->pBaselayout,
+                                                               SWALLOW_LISTVIEW_CONTENT,
+                                                               g_pSelectWidget->pBox);
+
+       bool bNormalShow = TRUE;
+       bNormalShow =
+               mp_select_view_arrange_video_list(g_pSelectHandle->pGenlist,
+                                                                                 FALSE);
+       if (!bNormalShow) {
+               VideoLogError("invalid view");
+               mp_select_view_destroy();
+               return;
+       }
+       evas_object_show(g_pSelectHandle->pGenlist);
+}
+
+/**
+ *
+ * @param pParent
+ */
+void mp_select_view_init(void *pParent)
+{
+       if (!g_pSelectHandle || !g_pSelectWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+       VideoLogInfo("");
+       g_pSelectWidget->pBaselayout =
+               mp_select_view_create_internal_layout(pParent);
+       if (!g_pSelectWidget->pBaselayout) {
+               VideoLogError("pBaselayout is not existed.");
+               return;
+       }
+       evas_object_event_callback_add(g_pSelectWidget->pBaselayout,
+                                                                  EVAS_CALLBACK_DEL,
+                                                                  __mp_select_view_base_layout_del_cb,
+                                                                  NULL);
+
+       g_pSelectWidget->pBox = elm_box_add(g_pSelectWidget->pBaselayout);
+       if (!g_pSelectWidget->pBox) {
+               VideoLogError("pBox is not existed.");
+               return;
+       }
+
+       mp_select_view_create_genlist();
+
+       Evas_Object *pLeftbtn = elm_button_add(pParent);
+       elm_object_style_set(pLeftbtn, "naviframe/end_btn/default");
+       evas_object_smart_callback_add(pLeftbtn, "clicked",
+                                                                  __mp_select_soft_back_button_cb, NULL);
+
+       char *szTitle = NULL;
+       szTitle = g_strdup(VIDEOS_SELECTVIEW_HEADER_SELECT_VIDEO);
+
+       g_pSelectHandle->pNaviFrameItem =
+               elm_naviframe_item_push(g_pSelectHandle->pNaviFrameHandle, szTitle,
+                                                               pLeftbtn, NULL,
+                                                               g_pSelectWidget->pBaselayout, NULL);
+
+       elm_object_item_domain_text_translatable_set(g_pSelectHandle->
+                                                                                                pNaviFrameItem,
+                                                                                                VIDEOS_STRING, EINA_TRUE);
+       elm_naviframe_item_pop_cb_set(g_pSelectHandle->pNaviFrameItem,
+                                                                 mp_select_view_back_btn_cb,
+                                                                 g_pSelectHandle);
+       g_free(szTitle);
+
+       elm_naviframe_item_title_enabled_set(g_pSelectHandle->pNaviFrameItem,
+                                                                                EINA_TRUE, EINA_FALSE);
+       evas_object_smart_callback_add(g_pSelectHandle->pNaviFrameHandle,
+                                                                  "transition,finished",
+                                                                  mp_select_view_naviframe_transition_effect_cb,
+                                                                  NULL);
+
+       evas_object_show(g_pSelectWidget->pBaselayout);
+
+       mp_util_db_set_update_fun(g_pSelectHandle->euLev,
+                                                         __mp_select_view_db_changed_cb);
+
+       mp_util_hide_indicator();
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_select_view_rotate_cb(void *data, Evas_Object * obj,
+                                                                          void *event_info)
+{
+       if (!g_pSelectHandle) {
+               VideoLogError("__mp_select_view_rotate_cb IS null");
+               return;
+       }
+       bool bLandscape =
+               mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+                                                                                         mp_util_get_main_window_handle
+                                                                                         ());
+       if (bLandscape) {
+               g_pSelectHandle->bLandscape = true;
+       } else {
+               g_pSelectHandle->bLandscape = false;
+       }
+
+}
+
+/**
+ *
+ * @param pNaviFrame
+ * @param pNaviItem
+ * @param pChangeViewCb
+ * @param pFolderUrl
+ * @param eSelType
+ * @param eTabType
+ */
+void mp_select_view_push(void *pNaviFrame, void *pNaviItem,
+                                                ChangeSelectViewCbFunc pChangeViewCb,
+                                                char *pFolderUrl, SelectType eSelType,
+                                                MpVideoListTabType eTabType)
+{
+       VideoLogInfo("");
+       if (g_pSelectHandle || g_pSelectWidget) {
+               mp_select_view_destroy();
+       }
+
+       g_pSelectHandle =
+               (st_SelectViewHandle *) calloc(1, sizeof(st_SelectViewHandle));
+       g_pSelectWidget =
+               (st_SelectViewWidget *) calloc(1, sizeof(st_SelectViewWidget));
+
+       memset(g_pSelectHandle, 0, sizeof(st_SelectViewHandle));
+       memset(g_pSelectWidget, 0, sizeof(st_SelectViewWidget));
+       mp_select_view_reset_value();
+
+       g_pSelectHandle->pNaviFrameHandle = pNaviFrame;
+       g_pSelectHandle->pPreNaviItem = pNaviItem;
+       g_pSelectHandle->pChangeViewUserCbFunc = pChangeViewCb;
+       g_pSelectHandle->pFolderUrl = g_strdup(pFolderUrl);
+       g_pSelectHandle->eSelType = eSelType;
+       g_pSelectHandle->eTabType = eTabType;
+       g_pSelectHandle->euLev =
+               pFolderUrl ? MP_DB_UPDATE_LEV_2 : MP_DB_UPDATE_LEV_1;
+       g_pSelectHandle->nViewType = mp_view_as_ctrl_get_type();
+       g_pSelectHandle->bLandscape =
+               mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+                                                                                         mp_util_get_main_window_handle
+                                                                                         ());
+
+       mp_select_view_init(g_pSelectHandle->pNaviFrameHandle);
+       evas_object_smart_callback_add((Evas_Object *)
+                                                                  mp_util_get_main_window_handle(),
+                                                                  "wm,rotation,changed",
+                                                                  __mp_select_view_rotate_cb,
+                                                                  (void *) g_pSelectHandle);
+
+}
+
+/**
+ *
+ */
+void mp_select_view_pop(void)
+{
+       VideoLogInfo("");
+
+       if (!g_pSelectHandle) {
+               VideoLogError("No existed handle of select view.");
+               return;
+       }
+       if (g_pSelectHandle->bRename && g_pSelectHandle->pChangeViewUserCbFunc) {
+               g_pSelectHandle->pChangeViewUserCbFunc(LIST_UPDATE_TYPE_ALL);
+       }
+
+       mp_util_hide_indicator();
+}
+
+/**
+ *
+ */
+void mp_select_view_change_language(void)
+{
+       if (!g_pSelectHandle || !g_pSelectWidget) {
+               VideoLogError("No existed handle of select view.");
+               return;
+       }
+
+       VideoLogInfo("");
+       char *szTitle = NULL;
+       if (SELECT_TYPE_DETAIL == g_pSelectHandle->eSelType) {
+               szTitle = g_strdup(VIDEOS_DETAILVIEW_HEADER_DETAILS_IDS);
+       } else if (SELECT_TYPE_RENAME == g_pSelectHandle->eSelType) {
+               szTitle = g_strdup(VIDEOS_RENAMEVIEW_HEADER_RENAME_IDS);
+       }
+       elm_object_item_domain_translatable_part_text_set(g_pSelectHandle->
+                                                                                                         pNaviFrameItem,
+                                                                                                         "elm.text.title",
+                                                                                                         VIDEOS_STRING,
+                                                                                                         szTitle);
+       g_free(szTitle);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param e
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_select_view_base_layout_del_cb(void *pUserData, Evas * e,
+                                                                                               Evas_Object * pObject,
+                                                                                               void *pEventInfo)
+{
+       __mp_select_view_reset();
+}
diff --git a/src/view/mp-video-list-view-thumbnail.c b/src/view/mp-video-list-view-thumbnail.c
new file mode 100755 (executable)
index 0000000..fee0caf
--- /dev/null
@@ -0,0 +1,1664 @@
+/*
+ * Copyright (c) 2020 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 <app.h>
+#include <glib.h>
+#include <unistd.h>
+#include <stdbool.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include "vp-play-log.h"
+#include "vp-util.h"
+#include "vp-file-util.h"
+#include "vp-pinch-zoom.h"
+#include "mp-util.h"
+#ifdef ENABLE_DRM_FEATURE
+#include "mp-drm-ctrl.h"
+#endif
+#include "mp-video-log.h"
+#include "mp-util-media-service.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+
+
+#include "mp-video-list-view-thumbnail.h"
+
+#include "mp-footer-toolbar.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-view-normal.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-launching-video-displayer.h"
+#include "mp-video-list-option-ctrl.h"
+#include "mp-external-ug.h"
+#include "videos-view-mgr.h"
+#include "mp-rotate-ctrl.h"
+#include "mp-video-rename-ctrl.h"
+#include "mp-video-info-ctrl.h"
+#include "mp-video-list-view-main.h"
+#include "mp-video-detail-view.h"
+#include "mp-video-list-share-via-view.h"
+
+#include "mp-util-preference.h"
+#include "mp-util-config.h"
+#include "mp-video-util-db-controller.h"
+#include "mp-video-nocontent-layout.h"
+
+
+#define VIDEO_WALL_UPDATE_TIMER                0.3
+/*the max update waiting time is VIDEO_WALL_UPDATE_TIMER*VIDEO_WALL_UPDATE_TIMER_COUNTER*/
+#define VIDEO_WALL_UPDATE_TIMER_COUNTER                6
+
+typedef struct {
+       UpdateListItemsCbFunc fViewCbFunc;
+       st_VideoListViewMainViewHandle *pMainHandle;
+       st_VideoListViewMainViewWidget *pMainWidget;
+
+       Evas_Object *pVideosGenlist;
+
+       Eina_List *pVideoItemList;
+       Ecore_Idler *pPlayIdler;
+       Ecore_Timer *pStartWallTimer;
+       Ecore_Idler *pWallResolutionIdler;
+       MpListUpdateType eUpdateType;
+
+       /*wall */
+       Eina_List *pWallHandleList;
+       Evas_Object *pNocontentlayout;
+
+       Elm_Genlist_Item_Class *pGenGridItc;
+       Elm_Genlist_Item_Class *pGenGridZoomItc;
+       Elm_Genlist_Item_Class *pNoItemItc;
+       Elm_Gengrid_Item_Class *pGenGridItc_l;
+       Elm_Gengrid_Item_Class *pGenGridItc_r;
+
+       bool bLandscape;
+       int nSelectedVideoItem;
+       int nUpdateTimerCounter;
+
+       int zoom_level;
+} stThumbnailView;
+
+
+static stThumbnailView *g_pThumbnailView = NULL;
+
+
+static void __mp_thumbnail_view_update_cb(int nError, const char *szPath,
+                                                                                 void *pUserData);
+static void __mp_thumbnail_view_language_changed_genlist_cb(void
+                                                                                                                       *pUserData,
+                                                                                                                       Evas_Object *
+                                                                                                                       pObject, void
+                                                                                                                       *pEventInfo);
+static void __mp_thumbnail_view_realize_genlist_item_cb(void *pUserData,
+                                                                                                               Evas_Object *
+                                                                                                               pObject,
+                                                                                                               void *pEventInfo);
+static void __mp_thumbnail_view_append_gengrid_items(Evas_Object *
+                                                                                                        pGengrid,
+                                                                                                        int nGenItemIndex);
+static Evas_Object *__mp_thumbnail_view_create_gengrid(Evas_Object *
+                                                                                                          parent, int nWidth,
+                                                                                                          int nHeight);
+static void __mp_thumbnail_view_reset(MpListUpdateType eUpdateType);
+
+/**
+ *
+ * @return
+ */
+static int mp_thumbnail_get_portrait_count()
+{
+       if (g_pThumbnailView->zoom_level == VP_ZOOM_IN_MAX)
+               return VP_GENLIST_THUMB_PORTRAIT_COUNT_ZOOM_IN;
+
+       return VP_GENLIST_THUMB_PORTRAIT_COUNT;
+}
+
+/**
+ *
+ * @return
+ */
+static int mp_thumbnail_get_landscape_count()
+{
+       if (g_pThumbnailView->zoom_level == VP_ZOOM_IN_MAX)
+               return VP_GENLIST_THUMB_LANDSPACE_COUNT_ZOOM_IN;
+
+       return VP_GENLIST_THUMB_LANDSPACE_COUNT;
+}
+
+/**
+ *
+ * @param height
+ * @param width
+ */
+void mp_thumbnail_get_icon_dimensions(int *height, int *width)
+{
+       int winHeight = 0;
+       int winWidth = 0;
+       elm_win_screen_size_get(mp_util_get_main_window_handle(), NULL, NULL,
+                                                       &winWidth, &winHeight);
+
+       bool bLandscape = mp_rotate_ctrl_check_landspace();
+       if (bLandscape) {
+               *width = winHeight / mp_thumbnail_get_landscape_count();
+       } else {
+               *width = winWidth / mp_thumbnail_get_portrait_count();
+       }
+
+       if (g_pThumbnailView->zoom_level == VP_ZOOM_IN_MAX)
+               *height = VP_ALBUM_THUMB_ICON_HEIGHT_ZOOM_IN * MP_SCALE;
+       else
+               *height = VP_ALBUM_THUMB_ICON_HEIGHT * MP_SCALE;
+}
+
+/**
+ *
+ * @param nIndexGenlist
+ */
+void mp_thumbnail_view_cancel_thumbnail_update(int nIndexGenlist)
+{
+       if (!g_pThumbnailView) {
+               VideoLogError("");
+               return;
+       }
+
+       bool bLandscape = mp_rotate_ctrl_check_landspace();
+       int nVideoItemIndex = 0;
+       int nItemCount = VP_GENLIST_THUMB_PORTRAIT_COUNT;
+
+       if (bLandscape) {
+               nItemCount = VP_GENLIST_THUMB_LANDSPACE_COUNT;
+       }
+
+       nVideoItemIndex = nIndexGenlist * nItemCount;
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       VideoLogInfo("realize is %d--%d--%d", nItemCount, nVideoItemIndex,
+                                nVideoListSize);
+
+       int nIndex = 0;
+       for (; (nIndex < nItemCount) && (nVideoItemIndex < nVideoListSize);
+                nIndex++) {
+               nVideoItemIndex = nVideoItemIndex + nIndex;
+
+               mp_util_svc_cancel_thumbnail_update(nVideoItemIndex);
+       }
+
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+int mp_thumbnail_view_thumbnail_to_genlist_index(int nVideoItemIndex)
+{
+       /*nVideoItemIndex = 0-->max */
+       if (nVideoItemIndex < 0) {
+               VideoLogDebug("invalid nVideoItemIndex");
+               return 0;
+       }
+       int nItemCount = mp_thumbnail_get_portrait_count();
+       int nGenlistIndex = 0;
+       if (g_pThumbnailView->bLandscape) {
+               nItemCount = mp_thumbnail_get_landscape_count();
+       }
+       nGenlistIndex = nVideoItemIndex / nItemCount;
+       return nGenlistIndex;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void __mp_thumbnail_view_warning_popup_cb(void *pUserData,
+                                                                                 Evas_Object * pObject,
+                                                                                 void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_util_delete_popup_handle();
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __mp_thumbnail_view_play_video_idler_cb(void *pUserData)
+{
+       if (!g_pThumbnailView) {
+               VideoLogError("");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       g_pThumbnailView->pPlayIdler = NULL;
+
+       int nVideoItemIndex = (int) pUserData;
+
+       if (nVideoItemIndex < 0
+               || nVideoItemIndex >=
+               mp_util_svc_get_video_list_size_for_checking_index()) {
+               VideoLogError("[ERR] list item index.");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       VideoLogInfo("nVideoItemIndex %d", nVideoItemIndex);
+
+       char *szMediaUrl = mp_util_svc_get_video_url(nVideoItemIndex);
+
+       if (szMediaUrl) {
+               if (!mp_util_check_local_file_exist(szMediaUrl)) {
+                       mp_util_notify_popup(NULL, VIDEOS_COMMON_HEADER_ERROR,
+                                                                VIDEOS_NOTIPOP_MSG_FILE_NOT_EXIST,
+                                                                __mp_thumbnail_view_warning_popup_cb);
+                       free(szMediaUrl);
+                       return ECORE_CALLBACK_CANCEL;
+               }
+
+               mp_launch_video_play(szMediaUrl, MP_PLAYER_TYPE_VIDEO, NULL);
+       } else {
+               VideoLogInfo("[Err] Fail to get video uri from media service.");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       MP_FREE_STRING(szMediaUrl);
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_thumbnail_view_get_icon_of_grid_cb(const void
+                                                                                                                       *pUserData,
+                                                                                                                       Evas_Object *
+                                                                                                                       pObject,
+                                                                                                                       const char
+                                                                                                                       *pPart)
+{
+       if (!g_pThumbnailView || !pObject) {
+               VideoLogError("g_pMainViewWidgetOfThumbnailList is NULL");
+               return NULL;
+       }
+
+       int nGenItemIndex = (int) pUserData;
+       int nHeight = 0;
+       int nWidth = 0;
+       mp_thumbnail_get_icon_dimensions(&nHeight, &nWidth);
+
+       Evas_Object *pGengrid =
+               __mp_thumbnail_view_create_gengrid(pObject, nWidth, nHeight);
+       __mp_thumbnail_view_append_gengrid_items(pGengrid, nGenItemIndex);
+
+       return pGengrid;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_thumbnail_view_video_item_del_cb(void *data,
+                                                                                                 Evas_Object * obj,
+                                                                                                 void *event_info)
+{
+       if (!g_pThumbnailView || !event_info
+               || !g_pThumbnailView->pVideoItemList) {
+               VideoLogError("g_pMainViewWidge is NULL");
+               return;
+       }
+       int nIndexGenlist = 0;
+       Elm_Object_Item *pCurrentItem = (Elm_Object_Item *) event_info;
+
+       Eina_List *pCurList = NULL;
+       Elm_Object_Item *pTmpVideoItem = NULL;
+       EINA_LIST_FOREACH(g_pThumbnailView->pVideoItemList, pCurList,
+                                         pTmpVideoItem) {
+               if (pCurrentItem == pTmpVideoItem) {
+                       nIndexGenlist = (int) elm_object_item_data_get(pCurrentItem);
+                       mp_thumbnail_view_cancel_thumbnail_update(nIndexGenlist);
+                       pTmpVideoItem = NULL;
+                       pCurList->data = NULL;
+                       break;
+               }
+       }
+}
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_thumbnail_view_free_video_wall_item(char *pVideoItemId)
+{
+       if (!pVideoItemId || !g_pThumbnailView
+               || !g_pThumbnailView->pWallHandleList) {
+               VideoLogError("");
+               return;
+       }
+}
+#endif
+
+/**
+ *
+ * @param pGenlist
+ * @return
+ */
+static bool __mp_thumbnail_view_append_grid_layout(void *pGenlist)
+{
+       if (!pGenlist || !g_pThumbnailView) {
+               VideoLogError("error handle.");
+               return FALSE;
+       }
+       int nIndex = 0;
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       if (nVideoListSize <= 0) {
+               VideoLogWarning("nVideoListSize = %d", nVideoListSize);
+               return FALSE;
+       }
+
+       MP_DEL_ITC(g_pThumbnailView->pGenGridItc);
+       g_pThumbnailView->pGenGridItc = elm_genlist_item_class_new();
+
+       g_pThumbnailView->pGenGridItc->item_style = "video/1icon.thumbnail";
+       g_pThumbnailView->pGenGridItc->func.text_get = NULL;
+       g_pThumbnailView->pGenGridItc->func.content_get =
+               (void *) __mp_thumbnail_view_get_icon_of_grid_cb;
+       g_pThumbnailView->pGenGridItc->func.state_get = NULL;
+       g_pThumbnailView->pGenGridItc->func.del = NULL;
+       g_pThumbnailView->pGenGridItc->decorate_item_style = NULL;
+
+       MP_DEL_ITC(g_pThumbnailView->pGenGridZoomItc);
+       g_pThumbnailView->pGenGridZoomItc = elm_genlist_item_class_new();
+       g_pThumbnailView->pGenGridZoomItc->item_style =
+               "video/1icon.thumbnail.zoom";
+       g_pThumbnailView->pGenGridZoomItc->func.text_get = NULL;
+       g_pThumbnailView->pGenGridZoomItc->func.content_get =
+               (void *) __mp_thumbnail_view_get_icon_of_grid_cb;
+       g_pThumbnailView->pGenGridZoomItc->func.state_get = NULL;
+       g_pThumbnailView->pGenGridZoomItc->func.del = NULL;
+       g_pThumbnailView->pGenGridZoomItc->decorate_item_style = NULL;
+
+       int nGenlistRow = 0;
+       nGenlistRow =
+               mp_thumbnail_view_thumbnail_to_genlist_index(nVideoListSize - 1);
+       Elm_Object_Item *pTmpVideoGenlistItem = NULL;
+
+       if (g_pThumbnailView->zoom_level == VP_ZOOM_IN_MAX) {
+               for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+                       pTmpVideoGenlistItem =
+                               elm_genlist_item_append(pGenlist,
+                                                                               g_pThumbnailView->pGenGridZoomItc,
+                                                                               (void *) nIndex, NULL,
+                                                                               ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+                       g_pThumbnailView->pVideoItemList =
+                               eina_list_append(g_pThumbnailView->pVideoItemList,
+                                                                pTmpVideoGenlistItem);
+                       elm_object_item_del_cb_set(pTmpVideoGenlistItem,
+                                                                          __mp_thumbnail_view_video_item_del_cb);
+               }
+       } else {
+               for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) {
+                       pTmpVideoGenlistItem =
+                               elm_genlist_item_append(pGenlist,
+                                                                               g_pThumbnailView->pGenGridItc,
+                                                                               (void *) nIndex, NULL,
+                                                                               ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+                       g_pThumbnailView->pVideoItemList =
+                               eina_list_append(g_pThumbnailView->pVideoItemList,
+                                                                pTmpVideoGenlistItem);
+                       elm_object_item_del_cb_set(pTmpVideoGenlistItem,
+                                                                          __mp_thumbnail_view_video_item_del_cb);
+               }
+       }
+
+
+       MP_DEL_TIMER(g_pThumbnailView->pStartWallTimer);
+       g_pThumbnailView->nUpdateTimerCounter = 0;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *__mp_thumbnail_view_get_icon_of_no_item_cb(const void
+                                                                                                               *pUserData,
+                                                                                                               Evas_Object *
+                                                                                                               pObject,
+                                                                                                               const char *pPart)
+{
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_NO_ITEM_EDJ);
+       free(path);
+       if (!strcmp(pPart, "elm.icon")) {
+               int width = NO_ITEM_GENLIST_WIDTH * elm_config_scale_get();
+               int height = NO_ITEM_GENLIST_HEIGHT * elm_config_scale_get();
+
+               Evas_Object *pNoItemLayout = NULL;
+               pNoItemLayout = elm_layout_add(pObject);
+               elm_layout_file_set(pNoItemLayout, edj_path,
+                                                       GENLIST_NOITEM_EDJ_GROUP);
+               evas_object_size_hint_min_set(pNoItemLayout, width, height);
+
+               elm_object_part_text_set(pNoItemLayout,
+                                                                SWALLOW_LISTVIEW_NO_ITEM_TEXT,
+                                                                VIDEOS_NOCONTENT_MSG_NO_VIDEOS_DESC);
+               evas_object_show(pNoItemLayout);
+               return pNoItemLayout;
+       }
+
+       return NULL;
+}
+
+
+/*//////////////////////////////////////////////////*/
+/* External APIs*/
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_thumbnail_view_rotate_cb(void *data, Evas_Object * obj,
+                                                                                 void *event_info)
+{
+       if (!g_pThumbnailView) {
+               VideoLogError("__mp_thumbnail_view_rotate_cb IS null");
+               return;
+       }
+       bool bLandscape = mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+                                                                                                                       mp_util_get_main_window_handle
+                                                                                                                       ());
+       if (bLandscape) {
+               VideoLogInfo("landscape mode");
+               g_pThumbnailView->bLandscape = true;
+       } else {
+               g_pThumbnailView->bLandscape = false;
+       }
+       elm_genlist_clear(g_pThumbnailView->pVideosGenlist);
+       __mp_thumbnail_view_append_grid_layout
+               (g_pThumbnailView->pVideosGenlist);
+}
+
+/**
+ *
+ * @param data
+ * @param view
+ * @return
+ */
+int _grid_view_zoom_out(void *data, Evas_Object * view)
+{
+       st_VideoListViewMainViewWidget *ad =
+               (st_VideoListViewMainViewWidget *) data;
+
+       g_pThumbnailView->zoom_level = ad->zoom_level;
+       elm_genlist_clear(g_pThumbnailView->pVideosGenlist);
+       __mp_thumbnail_view_append_grid_layout
+               (g_pThumbnailView->pVideosGenlist);
+
+       return 0;
+}
+
+/**
+ *
+ * @param data
+ * @param view
+ * @return
+ */
+int _grid_view_zoom_in(void *data, Evas_Object * view)
+{
+       st_VideoListViewMainViewWidget *ad =
+               (st_VideoListViewMainViewWidget *) data;
+
+       g_pThumbnailView->zoom_level = ad->zoom_level;
+       elm_genlist_clear(g_pThumbnailView->pVideosGenlist);
+       __mp_thumbnail_view_append_grid_layout
+               (g_pThumbnailView->pVideosGenlist);
+
+       return 0;
+}
+
+/**
+ *
+ * @param pMainViewHandle
+ * @param pMainViewWidget
+ * @param eUpdateType
+ * @param pUpdateVideoListUserCb
+ * @return
+ */
+bool mp_thumbnail_view_arrange_list_item(void *pMainViewHandle,
+                                                                                void *pMainViewWidget,
+                                                                                MpListUpdateType eUpdateType,
+                                                                                UpdateListItemsCbFunc
+                                                                                pUpdateVideoListUserCb)
+{
+       VideoLogInfo("");
+
+       if (!pMainViewHandle || !pMainViewWidget || !pUpdateVideoListUserCb) {
+               VideoLogInfo("Main handles of list view are not existed.");
+               return FALSE;
+       }
+
+       if (eUpdateType == LIST_UPDATE_TYPE_NONE) {
+               VideoLogInfo("don't need to update and create");
+               return TRUE;
+       }
+
+       __mp_thumbnail_view_reset(eUpdateType);
+
+       if (!g_pThumbnailView) {
+               g_pThumbnailView =
+                       (stThumbnailView *) calloc(1, sizeof(stThumbnailView));
+               if (g_pThumbnailView == NULL) {
+                       return FALSE;
+               }
+       }
+
+       g_pThumbnailView->fViewCbFunc = pUpdateVideoListUserCb;
+       g_pThumbnailView->pMainHandle = pMainViewHandle;
+       g_pThumbnailView->pMainWidget = pMainViewWidget;
+       g_pThumbnailView->eUpdateType = eUpdateType;
+       g_pThumbnailView->zoom_level = VP_ZOOM_IN_DEFAULT;
+       g_pThumbnailView->bLandscape =
+               mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+                                                                                         mp_util_get_main_window_handle
+                                                                                         ());
+
+       st_VideoListViewMainViewHandle *pMainHandle =
+               g_pThumbnailView->pMainHandle;
+       g_pThumbnailView->pVideosGenlist = pMainHandle->pVideosGenlist;
+
+       int nVideoListSize = 0;
+
+       if (g_pThumbnailView->eUpdateType == LIST_UPDATE_TYPE_ALL
+               || g_pThumbnailView->eUpdateType == LIST_UPDATE_TYPE_DATA) {
+               mp_util_svc_destory_video_list();
+               mp_util_svc_extract_video_list_by_item_type
+                       (mp_sort_ctrl_get_sort_state(), mp_view_ctrl_get_list_type());
+       }
+
+       nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+       VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+
+       if (nVideoListSize == 0) {
+               mp_ft_ctrl_destroy();
+       }
+
+
+       if (!g_pThumbnailView->pVideosGenlist) {
+               g_pThumbnailView->pVideosGenlist =
+                       elm_genlist_add(g_pThumbnailView->
+                                                       pMainWidget->pListViewBaselayout);
+               elm_scroller_bounce_set(g_pThumbnailView->pVideosGenlist,
+                                                               EINA_FALSE, EINA_TRUE);
+               evas_object_size_hint_weight_set(g_pThumbnailView->pVideosGenlist,
+                                                                                EVAS_HINT_EXPAND,
+                                                                                EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(g_pThumbnailView->pVideosGenlist,
+                                                                               EVAS_HINT_FILL, EVAS_HINT_FILL);
+               elm_genlist_mode_set(g_pThumbnailView->pVideosGenlist,
+                                                        ELM_LIST_COMPRESS);
+               elm_scroller_single_direction_set(g_pThumbnailView->pVideosGenlist,
+                                                                                 ELM_SCROLLER_SINGLE_DIRECTION_HARD);
+               evas_object_show(g_pThumbnailView->
+                                                pMainWidget->pListViewBaselayout);
+       }
+
+       elm_object_part_content_set(g_pThumbnailView->
+                                                               pMainWidget->pListViewBaselayout,
+                                                               SWALLOW_LISTVIEW_CONTENT,
+                                                               g_pThumbnailView->pVideosGenlist);
+       if (nVideoListSize > 0) {
+               if (g_pThumbnailView->pNocontentlayout) {
+                       elm_object_part_content_unset
+                               (g_pThumbnailView->pNocontentlayout,
+                                SWALLOW_LISTVIEW_CONTENT);
+                       MP_DEL_OBJ(g_pThumbnailView->pNocontentlayout);
+               }
+               _vp_pinch_add_event(g_pThumbnailView->pMainWidget,
+                                                       g_pThumbnailView->
+                                                       pMainWidget->pListViewBaselayout);
+               __mp_thumbnail_view_append_grid_layout
+                       (g_pThumbnailView->pVideosGenlist);
+
+       } else {
+               g_pThumbnailView->pNocontentlayout =
+                       mp_create_nocontent_layout(g_pThumbnailView->
+                                                                          pMainWidget->pListViewBaselayout,
+                                                                          VIDEOS_NOCONTENT_MSG_NO_VIDEOS_IDS,
+                                                                          VIDEOS_NOCONTENT_MSG_NO_VIDEOS_DESC_IDS);
+               elm_object_part_content_unset(g_pThumbnailView->
+                                                                         pMainWidget->pListViewBaselayout,
+                                                                         SWALLOW_LISTVIEW_CONTENT);
+               if (g_pThumbnailView->pVideosGenlist) {
+                       evas_object_hide(g_pThumbnailView->pVideosGenlist);
+               }
+               evas_object_show(g_pThumbnailView->
+                                                pMainWidget->pListViewBaselayout);
+               elm_object_part_content_set(g_pThumbnailView->
+                                                                       pMainWidget->pListViewBaselayout,
+                                                                       SWALLOW_LISTVIEW_CONTENT,
+                                                                       g_pThumbnailView->pNocontentlayout);
+       }
+
+       evas_object_smart_callback_add((Evas_Object *)
+                                                                  mp_util_get_main_window_handle(),
+                                                                  "wm,rotation,changed",
+                                                                  __mp_thumbnail_view_rotate_cb, NULL);
+       mp_list_common_set_callabcks(g_pThumbnailView->pMainHandle,
+                                                                __mp_thumbnail_view_language_changed_genlist_cb,
+                                                                __mp_thumbnail_view_realize_genlist_item_cb,
+                                                                NULL, NULL);
+
+       evas_object_show(g_pThumbnailView->pVideosGenlist);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @return
+ */
+int mp_thumbnail_view_get_selected_video_item_index(void)
+{
+       if (!g_pThumbnailView) {
+               VideoLogError("");
+               return 0;
+       }
+
+       VideoLogInfo("g_pThumbnailView->nSelectedVideoItem : %d",
+                                g_pThumbnailView->nSelectedVideoItem);
+
+       return g_pThumbnailView->nSelectedVideoItem;
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ */
+static void __mp_thumbnail_view_update_video_items(int nVideoItemIndex)
+{
+       if (!g_pThumbnailView) {
+               VideoLogError("g_pMainViewHandleOfThumbnailList are not existed.");
+               return;
+       }
+
+       mp_util_svc_update_thumbnail_info(nVideoItemIndex);
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ */
+void mp_thumbnail_view_update_genlist_item(int nVideoItemIndex)
+{
+
+       if (!g_pThumbnailView || !g_pThumbnailView->pVideosGenlist) {
+               VideoSecureLogError("invalid handle.");
+               return;
+       }
+
+       if (!g_pThumbnailView->pVideoItemList) {
+               VideoSecureLogError
+                       ("g_pThumbnailView->pVideosGenlist is not existed.");
+               return;
+       }
+
+       int nGenistIndex =
+               mp_thumbnail_view_thumbnail_to_genlist_index(nVideoItemIndex);
+       Elm_Object_Item *pTmpVideoGenlistItem =
+               (Elm_Object_Item *) eina_list_nth(g_pThumbnailView->pVideoItemList,
+                                                                                 nGenistIndex);
+       if (pTmpVideoGenlistItem) {
+               VideoLogWarning("Update index: %d", nVideoItemIndex);
+               Evas_Object *gengrid =
+                       elm_object_item_part_content_get(pTmpVideoGenlistItem,
+                                                                                        "elm.icon");
+               if (gengrid) {
+                       int nCount =
+                               (mp_rotate_ctrl_check_landspace() ?
+                                VP_GENLIST_THUMB_LANDSPACE_COUNT :
+                                VP_GENLIST_THUMB_PORTRAIT_COUNT);
+                       int nIndex = nVideoItemIndex % nCount;
+                       Elm_Object_Item *updateItem =
+                               elm_gengrid_first_item_get(gengrid);
+                       while (nIndex > 0 && updateItem) {
+                               updateItem = elm_gengrid_item_next_get(updateItem);
+                               --nIndex;
+                       }
+
+                       VideoLogWarning("updateItem: %p", updateItem);
+                       if (updateItem)
+                               elm_gengrid_item_update(updateItem);
+               }
+       }
+}
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_thumbnail_view_share_via_cb(void *pUserData,
+                                                                                        Evas_Object * pObject,
+                                                                                        void *pEventInfo)
+{
+       mp_option_ctrl_delete_handle();
+       if (!g_pThumbnailView) {
+               VideoLogError("g_pThumbnailView of list view is not existed.");
+               return;
+       }
+
+       int videoItemIndex = (int) pUserData;
+       char *pVideo_url = mp_util_svc_get_video_url(videoItemIndex);
+       bool bDRMLock = FALSE;
+#ifdef ENABLE_DRM_FEATURE
+       mp_util_check_drm_lock((const char *) pVideo_url, &bDRMLock);
+#endif
+       if (bDRMLock) {
+               MP_FREE_STRING(pVideo_url);
+               mp_util_notify_popup(NULL, VIDEOS_COMMON_HEADER_ERROR,
+                                                        VIDEOS_NOTIPOP_MSG_UNABLE_TO_SHARE_DRM_FILE,
+                                                        __mp_thumbnail_view_warning_popup_cb);
+               return;
+       }
+
+       mp_external_service_share_panel(pVideo_url);
+       MP_FREE_STRING(pVideo_url);
+}
+#endif
+
+/**
+ *
+ */
+void __mp_thumbnail_view_result_user_cb(void)
+{
+       if (!g_pThumbnailView) {
+               VideoLogError("");
+               return;
+       }
+       if (g_pThumbnailView->fViewCbFunc) {
+               g_pThumbnailView->fViewCbFunc(LIST_UPDATE_TYPE_ALL);
+       }
+}
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_thumbnail_view_add_to_home_cb(void *pUserData,
+                                                                                          Evas_Object * pObject,
+                                                                                          void *pEventInfo)
+{
+       mp_option_ctrl_delete_handle();
+
+       if (!g_pThumbnailView) {
+               VideoLogInfo("g_pThumbnailView is not existed.");
+               return;
+       }
+
+       int nVideoItemIndex = (int) pUserData;
+
+       VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+
+       char *pVideo_id = mp_util_svc_get_video_id_by_index(nVideoItemIndex);
+       char *pVideo_thumbnail =
+               mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+
+       if (pVideo_id) {
+               {
+                       mp_util_status_bar_noti_popup_show(MP_COM_OPT_UNABLE_ADDED);
+               }
+       } else {
+               VideoLogError("[ERR] No exist file uri.");
+       }
+       MP_FREE_STRING(pVideo_id);
+       MP_FREE_STRING(pVideo_thumbnail);
+
+}
+
+static void __mp_thumbnail_view_detail_video_popup_cb(void *pUserData,
+                                                                                                         Evas_Object *
+                                                                                                         pObject,
+                                                                                                         void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_util_delete_popup_handle();
+}
+
+static void __mp_thumbnail_view_detail_mouse_back_popup_cb(void
+                                                                                                                  *pUserData,
+                                                                                                                  Evas * pEvas,
+                                                                                                                  Evas_Object *
+                                                                                                                  pObject, void
+                                                                                                                  *pEventInfo)
+{
+       Evas_Event_Mouse_Up *pEvent = pEventInfo;
+       if (!pEvent) {
+               return;
+       }
+       if (pEvent->button == 3) {
+               mp_util_delete_popup_handle();
+       }
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObject
+ * @param pEventInfo
+ */
+void __mp_thumbnail_view_detail_key_back_popup_cb(void *pUserData,
+                                                                                                 Evas * pEvas,
+                                                                                                 Evas_Object * pObject,
+                                                                                                 void *pEventInfo)
+{
+       Evas_Event_Key_Down *pEvent = pEventInfo;
+       if (!pEvent) {
+               return;
+       }
+
+       if (!g_strcmp0(pEvent->keyname, "XF86Back")) {
+               mp_util_delete_popup_handle();
+       }
+}
+
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_thumbnail_view_cloud_download_btn_cb(void *pUserData,
+                                                                                                         Evas_Object *
+                                                                                                         pObject,
+                                                                                                         void *pEventInfo)
+{
+       VideoLogInfo("");
+
+}
+
+static void __mp_thumbnail_view_respones_delete_popup_cb(void *pUserData,
+                                                                                                                Evas_Object *
+                                                                                                                pObject,
+                                                                                                                void *pEventInfo)
+{
+       if (!g_pThumbnailView) {
+               VideoLogError("");
+               return;
+       }
+
+       mp_util_delete_popup_handle();
+
+       int nVideoItemIndex = (int) pUserData;
+
+       VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+       if (nVideoItemIndex < 0
+               || nVideoItemIndex >=
+               mp_util_svc_get_video_list_size_for_checking_index()) {
+               VideoLogInfo("[ERR] list item index.");
+               return;
+       }
+
+       char *szFileUrl = mp_util_svc_get_video_url(nVideoItemIndex);
+       if (szFileUrl) {
+               char *szMediaUrlForPreview = mp_util_config_get_preview();
+               if (szMediaUrlForPreview) {
+                       if (!g_strcmp0(szMediaUrlForPreview, szFileUrl)) {
+                               VideoLogInfo("Erase preview url.");
+                               mp_util_config_set_preview(NULL);
+                       }
+               }
+               MP_FREE_STRING(szMediaUrlForPreview);
+               VideoLogInfo("Delete file url : %s", szFileUrl);
+               vp_file_unlink(szFileUrl);
+               free(szFileUrl);
+               szFileUrl = NULL;
+               char *pVideoId = NULL;
+               pVideoId = mp_util_svc_get_video_id_by_index(nVideoItemIndex);
+               __mp_thumbnail_view_free_video_wall_item(pVideoId);
+               MP_FREE_STRING(pVideoId);
+               mp_util_svc_remove_item_by_list_index(nVideoItemIndex);
+
+               mp_list_view_update_count_layout();
+
+               if (g_pThumbnailView->fViewCbFunc) {
+                       g_pThumbnailView->fViewCbFunc(LIST_UPDATE_TYPE_VIEW);
+               }
+
+       }
+
+}
+
+static void __mp_thumbnail_view_pop_up_delete_cb(void *pUserData,
+                                                                                                Evas_Object * pObject,
+                                                                                                void *pEventInfo)
+{
+       mp_option_ctrl_delete_handle();
+
+       if (!g_pThumbnailView) {
+               VideoLogError("g_pThumbnailView of list view are not existed.");
+               return;
+       }
+       int nVideoItemIndex = (int) pUserData;
+       mp_util_remove_question_popup(nVideoItemIndex,
+                                                                 (MpListViewAsType) 0,
+                                                                 __mp_thumbnail_view_respones_delete_popup_cb,
+                                                                 __mp_thumbnail_view_detail_video_popup_cb,
+                                                                 __mp_thumbnail_view_detail_mouse_back_popup_cb,
+                                                                 __mp_thumbnail_view_detail_key_back_popup_cb);
+
+}
+
+static void __mp_thumbnail_view_result_pop_up(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("Invalid list and object");
+               return;
+       }
+       Evas_Object *pGrid = (Evas_Object *) pUserData;
+       evas_object_data_set(pGrid, "popup", NULL);
+       elm_object_scroll_freeze_pop(pGrid);
+}
+#endif
+
+/**
+ *
+ * @return
+ */
+static bool __mp_thumbnail_view_normal_is_top_view(void)
+{
+       VideoLogInfo("");
+
+       if (!g_pThumbnailView) {
+               VideoLogError("g_pThumbnailView is NULL");
+               return FALSE;
+       }
+       if (!g_pThumbnailView->pMainHandle->pNaviFrameHandle) {
+               VideoLogInfo("[ERR] No exist naviframe handle.");
+               return FALSE;
+       }
+       if (mp_mgr_get_library_naviframe()) {
+               int count =
+                       eina_list_count(elm_naviframe_items_get
+                                                       (mp_mgr_get_library_naviframe()));
+               return (count == 1);
+       }
+       return FALSE;
+}
+
+/**
+ *
+ * @param nError
+ * @param szPath
+ * @param pUserData
+ */
+static void __mp_thumbnail_view_update_cb(int nError, const char *szPath,
+                                                                                 void *pUserData)
+{
+       int nVideoItemIndex = (int) pUserData;
+
+       VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+       if (!g_pThumbnailView) {
+               VideoLogError("g_pMainViewHandleOfThumbnailView is not existed.");
+               return;
+       }
+
+       if (!g_pThumbnailView) {
+               VideoLogError("g_pMainViewWidgetOfThumbnailView is not existed.");
+               return;
+       }
+
+       if (!__mp_thumbnail_view_normal_is_top_view()) {
+               VideoLogError("Main list view is not top view.");
+               return;
+       }
+
+       if (nVideoItemIndex < 0
+               || nVideoItemIndex >=
+               mp_util_svc_get_video_list_size_for_checking_index()) {
+               VideoSecureLogError("nVideoItemIndex is invalid = %d",
+                                                       nVideoItemIndex);
+               return;
+       }
+
+       __mp_thumbnail_view_update_video_items(nVideoItemIndex);
+
+
+       if (g_pThumbnailView->pVideosGenlist) {
+               mp_thumbnail_view_update_genlist_item(nVideoItemIndex);
+       } else {
+               VideoLogError
+                       ("[ERR] No exist g_pMainViewWidgetOfNormalList->pVideolistItemList.");
+       }
+}
+
+/**
+ *
+ * @param nError
+ * @param szPath
+ * @param pUserData
+ */
+static void __mp_thumbnail_view_update_empty_cb(int nError,
+                                                                                               const char *szPath,
+                                                                                               void *pUserData)
+{
+       int nVideoItemIndex = (int) pUserData;
+
+       VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_thumbnail_view_realize_genlist_item_cb(void *pUserData,
+                                                                                                               Evas_Object *
+                                                                                                               pObject,
+                                                                                                               void *pEventInfo)
+{
+       if (!pEventInfo || !g_pThumbnailView) {
+               VideoLogError
+                       ("invalid pEveninfo 0r g_pMainViewWidgetOfThumbnailList");
+               return;
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_thumbnail_view_language_changed_genlist_cb(void
+                                                                                                                       *pUserData,
+                                                                                                                       Evas_Object *
+                                                                                                                       pObject, void
+                                                                                                                       *pEventInfo)
+{
+       VideoLogInfo("");
+       if (!pObject) {
+               VideoLogError("pObject is NULL");
+               return;
+       }
+       elm_genlist_realized_items_update(pObject);
+}
+
+/**
+ *
+ */
+void mp_thumbnail_view_change_language(void)
+{
+       if (!g_pThumbnailView) {
+               VideoLogError("No existed handle of thumbnail view.");
+               return;
+       }
+
+       VideoLogInfo("");
+}
+
+#ifdef ENABLE_LONGPRESS
+static void __mp_thumbnail_view_gengrid_long_press_cb(void *pUserData,
+                                                                                                         Evas_Object *
+                                                                                                         pObject,
+                                                                                                         void *pEventInfo)
+{
+       if (!g_pThumbnailView) {
+               VideoLogError("");
+               return;
+       }
+
+       if (!pEventInfo) {
+               VideoLogError("pEventInfo is not existed.");
+               return;
+       }
+
+       int nVideoItemIndex =
+               (int) elm_object_item_data_get((Elm_Object_Item *) pEventInfo);
+       VideoLogInfo("Select nVideoItemIndex: %d", nVideoItemIndex);
+       if (nVideoItemIndex < 0
+               || nVideoItemIndex >=
+               mp_util_svc_get_video_list_size_for_checking_index()) {
+               VideoSecureLogError("nVideoItemIndex is invalid = %d",
+                                                       nVideoItemIndex);
+               return;
+       }
+
+       st_RegisteOptionCbFunc *pRegisteCbFunc =
+               (st_RegisteOptionCbFunc *) calloc(1,
+                                                                                 sizeof(st_RegisteOptionCbFunc));
+       if (pRegisteCbFunc) {
+               pRegisteCbFunc->ShareViaItemCb =
+                       (void *) __mp_thumbnail_view_share_via_cb;
+               pRegisteCbFunc->AddToHomeItemCb =
+                       (void *) __mp_thumbnail_view_add_to_home_cb;
+               pRegisteCbFunc->DeleteItemCb =
+                       (void *) __mp_thumbnail_view_pop_up_delete_cb;
+               pRegisteCbFunc->DownloadCb =
+                       (void *) __mp_thumbnail_view_cloud_download_btn_cb;
+       }
+
+       char *title = mp_util_svc_get_video_title(nVideoItemIndex);
+
+       mp_option_ctrl_show(g_pThumbnailView->pMainHandle->pNaviFrameHandle,
+                                               (const char *) title, nVideoItemIndex,
+                                               pRegisteCbFunc, __mp_thumbnail_view_result_pop_up,
+                                               g_pThumbnailView->pVideosGenlist,
+                                               MP_LIST_OPTION_CLOUD_DOWNLOAD_ITEM);
+       if (mp_option_ctrl_get_handle()) {
+               evas_object_data_set(g_pThumbnailView->pVideosGenlist, "popup",
+                                                        mp_option_ctrl_get_handle());
+               elm_object_scroll_freeze_push(g_pThumbnailView->pVideosGenlist);
+       }
+       MP_FREE_STRING(pRegisteCbFunc);
+       MP_FREE_STRING(title);
+}
+#endif
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_thumbnail_view_gengrid_realize_cb(void *pUserData,
+                                                                                                  Evas_Object * pObject,
+                                                                                                  void *pEventInfo)
+{
+
+       if (!pEventInfo) {
+               VideoLogError("pEventInfo is not existed.");
+               return;
+       }
+
+       vp_share_view_update_share_panel();
+
+       int nVideoItemIndex =
+               (int) elm_object_item_data_get((Elm_Object_Item *) pEventInfo);
+       VideoLogInfo("Select nVideoItemIndex: %d", nVideoItemIndex);
+       if (nVideoItemIndex < 0
+               || nVideoItemIndex >=
+               mp_util_svc_get_video_list_size_for_checking_index()) {
+               VideoSecureLogError("nVideoItemIndex is invalid = %d",
+                                                       nVideoItemIndex);
+               return;
+       }
+
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       char *pThumbIconUri = mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+       VideoSecureLogInfo("pThumbIconUri = %s:%d", pThumbIconUri,
+                                          nVideoItemIndex);
+       if (!pThumbIconUri) {
+               if (nVideoItemIndex < nVideoListSize - 1) {
+                       mp_util_svc_register_thumbnail_update_func(nVideoItemIndex,
+                                                                                                          __mp_thumbnail_view_update_empty_cb,
+                                                                                                          (void *)
+                                                                                                          nVideoItemIndex);
+               } else {
+                       mp_util_svc_register_thumbnail_update_func(nVideoItemIndex,
+                                                                                                          (void *)
+                                                                                                          __mp_thumbnail_view_update_cb,
+                                                                                                          (void *)
+                                                                                                          nVideoItemIndex);
+               }
+       } else {
+               free(pThumbIconUri);
+               pThumbIconUri = NULL;
+       }
+}
+
+/**
+ *
+ * @param parent
+ * @param nWidth
+ * @param nHeight
+ * @return
+ */
+static Evas_Object *__mp_thumbnail_view_create_gengrid(Evas_Object *
+                                                                                                          parent, int nWidth,
+                                                                                                          int nHeight)
+{
+       Evas_Object *pGengrid =
+               mp_util_create_gengrid(parent, nWidth, nHeight, EINA_TRUE);
+       if (!pGengrid) {
+               VideoLogError("pVideoGrid is not existed.");
+               return NULL;
+       }
+#ifdef ENABLE_LONGPRESS
+       evas_object_smart_callback_add(pGengrid, "longpressed",
+                                                                  __mp_thumbnail_view_gengrid_long_press_cb,
+                                                                  NULL);
+#endif
+       evas_object_smart_callback_add(pGengrid, "realized",
+                                                                  __mp_thumbnail_view_gengrid_realize_cb,
+                                                                  NULL);
+
+       return pGengrid;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_thumbnail_view_get_label_of_grid_item_cb(const void
+                                                                                                                  *pUserData,
+                                                                                                                  Evas_Object *
+                                                                                                                  pObject,
+                                                                                                                  const char
+                                                                                                                  *pPart)
+{
+       int nVideoItemIndex = (int) pUserData;
+
+       if (!strcmp(pPart, "elm.text")) {
+               char *szTitle;
+               szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+               char *szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+               if (szTitle) {
+                       free(szTitle);
+                       szTitle = NULL;
+               }
+
+               return szTitleUtf8;
+       } else if (!strcmp(pPart, "elm.text.2")) {
+               return mp_util_svc_get_duration_str_time(nVideoItemIndex);
+       } else {
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_thumbnail_view_get_grid_icon_cb(const void
+                                                                                                                *pUserData,
+                                                                                                                Evas_Object *
+                                                                                                                pObject,
+                                                                                                                const char
+                                                                                                                *pPart)
+{
+       int nVideoItemIndex = (int) pUserData;
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_IMAGE_NAME_EDJ);
+       free(path);
+       if (!strcmp(pPart, "elm.swallow.icon")) {
+               char *pThumbIconUri =
+                       mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+               Evas_Object *thumb = NULL;
+               int nWidth = 0;
+               int nHeight = 0;
+
+               thumb = elm_image_add(pObject);
+               elm_image_preload_disabled_set(thumb, EINA_FALSE);
+               elm_image_smooth_set(thumb, EINA_FALSE);
+               elm_image_prescale_set(thumb, 50 * MP_SCALE);
+               elm_image_file_set(thumb, pThumbIconUri, NULL);
+               elm_image_object_size_get(thumb, &nWidth, &nHeight);
+               if (nWidth > nHeight) {
+                       elm_image_aspect_fixed_set(thumb, EINA_FALSE);
+               }
+               if (thumb)
+                       evas_object_show(thumb);
+               MP_FREE_STRING(pThumbIconUri);
+               return thumb;
+       } else if (!strcmp(pPart, "elm.progressbar.icon")) {
+                       return NULL;
+
+       } else if (!strcmp(pPart, "elm.lock.icon")) {
+               char *pVideoFile = mp_util_svc_get_video_url(nVideoItemIndex);
+               bool bRet = mp_util_check_video_personal_status((const char *)
+                                                                                                               pVideoFile);
+               MP_FREE_STRING(pVideoFile);
+               if (bRet) {
+                       Evas_Object *pLockIcon = elm_image_add(pObject);
+                       elm_image_file_set(pLockIcon, edj_path,
+                                                          VIDEO_LIST_VIEW_ICON_PERSONAL_LOCK);
+                       evas_object_size_hint_align_set(pLockIcon, EVAS_HINT_FILL,
+                                                                                       EVAS_HINT_FILL);
+                       evas_object_size_hint_weight_set(pLockIcon, EVAS_HINT_EXPAND,
+                                                                                        EVAS_HINT_EXPAND);
+                       evas_object_show(pLockIcon);
+                       return pLockIcon;
+               } else {
+                       return NULL;
+               }
+       } else if (!strcmp(pPart, "elm.dropbox.icon")) {
+               bool bRet = mp_util_svc_is_cloud_storage(nVideoItemIndex);
+               if (bRet) {
+                       Evas_Object *pDropboxIcon = elm_image_add(pObject);
+                       elm_image_file_set(pDropboxIcon, edj_path,
+                                                          VIDEO_LIST_VIEW_ICON_DROPBOX);
+                       evas_object_size_hint_align_set(pDropboxIcon, EVAS_HINT_FILL,
+                                                                                       EVAS_HINT_FILL);
+                       evas_object_size_hint_weight_set(pDropboxIcon,
+                                                                                        EVAS_HINT_EXPAND,
+                                                                                        EVAS_HINT_EXPAND);
+                       evas_object_show(pDropboxIcon);
+                       return pDropboxIcon;
+               } else {
+                       return NULL;
+               }
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_thumbnail_view_select_grid_item_cb(void *pUserData,
+                                                                                                       Evas_Object * pObject,
+                                                                                                       void *pEventInfo)
+{
+       if (!g_pThumbnailView) {
+               VideoLogError("");
+               return;
+       }
+
+       if (!pObject) {
+               VideoLogInfo("[ERR]No have pUserData");
+               return;
+       }
+       Evas_Object *pPopup = evas_object_data_get(g_pThumbnailView->pVideosGenlist, "popup");  /* Get popup */
+       if (pPopup) {
+               VideoLogInfo("long press is called");
+               return;                                 /* If popup exists, do nothing */
+       }
+
+       if (!mp_util_call_off()) {
+               mp_util_ticker_toast_popup
+                       (VIDEOS_NOTIPOP_MSG_UNABLE_TO_PLAY_VIDEO_DURING_CALL, false,
+                        false);
+               return;
+       }
+
+       if (!mp_launch_video_allow_check()) {
+               return;
+       }
+
+       int nVideoItemIndex = (int) pUserData;
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+       VideoLogDebug("nVideoItemIndex = %d--%d", nVideoItemIndex,
+                                 nVideoListSize);
+
+       if (nVideoItemIndex < 0 || nVideoItemIndex >= nVideoListSize) {
+               VideoLogError("nVideoItemIndex < 0 ===>>> RETURN");
+               return;
+       }
+
+       VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+       g_pThumbnailView->nSelectedVideoItem = nVideoItemIndex;
+
+       MP_DEL_IDLER(g_pThumbnailView->pPlayIdler);
+       g_pThumbnailView->pPlayIdler =
+               ecore_idler_add(__mp_thumbnail_view_play_video_idler_cb,
+                                               (void *) nVideoItemIndex);
+}
+
+/**
+ *
+ * @param pUserdata
+ * @param obj
+ * @param event_info
+ */
+static void __mp_thumbnail_view_grid_item_del_cb(void *pUserdata,
+                                                                                                Evas_Object * obj,
+                                                                                                void *event_info)
+{
+       if (!g_pThumbnailView || !event_info
+               || !g_pThumbnailView->pVideoItemList) {
+               VideoLogError("g_pMainViewWidge is NULL");
+               return;
+       }
+}
+
+/**
+ *
+ * @param pGengrid
+ * @param nGenItemIndex
+ */
+static void __mp_thumbnail_view_append_gengrid_items(Evas_Object *
+                                                                                                        pGengrid,
+                                                                                                        int nGenItemIndex)
+{
+       if (!g_pThumbnailView) {
+               VideoLogError("");
+               return;
+       }
+
+       MP_DEL_GRID_ITC(g_pThumbnailView->pGenGridItc_l);
+       g_pThumbnailView->pGenGridItc_l = elm_gengrid_item_class_new();
+
+       g_pThumbnailView->pGenGridItc_l->item_style = "video/album_grid";
+       g_pThumbnailView->pGenGridItc_l->func.text_get =
+               (void *) __mp_thumbnail_view_get_label_of_grid_item_cb;
+       g_pThumbnailView->pGenGridItc_l->func.content_get =
+               (void *) __mp_thumbnail_view_get_grid_icon_cb;
+       g_pThumbnailView->pGenGridItc_l->func.state_get = NULL;
+       g_pThumbnailView->pGenGridItc_l->func.del = NULL;
+
+
+       int nCount =
+               (mp_rotate_ctrl_check_landspace() ?
+                mp_thumbnail_get_landscape_count() :
+                mp_thumbnail_get_portrait_count());
+       int nIndex = nGenItemIndex * nCount;
+       int nMaxIndex = nIndex + nCount;
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       Elm_Object_Item *gridItem = NULL;
+       for (; (nIndex < nMaxIndex) && (nIndex < nVideoListSize); nIndex++) {
+               gridItem =
+                       elm_gengrid_item_append(pGengrid,
+                                                                       g_pThumbnailView->pGenGridItc_l,
+                                                                       (void *) nIndex,
+                                                                       __mp_thumbnail_view_select_grid_item_cb,
+                                                                       (void *) nIndex);
+               elm_gengrid_item_select_mode_set(gridItem,
+                                                                                ELM_OBJECT_SELECT_MODE_ALWAYS);
+               elm_object_item_del_cb_set(gridItem,
+                                                                  __mp_thumbnail_view_grid_item_del_cb);
+               elm_object_item_data_set(gridItem, (void *) nIndex);
+       }
+}
+
+/**
+ *
+ */
+static void __mp_thumbnail_view_free_genlist_item_list(void)
+{
+       if (!g_pThumbnailView) {
+               VideoLogError("");
+               return;
+       }
+
+       if (g_pThumbnailView->pVideoItemList) {
+               Elm_Object_Item *pTmpVideoGenlistItem = NULL;
+               EINA_LIST_FREE(g_pThumbnailView->pVideoItemList,
+                                          pTmpVideoGenlistItem) {
+                       if (pTmpVideoGenlistItem) {
+                               int nIndex =
+                                       (int) elm_object_item_data_get(pTmpVideoGenlistItem);
+                               mp_thumbnail_view_cancel_thumbnail_update(nIndex);
+                               elm_object_item_del(pTmpVideoGenlistItem);
+                       }
+
+                       pTmpVideoGenlistItem = NULL;
+               }
+
+               g_pThumbnailView->pVideoItemList = NULL;
+       }
+
+}
+
+/**
+ *
+ */
+void mp_thumbnail_view_destroy(void)
+{
+       VideoLogInfo("");
+
+       if (g_pThumbnailView) {
+               __mp_thumbnail_view_free_genlist_item_list();
+
+               MP_DEL_ITC(g_pThumbnailView->pGenGridItc);
+               MP_DEL_ITC(g_pThumbnailView->pGenGridZoomItc);
+               MP_DEL_IDLER(g_pThumbnailView->pPlayIdler);
+               MP_DEL_TIMER(g_pThumbnailView->pStartWallTimer);
+               MP_DEL_IDLER(g_pThumbnailView->pWallResolutionIdler);
+               MP_DEL_GRID_ITC(g_pThumbnailView->pGenGridItc_l);
+               MP_DEL_GRID_ITC(g_pThumbnailView->pGenGridItc_r);
+               MP_DEL_OBJ(g_pThumbnailView->pVideosGenlist);
+
+               free(g_pThumbnailView);
+               g_pThumbnailView = NULL;
+               evas_object_smart_callback_del((Evas_Object *)
+                                                                          mp_util_get_main_window_handle(),
+                                                                          "wm,rotation,changed",
+                                                                          __mp_thumbnail_view_rotate_cb);
+       }
+}
+
+/**
+ *
+ * @param eUpdateType
+ */
+static void __mp_thumbnail_view_reset(MpListUpdateType eUpdateType)
+{
+       if (g_pThumbnailView) {
+               __mp_thumbnail_view_free_genlist_item_list();
+
+               MP_DEL_ITC(g_pThumbnailView->pGenGridItc);
+               MP_DEL_ITC(g_pThumbnailView->pGenGridZoomItc);
+               MP_DEL_IDLER(g_pThumbnailView->pPlayIdler);
+               MP_DEL_TIMER(g_pThumbnailView->pStartWallTimer);
+               MP_DEL_IDLER(g_pThumbnailView->pWallResolutionIdler);
+
+               MP_DEL_GRID_ITC(g_pThumbnailView->pGenGridItc_l);
+               MP_DEL_GRID_ITC(g_pThumbnailView->pGenGridItc_r);
+
+               g_pThumbnailView->fViewCbFunc = NULL;
+               g_pThumbnailView->pMainHandle = NULL;
+               g_pThumbnailView->pMainWidget = NULL;
+               g_pThumbnailView->nSelectedVideoItem = 0;
+               g_pThumbnailView->nUpdateTimerCounter = 0;
+               g_pThumbnailView->pVideosGenlist = NULL;
+               g_pThumbnailView->eUpdateType = LIST_UPDATE_TYPE_NONE;
+               if (g_pThumbnailView->pVideosGenlist) {
+                       elm_genlist_clear(g_pThumbnailView->pVideosGenlist);
+               }
+               evas_object_smart_callback_del((Evas_Object *)
+                                                                          mp_util_get_main_window_handle(),
+                                                                          "wm,rotation,changed",
+                                                                          __mp_thumbnail_view_rotate_cb);
+       }
+
+}
+
+/**
+ *
+ */
+void mp_thumbnail_view_update_played_item(void)
+{
+       if (!g_pThumbnailView || (g_pThumbnailView->nSelectedVideoItem < 0)) {
+               VideoLogInfo("No item to update.");
+               return;
+       }
+       VideoLogInfo("%d", g_pThumbnailView->nSelectedVideoItem);
+
+       if (g_pThumbnailView->pVideosGenlist) {
+               int nGenItemIndex = g_pThumbnailView->nSelectedVideoItem;
+
+               int nGenlistIndex = nGenItemIndex;
+               g_pThumbnailView->bLandscape =
+                       mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)
+                                                                                                 mp_util_get_main_window_handle
+                                                                                                 ());
+               if (g_pThumbnailView->bLandscape) {
+                       nGenlistIndex =
+                               nGenlistIndex / mp_thumbnail_get_landscape_count();
+               } else {
+                       nGenlistIndex =
+                               nGenlistIndex / mp_thumbnail_get_portrait_count();
+               }
+               Elm_Object_Item *pTmpVideoGenlistItem = NULL;
+               pTmpVideoGenlistItem =
+                       elm_genlist_nth_item_get((const Evas_Object *)
+                                                                        g_pThumbnailView->pVideosGenlist,
+                                                                        nGenlistIndex);
+               mp_util_svc_update_thumbnail_info
+                       (g_pThumbnailView->nSelectedVideoItem);
+
+               Evas_Object *pGengrid =
+                       elm_object_item_part_content_get(pTmpVideoGenlistItem,
+                                                                                        "elm.icon");
+               Elm_Object_Item *pTmpVideoGengridItem = NULL;
+               pTmpVideoGengridItem = elm_gengrid_selected_item_get(pGengrid);
+               elm_gengrid_item_update(pTmpVideoGengridItem);
+       }
+}
+
+/**
+ *
+ */
+void mp_thumbnail_view_update_video_list(void)
+{
+       if (!g_pThumbnailView || !g_pThumbnailView->pVideosGenlist) {
+               VideoLogWarning
+                       ("[ERR] pVideosGenlist or g_pMainViewWidget are NULL.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       Elm_Object_Item *pNextGenlistItem = NULL;
+       Elm_Object_Item *pCurrGenlistItem =
+               elm_genlist_first_item_get(g_pThumbnailView->pVideosGenlist);
+
+       while (pCurrGenlistItem) {
+               elm_genlist_item_update(pCurrGenlistItem);
+               pNextGenlistItem = elm_genlist_item_next_get(pCurrGenlistItem);
+               pCurrGenlistItem = pNextGenlistItem;
+       }
+}
diff --git a/src/view/mp-video-search-view.c b/src/view/mp-video-search-view.c
new file mode 100755 (executable)
index 0000000..8fec1e8
--- /dev/null
@@ -0,0 +1,1988 @@
+/*
+ * Copyright (c) 2020 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 <Eina.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+#include <glib.h>
+#include <stdbool.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-video-string-define.h"
+#include "mp-video-value-define.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-util-media-service.h"
+#include "mp-video-search-view.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-launching-video-displayer.h"
+#include "mp-util-widget-ctrl.h"
+#include "mp-video-util-db-controller.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-video-list-option-ctrl.h"
+#include "mp-video-rename-ctrl.h"
+#include "mp-video-info-ctrl.h"
+#include "vp-util.h"
+#include "vp-file-util.h"
+#include "mp-external-ug.h"
+#include "mp-video-nocontent-layout.h"
+#include "mp-rotate-ctrl.h"
+
+#define DEF_BUF_STR_LEN                                        512
+#define DEF_BUF_STR_LEN_MAX                            4096
+#define SEARCH_CHAR_LEN                                        (VIDEO_FILE_SEARCH_CHAR_LEN_MAX*4+1)
+
+#define PREEDIT_START                                  "<preedit>"
+#define PREEDIT_END                                    "</preedit>"
+
+typedef struct {
+       void *pNaviFrameHandle;
+       void *pNaviFrameItem;
+       void *pVideosGenlist;
+
+       char szSearchWord[SEARCH_CHAR_LEN];
+       char *szMediaUrl;
+       Eina_List *SearchedIndexList;
+       int nPlayVideoIndex;
+       bool bShowNormalLayout;
+       MpDbUpdateViewLev euLev;
+       bool bUpdateList;
+       char *pFolderPath;
+       int nViewType;
+       bool isViewActive;
+
+       ListViewUpdateListItemCbFunc pChangeViewUserCbFunc;
+       ViewUpdateListItemCbFunc pChangeViewUpdateFunc;
+} st_VideoSearchViewHandle;
+
+typedef struct {
+       //Evas_Object *pDimminglayout;
+       Evas_Object *pSearchViewBaselayout;
+       Evas_Object *pSearchBarlayout;
+       Evas_Object *pSearchBarEntry;
+       Evas_Object *pCancelButton;
+       Evas_Object *pClearButton;
+       Evas_Object *pNocontentsLayout;
+} st_VideoSearchViewWidget;
+
+
+st_VideoSearchViewHandle *g_pSearchViewHandle = NULL;
+st_VideoSearchViewWidget *g_pSearchViewWidget = NULL;
+
+
+Elm_Genlist_Item_Class VideoSearch_Itc;
+
+
+
+// Pre-define function for building.
+static void __mp_search_view_naviframe_transition_effect_cb(void
+                                                                                                                       *pUserData,
+                                                                                                                       Evas_Object *
+                                                                                                                       pObject,
+                                                                                                                       void
+                                                                                                                       *pEventInfo);
+static void __mp_search_view_append_video_items(void *pVideosGenlist,
+                                                                                               bool bSearchedView);
+static int __mp_search_view_get_sort_type(void);
+static void __mp_search_view_arrange_video_list(int nItemSortType,
+                                                                                               void *pVideosGenlist);
+static void __mp_search_view_base_layout_del_cb(void *data, Evas * e,
+                                                                                               Evas_Object * obj,
+                                                                                               void *event_info);
+static void __mp_search_view_pop(void *pNaviFrame);
+static void __mp_search_view_db_changed_cb(void *pUserData);
+static void __mp_search_view_reset(void);
+static void __mp_search_view_update_video_items(Evas_Object * pGenlist,
+                                                                                               int nGenItemIndex,
+                                                                                               int nPlayVideoIndex);
+
+/**
+ *
+ */
+static void __mp_search_view_reset(void)
+{
+       if (g_pSearchViewHandle) {
+               mp_util_db_set_update_fun(g_pSearchViewHandle->euLev, NULL);
+               g_pSearchViewHandle->nPlayVideoIndex = -1;
+               evas_object_smart_callback_del(g_pSearchViewHandle->
+                                                                          pNaviFrameHandle,
+                                                                          "transition,finished",
+                                                                          __mp_search_view_naviframe_transition_effect_cb);
+
+               MP_DEL_OBJ(g_pSearchViewHandle->pVideosGenlist);
+
+               MP_FREE_STRING(g_pSearchViewHandle->szMediaUrl);
+               MP_FREE_STRING(g_pSearchViewHandle->pFolderPath);
+
+               if (g_pSearchViewHandle->SearchedIndexList) {
+                       eina_list_free(g_pSearchViewHandle->SearchedIndexList);
+                       g_pSearchViewHandle->SearchedIndexList = NULL;
+               }
+               g_pSearchViewHandle->pNaviFrameHandle = NULL;
+               g_pSearchViewHandle->pNaviFrameItem = NULL;
+               g_pSearchViewHandle->pChangeViewUserCbFunc = NULL;
+               g_pSearchViewHandle->pChangeViewUpdateFunc = NULL;
+
+               free(g_pSearchViewHandle);
+               g_pSearchViewHandle = NULL;
+       }
+
+       if (g_pSearchViewWidget) {
+
+               g_pSearchViewWidget->pSearchViewBaselayout = NULL;
+
+               g_pSearchViewWidget->pSearchBarlayout = NULL;
+
+               g_pSearchViewWidget->pSearchBarEntry = NULL;
+
+               g_pSearchViewWidget->pCancelButton = NULL;
+
+               g_pSearchViewWidget->pNocontentsLayout = NULL;
+
+
+               free(g_pSearchViewWidget);
+               g_pSearchViewWidget = NULL;
+       }
+
+}
+
+/**
+ *
+ */
+void mp_search_view_destroy(void)
+{
+
+       if (g_pSearchViewHandle) {
+               mp_util_db_set_update_fun(g_pSearchViewHandle->euLev, NULL);
+               mp_util_db_set_backup_fun(g_pSearchViewHandle->euLev, NULL);
+               g_pSearchViewHandle->nPlayVideoIndex = -1;
+               evas_object_smart_callback_del(g_pSearchViewHandle->
+                                                                          pNaviFrameHandle,
+                                                                          "transition,finished",
+                                                                          __mp_search_view_naviframe_transition_effect_cb);
+
+               MP_DEL_OBJ(g_pSearchViewHandle->pVideosGenlist);
+               MP_FREE_STRING(g_pSearchViewHandle->szMediaUrl);
+               MP_FREE_STRING(g_pSearchViewHandle->pFolderPath);
+
+               if (g_pSearchViewHandle->SearchedIndexList) {
+                       eina_list_free(g_pSearchViewHandle->SearchedIndexList);
+                       g_pSearchViewHandle->SearchedIndexList = NULL;
+               }
+
+               free(g_pSearchViewHandle);
+               g_pSearchViewHandle = NULL;
+       }
+
+       if (g_pSearchViewWidget) {
+
+               MP_DEL_OBJ(g_pSearchViewWidget->pCancelButton);
+               MP_DEL_OBJ(g_pSearchViewWidget->pSearchBarEntry);
+               MP_DEL_OBJ(g_pSearchViewWidget->pSearchBarlayout);
+               MP_DEL_OBJ(g_pSearchViewWidget->pNocontentsLayout);
+
+               if (g_pSearchViewWidget->pSearchViewBaselayout != NULL) {
+                       evas_object_event_callback_del(g_pSearchViewWidget->
+                                                                                  pSearchViewBaselayout,
+                                                                                  EVAS_CALLBACK_DEL,
+                                                                                  __mp_search_view_base_layout_del_cb);
+                       MP_DEL_OBJ(g_pSearchViewWidget->pSearchViewBaselayout);
+               }
+
+               free(g_pSearchViewWidget);
+               g_pSearchViewWidget = NULL;
+       }
+}
+
+/**
+ *
+ * @param szOriginStr
+ * @param szSearchWord
+ * @param bResult
+ * @return
+ */
+char *mp_search_view_search_markup_keyword(char *szOriginStr,
+                                                                                  char *szSearchWord,
+                                                                                  bool * bResult)
+{
+       if (!szOriginStr) {
+               VideoLogError("[ERR] szOriginStr is NULL.");
+               return NULL;
+       }
+
+       if (!szSearchWord) {
+               VideoLogError("[ERR] szSearchWord is NULL.");
+               return NULL;
+       }
+
+       if (!bResult) {
+               VideoLogError("[ERR] bResult is NULL.");
+               return NULL;
+       }
+
+       char szStr[DEF_BUF_STR_LEN + 1] = { 0, };
+       static char szTargetStr[DEF_BUF_STR_LEN + 1] = { 0, };
+       int nWordLength = 0;
+       int nSearchLength = 0;
+       int nCounter = 0;
+       bool bFound = FALSE;
+       gchar *szMarkupTextStart = NULL;
+       gchar *szMarkupTextEnd = NULL;
+       gchar *szMarkupText = NULL;
+       int r = 222;
+       int g = 111;
+       int b = 31;
+       int a = 255;
+
+       *bResult = TRUE;
+
+       if (g_utf8_validate(szOriginStr, -1, NULL)) {
+               strncpy(szStr, szOriginStr, DEF_BUF_STR_LEN);
+
+               nWordLength = strlen(szStr);
+               nSearchLength = strlen(szSearchWord);
+
+               for (nCounter = 0; nCounter < nWordLength; nCounter++) {
+                       if (!strncasecmp
+                               (szSearchWord, &szStr[nCounter], nSearchLength)) {
+                               bFound = TRUE;
+                               break;
+                       }
+               }
+
+               *bResult = bFound;
+               memset(szTargetStr, 0x00, DEF_BUF_STR_LEN + 1);
+
+               if (bFound) {
+                       if (nCounter == 0) {
+                               szMarkupText =
+                                       g_markup_escape_text(&szStr[0], nSearchLength);
+                               szMarkupTextEnd =
+                                       g_markup_escape_text(&szStr[nSearchLength],
+                                                                                nWordLength - nSearchLength);
+
+                               if (!szMarkupText && !szMarkupTextEnd) {
+                                       VideoLogInfo
+                                               ("szMarkupText and szMarkupTextEnd are NULL.");
+                                       return NULL;
+                               }
+
+                               snprintf(szTargetStr, DEF_BUF_STR_LEN,
+                                                "<color=#%02x%02x%02x%02x>%s</color>%s", r, g, b,
+                                                a, szMarkupText, (char *) szMarkupTextEnd);
+
+                               if (szMarkupText) {
+                                       free(szMarkupText);
+                                       szMarkupText = NULL;
+                               }
+
+                               if (szMarkupTextEnd) {
+                                       free(szMarkupTextEnd);
+                                       szMarkupTextEnd = NULL;
+                               }
+                       } else {
+                               szMarkupTextStart =
+                                       g_markup_escape_text(&szStr[0], nCounter);
+                               szMarkupText =
+                                       g_markup_escape_text(&szStr[nCounter], nSearchLength);
+                               szMarkupTextEnd =
+                                       g_markup_escape_text(&szStr[nCounter + nSearchLength],
+                                                                                nWordLength - (nCounter +
+                                                                                                               nSearchLength));
+
+                               if (!szMarkupTextStart && !szMarkupText
+                                       && !szMarkupTextEnd) {
+                                       VideoLogInfo
+                                               ("szMarkupTextStart and szMarkupText and szMarkupTextEnd are NULL.");
+                                       return NULL;
+                               }
+
+                               snprintf(szTargetStr, DEF_BUF_STR_LEN,
+                                                "%s<color=#%02x%02x%02x%02x>%s</color>%s",
+                                                (char *) szMarkupTextStart, r, g, b, a,
+                                                szMarkupText, (char *) szMarkupTextEnd);
+
+                               if (szMarkupText) {
+                                       free(szMarkupText);
+                                       szMarkupText = NULL;
+                               }
+
+                               if (szMarkupTextStart) {
+                                       free(szMarkupTextStart);
+                                       szMarkupTextStart = NULL;
+                               }
+
+                               if (szMarkupTextEnd) {
+                                       free(szMarkupTextEnd);
+                                       szMarkupTextEnd = NULL;
+                               }
+                       }
+               } else {
+                       snprintf(szTargetStr, DEF_BUF_STR_LEN, "%s", szStr);
+               }
+       }
+
+       VideoSecureLogInfo("szTargetStr=%s", szTargetStr);
+
+       return szTargetStr;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param obj
+ * @param event_info
+ */
+static void __mp_search_view_trans_finished_cb(void *pUserData,
+                                                                                          Evas_Object * obj,
+                                                                                          void *event_info)
+{
+       if (!obj) {
+               VideoLogError("[ERR] g_pListRemoveViewHandle is NULL.");
+               return;
+       }
+
+       mp_widget_ctrl_enable_navi_handle_focus(obj);
+
+       evas_object_smart_callback_del(obj, "transition,finished",
+                                                                  __mp_search_view_trans_finished_cb);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pItem
+ * @return
+ */
+static Eina_Bool mp_search_view_back_btn_cb(void *pUserData,
+                                                                                       Elm_Object_Item * pItem)
+{
+       if (!g_pSearchViewHandle) {
+               VideoLogInfo("[ERR] g_pListRemoveViewHandle is NULL.");
+               return EINA_TRUE;
+       }
+       // Register transition finished callback.
+       mp_widget_ctrl_disable_navi_handle_focus_except_item
+               (g_pSearchViewHandle->pNaviFrameHandle,
+                g_pSearchViewHandle->pNaviFrameItem);
+       evas_object_smart_callback_add(g_pSearchViewHandle->pNaviFrameHandle,
+                                                                  "transition,finished",
+                                                                  __mp_search_view_trans_finished_cb,
+                                                                  (void *) g_pSearchViewHandle->
+                                                                  pNaviFrameHandle);
+
+       __mp_search_view_pop(g_pSearchViewHandle->pNaviFrameHandle);
+
+       return EINA_TRUE;
+}
+
+////////////////////////////////////////////////
+// Genlist callback
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void __mp_search_view_naviframe_transition_effect_cb(void *pUserData,
+                                                                                                        Evas_Object * pObject,
+                                                                                                        void *pEventInfo)
+{
+       if (!g_pSearchViewHandle) {
+               VideoLogError("[ERR] No exist g_pSearchViewHandle.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       if (!g_pSearchViewHandle->pNaviFrameHandle) {
+               VideoLogInfo("[ERR] No exist naviframe handle.");
+               return;
+       }
+
+       elm_object_focus_set(g_pSearchViewWidget->pSearchBarEntry, EINA_TRUE);
+}
+
+
+// Genlist item callback.
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_search_view_select_video_item_cb(void *pUserData,
+                                                                                                 Evas_Object * pObject,
+                                                                                                 void *pEventInfo)
+{
+       if (!g_pSearchViewHandle) {
+               VideoLogError("g_pSearchViewHandle is not exist.");
+               return;
+       }
+
+       int nVideoItemIndex = 0;
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+
+       if (pItem) {
+               nVideoItemIndex = (int) elm_object_item_data_get(pItem);
+       } else {
+
+               if (pSelectedItem) {
+                       elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+               }
+
+               return;
+       }
+
+       VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex);
+
+       if (!pSelectedItem) {
+               VideoLogError("pSelectedItem is NULL");
+               return;
+       }
+       elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+
+       Evas_Object *pPopup = evas_object_data_get(pObject, "popup");   // Get popup
+       if (pPopup) {
+               VideoLogError("long press is called");
+               return;                                 // If popup exists, do nothing
+       }
+
+       if (!mp_launch_video_allow_check()) {
+               return;
+       }
+
+       if (nVideoItemIndex < 0) {
+               VideoLogWarning("nVideoItemIndex < 0 ===>>> RETURN");
+               return;
+       }
+
+       if (!mp_util_call_off()) {
+               mp_util_ticker_toast_popup
+                       (VIDEOS_NOTIPOP_MSG_UNABLE_TO_PLAY_VIDEO_DURING_CALL, false,
+                        false);
+               return;
+       }
+
+       g_pSearchViewHandle->nPlayVideoIndex = nVideoItemIndex;
+
+       if (g_pSearchViewHandle->szMediaUrl) {
+               free(g_pSearchViewHandle->szMediaUrl);
+               g_pSearchViewHandle->szMediaUrl = NULL;
+       }
+
+       g_pSearchViewHandle->szMediaUrl =
+               mp_util_svc_get_video_url(nVideoItemIndex);
+
+       if (g_pSearchViewHandle->szMediaUrl) {
+               elm_object_focus_allow_set(g_pSearchViewWidget->pSearchBarlayout,
+                                                                  EINA_FALSE);
+               elm_object_focus_allow_set(g_pSearchViewWidget->pSearchBarEntry,
+                                                                  EINA_FALSE);
+               elm_object_focus_set(pObject, EINA_TRUE);
+               mp_launch_video_play(g_pSearchViewHandle->szMediaUrl,
+                                                        MP_PLAYER_TYPE_VIDEO, NULL);
+
+               free(g_pSearchViewHandle->szMediaUrl);
+               g_pSearchViewHandle->szMediaUrl = NULL;
+       } else {
+               VideoLogError("[Err] Fail to get video uri from media service.");
+       }
+}
+
+/**
+ *
+ * @param nVideoItemIndex
+ * @return
+ */
+char *mp_search_view_get_duration_time(int nVideoItemIndex)
+{
+
+       char szTmpStr[DEF_BUF_STR_LEN_MAX] = { 0, };
+       char szTmpStrDurationTime[DEF_BUF_STR_LEN_MAX] = { 0, };
+       char szTmpStrLastPlayedPos[DEF_BUF_STR_LEN_MAX] = { 0, };
+
+       unsigned int nVideoInfoDuration =
+               mp_util_svc_get_video_duration_time(nVideoItemIndex);
+       unsigned int nVideoInfoLastTime = 0;
+
+       mp_util_convert_time(nVideoInfoDuration, szTmpStrDurationTime, FALSE);
+       mp_util_convert_time(nVideoInfoLastTime, szTmpStrLastPlayedPos, TRUE);
+
+       snprintf(szTmpStr, DEF_BUF_STR_LEN_MAX, "%s/%s", szTmpStrLastPlayedPos,
+                        szTmpStrDurationTime);
+
+       return strdup(szTmpStr);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+char *mp_search_view_get_label_of_video_item_cb(const void *pUserData,
+                                                                                               Evas_Object * pObject,
+                                                                                               const char *pPart)
+{
+
+       int nVideoItemIndex = (int) pUserData;
+
+       if (!strcmp(pPart, "elm.text")) {
+               char *szTitle = NULL;
+               char *szTitleUtf8 = NULL;
+               char *szTitleWithSearchWordColor = NULL;
+               bool bResult = FALSE;
+
+               szTitle = mp_util_svc_get_video_title(nVideoItemIndex);
+
+               if (strlen(g_pSearchViewHandle->szSearchWord) > 0) {
+                       szTitleWithSearchWordColor =
+                               mp_search_view_search_markup_keyword(szTitle,
+                                                                                                        (char *)
+                                                                                                        g_pSearchViewHandle->
+                                                                                                        szSearchWord,
+                                                                                                        &bResult);
+                       if (bResult) {
+                               if (szTitle) {
+                                       free(szTitle);
+                                       szTitle = NULL;
+                               }
+
+                               if (szTitleWithSearchWordColor) {
+                                       VideoLogInfo("szTitleWithSearchWordColor : %s",
+                                                                szTitleWithSearchWordColor);
+                                       return strdup(szTitleWithSearchWordColor);
+                               } else {
+                                       return NULL;
+                               }
+                       }
+               }
+               szTitleUtf8 = elm_entry_utf8_to_markup(szTitle);
+
+               if (szTitle) {
+                       free(szTitle);
+                       szTitle = NULL;
+               }
+
+               return szTitleUtf8;
+       } else if (!strcmp(pPart, "elm.text.sub")) {
+               return mp_util_svc_get_duration_str_time(nVideoItemIndex);
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+Evas_Object *mp_search_view_get_icon_of_video_item_cb(const void
+                                                                                                         *pUserData,
+                                                                                                         Evas_Object *
+                                                                                                         pObject,
+                                                                                                         const char *pPart)
+{
+       if (!strcmp(pPart, "elm.swallow.icon")) {
+               VideoLogError("pPart: elm.icon.1 - thumbnail");
+
+               int nVideoItemIndex = (int) pUserData;
+               Evas_Object *pLayout = elm_layout_add(pObject);
+
+               char *pThumbIconUri =
+                       mp_util_svc_get_video_thumbnail(nVideoItemIndex);
+               Evas_Object *pBg = NULL;
+               char edj_path[1024] = { 0 };
+
+               char *path = app_get_resource_path();
+               snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                                VIDEO_CUSTOM_THEME);
+               free(path);
+               pLayout = elm_layout_add(pObject);
+               elm_layout_file_set(pLayout, edj_path,
+                                                       "listview.thumbnail.layout");
+
+               if (!pThumbIconUri || !vp_file_exists(pThumbIconUri)) {
+                       MP_FREE_STRING(pThumbIconUri);
+               }
+
+               pBg =
+                       mp_util_create_preload_image(pLayout, pThumbIconUri,
+                                                                                VIDEO_ICON_WIDTH);
+
+               if (!elm_layout_content_set(pLayout, "elm.thumbnail.icon", pBg))
+                       VideoLogError("elm_layout_content_set() is failed.");
+
+               if (pBg)
+                       evas_object_show(pBg);
+
+               MP_FREE_STRING(pThumbIconUri);
+
+               if (!mp_util_create_video_sub_icon(pLayout, nVideoItemIndex)) {
+                       VideoLogWarning("Local File or Create sub icon is failed.",
+                                                       nVideoItemIndex);
+               }
+
+               if (pLayout) {
+                       evas_object_show(pLayout);
+               }
+
+               return pLayout;
+       }
+
+       return NULL;
+}
+
+//
+////////////////////////////////////////////////
+
+////////////////////////////////////////////////
+// Search bar widget about relevant items of genlist.
+/**
+ *
+ */
+static void __mp_search_view_del_no_contents_layout(void)
+{
+       VideoLogInfo("");
+
+       if (g_pSearchViewWidget->pNocontentsLayout) {
+               mp_util_virtual_keypad_disabled_set(EINA_TRUE);
+               evas_object_del(g_pSearchViewWidget->pNocontentsLayout);
+               g_pSearchViewWidget->pNocontentsLayout = NULL;
+       }
+}
+
+/**
+ *
+ * @param pParent
+ */
+static void *__mp_search_view_add_no_contents_layout(void *pParent)
+{
+       if (!g_pSearchViewWidget) {
+               VideoLogError("g_pSearchViewWidget == NULL");
+               return NULL;
+       }
+       VideoLogInfo("");
+
+       __mp_search_view_del_no_contents_layout();
+
+       if (elm_entry_is_empty(g_pSearchViewWidget->pSearchBarEntry)) {
+               VideoLogInfo("entry is empty, no need append no search view");
+               return NULL;
+       }
+
+       mp_util_virtual_keypad_disabled_set(EINA_FALSE);
+       g_pSearchViewWidget->pNocontentsLayout =
+               mp_create_nocontent_layout(pParent,
+                                                                  VIDEOS_SEARCHVIEW_MSG_NO_SEARCH_RESULTS,
+                                                                  NULL);
+
+       evas_object_show(g_pSearchViewWidget->pNocontentsLayout);
+
+       return g_pSearchViewWidget->pNocontentsLayout;
+}
+
+/**
+ *
+ */
+static void __mp_search_view_is_existed_no_content_layout(void)
+{
+       if (!g_pSearchViewWidget) {
+               VideoLogError("g_pSearchViewWidget == NULL");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       if (g_pSearchViewWidget->pNocontentsLayout) {
+               elm_object_part_content_unset(g_pSearchViewWidget->
+                                                                         pSearchViewBaselayout,
+                                                                         "elm.swallow.content");
+               __mp_search_view_del_no_contents_layout();
+               elm_object_part_content_set(g_pSearchViewWidget->
+                                                                       pSearchViewBaselayout,
+                                                                       "elm.swallow.content",
+                                                                       g_pSearchViewHandle->pVideosGenlist);
+               if (g_pSearchViewHandle->pVideosGenlist)
+                       evas_object_show(g_pSearchViewHandle->pVideosGenlist);
+       }
+}
+
+/**
+ *
+ */
+static void __mp_search_view_is_existed_genlist(void)
+{
+       if (!g_pSearchViewWidget) {
+               VideoLogError("g_pSearchViewWidget == NULL");
+               return;
+       }
+
+
+       if (!g_pSearchViewWidget->pNocontentsLayout) {
+               elm_object_part_content_unset(g_pSearchViewWidget->
+                                                                         pSearchViewBaselayout,
+                                                                         "elm.swallow.content");
+               if (g_pSearchViewHandle->pVideosGenlist)
+                       evas_object_hide(g_pSearchViewHandle->pVideosGenlist);
+       } else {
+               VideoLogError
+                       ("g_pSearchViewWidget->pNocontentsLayout is existed.");
+       }
+}
+
+/**
+ *
+ * @param szSearchWord
+ */
+void mp_search_view_search_genlist_item(const char *szSearchWord)
+{
+       if (!g_pSearchViewHandle) {
+               VideoLogError("g_pSearchViewHandle == NULL");
+               return;
+       }
+
+       if (!szSearchWord) {
+               VideoLogError("szSearchWord == NULL");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       if (g_pSearchViewHandle->SearchedIndexList) {
+               eina_list_free(g_pSearchViewHandle->SearchedIndexList);
+               g_pSearchViewHandle->SearchedIndexList = NULL;
+       }
+       mp_util_svc_index_list_for_search_view(szSearchWord,
+                                                                                  (void **) &g_pSearchViewHandle->
+                                                                                  SearchedIndexList);
+
+       if (g_pSearchViewHandle->SearchedIndexList) {
+               memset(g_pSearchViewHandle->szSearchWord, 0,
+                          sizeof(char) * SEARCH_CHAR_LEN);
+               strncpy(g_pSearchViewHandle->szSearchWord, szSearchWord,
+                               SEARCH_CHAR_LEN - 1);
+               __mp_search_view_is_existed_no_content_layout();
+               elm_genlist_clear(g_pSearchViewHandle->pVideosGenlist);
+               __mp_search_view_append_video_items(g_pSearchViewHandle->
+                                                                                       pVideosGenlist, true);
+       } else {
+               __mp_search_view_is_existed_genlist();
+               void *pNoContentLayout =
+                       __mp_search_view_add_no_contents_layout(g_pSearchViewWidget->
+                                                                                                       pSearchViewBaselayout);
+               elm_object_part_content_set(g_pSearchViewWidget->
+                                                                       pSearchViewBaselayout,
+                                                                       "elm.swallow.content",
+                                                                       pNoContentLayout);
+       }
+}
+
+/**
+ *
+ * @param str
+ * @return
+ */
+static char *mp_search_view_get_fact_str(const char *str)
+{
+       if (!str) {
+               VideoLogWarning("str == NULL");
+               return NULL;
+       }
+
+       int nLen = strlen(str);
+       if (nLen >= SEARCH_CHAR_LEN - 1) {
+               VideoLogError("str length is too large : [%d]", nLen);
+               return NULL;
+       }
+
+       char des_str[SEARCH_CHAR_LEN] = { 0, };
+       char *temp_str = strstr(str, PREEDIT_START);
+       char *pTempStr2 = strstr(str, PREEDIT_END);
+
+       if (temp_str != NULL && pTempStr2 != NULL) {
+               if (str != temp_str) {
+                       strncpy(des_str, str, temp_str - str);
+               }
+
+               if (strlen(des_str) != 0) {
+                       strncat(des_str, temp_str + strlen(PREEDIT_START),
+                                       pTempStr2 - temp_str - strlen(PREEDIT_START));
+               } else {
+                       strncpy(des_str, temp_str + strlen(PREEDIT_START),
+                                       pTempStr2 - temp_str - strlen(PREEDIT_START));
+               }
+       } else {
+               strncpy(des_str, str, SEARCH_CHAR_LEN - 1);
+       }
+       VideoSecureLogInfo("get string = %s:%s", des_str, str);
+       return strdup(des_str);
+
+}
+
+/**
+ *
+ */
+static void mp_search_view_check_landscape()
+{
+       if (!g_pSearchViewWidget) {
+               return;
+       }
+       bool bLandscape = mp_rotate_ctrl_check_landspace();
+
+       const char *temp =
+               elm_object_text_get(g_pSearchViewWidget->pSearchBarEntry);
+       char *TempUtf8 = elm_entry_markup_to_utf8(temp);
+       char *szChangedStr = mp_search_view_get_fact_str(TempUtf8);
+
+       if (bLandscape) {
+               elm_object_signal_emit(g_pSearchViewWidget->pSearchBarlayout,
+                                                          "elm,state,show,landscape", "elm");
+
+               if (szChangedStr != NULL && strlen(szChangedStr) > 0) {
+                       elm_object_signal_emit(g_pSearchViewWidget->pSearchBarlayout,
+                                                                  "elm,state,show,clear_button,landscape",
+                                                                  "elm");
+               }
+       } else {
+               elm_object_signal_emit(g_pSearchViewWidget->pSearchBarlayout,
+                                                          "elm,state,show,portrait", "elm");
+
+               if (szChangedStr != NULL && strlen(szChangedStr) > 0) {
+                       elm_object_signal_emit(g_pSearchViewWidget->pSearchBarlayout,
+                                                                  "elm,state,show,clear_button,portrait",
+                                                                  "elm");
+               }
+       }
+
+       MP_FREE_STRING(szChangedStr);
+       MP_FREE_STRING(TempUtf8);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_search_view_genlist_scroll_cb(void *pUserData,
+                                                                                          Evas_Object * pObject,
+                                                                                          void *pEventInfo)
+{
+       VideoLogInfo("");
+       elm_object_focus_set(g_pSearchViewWidget->pSearchBarEntry, EINA_FALSE);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_search_view_entry_changed_cb(void *pUserData,
+                                                                                         Evas_Object * pObject,
+                                                                                         void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       if (!g_pSearchViewHandle || !pUserData || !pObject) {
+               VideoLogError("g_pSearchViewHandle == NULL");
+               return;
+       }
+
+       char *szChangedStr = NULL;
+
+       if (elm_entry_is_empty(pObject)) {
+               elm_object_signal_emit(pUserData, "elm,state,eraser,hide", "elm");
+               elm_object_disabled_set(g_pSearchViewWidget->pClearButton,
+                                                               EINA_TRUE);
+               elm_object_style_set(g_pSearchViewWidget->pClearButton,
+                                                        "clear_dim");
+       } else {
+               elm_object_signal_emit(pUserData, "elm,state,eraser,show", "elm");
+               elm_object_disabled_set(g_pSearchViewWidget->pClearButton,
+                                                               EINA_FALSE);
+               elm_object_style_set(g_pSearchViewWidget->pClearButton, "clear");
+       }
+
+       if (!elm_entry_is_empty(pObject)) {
+               elm_object_signal_emit(pUserData, "elm,state,guidetext,hide",
+                                                          "elm");
+       }
+
+       if (mp_util_svc_get_number_of_video_item_by_type() < 1) {
+               VideoLogWarning("There don't have any videos.");
+               __mp_search_view_is_existed_genlist();
+               void *pNoContentLayout =
+                       __mp_search_view_add_no_contents_layout(g_pSearchViewWidget->
+                                                                                                       pSearchViewBaselayout);
+               elm_object_part_content_set(g_pSearchViewWidget->
+                                                                       pSearchViewBaselayout,
+                                                                       "elm.swallow.content",
+                                                                       pNoContentLayout);
+               return;
+       }
+
+       const char *temp = elm_object_text_get(pObject);
+       char *TempUtf8 = elm_entry_markup_to_utf8(temp);
+       szChangedStr = mp_search_view_get_fact_str(TempUtf8);
+       MP_FREE_STRING(TempUtf8);
+
+       VideoSecureLogInfo("Changed word in entry widget : %s", szChangedStr);
+
+       if (szChangedStr != NULL && strlen(szChangedStr) > 0) {
+               elm_object_part_content_set(g_pSearchViewWidget->pSearchBarlayout,
+                                                                       "searchbar_clear_btn",
+                                                                       g_pSearchViewWidget->pClearButton);
+               mp_search_view_check_landscape();
+               mp_search_view_search_genlist_item(szChangedStr);
+       } else {
+               elm_object_part_content_unset(g_pSearchViewWidget->
+                                                                         pSearchBarlayout,
+                                                                         "searchbar_clear_btn");
+               evas_object_hide(g_pSearchViewWidget->pClearButton);
+               memset(g_pSearchViewHandle->szSearchWord, 0,
+                          sizeof(char) * SEARCH_CHAR_LEN);
+               __mp_search_view_is_existed_no_content_layout();
+               __mp_search_view_arrange_video_list(__mp_search_view_get_sort_type
+                                                                                       (),
+                                                                                       g_pSearchViewHandle->
+                                                                                       pVideosGenlist);
+       }
+       MP_FREE_STRING(szChangedStr);
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_search_view_focused_cb(void *pUserData,
+                                                                               Evas_Object * pObject,
+                                                                               void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       if (!pUserData || !g_pSearchViewWidget || !g_pSearchViewHandle) {
+               VideoLogError("[ERR]No have pUserData");
+               return;
+       }
+
+       if (elm_entry_is_empty(pObject)) {
+               elm_object_signal_emit(pUserData, "elm,state,eraser,hide", "elm");
+       } else {
+               elm_object_signal_emit(pUserData, "elm,state,eraser,show", "elm");
+       }
+
+       elm_object_signal_emit(pUserData, "elm,state,guidetext,hide", "elm");
+       elm_object_signal_emit(pUserData, "cancel,in", "");
+       elm_object_focus_allow_set(pObject, EINA_TRUE);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_search_view_unfocused_cb(void *pUserData,
+                                                                                 Evas_Object * pObject,
+                                                                                 void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       if (!pUserData || !g_pSearchViewWidget || !g_pSearchViewHandle) {
+               VideoLogError("[ERR]No have pUserData");
+               return;
+       }
+
+       if (elm_entry_is_empty(pObject)) {
+               elm_object_signal_emit(pUserData, "elm,state,guidetext,show",
+                                                          "elm");
+       }
+       elm_object_signal_emit(pUserData, "elm,state,eraser,hide", "elm");
+}
+
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_search_view_activated_cb(void *pUserData,
+                                                                                 Evas_Object * pObject,
+                                                                                 void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       if (!pObject) {
+               VideoLogError("[ERR]No have pObject");
+               return;
+       }
+
+       elm_object_focus_set(pObject, FALSE);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_search_view_entry_max_len_cb(void *pUserData,
+                                                                                         Evas_Object * pObject,
+                                                                                         void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_util_ticker_toast_popup(VIDEOS_NOTIPOP_MSG_MAX_NUM_OF_CHARACTERS,
+                                                          false, false);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_search_view_eraser_clicked_cb(void *pUserData,
+                                                                                          Evas_Object * pObject,
+                                                                                          void *pEventInfo)
+{
+       VideoLogInfo("");
+       if (!pUserData) {
+               VideoLogError("error userdata");
+               return;
+       }
+       elm_object_part_content_unset(g_pSearchViewWidget->pSearchBarlayout,
+                                                                 "searchbar_clear_btn");
+       evas_object_hide(g_pSearchViewWidget->pClearButton);
+       Evas_Object *pEntry = (Evas_Object *) pUserData;
+       elm_entry_entry_set(pEntry, "");
+       elm_object_focus_allow_set(pObject, EINA_TRUE);
+       elm_object_focus_set(pObject, EINA_TRUE);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param emission
+ * @param source
+ */
+static void __mp_search_view_bg_clicked_cb(void *pUserData,
+                                                                                  Evas_Object * pObject,
+                                                                                  const char *emission,
+                                                                                  const char *source)
+{
+       VideoLogInfo("");
+       if (!pUserData) {
+               VideoLogError("error userdata");
+               return;
+       }
+
+       elm_object_tree_focus_allow_set(pUserData, EINA_TRUE);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param emission
+ * @param source
+ */
+static void __mp_search_view_search_symbol_clicked_cb(void *pUserData,
+                                                                                                         Evas_Object *
+                                                                                                         pObject,
+                                                                                                         const char *emission,
+                                                                                                         const char *source)
+{
+       VideoLogInfo("");
+       if (!pUserData) {
+               VideoLogError("error userdata");
+               return;
+       }
+       elm_object_focus_set(pUserData, EINA_TRUE);
+}
+
+//
+////////////////////////////////////////////////
+
+////////////////////////////////////////////////
+//
+/**
+ *
+ * @return
+ */
+int __mp_search_view_get_sort_type(void)
+{
+
+       int nSortType = MP_MEDIA_SORT_BY_RECENTLY_VIEWED;
+
+       switch (mp_sort_ctrl_get_sort_state()) {
+       case MP_LIST_SORT_BY_RECENTLY_ADDED:
+               nSortType = MP_MEDIA_SORT_BY_RECENTLY_ADDED;
+               break;
+
+       case MP_LIST_SORT_BY_NAME:
+               nSortType = MP_MEDIA_SORT_BY_NAME;
+               break;
+       }
+
+       return nSortType;
+}
+
+/**
+ *
+ * @param pVideosGenlist
+ * @param bSearchedView
+ */
+void __mp_search_view_append_video_items(void *pVideosGenlist,
+                                                                                bool bSearchedView)
+{
+       VideoLogInfo("");
+
+       if (!pVideosGenlist) {
+               VideoLogInfo("No exist genlist object.");
+               return;
+       }
+
+       int nIndex = 0;
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+       VideoSearch_Itc.item_style = "type1";
+       VideoSearch_Itc.func.text_get =
+               (void *) mp_search_view_get_label_of_video_item_cb;
+       VideoSearch_Itc.func.content_get =
+               (void *) mp_search_view_get_icon_of_video_item_cb;
+       VideoSearch_Itc.func.state_get = NULL;
+       VideoSearch_Itc.func.del = NULL;
+       if (bSearchedView) {
+               Eina_List *pIterateList = NULL;
+               void *nTempIndex = (void *) 0;
+               EINA_LIST_FOREACH(g_pSearchViewHandle->SearchedIndexList,
+                                                 pIterateList, nTempIndex) {
+                       nIndex = (int) nTempIndex;
+                       VideoLogInfo("searched nIndex : %d", nIndex);
+                       elm_genlist_item_append(pVideosGenlist, &VideoSearch_Itc,
+                                                                       (void *) nIndex, NULL,
+                                                                       ELM_GENLIST_ITEM_NONE,
+                                                                       __mp_search_view_select_video_item_cb,
+                                                                       NULL);
+               }
+
+       } else {
+               for (nIndex = 0; nIndex < nVideoListSize; nIndex++) {
+                       VideoLogInfo("nIndex : %d", nIndex);
+                       elm_genlist_item_append(pVideosGenlist, &VideoSearch_Itc,
+                                                                       (void *) nIndex, NULL,
+                                                                       ELM_GENLIST_ITEM_NONE,
+                                                                       __mp_search_view_select_video_item_cb,
+                                                                       NULL);
+               }
+       }
+}
+
+/**
+ *
+ * @param nItemSortType
+ * @param pVideosGenlist
+ */
+void __mp_search_view_arrange_video_list(int nItemSortType,
+                                                                                void *pVideosGenlist)
+{
+       VideoLogInfo("");
+
+       if (!pVideosGenlist) {
+               VideoLogInfo("No exist genlist object.");
+               return;
+       }
+
+       if (!g_pSearchViewHandle || !g_pSearchViewWidget) {
+               VideoLogInfo("Handles are not existed about search view.");
+               return;
+       }
+       if (g_pSearchViewHandle->SearchedIndexList) {
+               eina_list_free(g_pSearchViewHandle->SearchedIndexList);
+               g_pSearchViewHandle->SearchedIndexList = NULL;
+       }
+       VideoLogInfo("");
+
+       int nVideoListSize = 0;
+       /*Don't need to re-make new video list, because searched data only works current video list */
+       if (g_pSearchViewHandle->nViewType == MP_LIST_VIEW_AS_FOLDER_LIST
+               && !mp_folder_view_is_item_view()) {
+               mp_util_svc_destory_video_list();
+               mp_util_svc_extract_video_list_by_item_type(nItemSortType,
+                                                                                                       mp_view_ctrl_get_list_type
+                                                                                                       ());
+       }
+       nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+       VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+
+       elm_genlist_clear(pVideosGenlist);
+
+       if (nVideoListSize > 0) {
+               __mp_search_view_append_video_items(pVideosGenlist, false);
+       }
+
+       evas_object_show(pVideosGenlist);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_search_view_clicked_cb(void *pUserData,
+                                                                               Evas_Object * pObject,
+                                                                               void *pEventInfo)
+{
+       VideoLogInfo("");
+       if (!pObject) {
+               VideoLogError("[ERR]No have pObject");
+               return;
+       }
+       elm_object_focus_allow_set(pObject, EINA_TRUE);
+       elm_object_focus_set(pObject, EINA_TRUE);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param emission
+ * @param source
+ */
+static void __mp_search_view_soft_back_button_cb(void *data,
+                                                                                                Evas_Object * obj,
+                                                                                                const char *emission,
+                                                                                                const char *source)
+{
+       VideoLogInfo(" ");
+       Evas_Object *pTopNaviFrame = NULL;
+       pTopNaviFrame =
+               elm_naviframe_item_pop(g_pSearchViewHandle->pNaviFrameHandle);
+       evas_object_del(pTopNaviFrame);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_search_view_rotate_cb(void *data, Evas_Object * obj,
+                                                                          void *event_info)
+{
+       if (!g_pSearchViewWidget) {
+               VideoLogError("__mp_search_view_rotate_cb IS null");
+               return;
+       }
+       bool bLandscape = mp_rotate_ctrl_check_landspace();
+
+       const char *temp =
+               elm_object_text_get(g_pSearchViewWidget->pSearchBarEntry);
+       char *TempUtf8 = elm_entry_markup_to_utf8(temp);
+       char *szChangedStr = mp_search_view_get_fact_str(TempUtf8);
+
+       if (bLandscape) {
+               elm_object_signal_emit(g_pSearchViewWidget->pSearchBarlayout,
+                                                          "elm,state,show,portrait", "elm");
+
+               if (szChangedStr != NULL && strlen(szChangedStr) > 0) {
+                       elm_object_signal_emit(g_pSearchViewWidget->pSearchBarlayout,
+                                                                  "elm,state,show,clear_button,portrait",
+                                                                  "elm");
+               }
+       } else {
+               elm_object_signal_emit(g_pSearchViewWidget->pSearchBarlayout,
+                                                          "elm,state,show,landscape", "elm");
+
+               if (szChangedStr != NULL && strlen(szChangedStr) > 0) {
+                       elm_object_signal_emit(g_pSearchViewWidget->pSearchBarlayout,
+                                                                  "elm,state,show,clear_button,landscape",
+                                                                  "elm");
+               }
+       }
+
+       MP_FREE_STRING(szChangedStr);
+       MP_FREE_STRING(TempUtf8);
+}
+
+/**
+ *
+ * @param pParent
+ * @return
+ */
+static Evas_Object *__mp_search_view_init_internal_layout(void *pParent)
+{
+       VideoLogInfo("");
+
+       if (!pParent) {
+               VideoLogError("[ERR]");
+               return NULL;
+       }
+
+       if (g_pSearchViewWidget->pSearchViewBaselayout) {
+               evas_object_del(g_pSearchViewWidget->pSearchViewBaselayout);
+               g_pSearchViewWidget->pSearchViewBaselayout = NULL;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_BASIC_NAVIFRAME_EDJ);
+       free(path);
+       // Create search view base layout.
+       g_pSearchViewWidget->pSearchViewBaselayout = elm_layout_add(pParent);
+       elm_layout_file_set(g_pSearchViewWidget->pSearchViewBaselayout,
+                                               edj_path, "search_view_layout");
+
+       // Create search bar layout.
+       g_pSearchViewWidget->pSearchBarlayout =
+               elm_layout_add(g_pSearchViewWidget->pSearchViewBaselayout);
+       elm_layout_file_set(g_pSearchViewWidget->pSearchBarlayout, edj_path,
+                                               "searchbar_video");
+       elm_object_part_content_set(g_pSearchViewWidget->pSearchViewBaselayout,
+                                                               "search_bar",
+                                                               g_pSearchViewWidget->pSearchBarlayout);
+       elm_object_signal_callback_add(g_pSearchViewWidget->pSearchBarlayout,
+                                                                  "elm,action,click",
+                                                                  "back_button_callback",
+                                                                  __mp_search_view_soft_back_button_cb,
+                                                                  NULL);
+       elm_object_signal_emit(g_pSearchViewWidget->pSearchBarlayout,
+                                                  "elm,state,show,searchbar", "elm");
+
+       // Create entry.
+       g_pSearchViewWidget->pSearchBarEntry =
+               elm_entry_add(g_pSearchViewWidget->pSearchBarlayout);
+       elm_entry_single_line_set(g_pSearchViewWidget->pSearchBarEntry,
+                                                         EINA_TRUE);
+       elm_entry_scrollable_set(g_pSearchViewWidget->pSearchBarEntry,
+                                                        EINA_TRUE);
+       elm_object_domain_translatable_part_text_set(g_pSearchViewWidget->
+                                                                                                pSearchBarEntry,
+                                                                                                "elm.guide",
+                                                                                                VIDEOS_STRING,
+                                                                                                VIDEOS_CTXPOP_MENU_SEARCH_IDS);
+       elm_object_domain_part_text_translatable_set(g_pSearchViewWidget->
+                                                                                                pSearchBarEntry,
+                                                                                                "elm.guide",
+                                                                                                VIDEOS_STRING, EINA_TRUE);
+
+       elm_entry_scrollable_set(g_pSearchViewWidget->pSearchBarEntry,
+                                                        EINA_TRUE);
+       elm_entry_single_line_set(g_pSearchViewWidget->pSearchBarEntry,
+                                                         EINA_TRUE);
+       elm_entry_cnp_mode_set(g_pSearchViewWidget->pSearchBarEntry,
+                                                  ELM_CNP_MODE_PLAINTEXT);
+       elm_entry_prediction_allow_set(g_pSearchViewWidget->pSearchBarEntry,
+                                                                  EINA_TRUE);
+       evas_object_smart_callback_add(g_pSearchViewWidget->pSearchBarEntry,
+                                                                  "changed",
+                                                                  __mp_search_view_entry_changed_cb,
+                                                                  g_pSearchViewWidget->pSearchBarlayout);
+       evas_object_smart_callback_add(g_pSearchViewWidget->pSearchBarEntry,
+                                                                  "focused", __mp_search_view_focused_cb,
+                                                                  g_pSearchViewWidget->pSearchBarlayout);
+       evas_object_smart_callback_add(g_pSearchViewWidget->pSearchBarEntry,
+                                                                  "unfocused",
+                                                                  __mp_search_view_unfocused_cb,
+                                                                  g_pSearchViewWidget->pSearchBarlayout);
+       evas_object_smart_callback_add(g_pSearchViewWidget->pSearchBarEntry,
+                                                                  "preedit,changed",
+                                                                  __mp_search_view_entry_changed_cb,
+                                                                  g_pSearchViewWidget->pSearchBarlayout);
+       evas_object_smart_callback_add(g_pSearchViewWidget->pSearchBarEntry,
+                                                                  "activated",
+                                                                  __mp_search_view_activated_cb,
+                                                                  g_pSearchViewWidget->pSearchBarlayout);
+       evas_object_smart_callback_add(g_pSearchViewWidget->pSearchBarEntry,
+                                                                  "clicked", __mp_search_view_clicked_cb,
+                                                                  g_pSearchViewWidget->pSearchBarlayout);
+
+       g_pSearchViewWidget->pClearButton =
+               elm_button_add(g_pSearchViewWidget->pSearchBarlayout);
+       elm_object_style_set(g_pSearchViewWidget->pClearButton, "clear_dim");
+       elm_object_disabled_set(g_pSearchViewWidget->pClearButton, EINA_TRUE);
+       evas_object_smart_callback_add(g_pSearchViewWidget->pClearButton,
+                                                                  "clicked",
+                                                                  __mp_search_view_eraser_clicked_cb,
+                                                                  g_pSearchViewWidget->pSearchBarEntry);
+
+       static Elm_Entry_Filter_Limit_Size limit_filter_data;
+       limit_filter_data.max_char_count = VIDEO_FILE_SEARCH_CHAR_LEN_MAX;
+       limit_filter_data.max_byte_count = 0;
+       elm_entry_markup_filter_append(g_pSearchViewWidget->pSearchBarEntry,
+                                                                  elm_entry_filter_limit_size,
+                                                                  &limit_filter_data);
+       evas_object_smart_callback_add(g_pSearchViewWidget->pSearchBarEntry,
+                                                                  "maxlength,reached",
+                                                                  __mp_search_view_entry_max_len_cb,
+                                                                  NULL);
+
+       elm_object_part_content_set(g_pSearchViewWidget->pSearchBarlayout,
+                                                               "searchbar",
+                                                               g_pSearchViewWidget->pSearchBarEntry);
+       elm_object_part_content_set(g_pSearchViewWidget->pSearchViewBaselayout,
+                                                               "search_bar",
+                                                               g_pSearchViewWidget->pSearchBarlayout);
+       elm_object_signal_callback_add(g_pSearchViewWidget->
+                                                                  pSearchViewBaselayout, "elm,bg,clicked",
+                                                                  "elm", __mp_search_view_bg_clicked_cb,
+                                                                  g_pSearchViewWidget->pSearchBarEntry);
+       elm_entry_input_panel_layout_set(g_pSearchViewWidget->pSearchBarEntry,
+                                                                        ELM_INPUT_PANEL_LAYOUT_NORMAL);
+       elm_entry_input_panel_return_key_type_set(g_pSearchViewWidget->
+                                                                                         pSearchBarEntry,
+                                                                                         ELM_INPUT_PANEL_RETURN_KEY_TYPE_SEARCH);
+       evas_object_size_hint_weight_set(g_pSearchViewWidget->
+                                                                        pSearchViewBaselayout,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pSearchViewWidget->
+                                                                       pSearchViewBaselayout, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       elm_object_signal_callback_add(g_pSearchViewWidget->
+                                                                  pSearchViewBaselayout,
+                                                                  "elm,action,click", "",
+                                                                  __mp_search_view_search_symbol_clicked_cb,
+                                                                  g_pSearchViewWidget->pSearchBarEntry);
+
+       return g_pSearchViewWidget->pSearchViewBaselayout;
+}
+
+/**
+ *
+ * @param szSearchWord
+ */
+static void __mp_search_view_update_genlist_item(const char *szSearchWord)
+{
+       if (!g_pSearchViewHandle) {
+               VideoLogError("g_pSearchViewHandle == NULL");
+               return;
+       }
+
+       if (!szSearchWord) {
+               VideoLogError("szSearchWord == NULL");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       if (g_pSearchViewHandle->SearchedIndexList) {
+               eina_list_free(g_pSearchViewHandle->SearchedIndexList);
+               g_pSearchViewHandle->SearchedIndexList = NULL;
+       }
+       mp_util_svc_index_list_for_search_view(szSearchWord,
+                                                                                  (void **) &g_pSearchViewHandle->
+                                                                                  SearchedIndexList);
+
+       if (g_pSearchViewHandle->pVideosGenlist)
+               elm_genlist_clear(g_pSearchViewHandle->pVideosGenlist);
+
+       if (g_pSearchViewHandle->SearchedIndexList) {
+               memset(g_pSearchViewHandle->szSearchWord, 0,
+                          sizeof(char) * SEARCH_CHAR_LEN);
+               strncpy(g_pSearchViewHandle->szSearchWord, szSearchWord,
+                               SEARCH_CHAR_LEN - 1);
+               __mp_search_view_is_existed_no_content_layout();
+               __mp_search_view_append_video_items(g_pSearchViewHandle->
+                                                                                       pVideosGenlist, true);
+       } else {
+               __mp_search_view_is_existed_genlist();
+               void *pNoContentLayout =
+                       __mp_search_view_add_no_contents_layout(g_pSearchViewWidget->
+                                                                                                       pSearchViewBaselayout);
+               elm_object_part_content_set(g_pSearchViewWidget->
+                                                                       pSearchViewBaselayout,
+                                                                       "elm.swallow.content",
+                                                                       pNoContentLayout);
+       }
+}
+
+/**
+ *
+ */
+void mp_search_view_update_genlist()
+{
+       if (g_pSearchViewHandle && g_pSearchViewHandle->pVideosGenlist) {
+               if (g_pSearchViewHandle->nViewType == MP_LIST_VIEW_AS_FOLDER_LIST
+                       && mp_folder_view_is_item_view()) {
+                       Elm_Object_Item *currItem = NULL;
+                       Elm_Object_Item *nextItem = NULL;
+                       currItem =
+                               elm_genlist_first_item_get(g_pSearchViewHandle->
+                                                                                  pVideosGenlist);
+                       int index = 0;
+                       while (currItem) {
+                               nextItem = elm_genlist_item_next_get(currItem);
+                               elm_genlist_item_update(currItem);
+                               mp_util_svc_update_thumbnail_info(g_pSearchViewHandle->
+                                                                                                 nPlayVideoIndex);
+                               __mp_search_view_update_video_items((Evas_Object *)
+                                                                                                       g_pSearchViewHandle->
+                                                                                                       pVideosGenlist, index,
+                                                                                                       g_pSearchViewHandle->
+                                                                                                       nPlayVideoIndex);
+                               currItem = nextItem;
+                               index++;
+                       }
+               }
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ */
+static void __mp_search_view_db_data_changed(void *pUserData,
+                                                                                        Evas_Object * pObject)
+{
+       VideoLogInfo("");
+
+       if (!g_pSearchViewHandle || !pUserData || !pObject) {
+               VideoLogError("g_pSearchViewHandle == NULL");
+               return;
+       }
+
+       char *szChangedStr = NULL;
+
+       const char *temp = elm_object_text_get(pObject);
+       char *TempUtf8 = elm_entry_markup_to_utf8(temp);
+       szChangedStr = mp_search_view_get_fact_str(TempUtf8);
+       MP_FREE_STRING(TempUtf8);
+
+       VideoLogInfo("Changed word in entry widget : %s", szChangedStr);
+
+       if (szChangedStr != NULL && strlen(szChangedStr) > 0) {
+               __mp_search_view_update_genlist_item(szChangedStr);
+       } else {
+               memset(g_pSearchViewHandle->szSearchWord, 0,
+                          sizeof(char) * SEARCH_CHAR_LEN);
+               __mp_search_view_is_existed_no_content_layout();
+               __mp_search_view_arrange_video_list(__mp_search_view_get_sort_type
+                                                                                       (),
+                                                                                       g_pSearchViewHandle->
+                                                                                       pVideosGenlist);
+               elm_object_focus_set(g_pSearchViewWidget->pSearchBarEntry,
+                                                        EINA_TRUE);
+       }
+       MP_FREE_STRING(szChangedStr);
+
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __mp_search_view_db_changed_cb(void *pUserData)
+{
+       if (!g_pSearchViewHandle || !g_pSearchViewWidget) {
+               VideoLogError("Main handles of list view are not existed.");
+               return;
+       }
+
+
+       int nSortType = __mp_search_view_get_sort_type();
+       if (g_pSearchViewHandle->pFolderPath) {
+               if (g_pSearchViewHandle->pFolderPath) {
+                       VideoSecureLogDebug("szFolderPath : %s",
+                                                               g_pSearchViewHandle->pFolderPath);
+                       if (vp_file_exists(g_pSearchViewHandle->pFolderPath)) {
+                               //update video-list
+                               mp_util_svc_destory_video_item_list();
+                               mp_util_svc_extract_video_list_from_folder
+                                       (g_pSearchViewHandle->pFolderPath, nSortType,
+                                        MP_LIST_VIEW_ALL);
+                               int nVideoListSize =
+                                       mp_util_svc_get_number_of_video_item_by_type();
+                               VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+                               if (nVideoListSize > 0) {
+                                       __mp_search_view_db_data_changed(g_pSearchViewWidget->
+                                                                                                        pSearchBarlayout,
+                                                                                                        g_pSearchViewWidget->
+                                                                                                        pSearchBarEntry);
+                               } else {
+                                       elm_naviframe_item_pop(g_pSearchViewHandle->
+                                                                                  pNaviFrameHandle);
+                               }
+                       } else {
+                               elm_naviframe_item_pop(g_pSearchViewHandle->
+                                                                          pNaviFrameHandle);
+                       }
+               }
+       } else {
+               mp_util_svc_destory_video_list();
+               mp_util_svc_extract_video_list_by_item_type(nSortType,
+                                                                                                       mp_view_ctrl_get_list_type
+                                                                                                       ());
+
+               int nVideoListSize =
+                       mp_util_svc_get_number_of_video_item_by_type();
+               VideoLogInfo("nVideoListSize : %d", nVideoListSize);
+               if (nVideoListSize > 0) {
+                       __mp_search_view_db_data_changed(g_pSearchViewWidget->
+                                                                                        pSearchBarlayout,
+                                                                                        g_pSearchViewWidget->
+                                                                                        pSearchBarEntry);
+               } else {
+                       elm_naviframe_item_pop(g_pSearchViewHandle->pNaviFrameHandle);
+               }
+       }
+       Elm_Object_Item *pItem =
+               elm_genlist_first_item_get(g_pSearchViewHandle->pVideosGenlist);
+       if (pItem) {
+               elm_genlist_item_bring_in(pItem, ELM_GENLIST_ITEM_SCROLLTO_IN);
+       }
+
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_search_view_get_active_view()
+{
+       if (!g_pSearchViewHandle)
+               return false;
+       return g_pSearchViewHandle->isViewActive;
+}
+
+/**
+ *
+ * @param pParent
+ */
+void mp_search_view_init(void *pParent)
+{
+       VideoLogInfo("");
+
+       if (!g_pSearchViewHandle || !g_pSearchViewWidget) {
+               VideoLogInfo("Handles are not existed about search view.");
+               return;
+       }
+       g_pSearchViewHandle->bShowNormalLayout = TRUE;
+       g_pSearchViewWidget->pSearchViewBaselayout =
+               __mp_search_view_init_internal_layout(pParent);
+       evas_object_smart_callback_add((Evas_Object *)
+                                                                  mp_util_get_main_window_handle(),
+                                                                  "wm,rotation,changed",
+                                                                  __mp_search_view_rotate_cb, NULL);
+       mp_search_view_check_landscape();
+       g_pSearchViewHandle->pVideosGenlist =
+               elm_genlist_add(g_pSearchViewWidget->pSearchViewBaselayout);
+       evas_object_size_hint_weight_set(g_pSearchViewHandle->pVideosGenlist,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pSearchViewHandle->pVideosGenlist,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_genlist_block_count_set(g_pSearchViewHandle->pVideosGenlist,
+                                                               VIDEO_GENLIST_BLOCK_COUNT);
+       elm_genlist_mode_set(g_pSearchViewHandle->pVideosGenlist,
+                                                ELM_LIST_COMPRESS);
+       elm_genlist_homogeneous_set(g_pSearchViewHandle->pVideosGenlist,
+                                                               EINA_TRUE);
+       evas_object_smart_callback_add(g_pSearchViewHandle->pVideosGenlist,
+                                                                  "scroll,anim,start",
+                                                                  __mp_search_view_genlist_scroll_cb,
+                                                                  (void *) g_pSearchViewWidget);
+
+       g_pSearchViewHandle->isViewActive = true;
+       __mp_search_view_arrange_video_list(__mp_search_view_get_sort_type(),
+                                                                               g_pSearchViewHandle->
+                                                                               pVideosGenlist);
+       elm_object_part_content_set(g_pSearchViewWidget->pSearchViewBaselayout,
+                                                               "elm.swallow.content",
+                                                               g_pSearchViewHandle->pVideosGenlist);
+       evas_object_event_callback_add(g_pSearchViewWidget->
+                                                                  pSearchViewBaselayout,
+                                                                  EVAS_CALLBACK_DEL,
+                                                                  __mp_search_view_base_layout_del_cb,
+                                                                  NULL);
+
+       g_pSearchViewHandle->pNaviFrameItem =
+               elm_naviframe_item_push(g_pSearchViewHandle->pNaviFrameHandle,
+                                                               NULL, NULL, NULL,
+                                                               g_pSearchViewWidget->pSearchViewBaselayout,
+                                                               NULL);
+       elm_naviframe_item_pop_cb_set(g_pSearchViewHandle->pNaviFrameItem,
+                                                                 mp_search_view_back_btn_cb,
+                                                                 g_pSearchViewHandle);
+       evas_object_smart_callback_add(g_pSearchViewHandle->pNaviFrameHandle,
+                                                                  "transition,finished",
+                                                                  __mp_search_view_naviframe_transition_effect_cb,
+                                                                  NULL);
+       elm_naviframe_item_title_enabled_set(g_pSearchViewHandle->
+                                                                                pNaviFrameItem, EINA_FALSE,
+                                                                                EINA_FALSE);
+
+       if (mp_util_svc_get_number_of_video_item_by_type() < 1) {
+               __mp_search_view_is_existed_genlist();
+               void *pNoContentLayout =
+                       __mp_search_view_add_no_contents_layout(g_pSearchViewWidget->
+                                                                                                       pSearchViewBaselayout);
+               elm_object_part_content_set(g_pSearchViewWidget->
+                                                                       pSearchViewBaselayout,
+                                                                       "elm.swallow.content",
+                                                                       pNoContentLayout);
+       }
+
+       mp_util_virtual_keypad_disabled_set(EINA_TRUE);
+       mp_util_db_set_update_fun(g_pSearchViewHandle->euLev,
+                                                         __mp_search_view_db_changed_cb);
+
+       mp_util_hide_indicator();
+
+       elm_object_signal_emit(g_pSearchViewWidget->pSearchBarlayout,
+                                                  "elm,state,eraser,hide", "elm");
+}
+
+/**
+ *
+ * @param pNaviFrame
+ * @param pFolderPath
+ */
+void mp_search_view_push(void *pNaviFrame, char *pFolderPath)
+{
+       if (!pNaviFrame) {
+               VideoLogError("[ERR] No existed pNaviFrame.");
+               return;
+       }
+
+       VideoLogInfo("");
+       mp_search_view_destroy();
+
+       g_pSearchViewHandle =
+               (st_VideoSearchViewHandle *) calloc(1,
+                                                                                       sizeof
+                                                                                       (st_VideoSearchViewHandle));
+       g_pSearchViewWidget =
+               (st_VideoSearchViewWidget *) calloc(1,
+                                                                                       sizeof
+                                                                                       (st_VideoSearchViewWidget));
+
+       memset(g_pSearchViewHandle, 0, sizeof(st_VideoSearchViewHandle));
+       memset(g_pSearchViewWidget, 0, sizeof(st_VideoSearchViewWidget));
+       g_pSearchViewHandle->pNaviFrameHandle = pNaviFrame;
+       if (pFolderPath) {
+               g_pSearchViewHandle->pFolderPath = strdup(pFolderPath);
+       }
+
+       g_pSearchViewHandle->nPlayVideoIndex = -1;
+
+       int nViewType = mp_view_as_ctrl_get_type();
+       g_pSearchViewHandle->nViewType = nViewType;
+       g_pSearchViewHandle->euLev = MP_DB_UPDATE_LEV_1;
+       if (nViewType == MP_LIST_VIEW_AS_FOLDER_LIST
+               && g_pSearchViewHandle->pFolderPath) {
+               g_pSearchViewHandle->euLev = MP_DB_UPDATE_LEV_2;
+       }
+
+       mp_search_view_init(g_pSearchViewHandle->pNaviFrameHandle);
+}
+
+/**
+ *
+ * @param pNaviFrame
+ */
+static void __mp_search_view_pop(void *pNaviFrame)
+{
+       VideoLogInfo("");
+
+       if (!g_pSearchViewHandle || !g_pSearchViewWidget) {
+               VideoLogError("Handles are not existed about search view.");
+               return;
+       }
+
+       mp_util_virtual_keypad_disabled_set(EINA_FALSE);
+       bool bUpdateList = FALSE;
+       g_pSearchViewHandle->isViewActive = false;
+       if (g_pSearchViewHandle->bUpdateList) {
+               if (g_pSearchViewHandle->pChangeViewUpdateFunc) {
+                       bUpdateList = TRUE;
+                       g_pSearchViewHandle->
+                               pChangeViewUpdateFunc(LIST_UPDATE_TYPE_ALL);
+               }
+       }
+
+       if (!bUpdateList) {
+               if (g_pSearchViewHandle->pChangeViewUserCbFunc) {
+                       g_pSearchViewHandle->pChangeViewUserCbFunc();
+               }
+       }
+}
+
+/**
+ *
+ * @param pUpdateViewCb
+ * @param pChangeViewCb
+ */
+void mp_search_view_register_update_list_func(ViewUpdateListItemCbFunc
+                                                                                         pUpdateViewCb,
+                                                                                         ListViewUpdateListItemCbFunc
+                                                                                         pChangeViewCb)
+{
+       if (!pUpdateViewCb || !pChangeViewCb) {
+               VideoLogInfo("[ERR]");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       if (!g_pSearchViewHandle || !g_pSearchViewWidget) {
+               VideoLogError("Handles are not existed about search view.");
+               return;
+       }
+
+       g_pSearchViewHandle->pChangeViewUserCbFunc = pChangeViewCb;
+       g_pSearchViewHandle->pChangeViewUpdateFunc = pUpdateViewCb;
+}
+
+/**
+ *
+ * @param pGenlist
+ * @param nGenItemIndex
+ * @param nPlayVideoIndex
+ */
+static void __mp_search_view_update_video_items(Evas_Object * pGenlist,
+                                                                                               int nGenItemIndex,
+                                                                                               int nPlayVideoIndex)
+{
+       if (!pGenlist) {
+               VideoLogWarning("[WARNING] pNormalVideoItemList is not existed.");
+               return;
+       }
+
+       VideoLogInfo("%d", nGenItemIndex);
+
+       Elm_Object_Item *pTmpVideoGenlistItem =
+               elm_genlist_nth_item_get((const Evas_Object *) pGenlist,
+                                                                nGenItemIndex);
+       if (pTmpVideoGenlistItem) {
+               elm_genlist_item_selected_set(pTmpVideoGenlistItem, EINA_FALSE);
+               Evas_Object *pIconContent =
+                       elm_object_item_part_content_get(pTmpVideoGenlistItem,
+                                                                                        "elm.swallow.icon");
+               if (!pIconContent) {
+                       VideoLogError("");
+                       return;
+               }
+               Evas_Object *pProgressbar =
+                       elm_layout_content_get(pIconContent, "elm.progressbar.icon");
+
+               if (pProgressbar) {
+                       elm_layout_content_unset(pIconContent,
+                                                                        "elm.progressbar.icon");
+                       MP_DEL_OBJ(pProgressbar);
+               }
+
+               elm_genlist_item_fields_update(pTmpVideoGenlistItem,
+                                                                          "elm.text.sub",
+                                                                          ELM_GENLIST_ITEM_FIELD_TEXT);
+       }
+
+}
+
+/**
+ *
+ * @param nIndex
+ */
+void mp_search_view_update_played_item(int nIndex)
+{
+       if (!g_pSearchViewHandle || !g_pSearchViewWidget
+               || (g_pSearchViewHandle->nPlayVideoIndex < 0)) {
+               VideoLogInfo("SearchView of list view are not existed.");
+               return;
+       }
+       if (nIndex >= 0) {
+               g_pSearchViewHandle->nPlayVideoIndex = nIndex;
+       }
+       VideoLogInfo("");
+
+       if (g_pSearchViewHandle->pVideosGenlist) {
+               int nGenItemIndex = g_pSearchViewHandle->nPlayVideoIndex;
+               if (g_pSearchViewHandle->SearchedIndexList) {
+                       Eina_List *pIterateList = NULL;
+                       void *nTempIndex = (void *) 0;
+                       int nIndex = 0;
+                       EINA_LIST_FOREACH(g_pSearchViewHandle->SearchedIndexList,
+                                                         pIterateList, nTempIndex) {
+                               VideoLogInfo("nTempIndex:index==%d:%d:%d",
+                                                        (int) nTempIndex, nIndex, nGenItemIndex);
+                               if (g_pSearchViewHandle->nPlayVideoIndex ==
+                                       (int) nTempIndex) {
+                                       nGenItemIndex = nIndex;
+                                       break;
+                               }
+                               nIndex++;
+                       }
+               }
+               mp_util_svc_update_thumbnail_info(g_pSearchViewHandle->
+                                                                                 nPlayVideoIndex);
+               __mp_search_view_update_video_items((Evas_Object *)
+                                                                                       g_pSearchViewHandle->
+                                                                                       pVideosGenlist, nGenItemIndex,
+                                                                                       g_pSearchViewHandle->
+                                                                                       nPlayVideoIndex);
+       }
+}
+
+/**
+ *
+ */
+void mp_search_view_change_language(void)
+{
+       VideoLogInfo("");
+
+       if (!g_pSearchViewHandle || !g_pSearchViewWidget) {
+               VideoLogError("Handles are not existed about search view.");
+               return;
+       }
+
+       elm_object_domain_translatable_part_text_set(g_pSearchViewWidget->
+                                                                                                pSearchBarlayout,
+                                                                                                "elm.guidetext",
+                                                                                                VIDEOS_STRING,
+                                                                                                VIDEOS_CTXPOP_MENU_SEARCH);
+}
+
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void
+__mp_search_view_base_layout_del_cb(void *data, Evas * e,
+                                                                       Evas_Object * obj, void *event_info)
+{
+       __mp_search_view_reset();
+}
diff --git a/src/viewMgr/videos-view-mgr.c b/src/viewMgr/videos-view-mgr.c
new file mode 100755 (executable)
index 0000000..3d0848f
--- /dev/null
@@ -0,0 +1,437 @@
+/*
+ * Copyright (c) 2020 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 <stdbool.h>
+
+#include "videos-view-mgr.h"
+#include "mp-video-value-define.h"
+#include "mp-video-type-define.h"
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-library-view-mgr.h"
+#include "mp-rotate-ctrl.h"
+
+#include "vp-util.h"
+
+
+enum DeviceOrientationType {
+       DEVICE_ORIENTATION_PORTRAIT = 0,
+       DEVICE_ORIENTATION_LANDSCAPE,
+       DEVICE_ORIENTATION_MAX
+};
+
+
+typedef struct _vp_WindowData {
+       Evas_Object *pMainWindow;
+       Evas_Object *pConformant;
+       Evas_Object *pMainLayout;
+
+       Evas_Object *pLibraryInnerNaviframe;
+       Ecore_Idler *pInitValueIdler;
+
+       /*landcape */
+       app_device_orientation_e mOrientation;
+} VpWindowData;
+
+
+static VpWindowData *g_WindowData = NULL;
+
+/**
+ *
+ * @return
+ */
+static int __mp_mgr_get_device_orientation_type()
+{
+       if (g_WindowData
+               && (g_WindowData->mOrientation == APP_DEVICE_ORIENTATION_270
+                       || g_WindowData->mOrientation == APP_DEVICE_ORIENTATION_90)) {
+               return DEVICE_ORIENTATION_LANDSCAPE;
+       } else {
+               return DEVICE_ORIENTATION_PORTRAIT;
+       }
+}
+
+
+#ifdef ENABLE_LANDSCAPE
+static void
+__mp_mgr_main_window_rotation_change_cb(void *data, Evas_Object * obj,
+                                                                               void *event_info)
+{
+       int changed_angle = elm_win_rotation_get(obj);
+
+       VideoLogWarning("window rotated [%d] => [%d]",
+                                       g_WindowData->mOrientation, changed_angle);
+       if (g_WindowData->mOrientation != changed_angle) {
+               g_WindowData->mOrientation = changed_angle;
+
+               VideoLogWarning("Rotate phone");
+               mp_rotate_ctrl_set_state(changed_angle);
+               mp_library_mgr_update_library_view(LIST_UPDATE_TYPE_VIEW);
+       }
+}
+#endif
+
+/**
+ *
+ */
+static void __mp_mgr_window_destroy()
+{
+       VideoLogInfo("");
+
+       if (g_WindowData != NULL) {
+               MP_DEL_IDLER(g_WindowData->pInitValueIdler);
+               free(g_WindowData);
+               g_WindowData = NULL;
+       }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param mouse_event_rect
+ */
+static void
+__mp_mgr_main_win_del_cb(void *data, Evas_Object * obj,
+                                                void *mouse_event_rect)
+{
+       VideoLogInfo("");
+
+       if (NULL == data || data != g_WindowData) {
+               VideoLogError(" data[%p] == NULL || data != g_WindowData[%p]!!!",
+                                         data, g_WindowData);
+               return;
+       }
+
+       __mp_mgr_window_destroy();
+
+       elm_exit();
+}
+
+/**
+ *
+ * @param pWin
+ * @return
+ */
+static Evas_Object *__mp_mgr_create_bg(Evas_Object * pWin)
+{
+       VideoLogInfo("");
+
+       if (NULL == pWin) {
+               VideoLogError("pWin == NULL!!!");
+               return NULL;
+       }
+
+       /* default BG */
+       Evas_Object *bg = NULL;
+
+       bg = elm_bg_add(pWin);
+       Eina_Bool ret = elm_bg_file_set(bg,
+                                                                       "/usr/apps/org.tizen.videos/res/images/core_theme_bg_01.png",
+                                                                       NULL);
+       if (ret != true) {
+               VideoLogInfo("failed to set layout bg");
+       }
+       evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(bg, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_win_resize_object_add(pWin, bg);
+       evas_object_show(bg);
+
+       return bg;
+}
+
+/**
+ *
+ * @param name
+ * @return
+ */
+static Evas_Object *__mp_mgr_create_win(const char *name)
+{
+       VideoLogInfo("");
+
+       Evas_Object *eo;
+       int w;
+       int h;
+
+       eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
+
+       if (eo) {
+               elm_win_title_set(eo, name);
+               evas_object_smart_callback_add(eo, "delete,request",
+                                                                          __mp_mgr_main_win_del_cb,
+                                                                          g_WindowData);
+
+               elm_win_screen_size_get(eo, NULL, NULL, &w, &h);
+               VideoLogInfo("window size:%d,%d", w, h);
+
+               evas_object_resize(eo, w, h);
+
+               elm_win_indicator_mode_set(eo, ELM_WIN_INDICATOR_SHOW);
+               elm_win_indicator_opacity_set(eo, ELM_WIN_INDICATOR_TRANSPARENT);
+       }
+
+       return eo;
+}
+
+/**
+ *
+ * @param pStrName
+ * @return
+ */
+const Evas_Object *mp_mgr_create_main_window(const char *pStrName)
+{
+       if (g_WindowData != NULL) {
+               VideoLogWarning("g_WindowData != NULL. destory g_WindowData");
+               __mp_mgr_window_destroy();
+       }
+
+       g_WindowData = calloc(1, sizeof(VpWindowData));
+       if (NULL == g_WindowData) {
+               VideoLogError("g_WindowData calloc failed!!!");
+               return NULL;
+       }
+
+       g_WindowData->pMainWindow = __mp_mgr_create_win(pStrName);
+
+
+#ifdef ENABLE_LANDSCAPE
+       VideoLogWarning("support rotate",
+                                       elm_win_wm_rotation_supported_get
+                                       (g_WindowData->pMainWindow));
+       if (elm_win_wm_rotation_supported_get(g_WindowData->pMainWindow)) {
+               const int rots[4] = { 0, 90, 180, 270 };
+               elm_win_wm_rotation_available_rotations_set
+                       (g_WindowData->pMainWindow, rots, 4);
+               evas_object_smart_callback_add(g_WindowData->pMainWindow,
+                                                                          "wm,rotation,changed",
+                                                                          __mp_mgr_main_window_rotation_change_cb,
+                                                                          g_WindowData);
+               g_WindowData->mOrientation =
+                       elm_win_rotation_get(g_WindowData->pMainWindow);
+               VideoLogWarning("mOrientation=%d", g_WindowData->mOrientation);
+       }
+#endif
+
+       elm_win_conformant_set(g_WindowData->pMainWindow, EINA_TRUE);
+
+
+       /* create bg */
+       __mp_mgr_create_bg(g_WindowData->pMainWindow);
+
+
+       /* create conformant */
+       g_WindowData->pConformant =
+               elm_conformant_add(g_WindowData->pMainWindow);
+
+
+       evas_object_size_hint_weight_set(g_WindowData->pConformant,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(g_WindowData->pMainWindow,
+                                                         g_WindowData->pConformant);
+       evas_object_show(g_WindowData->pConformant);
+       elm_object_signal_emit(g_WindowData->pConformant,
+                                                  "elm,state,indicator,overlap", "");
+       evas_object_data_set(g_WindowData->pConformant, "overlap",
+                                                (void *) EINA_TRUE);
+
+       mp_util_set_main_conformat((void *) g_WindowData->pConformant);
+       mp_util_set_main_window_handle((void *) g_WindowData->pMainWindow);
+
+       return (const Evas_Object *) g_WindowData->pMainWindow;
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __mp_mgr_init_data_idler_cb(void *pUserData)
+{
+       if (!g_WindowData) {
+               VideoLogError("");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       g_WindowData->pInitValueIdler = NULL;
+
+       mp_library_mgr_init_value();
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+/**
+ *
+ */
+void mp_mgr_restart_main_window()
+{
+       if (NULL == g_WindowData) {
+               VideoLogError("g_WindowData == NULL!!!");
+               elm_exit();
+               return;
+       }
+
+       if (g_WindowData->pLibraryInnerNaviframe != NULL) {
+               VideoLogInfo("g_WindowData->pLibraryInnerNaviframe != NULL");
+               mp_library_mgr_destroy(g_WindowData->pLibraryInnerNaviframe);
+               /*pLibraryInnerNaviframe has been detroyed in mp_library_mgr_destroy */
+               g_WindowData->pLibraryInnerNaviframe = NULL;
+       }
+
+       if (g_WindowData->pMainLayout != NULL) {
+               evas_object_del(g_WindowData->pMainLayout);
+               g_WindowData->pMainLayout = NULL;
+       }
+
+       g_WindowData->pMainLayout = elm_layout_add(g_WindowData->pConformant);
+       if (g_WindowData->pMainLayout == NULL) {
+               VideoLogError("elm_layout_add fail!!!");
+               elm_exit();
+               return;
+       }
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_BASIC_LAYOUT_EDJ);
+       free(path);
+       elm_layout_file_set(g_WindowData->pMainLayout, edj_path,
+                                               "elm/layout/application/video/default");
+       evas_object_size_hint_weight_set(g_WindowData->pMainLayout,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_WindowData->pMainLayout,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(g_WindowData->pMainLayout);
+       elm_object_content_set(g_WindowData->pConformant,
+                                                  g_WindowData->pMainLayout);
+
+       if (g_WindowData->pLibraryInnerNaviframe != NULL) {
+               evas_object_del(g_WindowData->pLibraryInnerNaviframe);
+       }
+       g_WindowData->pLibraryInnerNaviframe = mp_library_mgr_init();
+       MP_DEL_IDLER(g_WindowData->pInitValueIdler);
+       g_WindowData->pInitValueIdler =
+               ecore_idler_add(__mp_mgr_init_data_idler_cb,
+                                               (void *) g_WindowData);
+
+       elm_object_part_content_set(g_WindowData->pMainLayout,
+                                                               "elm.swallow.content",
+                                                               g_WindowData->pLibraryInnerNaviframe);
+
+       eext_object_event_callback_add(g_WindowData->pLibraryInnerNaviframe,
+                                                                  EEXT_CALLBACK_BACK,
+                                                                  eext_naviframe_back_cb, NULL);
+       eext_object_event_callback_add(g_WindowData->pLibraryInnerNaviframe,
+                                                                  EEXT_CALLBACK_MORE,
+                                                                  eext_naviframe_more_cb, NULL);
+
+       mp_util_hide_indicator();
+}
+
+/**
+ *
+ * @return
+ */
+const Evas_Object *mp_mgr_get_main_window()
+{
+       if (NULL == g_WindowData) {
+               VideoLogWarning("g_WindowData == NULL!!!");
+               return NULL;
+       }
+
+       return (const Evas_Object *) g_WindowData->pMainWindow;
+}
+
+/**
+ *
+ * @return
+ */
+const Evas_Object *mp_mgr_get_conformant()
+{
+       if (NULL == g_WindowData) {
+               VideoLogError("g_WindowData == NULL!!!");
+               return NULL;
+       }
+
+       return (const Evas_Object *) g_WindowData->pConformant;
+}
+
+/**
+ *
+ * @return
+ */
+const Evas_Object *mp_mgr_get_library_naviframe()
+{
+
+       if (NULL == g_WindowData) {
+               VideoLogError("g_WindowData == NULL!!!");
+               return NULL;
+       }
+
+       return (const Evas_Object *) g_WindowData->pLibraryInnerNaviframe;
+}
+
+/**
+ *
+ * @return
+ */
+const Evas_Object *mp_mgr_get_current_inner_naviframe()
+{
+       return (const Evas_Object *) g_WindowData->pLibraryInnerNaviframe;
+}
+
+/**
+ *
+ * @return
+ */
+const Evas_Object *mp_mgr_get_main_layout()
+{
+       VideoLogInfo("");
+
+       if (NULL == g_WindowData) {
+               VideoLogError("g_WindowData == NULL!!!");
+               return NULL;
+       }
+
+       return (const Evas_Object *) g_WindowData->pMainLayout;
+}
+
+/**
+ *
+ * @return
+ */
+Eina_Bool mp_mgr_is_landscape()
+{
+       return (__mp_mgr_get_device_orientation_type() ==
+                       DEVICE_ORIENTATION_LANDSCAPE);
+}
+
+
+/**
+ *
+ * @return
+ */
+const Evas_Object *mp_mgr_get_library_parent()
+{
+       if (g_WindowData == NULL) {
+               VideoLogError("g_WindowData == NULL!!!");
+               return NULL;
+       }
+
+       return mp_mgr_get_main_layout();
+}
diff --git a/src/widget/mp-external-ug.c b/src/widget/mp-external-ug.c
new file mode 100755 (executable)
index 0000000..272acfa
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2020 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 <app.h>
+#include <Elementary.h>
+
+#include "vp-play-log.h"
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-external-ug.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+
+/**
+ *
+ * @param pUrl
+ */
+void mp_external_service_share_panel(const char *pUrl)
+{
+       if (!pUrl) {
+               VideoLogInfo("pUrl is null.");
+               return;
+       }
+
+       int nErr = 0;
+       app_control_h pService = NULL;
+       char *pOperation = VIDEO_SHARE_OPERATION_SINGLE;
+
+       VideoSecureLogInfo("share pUrl = %s", pUrl);
+
+       nErr = app_control_create(&pService);
+       if (nErr != APP_CONTROL_ERROR_NONE) {
+               VideoLogError("Fail to create ug service handle - [0x%x]", nErr);
+               goto ERROR_EXCEPTION;
+       }
+
+       nErr = app_control_set_uri(pService, pUrl);
+       if (nErr != APP_CONTROL_ERROR_NONE) {
+               VideoLogError("Fail to set uri into ug service handle - [0x%x]",
+                                         nErr);
+               goto ERROR_EXCEPTION;
+       }
+
+       nErr = app_control_set_operation(pService, pOperation);
+       if (nErr != APP_CONTROL_ERROR_NONE) {
+               VideoLogError("app_control_set_operation.. [0x%x]", nErr);
+               goto ERROR_EXCEPTION;
+       }
+
+       nErr = app_control_send_launch_request(pService, NULL, NULL);
+       if (nErr != APP_CONTROL_ERROR_NONE) {
+               VideoLogWarning("[WARNING] rvice_send_launch_request().. [0x%x]",
+                                               nErr);
+               goto ERROR_EXCEPTION;
+       }
+
+       app_control_destroy(pService);
+       pService = NULL;
+
+
+  ERROR_EXCEPTION:
+       if (pService) {
+               app_control_destroy(pService);
+               pService = NULL;
+       }
+       return;
+}
diff --git a/src/widget/mp-footer-toolbar.c b/src/widget/mp-footer-toolbar.c
new file mode 100755 (executable)
index 0000000..11fd2cb
--- /dev/null
@@ -0,0 +1,743 @@
+/*
+ * Copyright (c) 2020 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 <Eina.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-footer-toolbar.h"
+#include "mp-util-media-service.h"
+#include "mp-video-string-define.h"
+#include "mp-video-value-define.h"
+#include "mp-external-ug.h"
+
+#include "mp-rotate-ctrl.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "vp-util.h"
+
+typedef struct {
+       void *pNaviFrameHandle;
+       void *pNaviFrameItem;
+
+       MpFooterLibraryMainListTabType nFooterListTabType;
+
+       Evas_Object *pSortToolbarButton;
+       Evas_Object *pSearchToolbarButton;
+       Evas_Object *pSettingToolbarButton;
+       Evas_Object *pMoreToolbarButton;
+       Evas_Object *pMoreCtxPopup;
+       Evas_Object *pDeleteButton;
+       Evas_Object *pDeleteCancelButton;
+       Evas_Object *pViewButton;
+
+       st_RegisteCbFunc ToolbarCbFunc;
+} st_ToolbarWidget;
+
+
+st_ToolbarWidget *g_pToolbarWidget = NULL;
+
+/**
+ *
+ */
+void mp_ft_ctrl_free_toolbar_btn(void)
+{
+       VideoLogInfo("");
+
+       if (g_pToolbarWidget) {
+               if (g_pToolbarWidget->pNaviFrameItem) {
+                       elm_object_item_part_content_unset
+                               (g_pToolbarWidget->pNaviFrameItem, "toolbar_button2");
+
+                       g_pToolbarWidget->pNaviFrameItem = NULL;
+               }
+               g_pToolbarWidget->pNaviFrameHandle = NULL;
+
+               if (g_pToolbarWidget->pViewButton) {
+                       evas_object_del(g_pToolbarWidget->pViewButton);
+                       g_pToolbarWidget->pViewButton = NULL;
+               }
+
+               if (g_pToolbarWidget->pMoreToolbarButton) {
+                       evas_object_del(g_pToolbarWidget->pMoreToolbarButton);
+                       g_pToolbarWidget->pMoreToolbarButton = NULL;
+               }
+
+               if (g_pToolbarWidget->pSortToolbarButton) {
+                       evas_object_del(g_pToolbarWidget->pSortToolbarButton);
+                       g_pToolbarWidget->pSortToolbarButton = NULL;
+               }
+
+               if (g_pToolbarWidget->pSearchToolbarButton) {
+                       evas_object_del(g_pToolbarWidget->pSearchToolbarButton);
+                       g_pToolbarWidget->pSearchToolbarButton = NULL;
+               }
+
+               if (g_pToolbarWidget->pSettingToolbarButton) {
+                       evas_object_del(g_pToolbarWidget->pSettingToolbarButton);
+                       g_pToolbarWidget->pSettingToolbarButton = NULL;
+               }
+
+               if (g_pToolbarWidget->pMoreCtxPopup) {
+                       evas_object_del(g_pToolbarWidget->pMoreCtxPopup);
+                       g_pToolbarWidget->pMoreCtxPopup = NULL;
+               }
+
+               if (g_pToolbarWidget->pDeleteButton) {
+                       evas_object_del(g_pToolbarWidget->pDeleteButton);
+                       g_pToolbarWidget->pDeleteButton = NULL;
+               }
+
+               if (g_pToolbarWidget->pDeleteCancelButton) {
+                       evas_object_del(g_pToolbarWidget->pDeleteCancelButton);
+                       g_pToolbarWidget->pDeleteCancelButton = NULL;
+               }
+
+               g_pToolbarWidget->nFooterListTabType = FOOTER_TAB_TYPE_PERSONAL;
+               g_pToolbarWidget->pNaviFrameItem = NULL;
+
+               memset((void *) &g_pToolbarWidget->ToolbarCbFunc, 0,
+                          sizeof(st_RegisteCbFunc));
+
+               free(g_pToolbarWidget);
+               g_pToolbarWidget = NULL;
+       }
+}
+
+/**
+ *
+ * @param pParent
+ * @param pFunc
+ * @param pUserData
+ */
+void *mp_ft_ctrl_create_more_style_btn(void *pParent, Evas_Smart_Cb pFunc,
+                                                                          void *pUserData)
+{
+       if (!pParent) {
+               VideoLogError("No exist parent.");
+               return NULL;
+       }
+
+       Evas_Object *pTmpBtn = elm_button_add(pParent);
+       elm_access_info_set(pTmpBtn, ELM_ACCESS_INFO, "more");
+       elm_object_style_set(pTmpBtn, "naviframe/more/default");
+       evas_object_smart_callback_add(pTmpBtn, "clicked", pFunc, pUserData);
+
+       return pTmpBtn;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pText
+ * @param pFunc
+ * @param pUserData
+ */
+void *mp_ft_ctrl_create_toolbar_btn(void *pParent, const char *pText,
+                                                                       Evas_Smart_Cb pFunc, void *pUserData)
+{
+       if (!pParent) {
+               VideoLogError("No exist parent.");
+               return NULL;
+       }
+
+       Evas_Object *pTmpBtn = elm_button_add(pParent);
+       elm_object_style_set(pTmpBtn, "naviframe/toolbar/default");
+       elm_object_text_set(pTmpBtn, pText);
+       evas_object_smart_callback_add(pTmpBtn, "clicked", pFunc, pUserData);
+
+       return pTmpBtn;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_ft_ctrl_more_popup_dismissed_cb(void *pUserData,
+                                                                               Evas_Object * pObject,
+                                                                               void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_ft_ctrl_hide_more_popup();
+}
+
+/**
+ *
+ * @param pCtxPopup
+ * @param pTargetObject
+ */
+void mp_ft_ctrl_move_more_popup(Evas_Object * pCtxPopup,
+                                                               Evas_Object * pTargetObject)
+{
+       Evas_Coord_Rectangle rect = { 0, };
+       int nRotate = elm_win_rotation_get(mp_util_get_main_window_handle());
+
+       elm_win_screen_size_get(mp_util_get_main_window_handle(), &rect.x,
+                                                       &rect.y, &rect.w, &rect.h);
+
+       VideoLogInfo("nRotate : [%d], rect.w : [%d], rect.h : [%d]", nRotate,
+                                rect.w, rect.h);
+
+       int nW = 0;
+       int nH = 0;
+
+       switch (nRotate) {
+       case 0:
+       case 180:
+               {
+                       nW = rect.w / 2;
+                       nH = rect.h;
+               }
+               break;
+
+       case 90:
+               {
+                       nW = rect.h / 2;
+                       nH = rect.w;
+               }
+               break;
+
+       case 270:
+               {
+                       nW = rect.h / 2;
+                       nH = rect.w;
+               }
+               break;
+
+       default:
+               {
+                       VideoLogError("not handled nRotate : [%d]!!!", nRotate);
+               }
+               break;
+       }
+
+       evas_object_move(g_pToolbarWidget->pMoreCtxPopup, nW, nH);
+
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param obj
+ * @param event_info
+ */
+static void __mp_ft_ctrl_more_popup_del_cb(void *data, Evas * e,
+                                                                                  Evas_Object * obj,
+                                                                                  void *event_info)
+{
+       VideoLogInfo("");
+       evas_object_event_callback_del(obj, EVAS_CALLBACK_DEL,
+                                                                  __mp_ft_ctrl_more_popup_del_cb);
+       if (g_pToolbarWidget)
+               g_pToolbarWidget->pMoreCtxPopup = NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pTargetObject
+ */
+void mp_ft_ctrl_create_more_btn_of_personal(void *pUserData,
+                                                                                       Evas_Object * pTargetObject)
+{
+       VideoLogInfo("");
+
+       Elm_Object_Item *item = NULL;
+       int nItemCount = 0;
+
+       int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type();
+
+       g_pToolbarWidget->pMoreCtxPopup = elm_ctxpopup_add((Evas_Object *)
+                                                                                                          mp_util_get_main_window_handle
+                                                                                                          ());
+
+
+       if (g_pToolbarWidget->pMoreCtxPopup == NULL) {
+               VideoLogError("g_pToolbarWidget->pMoreCtxPopup == NULL!!!");
+               return;
+       }
+
+       evas_object_event_callback_add(g_pToolbarWidget->pMoreCtxPopup,
+                                                                  EVAS_CALLBACK_DEL,
+                                                                  __mp_ft_ctrl_more_popup_del_cb, NULL);
+       eext_object_event_callback_add(g_pToolbarWidget->pMoreCtxPopup,
+                                                                  EEXT_CALLBACK_BACK,
+                                                                  eext_ctxpopup_back_cb, NULL);
+       eext_object_event_callback_add(g_pToolbarWidget->pMoreCtxPopup,
+                                                                  EEXT_CALLBACK_MORE,
+                                                                  eext_ctxpopup_back_cb, NULL);
+
+       elm_object_style_set(g_pToolbarWidget->pMoreCtxPopup, "more/default");
+       elm_ctxpopup_auto_hide_disabled_set(g_pToolbarWidget->pMoreCtxPopup,
+                                                                               EINA_TRUE);
+
+       evas_object_smart_callback_add(g_pToolbarWidget->pMoreCtxPopup,
+                                                                  "dismissed",
+                                                                  mp_ft_ctrl_more_popup_dismissed_cb,
+                                                                  NULL);
+
+       if (nVideoListSize > 0 && g_pToolbarWidget->ToolbarCbFunc.SearchCb) {
+               item =
+                       elm_ctxpopup_item_append(g_pToolbarWidget->pMoreCtxPopup,
+                                                                        VIDEOS_CTXPOP_MENU_SEARCH_IDS, NULL,
+                                                                        g_pToolbarWidget->
+                                                                        ToolbarCbFunc.SearchCb,
+                                                                        (void *) FOOTER_TAB_TYPE_PERSONAL);
+               elm_object_item_domain_text_translatable_set(item, VIDEOS_STRING,
+                                                                                                        EINA_TRUE);
+               nItemCount++;
+       }
+       if (nVideoListSize > 0 && g_pToolbarWidget->ToolbarCbFunc.DeleteCb) {
+               item =
+                       elm_ctxpopup_item_append(g_pToolbarWidget->pMoreCtxPopup,
+                                                                        VIDEOS_CTXPOP_MENU_DELETE_IDS, NULL,
+                                                                        g_pToolbarWidget->
+                                                                        ToolbarCbFunc.DeleteCb,
+                                                                        (void *) FOOTER_TAB_TYPE_PERSONAL);
+               elm_object_item_domain_text_translatable_set(item, VIDEOS_STRING,
+                                                                                                        EINA_TRUE);
+               nItemCount++;
+       }
+       if (g_pToolbarWidget->ToolbarCbFunc.ShareViaCb) {
+               item =
+                       elm_ctxpopup_item_append(g_pToolbarWidget->pMoreCtxPopup,
+                                                                        VIDEOS_CTXPOP_MENU_SHARE_IDS, NULL,
+                                                                        g_pToolbarWidget->
+                                                                        ToolbarCbFunc.ShareViaCb, NULL);
+               elm_object_item_domain_text_translatable_set(item, VIDEOS_STRING,
+                                                                                                        EINA_TRUE);
+               nItemCount++;
+       }
+       if (nVideoListSize > 0 && g_pToolbarWidget->ToolbarCbFunc.ViewAsCb) {
+               item =
+                       elm_ctxpopup_item_append(g_pToolbarWidget->pMoreCtxPopup,
+                                                                        VIDEOS_CTXPOP_MENU_VIEW_AS_IDS, NULL,
+                                                                        g_pToolbarWidget->
+                                                                        ToolbarCbFunc.ViewAsCb,
+                                                                        (void *) FOOTER_TAB_TYPE_PERSONAL);
+               elm_object_item_domain_text_translatable_set(item, VIDEOS_STRING,
+                                                                                                        EINA_TRUE);
+               nItemCount++;
+       }
+       if (nVideoListSize > 0 && g_pToolbarWidget->ToolbarCbFunc.SortItemCb) {
+               item =
+                       elm_ctxpopup_item_append(g_pToolbarWidget->pMoreCtxPopup,
+                                                                        VIDEOS_CTXPOP_MENU_SORT_BY_IDS, NULL,
+                                                                        g_pToolbarWidget->
+                                                                        ToolbarCbFunc.SortItemCb,
+                                                                        (void *) FOOTER_TAB_TYPE_PERSONAL);
+               elm_object_item_domain_text_translatable_set(item, VIDEOS_STRING,
+                                                                                                        EINA_TRUE);
+               nItemCount++;
+       }
+       if (nVideoListSize > 0 && g_pToolbarWidget->ToolbarCbFunc.AutoPlayCb) {
+               item =
+                       elm_ctxpopup_item_append(g_pToolbarWidget->pMoreCtxPopup,
+                                                                        VIDEOS_CTXPOP_MENU_AUTO_PLAY_NEXT_IDS,
+                                                                        NULL,
+                                                                        g_pToolbarWidget->
+                                                                        ToolbarCbFunc.AutoPlayCb,
+                                                                        (void *) FOOTER_TAB_TYPE_PERSONAL);
+               elm_object_item_domain_text_translatable_set(item, VIDEOS_STRING,
+                                                                                                        EINA_TRUE);
+               nItemCount++;
+       }
+
+       if (nVideoListSize > 0 && g_pToolbarWidget->ToolbarCbFunc.RenameCb) {
+               item =
+                       elm_ctxpopup_item_append(g_pToolbarWidget->pMoreCtxPopup,
+                                                                        VIDEOS_CTXPOP_MENU_RENAME_IDS, NULL,
+                                                                        g_pToolbarWidget->
+                                                                        ToolbarCbFunc.RenameCb,
+                                                                        (void *) FOOTER_TAB_TYPE_PERSONAL);
+               elm_object_item_domain_text_translatable_set(item, VIDEOS_STRING,
+                                                                                                        EINA_TRUE);
+               nItemCount++;
+       }
+       if (nVideoListSize > 0 && g_pToolbarWidget->ToolbarCbFunc.DetailsCb) {
+               item =
+                       elm_ctxpopup_item_append(g_pToolbarWidget->pMoreCtxPopup,
+                                                                        VIDEOS_CTXPOP_MENU_DETAILS_IDS, NULL,
+                                                                        g_pToolbarWidget->
+                                                                        ToolbarCbFunc.DetailsCb,
+                                                                        (void *) FOOTER_TAB_TYPE_PERSONAL);
+               elm_object_item_domain_text_translatable_set(item, VIDEOS_STRING,
+                                                                                                        EINA_TRUE);
+               nItemCount++;
+       }
+
+       if (nItemCount > 0) {
+               mp_ft_ctrl_move_more_popup(g_pToolbarWidget->pMoreCtxPopup,
+                                                                  pTargetObject);
+               evas_object_show(g_pToolbarWidget->pMoreCtxPopup);
+       } else {
+               mp_ft_ctrl_free_toolbar_btn();
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+void mp_ft_ctrl_more_btn_cb(void *pUserData, Evas_Object * pObject,
+                                                       void *pEventInfo)
+{
+       if (!pObject) {
+               VideoLogInfo("[ERR]");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       if (g_pToolbarWidget->pMoreCtxPopup) {
+               evas_object_del(g_pToolbarWidget->pMoreCtxPopup);
+               g_pToolbarWidget->pMoreCtxPopup = NULL;
+       } else {
+               int nVideoListSize =
+                       mp_util_svc_get_number_of_video_item_by_type();
+               VideoLogInfo("g_pToolbarWidget->nFooterListTabType=%d",
+                                        g_pToolbarWidget->nFooterListTabType);
+               if (nVideoListSize > 0) {
+                       if (g_pToolbarWidget->nFooterListTabType ==
+                               FOOTER_TAB_TYPE_PERSONAL) {
+                               mp_ft_ctrl_create_more_btn_of_personal(pUserData, pObject);
+                       } else {
+                               VideoLogError("invalid footer type");
+                       }
+               } else {
+                       VideoLogError("Empty video list");
+               }
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pToolbarCenterButtonCb
+ */
+void mp_ft_ctrl_create_center_button(void *pUserData,
+                                                                        void *pToolbarCenterButtonCb)
+{
+       if (!g_pToolbarWidget) {
+               VideoLogError("g_pToolbarWidget is NULL.");
+               return;
+       }
+
+       if (g_pToolbarWidget->pViewButton) {
+               evas_object_del(g_pToolbarWidget->pViewButton);
+               g_pToolbarWidget->pViewButton = NULL;
+       }
+
+       g_pToolbarWidget->pViewButton =
+               mp_ft_ctrl_create_toolbar_btn(g_pToolbarWidget->pNaviFrameHandle,
+                                                                         MP_VPL_LIST_TAB_VIEW,
+                                                                         pToolbarCenterButtonCb, pUserData);
+       elm_object_item_part_content_set(g_pToolbarWidget->pNaviFrameItem,
+                                                                        "toolbar_button1",
+                                                                        g_pToolbarWidget->pViewButton);
+}
+
+/**
+ *
+ * @param pParent
+ * @param pToolbarCenterButtonCb
+ */
+void mp_ft_ctrl_create_center_toolbar(void *pParent,
+                                                                         void *pToolbarCenterButtonCb)
+{
+       if (!g_pToolbarWidget || !pParent) {
+               VideoLogError("g_pToolbarWidget or pParent is NULL.");
+               return;
+       }
+
+       Evas_Object *toolbar = elm_toolbar_add(pParent);
+       if (!toolbar)
+               return;
+       elm_object_style_set(toolbar, "default");
+       elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND);
+       elm_toolbar_transverse_expanded_set(toolbar, EINA_TRUE);
+       elm_toolbar_select_mode_set(toolbar, ELM_OBJECT_SELECT_MODE_NONE);
+       elm_toolbar_item_append(toolbar, NULL, MP_VPL_LIST_TAB_VIEW,
+                                                       pToolbarCenterButtonCb, NULL);
+
+       if (g_pToolbarWidget->pNaviFrameItem) {
+               elm_object_item_part_content_set(g_pToolbarWidget->pNaviFrameItem,
+                                                                                "toolbar", toolbar);
+       }
+}
+
+/**
+ *
+ */
+void mp_ft_ctrl_delete_center_toolbar()
+{
+
+       Evas_Object *toolbar = NULL;
+       if (!g_pToolbarWidget)
+               return;
+
+       if (g_pToolbarWidget->pNaviFrameItem) {
+               toolbar =
+                       elm_object_item_part_content_unset
+                       (g_pToolbarWidget->pNaviFrameItem, "toolbar");
+               MP_DEL_OBJ(toolbar);
+       }
+}
+
+/**
+ *
+ */
+void mp_ft_ctrl_delete_center_button(void)
+{
+       if (!g_pToolbarWidget) {
+               VideoLogError("g_pToolbarWidget is NULL.");
+               return;
+       }
+
+       if (g_pToolbarWidget->pNaviFrameItem) {
+               elm_object_item_part_content_unset
+                       (g_pToolbarWidget->pNaviFrameItem, "toolbar_button1");
+       }
+
+       if (g_pToolbarWidget->pViewButton) {
+               evas_object_del(g_pToolbarWidget->pViewButton);
+               g_pToolbarWidget->pViewButton = NULL;
+       }
+}
+
+/**
+ *
+ */
+void mp_ft_ctrl_disable(void)
+{
+       if (!g_pToolbarWidget) {
+               VideoLogError("g_pToolbarWidget is NULL.");
+               return;
+       }
+
+       if (g_pToolbarWidget->pNaviFrameItem) {
+               elm_object_item_part_content_unset
+                       (g_pToolbarWidget->pNaviFrameItem, "toolbar_more_btn");
+       }
+
+       if (g_pToolbarWidget->pMoreToolbarButton) {
+               evas_object_del(g_pToolbarWidget->pMoreToolbarButton);
+               g_pToolbarWidget->pMoreToolbarButton = NULL;
+       }
+}
+
+/**
+ *
+ * @param pCallbackFunc
+ */
+void mp_ft_ctrl_registe_cb_func(st_RegisteCbFunc * pCallbackFunc)
+{
+       if (!g_pToolbarWidget) {
+               VideoLogError("g_pToolbarWidget == NULL");
+               return;
+       }
+
+       if (!pCallbackFunc) {
+               VideoLogError("pCallbackFunc == NULL");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       memset((void *) &g_pToolbarWidget->ToolbarCbFunc, 0,
+                  sizeof(st_RegisteCbFunc));
+
+       if (pCallbackFunc->DownloadCb) {
+               g_pToolbarWidget->ToolbarCbFunc.DownloadCb =
+                       pCallbackFunc->DownloadCb;
+       }
+
+       if (pCallbackFunc->SearchCb) {
+               g_pToolbarWidget->ToolbarCbFunc.SearchCb = pCallbackFunc->SearchCb;
+       }
+
+       if (pCallbackFunc->DeleteCb) {
+               g_pToolbarWidget->ToolbarCbFunc.DeleteCb = pCallbackFunc->DeleteCb;
+       }
+
+       if (pCallbackFunc->SortItemCb) {
+               g_pToolbarWidget->ToolbarCbFunc.SortItemCb =
+                       pCallbackFunc->SortItemCb;
+       }
+
+       if (pCallbackFunc->ViewAsCb) {
+               g_pToolbarWidget->ToolbarCbFunc.ViewAsCb = pCallbackFunc->ViewAsCb;
+       }
+
+       if (pCallbackFunc->AutoPlayCb) {
+               g_pToolbarWidget->ToolbarCbFunc.AutoPlayCb =
+                       pCallbackFunc->AutoPlayCb;
+       }
+
+       if (pCallbackFunc->SignInCb) {
+               g_pToolbarWidget->ToolbarCbFunc.SignInCb = pCallbackFunc->SignInCb;
+       }
+
+       if (pCallbackFunc->ShareViaCb) {
+               g_pToolbarWidget->ToolbarCbFunc.ShareViaCb =
+                       pCallbackFunc->ShareViaCb;
+       }
+
+       if (pCallbackFunc->RenameCb) {
+               g_pToolbarWidget->ToolbarCbFunc.RenameCb = pCallbackFunc->RenameCb;
+       }
+
+       if (pCallbackFunc->DetailsCb) {
+               g_pToolbarWidget->ToolbarCbFunc.DetailsCb =
+                       pCallbackFunc->DetailsCb;
+       }
+#ifdef ENABLE_PRIVATE_MODE
+       if (pCallbackFunc->AddToPersonalCB) {
+               g_pToolbarWidget->ToolbarCbFunc.AddToPersonalCB =
+                       pCallbackFunc->AddToPersonalCB;
+       }
+
+       if (pCallbackFunc->RemoveFromPersonalCB) {
+               g_pToolbarWidget->ToolbarCbFunc.RemoveFromPersonalCB =
+                       pCallbackFunc->RemoveFromPersonalCB;
+       }
+#endif
+}
+
+/**
+ *
+ * @param pNaviFrameHandle
+ * @param pNaviFrameItem
+ * @param nFooterListTabType
+ * @param pRegisteCbFunc
+ */
+void mp_ft_ctrl_create(void *pNaviFrameHandle, void *pNaviFrameItem,
+                                          MpFooterLibraryMainListTabType nFooterListTabType,
+                                          st_RegisteCbFunc * pRegisteCbFunc)
+{
+       if (!pNaviFrameHandle) {
+               VideoLogError("g_pToolbarWidget is NULL.");
+               return;
+       }
+
+       mp_ft_ctrl_free_toolbar_btn();
+
+       g_pToolbarWidget =
+               (st_ToolbarWidget *) calloc(1, sizeof(st_ToolbarWidget));
+       memset(g_pToolbarWidget, 0, sizeof(st_ToolbarWidget));
+
+       g_pToolbarWidget->pNaviFrameHandle = pNaviFrameHandle;
+       g_pToolbarWidget->pNaviFrameItem = pNaviFrameItem;
+       g_pToolbarWidget->nFooterListTabType = nFooterListTabType;
+
+       if (pRegisteCbFunc) {
+               mp_ft_ctrl_registe_cb_func(pRegisteCbFunc);
+       }
+
+       g_pToolbarWidget->pMoreToolbarButton =
+               mp_ft_ctrl_create_more_style_btn
+               (g_pToolbarWidget->pNaviFrameHandle, mp_ft_ctrl_more_btn_cb, NULL);
+       elm_object_item_part_content_set(g_pToolbarWidget->pNaviFrameItem,
+                                                                        "toolbar_more_btn",
+                                                                        g_pToolbarWidget->pMoreToolbarButton);
+}
+
+/**
+ *
+ */
+void mp_ft_ctrl_destroy(void)
+{
+       mp_ft_ctrl_free_toolbar_btn();
+}
+
+/**
+ *
+ */
+void mp_ft_ctrl_hide_more_popup(void)
+{
+       if (!g_pToolbarWidget) {
+               VideoLogError("g_pToolbarWidget == NULL");
+               return;
+       }
+
+       if (g_pToolbarWidget->pMoreCtxPopup) {
+               evas_object_smart_callback_del(g_pToolbarWidget->pMoreCtxPopup,
+                                                                          "dismissed",
+                                                                          mp_ft_ctrl_more_popup_dismissed_cb);
+               evas_object_del(g_pToolbarWidget->pMoreCtxPopup);
+               g_pToolbarWidget->pMoreCtxPopup = NULL;
+       }
+}
+
+/**
+ *
+ * @param nFooterListTabType
+ */
+void mp_ft_ctrl_set_list_tab_type(MpFooterLibraryMainListTabType
+                                                                 nFooterListTabType)
+{
+       if (!g_pToolbarWidget) {
+               VideoLogError("g_pToolbarWidget == NULL");
+               return;
+       }
+
+       g_pToolbarWidget->nFooterListTabType = nFooterListTabType;
+
+       if (g_pToolbarWidget->nFooterListTabType == FOOTER_TAB_TYPE_PERSONAL) {
+               VideoLogInfo("FOOTER_TAB_TYPE_PERSONAL");
+       } else if (g_pToolbarWidget->nFooterListTabType ==
+                          FOOTER_TAB_TYPE_DOWNLOAD) {
+               VideoLogInfo("FOOTER_TAB_TYPE_DOWNLOAD");
+       } else {
+               g_pToolbarWidget->nFooterListTabType = FOOTER_TAB_TYPE_PERSONAL;
+               VideoLogInfo("FOOTER_TAB_TYPE_PERSONAL");
+       }
+}
+
+/**
+ *
+ */
+void mp_ft_ctrl_rotate_update()
+{
+       VideoLogInfo("");
+       if (g_pToolbarWidget != NULL
+               && g_pToolbarWidget->pMoreCtxPopup != NULL) {
+               mp_ft_ctrl_move_more_popup(g_pToolbarWidget->pMoreCtxPopup, NULL);
+               evas_object_show(g_pToolbarWidget->pMoreCtxPopup);
+       }
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_ft_ctrl_is_show(void)
+{
+       if (g_pToolbarWidget && g_pToolbarWidget->pMoreCtxPopup) {
+               VideoLogInfo("footbar is show");
+               return TRUE;
+       }
+       VideoLogInfo("footbar not show");
+       return FALSE;
+}
diff --git a/src/widget/mp-util-widget-ctrl.c b/src/widget/mp-util-widget-ctrl.c
new file mode 100755 (executable)
index 0000000..942ce70
--- /dev/null
@@ -0,0 +1,344 @@
+/*
+ * Copyright (c) 2020 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 <glib.h>
+#include <stdbool.h>
+#include "mp-util-widget-ctrl.h"
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-util-media-service.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-video-info-ctrl.h"
+#include "mp-rotate-ctrl.h"
+
+
+/*Focus UI*/
+/**
+ *
+ * @param pFocusLayout
+ */
+void mp_widget_ctrl_navi_item_layout_focus_out(Evas_Object * pFocusLayout)
+{
+       if (pFocusLayout == NULL) {
+               VideoLogError("pFocusLayout is NULL");
+               return;
+       }
+
+       elm_object_focus_set(pFocusLayout, EINA_FALSE);
+       elm_object_tree_focus_allow_set(pFocusLayout, EINA_FALSE);
+       elm_object_focus_allow_set(pFocusLayout, EINA_FALSE);
+}
+
+/**
+ *
+ * @param pFocusLayout
+ */
+void mp_widget_ctrl_navi_item_layout_focus_in(Evas_Object * pFocusLayout)
+{
+       if (pFocusLayout == NULL) {
+               VideoLogError("pFocusLayout is NULL");
+               return;
+       }
+
+       elm_object_focus_allow_set(pFocusLayout, EINA_TRUE);
+       elm_object_tree_focus_allow_set(pFocusLayout, EINA_TRUE);
+       elm_object_focus_set(pFocusLayout, EINA_TRUE);
+}
+
+/**
+ *
+ * @param pNaviHandle
+ */
+void mp_widget_ctrl_enable_navi_handle_focus(Evas_Object * pNaviHandle)
+{
+       return;
+}
+
+/**
+ *
+ * @param pNaviHandle
+ * @param pCurentNaviItem
+ */
+void mp_widget_ctrl_disable_navi_handle_focus_except_item(Evas_Object *
+                                                                                                                 pNaviHandle,
+                                                                                                                 Elm_Object_Item
+                                                                                                                 *
+                                                                                                                 pCurentNaviItem)
+{
+       return;
+}
+
+/**
+ *
+ * @param pBox
+ * @param nListCount
+ * @param eStyle
+ */
+void mp_widget_ctrl_set_popup_min_size(Evas_Object * pBox, int nListCount,
+                                                                          euPopUpStyle eStyle)
+{
+       if (pBox) {
+               int nMinHeight = 0;
+               switch (eStyle) {
+               case VIDEOS_POPUP_114:
+                       if (mp_rotate_ctrl_check_landspace_by_win
+                               ((Evas_Object *) mp_util_get_main_window_handle())) {
+                               nMinHeight = VIDEO_POPUP_LIST_HEIGHT_L(nListCount);
+                       } else {
+                               nMinHeight = VIDEO_POPUP_LIST_HEIGHT(nListCount);
+                       }
+                       break;
+               case VIDEOS_POPUP_141:
+                       if (mp_rotate_ctrl_check_landspace_by_win
+                               ((Evas_Object *) mp_util_get_main_window_handle())) {
+                               nMinHeight = VIDEO_POPUP_2_TEXT_HEIGHT_L(nListCount);
+                       } else {
+                               nMinHeight = VIDEO_POPUP_2_TEXT_HEIGHT(nListCount);
+                       }
+                       break;
+
+               default:
+                       VideoLogError("invalid style =%d.", eStyle);
+                       break;
+               }
+
+               evas_object_size_hint_min_set(pBox,
+                                                                         VIDEO_POPUP_ITEM_W *
+                                                                         elm_config_scale_get(),
+                                                                         nMinHeight * elm_config_scale_get());
+       }
+}
+
+/**
+ *
+ * @param pParent
+ * @param pIconPath
+ * @param pFunc
+ * @param pUserData
+ * @return
+ */
+Evas_Object *mp_widget_ctrl_create_navi_btn(Evas_Object * pParent,
+                                                                                       const char *pIconPath,
+                                                                                       Evas_Smart_Cb pFunc,
+                                                                                       void *pUserData)
+{
+       if (!pParent) {
+               VideoLogError("pParent is NULL");
+               return NULL;
+       }
+
+       if (!pIconPath) {
+               VideoLogError("pIconPath is NULL");
+               return NULL;
+       }
+
+       VideoLogInfo("");
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje",
+                        VIDEO_PLAYER_IMAGE_NAME_EDJ);
+       free(path);
+       Evas_Object *pImage = elm_image_add(pParent);
+       elm_image_file_set(pImage, edj_path, pIconPath);
+       elm_image_resizable_set(pImage, EINA_TRUE, EINA_TRUE);
+       evas_object_show(pImage);
+
+       Evas_Object *pTitleBtn = elm_button_add(pParent);
+       elm_object_style_set(pTitleBtn, "naviframe/title_icon");
+       elm_object_part_content_set(pTitleBtn, "icon", pImage);
+       evas_object_smart_callback_add(pTitleBtn, "clicked", pFunc, pUserData);
+
+       return pTitleBtn;
+}
+
+/**
+ *
+ * @param pParent
+ * @param pNaviItem
+ * @param pIconPath
+ * @param pFunc
+ * @param pUserData
+ * @return
+ */
+Evas_Object *mp_widget_ctrl_create_navi_left_btn(Evas_Object * pParent,
+                                                                                                Elm_Object_Item *
+                                                                                                pNaviItem,
+                                                                                                const char *pIconPath,
+                                                                                                Evas_Smart_Cb pFunc,
+                                                                                                void *pUserData)
+{
+
+       if (!pParent || !pNaviItem) {
+               VideoLogError("parent is NULL.");
+               return NULL;
+       }
+
+       VideoLogInfo("");
+
+       Evas_Object *pLeftbtn = NULL;
+       if (pIconPath) {
+               pLeftbtn =
+                       mp_widget_ctrl_create_navi_btn(pParent, pIconPath, pFunc,
+                                                                                  pUserData);
+       } else {
+               pLeftbtn = elm_button_add(pParent);
+               elm_object_style_set(pLeftbtn, "naviframe/title_cancel");
+               evas_object_smart_callback_add(pLeftbtn, "clicked", pFunc,
+                                                                          pUserData);
+       }
+
+       if (!pLeftbtn) {
+               VideoLogError("[ERR] Fail to create pLeftbtn");
+               return NULL;
+       }
+
+       elm_object_item_part_content_set(pNaviItem, "title_left_btn",
+                                                                        pLeftbtn);
+
+       evas_object_show(pLeftbtn);
+
+       return pLeftbtn;
+}
+
+
+/**
+ *
+ * @param pParent
+ * @param pNaviItem
+ * @param pIconPath
+ * @param pFunc
+ * @param pUserData
+ * @return
+ */
+Evas_Object *mp_widget_ctrl_create_navi_right_btn(Evas_Object * pParent,
+                                                                                                 Elm_Object_Item *
+                                                                                                 pNaviItem,
+                                                                                                 const char *pIconPath,
+                                                                                                 Evas_Smart_Cb pFunc,
+                                                                                                 void *pUserData)
+{
+
+       if (!pParent || !pNaviItem) {
+               VideoLogError("parent is NULL.");
+               return NULL;
+       }
+
+
+       VideoLogInfo("");
+       Evas_Object *pRightbtn = NULL;
+       if (pIconPath) {
+               pRightbtn =
+                       mp_widget_ctrl_create_navi_btn(pParent, pIconPath, pFunc,
+                                                                                  pUserData);
+       } else {
+               pRightbtn = elm_button_add(pParent);
+               elm_object_style_set(pRightbtn, "naviframe/title_done");
+               evas_object_smart_callback_add(pRightbtn, "clicked", pFunc,
+                                                                          pUserData);
+       }
+
+       if (!pRightbtn) {
+               VideoLogError("[ERR] Fail to create pRightbtn");
+               return NULL;
+       }
+
+       elm_object_item_part_content_set(pNaviItem, "title_right_btn",
+                                                                        pRightbtn);
+
+       evas_object_show(pRightbtn);
+
+       return pRightbtn;
+
+}
+
+/**
+ *
+ * @param pParent
+ * @param pChangeFunc
+ * @param pMouseDownFunc
+ * @param pUserData
+ * @param pCheckBox
+ * @param pSelectLayout
+ * @return
+ */
+bool mp_widget_ctrl_create_select_all_layout(Evas_Object * pParent,
+                                                                                        Evas_Smart_Cb pChangeFunc,
+                                                                                        Evas_Object_Event_Cb
+                                                                                        pMouseDownFunc,
+                                                                                        void *pUserData,
+                                                                                        Evas_Object ** pCheckBox,
+                                                                                        Evas_Object ** pSelectLayout)
+{
+       if (!pParent) {
+               VideoLogError("parent is NULL.");
+               return FALSE;
+       }
+
+       Evas_Object *pSelectAllLayout = elm_layout_add(pParent);
+       elm_layout_theme_set(pSelectAllLayout, "genlist", "item",
+                                                "group_index/default");
+       evas_object_size_hint_weight_set(pSelectAllLayout, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_FILL);
+       evas_object_size_hint_align_set(pSelectAllLayout, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       evas_object_event_callback_add(pSelectAllLayout,
+                                                                  EVAS_CALLBACK_MOUSE_DOWN,
+                                                                  pMouseDownFunc, NULL);
+       *pSelectLayout = pSelectAllLayout;
+
+       Evas_Object *pSelectAllCheckbox = elm_check_add(pSelectAllLayout);
+       evas_object_smart_callback_add(pSelectAllCheckbox, "changed",
+                                                                  pChangeFunc, NULL);
+       evas_object_propagate_events_set(pSelectAllCheckbox, EINA_FALSE);
+       elm_object_part_content_set(pSelectAllLayout, "elm.swallow.end",
+                                                               pSelectAllCheckbox);
+       elm_object_domain_translatable_part_text_set(pSelectAllLayout,
+                                                                                                "elm.text",
+                                                                                                VIDEOS_STRING,
+                                                                                                VIDEOS_SELECTVIEW_BODY_SELECT_ALL_IDS);
+       evas_object_show(pSelectAllLayout);
+       *pCheckBox = pSelectAllCheckbox;
+       return TRUE;
+
+}
+
+/**
+ *
+ * @param pParent
+ * @param dRadio
+ * @return
+ */
+Evas_Object *mp_widget_ctrl_create_progressbar(Evas_Object * pParent,
+                                                                                          double dRadio)
+{
+       if (!pParent) {
+               return NULL;
+       }
+       Evas_Object *pProgressBar = elm_progressbar_add(pParent);
+       elm_object_style_set(pProgressBar,
+                                                "elm/progressbar/horizontal/default");
+       elm_progressbar_horizontal_set(pProgressBar, EINA_TRUE);
+       elm_progressbar_span_size_set(pProgressBar,
+                                                                 VIDEO_LIST_PROGRESSBAR_LENGTH);
+       evas_object_size_hint_align_set(pProgressBar, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(pProgressBar, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       elm_progressbar_value_set(pProgressBar, dRadio);
+       return pProgressBar;
+}
diff --git a/src/widget/mp-video-list-auto-play-ctrl.c b/src/widget/mp-video-list-auto-play-ctrl.c
new file mode 100755 (executable)
index 0000000..eee9dcb
--- /dev/null
@@ -0,0 +1,557 @@
+/*
+ * Copyright (c) 2020 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 <app.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+#include <app_preference.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "video-player.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-footer-toolbar.h"
+#include "mp-video-list-auto-play-ctrl.h"
+#include "mp-util-widget-ctrl.h"
+#include "vp-util.h"
+
+#define PREF_MP_VIDEO_AUTO_PLAY_TYPE_KEY  "preference/org.tizen.videos/auto_play_type"
+
+typedef struct _MpVideoAutoPlay {
+       //obj
+       Evas_Object *pPopUpHandle;
+       Evas_Object *pGroupRadio;
+       Evas_Object *pGenList;
+       Evas_Object *pBox;
+
+       //data
+       Elm_Genlist_Item_Class *stAutoPlayItc;
+       MpListAutoPlaySelect nAutoPlaySelect;
+} stMpVideoAutoPlay;
+
+stMpVideoAutoPlay *g_pAutoPlayHandle = NULL;
+
+////////////////////////////////////////////////////////////
+// Internal function
+////////////////////////////////////////////////////////////
+static void __mp_auto_play_ctrl_rotate_cb(void *data, Evas_Object * obj,
+                                                                                 void *event_info);
+static void __mp_auto_play_ctrl_mouse_up_cb(void *pUserData, Evas * pEvas,
+                                                                                       Evas_Object * pObject,
+                                                                                       void *pEventInfo);
+static void __mp_auto_play_ctrl_cancel_btn_cb(void *pUserData,
+                                                                                         Evas_Object * pObject,
+                                                                                         void *pEventInfo);
+static void __mp_auto_play_ctrl_select_item_cb(void *pUserData,
+                                                                                          Evas_Object * pObject,
+                                                                                          void *pEventInfo);
+static void __mp_auto_play_ctrl_select_radio_cb(void *pUserData,
+                                                                                               Evas_Object * pObject,
+                                                                                               void *pEventInfo);
+
+
+/**
+ *
+ * @return
+ */
+bool mp_auto_play_config_get_auto_play_status()
+{
+       VideoLogInfo("");
+       int nErr = 0;
+       bool nVal = 0;
+       nErr = preference_get_boolean(PREF_MP_VIDEO_AUTO_PLAY_TYPE_KEY, &nVal);
+       if (nErr != 0) {
+               VideoLogError("failed to get MULTI PLAY FLAG [0x%x]", nErr);
+               return FALSE;
+       }
+       if (nVal)
+               return TRUE;
+       else
+               return FALSE;
+}
+
+/**
+ *
+ */
+void mp_auto_play_ctrl_delete_handle(void)
+{
+       VideoLogInfo("");
+       if (!g_pAutoPlayHandle) {
+               VideoLogError("-------g_pAutoPlayHandle is NULL--------");
+               return;
+       }
+       if (g_pAutoPlayHandle->pPopUpHandle) {
+               eext_object_event_callback_del(g_pAutoPlayHandle->pPopUpHandle,
+                                                                          EEXT_CALLBACK_BACK,
+                                                                          __mp_auto_play_ctrl_cancel_btn_cb);
+               evas_object_event_callback_del(g_pAutoPlayHandle->pPopUpHandle,
+                                                                          EVAS_CALLBACK_MOUSE_UP,
+                                                                          __mp_auto_play_ctrl_mouse_up_cb);
+               evas_object_smart_callback_del(g_pAutoPlayHandle->pPopUpHandle,
+                                                                          "block,clicked",
+                                                                          __mp_auto_play_ctrl_cancel_btn_cb);
+               evas_object_smart_callback_del((Evas_Object *)
+                                                                          mp_util_get_main_window_handle(),
+                                                                          "rotation,changed",
+                                                                          __mp_auto_play_ctrl_rotate_cb);
+       }
+       MP_DEL_OBJ(g_pAutoPlayHandle->pGroupRadio);
+       MP_DEL_OBJ(g_pAutoPlayHandle->pGenList);
+       MP_DEL_OBJ(g_pAutoPlayHandle->pBox);
+       MP_DEL_OBJ(g_pAutoPlayHandle->pPopUpHandle);
+       MP_DEL_ITC(g_pAutoPlayHandle->stAutoPlayItc);
+       MP_FREE_STRING(g_pAutoPlayHandle);
+
+}
+
+/**
+ *
+ * @param nAutoPlaySelect
+ */
+void mp_auto_play_ctrl_set_type(MpListAutoPlaySelect nAutoPlaySelect)
+{
+       if (!g_pAutoPlayHandle) {
+               VideoLogError("");
+               return;
+       }
+
+       if (MP_LIST_AUTO_PLAY_NONE >= nAutoPlaySelect
+               || nAutoPlaySelect >= MP_LIST_AUTO_PLAY_MAX) {
+               VideoLogWarning
+                       ("[WARNING] Value of Auto Play selection is not matched.");
+               g_pAutoPlayHandle->nAutoPlaySelect = MP_LIST_AUTO_PLAY_OFF;
+       }
+
+       g_pAutoPlayHandle->nAutoPlaySelect = nAutoPlaySelect;
+
+
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_auto_play_ctrl_get_label_of_genlsit_item_cb(const void
+                                                                                                                         *pUserData,
+                                                                                                                         Evas_Object *
+                                                                                                                         pObject,
+                                                                                                                         const char
+                                                                                                                         *pPart)
+{
+
+       int nIndex = (int) pUserData;
+
+       if (!strcmp(pPart, "elm.text") || !strcmp(pPart, "elm.text.main.left")) {
+               switch (nIndex) {
+               case MP_LIST_AUTO_PLAY_ON:
+                       return strdup(VIDEOS_STRING_COM_ON);
+               case MP_LIST_AUTO_PLAY_OFF:
+                       return strdup(VIDEOS_STRING_COM_OFF);
+               }
+       }
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_auto_play_ctrl_get_icon_of_genlsit_item_cb(const
+                                                                                                                                       void
+                                                                                                                                       *pUserData,
+                                                                                                                                       Evas_Object
+                                                                                                                                       *
+                                                                                                                                       pObject,
+                                                                                                                                       const
+                                                                                                                                       char
+                                                                                                                                       *pPart)
+{
+
+       if (!g_pAutoPlayHandle) {
+               VideoLogError("");
+               return NULL;
+       }
+
+       int nIndex = (int) pUserData;
+       Evas_Object *pTmpRadio = NULL;
+
+       if (!strcmp(pPart, "elm.swallow.end") || !strcmp(pPart, "elm.icon.2")) {
+               pTmpRadio = elm_radio_add(pObject);
+               elm_radio_state_value_set(pTmpRadio, nIndex);
+               elm_radio_group_add(pTmpRadio, g_pAutoPlayHandle->pGroupRadio);
+
+               if (g_pAutoPlayHandle->nAutoPlaySelect == nIndex) {
+                       elm_radio_value_set(g_pAutoPlayHandle->pGroupRadio,
+                                                               g_pAutoPlayHandle->nAutoPlaySelect);
+                       mp_auto_play_ctrl_set_type(g_pAutoPlayHandle->nAutoPlaySelect);
+               }
+
+               evas_object_smart_callback_add(pTmpRadio, "changed",
+                                                                          __mp_auto_play_ctrl_select_radio_cb,
+                                                                          (void *) pUserData);
+
+               evas_object_show(pTmpRadio);
+
+       }
+       return pTmpRadio;
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_auto_play_ctrl_cancel_btn_cb(void *pUserData,
+                                                                                         Evas_Object * pObject,
+                                                                                         void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_auto_play_ctrl_hide();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_auto_play_ctrl_select_item_cb(void *pUserData,
+                                                                                          Evas_Object * pObject,
+                                                                                          void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       if (!g_pAutoPlayHandle) {
+               VideoLogError("g_pAutoPlayHandle is ?NULL");
+               return;
+       }
+
+       if (!pEventInfo) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       int nIndex = 0;
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+
+       nIndex = (int) elm_object_item_data_get(pItem);
+       VideoLogError("====================nindex=%d", nIndex);
+       if (nIndex == 1) {
+               VideoLogError("====================vp_set_auto_play=%true");
+               vp_set_auto_play(true);
+       } else {
+               VideoLogError("====================vp_set_auto_play=%false");
+               vp_set_auto_play(false);
+       }
+       if (vp_is_auto_play_on()) {
+               VideoLogError("====================found vp_set_auto_play=%true");
+       }
+       if (nIndex == g_pAutoPlayHandle->nAutoPlaySelect) {
+               VideoLogInfo("Current state");
+               mp_auto_play_ctrl_hide();
+       } else {
+               g_pAutoPlayHandle->nAutoPlaySelect = nIndex;
+               elm_radio_value_set(g_pAutoPlayHandle->pGroupRadio,
+                                                       g_pAutoPlayHandle->nAutoPlaySelect);
+
+               mp_auto_play_ctrl_set_type(g_pAutoPlayHandle->nAutoPlaySelect);
+
+               mp_auto_play_ctrl_hide();
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_auto_play_ctrl_select_radio_cb(void *pUserData,
+                                                                                               Evas_Object * pObject,
+                                                                                               void *pEventInfo)
+{
+
+       if (!g_pAutoPlayHandle) {
+               VideoLogError("");
+               return;
+       }
+
+       int nIndex = (int) pUserData;
+
+       VideoLogError("====================nindex=%d", nIndex);
+       if (nIndex == 1) {
+               VideoLogError("====================vp_set_auto_play=true");
+               vp_set_auto_play(true);
+       } else {
+               VideoLogError("====================vp_set_auto_play=false");
+               vp_set_auto_play(false);
+       }
+       if (vp_is_auto_play_on()) {
+               VideoLogError("====================found vp_set_auto_play=true");
+       }
+       if (nIndex == g_pAutoPlayHandle->nAutoPlaySelect) {
+               VideoLogInfo("Current state");
+               mp_auto_play_ctrl_hide();
+       } else {
+               g_pAutoPlayHandle->nAutoPlaySelect = nIndex;
+               elm_radio_value_set(g_pAutoPlayHandle->pGroupRadio,
+                                                       g_pAutoPlayHandle->nAutoPlaySelect);
+
+               mp_auto_play_ctrl_set_type(g_pAutoPlayHandle->nAutoPlaySelect);
+
+               mp_auto_play_ctrl_hide();
+       }
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_auto_play_ctrl_mouse_up_cb(void *pUserData, Evas * pEvas,
+                                                                                       Evas_Object * pObject,
+                                                                                       void *pEventInfo)
+{
+       Evas_Event_Mouse_Up *pEvent = pEventInfo;
+
+       if (pEvent->button == 3) {
+               mp_auto_play_ctrl_hide();
+       }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_auto_play_ctrl_realized(void *data, Evas_Object * obj,
+                                                                                void *event_info)
+{
+       if (!event_info || !obj) {
+               VideoLogError("event info is invalid");
+               return;
+       }
+       Elm_Object_Item *pItem = elm_genlist_last_item_get(obj);
+
+       if (pItem) {
+               elm_object_item_signal_emit(pItem, "elm,state,bottomline,hide",
+                                                                       "");
+       }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_auto_play_ctrl_rotate_cb(void *data, Evas_Object * obj,
+                                                                                 void *event_info)
+{
+       if (!g_pAutoPlayHandle) {
+               VideoLogError("pVideoListSortPopUpHandle IS null");
+               return;
+       }
+       mp_widget_ctrl_set_popup_min_size(g_pAutoPlayHandle->pBox, 2,
+                                                                         VIDEOS_POPUP_114);
+
+}
+
+////////////////////////////////////////////////////////////
+// External function
+////////////////////////////////////////////////////////////
+
+/**
+ *
+ * @return
+ */
+bool mp_auto_play_ctrl_show()
+{
+       VideoLogInfo("");
+
+
+
+       mp_auto_play_ctrl_delete_handle();
+       g_pAutoPlayHandle =
+               (stMpVideoAutoPlay *) calloc(1, sizeof(stMpVideoAutoPlay));
+       if (!g_pAutoPlayHandle) {
+               VideoLogError("g_pAutoPlayHandle is NULL");
+               return FALSE;
+       }
+
+       g_pAutoPlayHandle->nAutoPlaySelect = MP_LIST_AUTO_PLAY_OFF;
+       g_pAutoPlayHandle->nAutoPlaySelect = mp_auto_play_ctrl_get_type();
+
+       g_pAutoPlayHandle->pPopUpHandle =
+               elm_popup_add(mp_util_get_main_window_handle());
+       elm_object_style_set(g_pAutoPlayHandle->pPopUpHandle, "theme_bg");
+
+       elm_object_domain_translatable_part_text_set(g_pAutoPlayHandle->
+                                                                                                pPopUpHandle,
+                                                                                                "title,text", PACKAGE,
+                                                                                                VIDEOS_MENU_AUTO_PLAY_NEXT_POP_HEADER);
+       evas_object_size_hint_weight_set(g_pAutoPlayHandle->pPopUpHandle,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       eext_object_event_callback_add(g_pAutoPlayHandle->pPopUpHandle,
+                                                                  EEXT_CALLBACK_BACK,
+                                                                  __mp_auto_play_ctrl_cancel_btn_cb,
+                                                                  NULL);
+       evas_object_event_callback_add(g_pAutoPlayHandle->pPopUpHandle,
+                                                                  EVAS_CALLBACK_MOUSE_UP,
+                                                                  __mp_auto_play_ctrl_mouse_up_cb, NULL);
+       evas_object_smart_callback_add(g_pAutoPlayHandle->pPopUpHandle,
+                                                                  "block,clicked",
+                                                                  __mp_auto_play_ctrl_cancel_btn_cb,
+                                                                  NULL);
+       evas_object_smart_callback_add((Evas_Object *)
+                                                                  mp_util_get_main_window_handle(),
+                                                                  "rotation,changed",
+                                                                  __mp_auto_play_ctrl_rotate_cb, NULL);
+
+       //  Set item of Genlist.
+       MP_DEL_ITC(g_pAutoPlayHandle->stAutoPlayItc);
+       g_pAutoPlayHandle->stAutoPlayItc = elm_genlist_item_class_new();
+       g_pAutoPlayHandle->stAutoPlayItc->item_style = "default";       //"1text.1icon.2/popup";
+       g_pAutoPlayHandle->stAutoPlayItc->func.text_get =
+               (void *) __mp_auto_play_ctrl_get_label_of_genlsit_item_cb;
+       g_pAutoPlayHandle->stAutoPlayItc->func.content_get =
+               (void *) __mp_auto_play_ctrl_get_icon_of_genlsit_item_cb;
+       g_pAutoPlayHandle->stAutoPlayItc->func.state_get = NULL;
+       g_pAutoPlayHandle->stAutoPlayItc->func.del = NULL;
+
+       // Create genlist handle
+       g_pAutoPlayHandle->pGenList =
+               elm_genlist_add(g_pAutoPlayHandle->pPopUpHandle);
+       evas_object_size_hint_weight_set(g_pAutoPlayHandle->pGenList,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pAutoPlayHandle->pGenList,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_smart_callback_add(g_pAutoPlayHandle->pGenList, "realized",
+                                                                  __mp_auto_play_ctrl_realized, NULL);
+
+       g_pAutoPlayHandle->pGroupRadio =
+               elm_radio_add(g_pAutoPlayHandle->pGenList);
+       bool pref;
+       pref = mp_auto_play_config_get_auto_play_status();
+       if (pref) {
+               g_pAutoPlayHandle->nAutoPlaySelect = MP_LIST_AUTO_PLAY_ON;
+       } else {
+               g_pAutoPlayHandle->nAutoPlaySelect = MP_LIST_AUTO_PLAY_OFF;
+       }
+       elm_radio_value_set(g_pAutoPlayHandle->pGroupRadio,
+                                               g_pAutoPlayHandle->nAutoPlaySelect);
+       int nMax_view_list = 0;
+
+       if (!vp_is_auto_play_on())
+               vp_set_auto_play(false);
+       elm_genlist_item_append(g_pAutoPlayHandle->pGenList,
+                                                       g_pAutoPlayHandle->stAutoPlayItc,
+                                                       (void *) MP_LIST_AUTO_PLAY_ON, NULL,
+                                                       ELM_GENLIST_ITEM_NONE,
+                                                       __mp_auto_play_ctrl_select_item_cb, NULL);
+       elm_genlist_item_append(g_pAutoPlayHandle->pGenList,
+                                                       g_pAutoPlayHandle->stAutoPlayItc,
+                                                       (void *) MP_LIST_AUTO_PLAY_OFF, NULL,
+                                                       ELM_GENLIST_ITEM_NONE,
+                                                       __mp_auto_play_ctrl_select_item_cb, NULL);
+       nMax_view_list++;
+
+
+
+
+       g_pAutoPlayHandle->pBox = elm_box_add(g_pAutoPlayHandle->pPopUpHandle);
+
+       mp_widget_ctrl_set_popup_min_size(g_pAutoPlayHandle->pBox, 2,
+                                                                         VIDEOS_POPUP_114);
+       evas_object_size_hint_weight_set(g_pAutoPlayHandle->pBox,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pAutoPlayHandle->pBox,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       elm_box_pack_end(g_pAutoPlayHandle->pBox, g_pAutoPlayHandle->pGenList);
+       elm_object_content_set(g_pAutoPlayHandle->pPopUpHandle,
+                                                  g_pAutoPlayHandle->pBox);
+
+       evas_object_show(g_pAutoPlayHandle->pGenList);
+       evas_object_show(g_pAutoPlayHandle->pPopUpHandle);
+
+       return TRUE;
+}
+
+/**
+ *
+ */
+void mp_auto_play_ctrl_hide(void)
+{
+       VideoLogInfo("");
+
+       mp_auto_play_ctrl_delete_handle();
+}
+
+/**
+ *
+ */
+void mp_auto_play_ctrl_change_language(void)
+{
+       if (!g_pAutoPlayHandle) {
+               VideoLogError("g_pAutoPlayHandle is NULL");
+               return;
+       }
+
+       if (!g_pAutoPlayHandle->pGenList || !g_pAutoPlayHandle->pPopUpHandle) {
+               VideoLogInfo("No existed genlist or popup handle.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       elm_object_domain_translatable_part_text_set(g_pAutoPlayHandle->
+                                                                                                pPopUpHandle,
+                                                                                                "title,text", PACKAGE,
+                                                                                                VIDEOS_MENU_AUTO_PLAY_NEXT_POP_HEADER);
+       elm_genlist_realized_items_update(g_pAutoPlayHandle->pGenList);
+
+}
+
+/**
+ *
+ * @return
+ */
+int mp_auto_play_ctrl_get_type(void)
+{
+       return g_pAutoPlayHandle->nAutoPlaySelect;
+}
diff --git a/src/widget/mp-video-list-option-ctrl.c b/src/widget/mp-video-list-option-ctrl.c
new file mode 100755 (executable)
index 0000000..fecad95
--- /dev/null
@@ -0,0 +1,446 @@
+/*
+ * Copyright (c) 2020 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 <app.h>
+#include <glib.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "video-player.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-video-list-option-ctrl.h"
+#include "mp-util-media-service.h"
+#include "vp-util.h"
+#include "mp-util-widget-ctrl.h"
+
+
+typedef struct _MpVideoListOption {
+       /*obj */
+       Evas_Object *pPopUpHandle;
+       Evas_Object *pGenList;
+       Evas_Object *pBox;
+
+       /*data */
+       MpDownloadType stDownloadType;
+       Elm_Genlist_Item_Class *stListOptionItc;
+       st_RegisteOptionCbFunc st_OptionCbFun;
+       MpListOptionCbFunc pMpListOptionCloseCb;
+       int nListCount;
+       void *pUserData;
+
+} stMpVideoListOption;
+
+static stMpVideoListOption *g_pOptionCtrlHandle = NULL;
+
+
+static void __mp_option_ctrl_realized(void *data, Evas_Object * obj,
+                                                                         void *event_info);
+static void __mp_option_ctrl_cancel_cb(void *pUserData,
+                                                                          Evas_Object * pObject,
+                                                                          void *pEventInfo);
+static void __mp_option_ctrl_mouse_up_cb(void *pUserData, Evas * pEvas,
+                                                                                Evas_Object * pObject,
+                                                                                void *pEventInfo);
+static void __mp_option_ctrl_rotate_cb(void *data, Evas_Object * obj,
+                                                                          void *event_info);
+
+/**
+ *
+ */
+void mp_option_ctrl_delete_handle(void)
+{
+       VideoLogInfo("");
+
+       if (!g_pOptionCtrlHandle) {
+               VideoLogError("");
+               return;
+       }
+
+       if (g_pOptionCtrlHandle->pMpListOptionCloseCb) {
+               g_pOptionCtrlHandle->
+                       pMpListOptionCloseCb(g_pOptionCtrlHandle->pUserData);
+       }
+
+       if (g_pOptionCtrlHandle->pPopUpHandle) {
+               evas_object_event_callback_del(g_pOptionCtrlHandle->pPopUpHandle,
+                                                                          EVAS_CALLBACK_MOUSE_UP,
+                                                                          __mp_option_ctrl_mouse_up_cb);
+               evas_object_smart_callback_del(g_pOptionCtrlHandle->pPopUpHandle,
+                                                                          "block,clicked",
+                                                                          __mp_option_ctrl_cancel_cb);
+               eext_object_event_callback_del(g_pOptionCtrlHandle->pPopUpHandle,
+                                                                          EEXT_CALLBACK_BACK,
+                                                                          __mp_option_ctrl_cancel_cb);
+               evas_object_smart_callback_del((Evas_Object *)
+                                                                          mp_util_get_main_window_handle(),
+                                                                          "rotation,changed",
+                                                                          __mp_option_ctrl_rotate_cb);
+       }
+       MP_DEL_OBJ(g_pOptionCtrlHandle->pGenList);
+       MP_DEL_OBJ(g_pOptionCtrlHandle->pBox);
+       MP_DEL_OBJ(g_pOptionCtrlHandle->pPopUpHandle);
+       MP_DEL_ITC(g_pOptionCtrlHandle->stListOptionItc);
+       MP_FREE_STRING(g_pOptionCtrlHandle);
+
+}
+
+/**
+ *
+ * @param pCallbackFunc
+ */
+static void __mp_option_ctrl_register_cb_func(st_RegisteOptionCbFunc *
+                                                                                         pCallbackFunc)
+{
+
+       if (!pCallbackFunc || !g_pOptionCtrlHandle) {
+               VideoLogError("pCallbackFunc == NULL");
+               return;
+       }
+
+       memset(&g_pOptionCtrlHandle->st_OptionCbFun, 0,
+                  sizeof(st_RegisteOptionCbFunc));
+
+       if (pCallbackFunc->ShareViaItemCb) {
+               g_pOptionCtrlHandle->st_OptionCbFun.ShareViaItemCb =
+                       pCallbackFunc->ShareViaItemCb;
+       }
+
+       if (pCallbackFunc->AddToHomeItemCb) {
+               g_pOptionCtrlHandle->st_OptionCbFun.AddToHomeItemCb =
+                       pCallbackFunc->AddToHomeItemCb;
+       }
+
+       if (pCallbackFunc->DeleteItemCb) {
+               g_pOptionCtrlHandle->st_OptionCbFun.DeleteItemCb =
+                       pCallbackFunc->DeleteItemCb;
+       }
+
+       if (pCallbackFunc->DownloadCb) {
+               g_pOptionCtrlHandle->st_OptionCbFun.DownloadCb =
+                       pCallbackFunc->DownloadCb;
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *mp_option_ctrl_get_lable_of_gen_item_cb(const void
+                                                                                                        *pUserData,
+                                                                                                        Evas_Object *
+                                                                                                        pObject,
+                                                                                                        const char *pPart)
+{
+
+       int nIndex = (int) pUserData;
+
+       if (!strcmp(pPart, "elm.text.main.left")) {
+               switch (nIndex) {
+               case MP_LIST_OPTION_SHARE_VIA_ITEM:
+                       return g_strdup(VIDEOS_CTXPOP_MENU_SHARE);
+               case MP_LIST_OPTION_ADD_HOME_ITEM:
+                       return g_strdup(VIDEOS_CTXPOP_MENU_ADD_TO_HOME);
+               case MP_LIST_OPTION_RENAME_ITEM:
+                       return g_strdup(VIDEOS_CTXPOP_MENU_RENAME);
+               case MP_LIST_OPTION_DETAILS_ITEM:
+                       return g_strdup(VIDEOS_CTXPOP_MENU_DETAILS);
+               case MP_LIST_OPTION_DELETE_ITEM:
+                       return g_strdup(VIDEOS_CTXPOP_MENU_DELETE);
+               case MP_LIST_OPTION_DOWNLOAD_ITEM:
+                       return g_strdup(VIDEOS_CTXPOP_MENU_DOWNLOAD);
+               default:
+                       break;
+               }
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_option_ctrl_realized(void *data, Evas_Object * obj,
+                                                                         void *event_info)
+{
+       if (!event_info || !obj) {
+               VideoLogError("event info is invalid");
+               return;
+       }
+       Elm_Object_Item *pItem = elm_genlist_last_item_get(obj);
+
+       if (pItem) {
+               elm_object_item_signal_emit(pItem, "elm,state,bottomline,hide",
+                                                                       "");
+       }
+}
+
+/**
+ *
+ * @param pNaviHandle
+ * @param title
+ * @param nVideoIndex
+ * @return
+ */
+static Evas_Object *__mp_option_ctrl_init(void *pNaviHandle,
+                                                                                 const char *title,
+                                                                                 int nVideoIndex)
+{
+       VideoLogDebug("title=%s", title);
+       if (!g_pOptionCtrlHandle) {
+               VideoLogError("g_pOptionCtrlHandle == NULL");
+               return NULL;
+       }
+
+       MP_DEL_ITC(g_pOptionCtrlHandle->stListOptionItc);
+       g_pOptionCtrlHandle->stListOptionItc = elm_genlist_item_class_new();
+
+       /*  Set item of Genlist. */
+       g_pOptionCtrlHandle->stListOptionItc->item_style = "1line";     /*"1text/popup"; */
+       g_pOptionCtrlHandle->stListOptionItc->func.text_get =
+               (void *) mp_option_ctrl_get_lable_of_gen_item_cb;
+       g_pOptionCtrlHandle->stListOptionItc->func.content_get = NULL;
+       g_pOptionCtrlHandle->stListOptionItc->func.state_get = NULL;
+       g_pOptionCtrlHandle->stListOptionItc->func.del = NULL;
+
+       /* Create genlist handle */
+       g_pOptionCtrlHandle->pGenList =
+               elm_genlist_add(g_pOptionCtrlHandle->pPopUpHandle);
+       evas_object_size_hint_weight_set(g_pOptionCtrlHandle->pGenList,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pOptionCtrlHandle->pGenList,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_smart_callback_add(g_pOptionCtrlHandle->pGenList,
+                                                                  "realized", __mp_option_ctrl_realized,
+                                                                  NULL);
+
+       g_pOptionCtrlHandle->nListCount = 0;
+
+       if (g_pOptionCtrlHandle->st_OptionCbFun.DeleteItemCb) {
+               g_pOptionCtrlHandle->nListCount++;
+               elm_genlist_item_append(g_pOptionCtrlHandle->pGenList,
+                                                               g_pOptionCtrlHandle->stListOptionItc,
+                                                               (void *) MP_LIST_OPTION_DELETE_ITEM, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               g_pOptionCtrlHandle->
+                                                               st_OptionCbFun.DeleteItemCb,
+                                                               (void *) nVideoIndex);
+       }
+
+       if (g_pOptionCtrlHandle->st_OptionCbFun.ShareViaItemCb) {
+               g_pOptionCtrlHandle->nListCount++;
+               elm_genlist_item_append(g_pOptionCtrlHandle->pGenList,
+                                                               g_pOptionCtrlHandle->stListOptionItc,
+                                                               (void *) MP_LIST_OPTION_SHARE_VIA_ITEM,
+                                                               NULL, ELM_GENLIST_ITEM_NONE,
+                                                               g_pOptionCtrlHandle->
+                                                               st_OptionCbFun.ShareViaItemCb,
+                                                               (void *) nVideoIndex);
+       }
+
+       evas_object_show(g_pOptionCtrlHandle->pGenList);
+
+       g_pOptionCtrlHandle->pBox =
+               elm_box_add(g_pOptionCtrlHandle->pPopUpHandle);
+
+       mp_widget_ctrl_set_popup_min_size(g_pOptionCtrlHandle->pBox,
+                                                                         g_pOptionCtrlHandle->nListCount,
+                                                                         VIDEOS_POPUP_114);
+       evas_object_size_hint_weight_set(g_pOptionCtrlHandle->pBox,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pOptionCtrlHandle->pBox,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       elm_box_pack_end(g_pOptionCtrlHandle->pBox,
+                                        g_pOptionCtrlHandle->pGenList);
+
+       evas_object_show(g_pOptionCtrlHandle->pBox);
+
+       return g_pOptionCtrlHandle->pBox;
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_option_ctrl_cancel_cb(void *pUserData,
+                                                                          Evas_Object * pObject,
+                                                                          void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_option_ctrl_delete_handle();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_option_ctrl_mouse_up_cb(void *pUserData, Evas * pEvas,
+                                                                                Evas_Object * pObject,
+                                                                                void *pEventInfo)
+{
+       Evas_Event_Mouse_Up *pEvent = pEventInfo;
+
+       if (pEvent->button == 3) {
+               mp_option_ctrl_delete_handle();
+       }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_option_ctrl_rotate_cb(void *data, Evas_Object * obj,
+                                                                          void *event_info)
+{
+       if (!g_pOptionCtrlHandle) {
+               VideoLogError("pVideoListSortPopUpHandle IS null");
+               return;
+       }
+       if (g_pOptionCtrlHandle->nListCount < VIDEO_POPUP_MIN_ITEMS) {
+               return;
+       }
+       mp_widget_ctrl_set_popup_min_size(g_pOptionCtrlHandle->pBox,
+                                                                         g_pOptionCtrlHandle->nListCount,
+                                                                         VIDEOS_POPUP_114);
+
+}
+
+/**
+ *
+ * @param pNaviHandle
+ * @param title
+ * @param nVideoIndex
+ * @param pCallbackFunc
+ * @param pCloseFun
+ * @param userData
+ * @param euType
+ * @return
+ */
+bool mp_option_ctrl_show(void *pNaviHandle, const char *title,
+                                                int nVideoIndex,
+                                                st_RegisteOptionCbFunc * pCallbackFunc,
+                                                MpListOptionCbFunc pCloseFun, void *userData,
+                                                MpDownloadType euType)
+{
+       if (!pNaviHandle) {
+               VideoSecureLogError("invalid pNaviHandle");
+               return false;
+       }
+
+       mp_option_ctrl_delete_handle();
+       g_pOptionCtrlHandle =
+               (stMpVideoListOption *) calloc(1, sizeof(stMpVideoListOption));
+       if (!g_pOptionCtrlHandle) {
+               VideoLogError("g_pOptionCtrlHandle is NULL");
+               return FALSE;
+       }
+
+       g_pOptionCtrlHandle->pMpListOptionCloseCb = pCloseFun;
+       __mp_option_ctrl_register_cb_func(pCallbackFunc);
+       g_pOptionCtrlHandle->stDownloadType = euType;
+       g_pOptionCtrlHandle->pUserData = userData;
+
+       g_pOptionCtrlHandle->pPopUpHandle =
+               elm_popup_add((Evas_Object *) pNaviHandle);
+
+       elm_object_style_set(g_pOptionCtrlHandle->pPopUpHandle, "default");
+       if (title) {
+               char *szTitleUtf8 = elm_entry_utf8_to_markup(title);
+               elm_object_part_text_set(g_pOptionCtrlHandle->pPopUpHandle,
+                                                                "title,text", szTitleUtf8);
+               MP_FREE_STRING(szTitleUtf8);
+       }
+       evas_object_size_hint_weight_set(g_pOptionCtrlHandle->pPopUpHandle,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_weight_set(g_pOptionCtrlHandle->pPopUpHandle,
+                                                                        EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       evas_object_event_callback_add(g_pOptionCtrlHandle->pPopUpHandle,
+                                                                  EVAS_CALLBACK_MOUSE_UP,
+                                                                  __mp_option_ctrl_mouse_up_cb, NULL);
+       evas_object_smart_callback_add(g_pOptionCtrlHandle->pPopUpHandle,
+                                                                  "block,clicked",
+                                                                  __mp_option_ctrl_cancel_cb, NULL);
+       eext_object_event_callback_add(g_pOptionCtrlHandle->pPopUpHandle,
+                                                                  EEXT_CALLBACK_BACK,
+                                                                  __mp_option_ctrl_cancel_cb, NULL);
+       evas_object_smart_callback_add((Evas_Object *)
+                                                                  mp_util_get_main_window_handle(),
+                                                                  "rotation,changed",
+                                                                  __mp_option_ctrl_rotate_cb, NULL);
+
+       __mp_option_ctrl_init(pNaviHandle, title, nVideoIndex);
+
+
+       elm_object_content_set(g_pOptionCtrlHandle->pPopUpHandle,
+                                                  g_pOptionCtrlHandle->pBox);
+       evas_object_show(g_pOptionCtrlHandle->pPopUpHandle);
+
+       return TRUE;
+}
+
+/**
+ *
+ */
+void mp_option_ctrl_change_language(void)
+{
+       if (!g_pOptionCtrlHandle) {
+               VideoLogError("g_pOptionCtrlHandle is NULL");
+               return;
+       }
+
+       if (!g_pOptionCtrlHandle->pGenList
+               || !g_pOptionCtrlHandle->pPopUpHandle) {
+               VideoLogError("No existed genlist or popup handle.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       elm_genlist_realized_items_update(g_pOptionCtrlHandle->pGenList);
+
+}
+
+/**
+ *
+ */
+void *mp_option_ctrl_get_handle(void)
+{
+       VideoLogInfo("");
+       if (!g_pOptionCtrlHandle) {
+               VideoLogError("g_pOptionCtrlHandle is NULL");
+               return NULL;
+       }
+       return (void *) g_pOptionCtrlHandle->pPopUpHandle;
+}
diff --git a/src/widget/mp-video-list-sort-ctrl.c b/src/widget/mp-video-list-sort-ctrl.c
new file mode 100755 (executable)
index 0000000..a7e481f
--- /dev/null
@@ -0,0 +1,523 @@
+/*
+ * Copyright (c) 2020 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 <app.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include <app_preference.h>
+
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-video-list-sort-ctrl.h"
+#include "mp-util-widget-ctrl.h"
+#include "vp-util.h"
+
+#define PREF_VP_VIDEOS_SORT_TYPE  "preference/org.tizen.videos/sort_type"
+
+typedef struct _MpVideoListSort {
+       //obj
+       Evas_Object *pPopUpHandle;
+       Evas_Object *pGroupRadio;
+       Evas_Object *pGenList;
+       Evas_Object *pBox;
+
+       //data
+       Elm_Genlist_Item_Class *stListSortItc;
+       ListSortCtrlCbFunc ListSortCtrlUserCbFunc;
+       MpListSortType nCurrListSortType;
+       int nListCount;
+
+} stMpVideoListSort;
+
+stMpVideoListSort *g_pSortCtrlHandle = NULL;
+
+
+static void __mp_sort_ctrl_realized(void *data, Evas_Object * obj,
+                                                                       void *event_info);
+static void __mp_sort_ctrl_rotate_cb(void *data, Evas_Object * obj,
+                                                                        void *event_info);
+static void __mp_sort_ctrl_btn_asc_cb(void *pUserData,
+                                                                         Evas_Object * pObject,
+                                                                         void *pEventInfo);
+static void __mp_sort_ctrl_mouse_up_cb(void *pUserData, Evas * pEvas,
+                                                                          Evas_Object * pObject,
+                                                                          void *pEventInfo);
+static void __mp_sort_ctrl_select_radio_cb(void *pUserData,
+                                                                                  Evas_Object * pObject,
+                                                                                  void *pEventInfo);
+
+////////////////////////////////////////////////////////////
+// Internal function
+////////////////////////////////////////////////////////////
+
+/**
+ *
+ */
+void mp_sort_ctrl_delete_handle(void)
+{
+       VideoLogInfo("");
+
+       if (!g_pSortCtrlHandle) {
+               VideoLogError("");
+               return;
+       }
+       if (g_pSortCtrlHandle->pPopUpHandle) {
+               eext_object_event_callback_del(g_pSortCtrlHandle->pPopUpHandle,
+                                                                          EEXT_CALLBACK_BACK,
+                                                                          __mp_sort_ctrl_btn_asc_cb);
+               evas_object_smart_callback_del(g_pSortCtrlHandle->pPopUpHandle,
+                                                                          "block,clicked",
+                                                                          __mp_sort_ctrl_btn_asc_cb);
+               evas_object_smart_callback_del((Evas_Object *)
+                                                                          mp_util_get_main_window_handle(),
+                                                                          "rotation,changed",
+                                                                          __mp_sort_ctrl_rotate_cb);
+               evas_object_event_callback_del(g_pSortCtrlHandle->pPopUpHandle,
+                                                                          EVAS_CALLBACK_MOUSE_UP,
+                                                                          __mp_sort_ctrl_mouse_up_cb);
+       }
+       MP_DEL_OBJ(g_pSortCtrlHandle->pGroupRadio);
+       MP_DEL_OBJ(g_pSortCtrlHandle->pGenList);
+       MP_DEL_OBJ(g_pSortCtrlHandle->pBox);
+       MP_DEL_OBJ(g_pSortCtrlHandle->pPopUpHandle);
+       MP_DEL_ITC(g_pSortCtrlHandle->stListSortItc);
+       MP_FREE_STRING(g_pSortCtrlHandle);
+}
+
+/**
+ *
+ * @param nListSortType
+ */
+void mp_sort_ctrl_set_sort_state(MpListSortType nListSortType)
+{
+       if (!g_pSortCtrlHandle) {
+               VideoLogError("");
+               return;
+       }
+
+       if (MP_LIST_SORT_BY_NONE >= nListSortType
+               || nListSortType >= MP_LIST_SORT_BY_MAX) {
+               VideoLogWarning("[WARNING] Value of sort type is not matched.");
+               nListSortType = MP_LIST_SORT_BY_RECENTLY_ADDED;
+       }
+
+       g_pSortCtrlHandle->nCurrListSortType = nListSortType;
+
+       int nRet =
+               preference_set_int(PREF_VP_VIDEOS_SORT_TYPE,
+                                                  g_pSortCtrlHandle->nCurrListSortType);
+       if (nRet) {
+               VideoLogWarning("[WARNING] Fail to set value about sort type.");
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *mp_sort_ctrl_get_label_of_genlist_cb(const void *pUserData,
+                                                                                                 Evas_Object * pObject,
+                                                                                                 const char *pPart)
+{
+
+       int nIndex = (int) pUserData;
+
+       if (!strcmp(pPart, "elm.text") || !strcmp(pPart, "elm.text.main.left")) {
+               switch (nIndex) {
+               case MP_LIST_SORT_BY_RECENTLY_ADDED:
+                       return strdup(VIDEOS_SORTBYOPT_OPT_DATE_MOST_RECENT);
+               case MP_LIST_SORT_BY_NAME:
+                       return strdup(VIDEOS_SORTBYOPT_OPT_NAME);
+               }
+       }
+
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *mp_sort_ctrl_get_icon_of_genlist_cb(const void
+                                                                                                               *pUserData,
+                                                                                                               Evas_Object *
+                                                                                                               pObject,
+                                                                                                               const char *pPart)
+{
+       int nIndex = (int) pUserData;
+       //Evas_Object *pLayout = NULL;
+       Evas_Object *pTmpRadio = NULL;
+       if (!g_pSortCtrlHandle) {
+               VideoLogError("");
+               return NULL;
+       }
+
+       if (!strcmp(pPart, "elm.swallow.end") || !strcmp(pPart, "elm.icon.2")) {
+               pTmpRadio = elm_radio_add(pObject);
+
+               elm_radio_state_value_set(pTmpRadio, nIndex);
+               elm_radio_group_add(pTmpRadio, g_pSortCtrlHandle->pGroupRadio);
+
+               if (g_pSortCtrlHandle->nCurrListSortType == nIndex) {
+                       elm_radio_value_set(g_pSortCtrlHandle->pGroupRadio,
+                                                               g_pSortCtrlHandle->nCurrListSortType);
+                       mp_sort_ctrl_set_sort_state(g_pSortCtrlHandle->
+                                                                               nCurrListSortType);
+               }
+               evas_object_smart_callback_add(pTmpRadio, "changed",
+                                                                          __mp_sort_ctrl_select_radio_cb,
+                                                                          (void *) pUserData);
+
+               evas_object_show(pTmpRadio);
+       }
+
+       return pTmpRadio;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_sort_ctrl_btn_asc_cb(void *pUserData,
+                                                                         Evas_Object * pObject,
+                                                                         void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_sort_ctrl_hide();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void mp_sort_ctrl_select_item_cb(void *pUserData,
+                                                                               Evas_Object * pObject,
+                                                                               void *pEventInfo)
+{
+       VideoLogInfo("");
+       if (!g_pSortCtrlHandle) {
+               VideoLogError("");
+               return;
+       }
+
+       if (!pEventInfo) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       int nIndex = 0;
+
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+
+       nIndex = (int) elm_object_item_data_get(pItem);
+       if (nIndex == g_pSortCtrlHandle->nCurrListSortType) {
+               VideoLogInfo("Do nothing");
+               mp_sort_ctrl_hide();
+       } else {
+               g_pSortCtrlHandle->nCurrListSortType = nIndex;
+               elm_radio_value_set(g_pSortCtrlHandle->pGroupRadio,
+                                                       g_pSortCtrlHandle->nCurrListSortType);
+
+               mp_sort_ctrl_set_sort_state(g_pSortCtrlHandle->nCurrListSortType);
+
+               ListSortCtrlCbFunc fFunc =
+                       g_pSortCtrlHandle->ListSortCtrlUserCbFunc;
+               mp_sort_ctrl_hide();
+
+               if (fFunc) {
+                       fFunc();
+               }
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_sort_ctrl_select_radio_cb(void *pUserData,
+                                                                                  Evas_Object * pObject,
+                                                                                  void *pEventInfo)
+{
+       if (!g_pSortCtrlHandle) {
+               VideoLogError("");
+               return;
+       }
+       int nIndex = (int) pUserData;
+
+       g_pSortCtrlHandle->nCurrListSortType = nIndex;
+       mp_sort_ctrl_set_sort_state(g_pSortCtrlHandle->nCurrListSortType);
+
+       ListSortCtrlCbFunc fFunc = g_pSortCtrlHandle->ListSortCtrlUserCbFunc;
+       mp_sort_ctrl_hide();
+
+       if (fFunc) {
+               fFunc();
+       }
+}
+
+static void __mp_sort_ctrl_mouse_up_cb(void *pUserData, Evas * pEvas,
+                                                                          Evas_Object * pObject,
+                                                                          void *pEventInfo)
+{
+       Evas_Event_Mouse_Up *pEvent = pEventInfo;
+
+       if (pEvent->button == 3) {
+               mp_sort_ctrl_hide();
+       }
+}
+
+////////////////////////////////////////////////////////////
+// External function
+////////////////////////////////////////////////////////////
+void mp_sort_ctrl_genlist_change_language(void *data, Evas_Object * obj,
+                                                                                 void *event_info)
+{
+       elm_genlist_realized_items_update(obj);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_sort_ctrl_realized(void *data, Evas_Object * obj,
+                                                                       void *event_info)
+{
+       if (!event_info || !obj) {
+               VideoLogError("event info is invalid");
+               return;
+       }
+       Elm_Object_Item *pItem = elm_genlist_last_item_get(obj);
+
+       if (pItem) {
+               elm_object_item_signal_emit(pItem, "elm,state,bottomline,hide",
+                                                                       "");
+       }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_sort_ctrl_rotate_cb(void *data, Evas_Object * obj,
+                                                                        void *event_info)
+{
+       if (!g_pSortCtrlHandle) {
+               VideoLogError("pVideoListSortPopUpHandle IS null");
+               return;
+       }
+       if (g_pSortCtrlHandle->nListCount < VIDEO_POPUP_MIN_ITEMS) {
+               return;
+       }
+       mp_widget_ctrl_set_popup_min_size(g_pSortCtrlHandle->pBox,
+                                                                         g_pSortCtrlHandle->nListCount,
+                                                                         VIDEOS_POPUP_114);
+
+}
+
+/**
+ *
+ * @param pListSortCtrlCb
+ * @return
+ */
+bool mp_sort_ctrl_show(ListSortCtrlCbFunc pListSortCtrlCb)
+{
+       VideoLogInfo("");
+
+       mp_sort_ctrl_delete_handle();
+       g_pSortCtrlHandle =
+               (stMpVideoListSort *) calloc(1, sizeof(stMpVideoListSort));
+       if (!g_pSortCtrlHandle) {
+               VideoLogError("g_pSortCtrlHandle is NULL");
+               return FALSE;
+       }
+
+       g_pSortCtrlHandle->ListSortCtrlUserCbFunc = pListSortCtrlCb;
+       g_pSortCtrlHandle->nCurrListSortType = mp_sort_ctrl_get_sort_state();
+
+       g_pSortCtrlHandle->pPopUpHandle =
+               elm_popup_add(mp_util_get_main_window_handle());
+       elm_object_style_set(g_pSortCtrlHandle->pPopUpHandle, "theme_bg");
+
+       eext_object_event_callback_add(g_pSortCtrlHandle->pPopUpHandle,
+                                                                  EEXT_CALLBACK_BACK,
+                                                                  __mp_sort_ctrl_btn_asc_cb, NULL);
+       evas_object_smart_callback_add(g_pSortCtrlHandle->pPopUpHandle,
+                                                                  "block,clicked",
+                                                                  __mp_sort_ctrl_btn_asc_cb, NULL);
+       evas_object_smart_callback_add((Evas_Object *)
+                                                                  mp_util_get_main_window_handle(),
+                                                                  "rotation,changed",
+                                                                  __mp_sort_ctrl_rotate_cb, NULL);
+
+       elm_object_domain_translatable_part_text_set(g_pSortCtrlHandle->
+                                                                                                pPopUpHandle,
+                                                                                                "title,text",
+                                                                                                VIDEOS_STRING,
+                                                                                                VIDEOS_SORTBYPOP_HEADER_SORT_BY_IDS);
+       evas_object_size_hint_weight_set(g_pSortCtrlHandle->pPopUpHandle,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       evas_object_event_callback_add(g_pSortCtrlHandle->pPopUpHandle,
+                                                                  EVAS_CALLBACK_MOUSE_UP,
+                                                                  __mp_sort_ctrl_mouse_up_cb, NULL);
+
+       MP_DEL_ITC(g_pSortCtrlHandle->stListSortItc);
+       g_pSortCtrlHandle->stListSortItc = elm_genlist_item_class_new();
+       //  Set item of Genlist.
+       g_pSortCtrlHandle->stListSortItc->item_style = "default";       //"1text.1icon.2/popup";
+       g_pSortCtrlHandle->stListSortItc->func.text_get =
+               (void *) mp_sort_ctrl_get_label_of_genlist_cb;
+       g_pSortCtrlHandle->stListSortItc->func.content_get =
+               (void *) mp_sort_ctrl_get_icon_of_genlist_cb;
+       g_pSortCtrlHandle->stListSortItc->func.state_get = NULL;
+       g_pSortCtrlHandle->stListSortItc->func.del = NULL;
+
+       // Create genlist handle
+       g_pSortCtrlHandle->pGenList =
+               elm_genlist_add(g_pSortCtrlHandle->pPopUpHandle);
+       evas_object_size_hint_weight_set(g_pSortCtrlHandle->pGenList,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pSortCtrlHandle->pGenList,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       evas_object_smart_callback_add(g_pSortCtrlHandle->pGenList,
+                                                                  "language,changed",
+                                                                  mp_sort_ctrl_genlist_change_language,
+                                                                  NULL);
+       evas_object_smart_callback_add(g_pSortCtrlHandle->pGenList, "realized",
+                                                                  __mp_sort_ctrl_realized, NULL);
+
+       g_pSortCtrlHandle->pGroupRadio =
+               elm_radio_add(g_pSortCtrlHandle->pGenList);
+
+       mp_sort_ctrl_get_sort_state();
+
+       int nListCount = 0;
+       elm_genlist_item_append(g_pSortCtrlHandle->pGenList,
+                                                       g_pSortCtrlHandle->stListSortItc,
+                                                       (void *) MP_LIST_SORT_BY_RECENTLY_ADDED, NULL,
+                                                       ELM_GENLIST_ITEM_NONE,
+                                                       mp_sort_ctrl_select_item_cb, NULL);
+       nListCount++;
+       elm_genlist_item_append(g_pSortCtrlHandle->pGenList,
+                                                       g_pSortCtrlHandle->stListSortItc,
+                                                       (void *) MP_LIST_SORT_BY_NAME, NULL,
+                                                       ELM_GENLIST_ITEM_NONE,
+                                                       mp_sort_ctrl_select_item_cb, NULL);
+       nListCount++;
+       g_pSortCtrlHandle->nListCount = nListCount;
+
+       g_pSortCtrlHandle->pBox = elm_box_add(g_pSortCtrlHandle->pPopUpHandle);
+
+       mp_widget_ctrl_set_popup_min_size(g_pSortCtrlHandle->pBox,
+                                                                         g_pSortCtrlHandle->nListCount,
+                                                                         VIDEOS_POPUP_114);
+       evas_object_size_hint_weight_set(g_pSortCtrlHandle->pBox,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pSortCtrlHandle->pBox,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       elm_box_pack_end(g_pSortCtrlHandle->pBox, g_pSortCtrlHandle->pGenList);
+       elm_object_content_set(g_pSortCtrlHandle->pPopUpHandle,
+                                                  g_pSortCtrlHandle->pBox);
+
+       evas_object_show(g_pSortCtrlHandle->pBox);
+       evas_object_show(g_pSortCtrlHandle->pGenList);
+       evas_object_show(g_pSortCtrlHandle->pPopUpHandle);
+
+       return TRUE;
+}
+
+/**
+ *
+ */
+void mp_sort_ctrl_hide(void)
+{
+       VideoLogInfo("");
+
+       mp_sort_ctrl_delete_handle();
+}
+
+/**
+ *
+ */
+void mp_sort_ctrl_change_language(void)
+{
+       VideoLogInfo("");
+       if (!g_pSortCtrlHandle) {
+               VideoLogError("");
+               return;
+       }
+
+       if (!g_pSortCtrlHandle->pGenList || !g_pSortCtrlHandle->pPopUpHandle) {
+               VideoLogError("No existed genlist or popup handle.");
+               return;
+       }
+
+       elm_genlist_realized_items_update(g_pSortCtrlHandle->pGenList);
+}
+
+/**
+ *
+ * @return
+ */
+int mp_sort_ctrl_get_sort_state(void)
+{
+       int nValue = MP_LIST_SORT_BY_NONE;
+
+       if (0 != preference_get_int(PREF_VP_VIDEOS_SORT_TYPE, &nValue)) {
+               VideoLogInfo
+                       ("Setting normal list type because of defending wrong value.:%d",
+                        nValue);
+               mp_sort_ctrl_set_sort_state(MP_LIST_SORT_BY_RECENTLY_ADDED);
+               return MP_LIST_SORT_BY_RECENTLY_ADDED;
+       }
+
+       if (nValue <= MP_LIST_SORT_BY_NONE || nValue >= MP_LIST_SORT_BY_MAX) {
+               mp_sort_ctrl_set_sort_state(MP_LIST_SORT_BY_RECENTLY_ADDED);
+               return MP_LIST_SORT_BY_RECENTLY_ADDED;
+       }
+
+       VideoLogInfo("sortstate start:%d", nValue);
+
+       return (int) nValue;
+}
diff --git a/src/widget/mp-video-list-view-as-ctrl.c b/src/widget/mp-video-list-view-as-ctrl.c
new file mode 100755 (executable)
index 0000000..bf1a4b0
--- /dev/null
@@ -0,0 +1,561 @@
+/*
+ * Copyright (c) 2020 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 <app.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+#include <app_preference.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "video-player.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-footer-toolbar.h"
+#include "mp-video-list-view-as-ctrl.h"
+#include "mp-util-widget-ctrl.h"
+#include "vp-util.h"
+
+#define PREF_MP_VIDEO_VIEW_AS_TYPE_KEY  "preference/org.tizen.videos/view_as_type"
+
+typedef struct _MpVideoViewAs {
+       //obj
+       Evas_Object *pPopUpHandle;
+       Evas_Object *pGroupRadio;
+       Evas_Object *pGenList;
+       Evas_Object *pBox;
+
+       //data
+       Elm_Genlist_Item_Class *stViewAsItc;
+       ListViewAsCtrlCbFunc ListViewAsCtrlUserCbFunc;
+       MpListViewAsType nCurrViewAsType;
+       int nListCount;
+       int nCurrTabType;
+
+} stMpVideoViewAs;
+
+stMpVideoViewAs *g_pViewAsHandle = NULL;
+
+////////////////////////////////////////////////////////////
+// Internal function
+////////////////////////////////////////////////////////////
+static void __mp_view_as_ctrl_rotate_cb(void *data, Evas_Object * obj,
+                                                                               void *event_info);
+static void __mp_view_as_ctrl_mouse_up_cb(void *pUserData, Evas * pEvas,
+                                                                                 Evas_Object * pObject,
+                                                                                 void *pEventInfo);
+static void __mp_view_as_ctrl_cancel_btn_cb(void *pUserData,
+                                                                                       Evas_Object * pObject,
+                                                                                       void *pEventInfo);
+static void __mp_view_as_ctrl_select_item_cb(void *pUserData,
+                                                                                        Evas_Object * pObject,
+                                                                                        void *pEventInfo);
+static void __mp_view_as_ctrl_select_radio_cb(void *pUserData,
+                                                                                         Evas_Object * pObject,
+                                                                                         void *pEventInfo);
+/**
+ *
+ */
+void mp_view_as_ctrl_delete_handle(void)
+{
+       VideoLogInfo("");
+       if (!g_pViewAsHandle) {
+               VideoLogError("-------g_pViewAsHandle is NULL--------");
+               return;
+       }
+       if (g_pViewAsHandle->pPopUpHandle) {
+               eext_object_event_callback_del(g_pViewAsHandle->pPopUpHandle,
+                                                                          EEXT_CALLBACK_BACK,
+                                                                          __mp_view_as_ctrl_cancel_btn_cb);
+               evas_object_event_callback_del(g_pViewAsHandle->pPopUpHandle,
+                                                                          EVAS_CALLBACK_MOUSE_UP,
+                                                                          __mp_view_as_ctrl_mouse_up_cb);
+               evas_object_smart_callback_del(g_pViewAsHandle->pPopUpHandle,
+                                                                          "block,clicked",
+                                                                          __mp_view_as_ctrl_cancel_btn_cb);
+               evas_object_smart_callback_del((Evas_Object *)
+                                                                          mp_util_get_main_window_handle(),
+                                                                          "rotation,changed",
+                                                                          __mp_view_as_ctrl_rotate_cb);
+       }
+       MP_DEL_OBJ(g_pViewAsHandle->pGroupRadio);
+       MP_DEL_OBJ(g_pViewAsHandle->pGenList);
+       MP_DEL_OBJ(g_pViewAsHandle->pBox);
+       MP_DEL_OBJ(g_pViewAsHandle->pPopUpHandle);
+       MP_DEL_ITC(g_pViewAsHandle->stViewAsItc);
+       MP_FREE_STRING(g_pViewAsHandle);
+
+}
+
+/**
+ *
+ * @param nViewAsType
+ */
+void mp_view_as_ctrl_set_type(MpListViewAsType nViewAsType)
+{
+       if (!g_pViewAsHandle) {
+               VideoLogError("");
+               return;
+       }
+
+       if (MP_LIST_VIEW_AS_NONE >= nViewAsType
+               || nViewAsType >= MP_LIST_VIEW_AS_MAX) {
+               VideoLogWarning("[WARNING] Value of View as type is not matched.");
+               nViewAsType = MP_LIST_VIEW_AS_THUMBNAIL_LIST;
+       }
+
+       g_pViewAsHandle->nCurrViewAsType = nViewAsType;
+
+       int nRet =
+               preference_set_int(PREF_MP_VIDEO_VIEW_AS_TYPE_KEY,
+                                                  g_pViewAsHandle->nCurrViewAsType);
+       if (nRet) {
+               VideoLogWarning
+                       ("[WARNING] Fail to set pref value about list view as type.");
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static char *__mp_view_as_ctrl_get_label_of_genlsit_item_cb(const void
+                                                                                                                       *pUserData,
+                                                                                                                       Evas_Object *
+                                                                                                                       pObject,
+                                                                                                                       const char
+                                                                                                                       *pPart)
+{
+
+       int nIndex = (int) pUserData;
+
+       if (!strcmp(pPart, "elm.text") || !strcmp(pPart, "elm.text.main.left")) {
+               switch (nIndex) {
+#ifdef VS_FEATURE_LIST_VIEW
+               case MP_LIST_VIEW_AS_NORMAL_LIST:
+                       return strdup(VIDEOS_VIEWASOPT_OPT_LIST);
+#endif
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+               case MP_LIST_VIEW_AS_THUMBNAIL_LIST:
+                       return strdup(VIDEOS_VIEWASOPT_OPT_THUMBNAIL);
+#endif
+               case MP_LIST_VIEW_AS_FOLDER_LIST:
+                       return strdup(VIDEOS_VIEWASOPT_OPT_FOLDER);
+               }
+       }
+       return NULL;
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pPart
+ * @return
+ */
+static Evas_Object *__mp_view_as_ctrl_get_icon_of_genlsit_item_cb(const
+                                                                                                                                 void
+                                                                                                                                 *pUserData,
+                                                                                                                                 Evas_Object
+                                                                                                                                 *
+                                                                                                                                 pObject,
+                                                                                                                                 const
+                                                                                                                                 char
+                                                                                                                                 *pPart)
+{
+
+       if (!g_pViewAsHandle) {
+               VideoLogError("");
+               return NULL;
+       }
+
+       int nIndex = (int) pUserData;
+       Evas_Object *pTmpRadio = NULL;
+
+       if (!strcmp(pPart, "elm.swallow.end") || !strcmp(pPart, "elm.icon.2")) {
+               pTmpRadio = elm_radio_add(pObject);
+               elm_radio_state_value_set(pTmpRadio, nIndex);
+               elm_radio_group_add(pTmpRadio, g_pViewAsHandle->pGroupRadio);
+
+               if (g_pViewAsHandle->nCurrViewAsType == nIndex) {
+                       elm_radio_value_set(g_pViewAsHandle->pGroupRadio,
+                                                               g_pViewAsHandle->nCurrViewAsType);
+                       mp_view_as_ctrl_set_type(g_pViewAsHandle->nCurrViewAsType);
+               }
+
+               evas_object_smart_callback_add(pTmpRadio, "changed",
+                                                                          __mp_view_as_ctrl_select_radio_cb,
+                                                                          (void *) pUserData);
+
+               evas_object_show(pTmpRadio);
+
+       }
+       return pTmpRadio;
+
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_view_as_ctrl_cancel_btn_cb(void *pUserData,
+                                                                                       Evas_Object * pObject,
+                                                                                       void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_view_as_ctrl_hide();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_view_as_ctrl_select_item_cb(void *pUserData,
+                                                                                        Evas_Object * pObject,
+                                                                                        void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       if (!g_pViewAsHandle) {
+               VideoLogError("g_pViewAsHandle is ?NULL");
+               return;
+       }
+
+       if (!pEventInfo) {
+               VideoLogError("pEventInfo is NULL");
+               return;
+       }
+
+       int nIndex = 0;
+       Elm_Object_Item *pItem = (Elm_Object_Item *) pEventInfo;
+       Elm_Object_Item *pSelectedItem =
+               elm_genlist_selected_item_get(pObject);
+       if (pSelectedItem) {
+               elm_genlist_item_selected_set(pSelectedItem, EINA_FALSE);
+       }
+
+       nIndex = (int) elm_object_item_data_get(pItem);
+       if (nIndex == g_pViewAsHandle->nCurrViewAsType) {
+               VideoLogInfo("Current state");
+               mp_view_as_ctrl_hide();
+       } else {
+               g_pViewAsHandle->nCurrViewAsType = nIndex;
+               elm_radio_value_set(g_pViewAsHandle->pGroupRadio,
+                                                       g_pViewAsHandle->nCurrViewAsType);
+
+               mp_view_as_ctrl_set_type(g_pViewAsHandle->nCurrViewAsType);
+
+               ListViewAsCtrlCbFunc fFunc =
+                       g_pViewAsHandle->ListViewAsCtrlUserCbFunc;
+               mp_view_as_ctrl_hide();
+
+               if (fFunc) {
+                       fFunc();
+               }
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_view_as_ctrl_select_radio_cb(void *pUserData,
+                                                                                         Evas_Object * pObject,
+                                                                                         void *pEventInfo)
+{
+
+       if (!g_pViewAsHandle) {
+               VideoLogError("");
+               return;
+       }
+
+       int nIndex = (int) pUserData;
+
+       g_pViewAsHandle->nCurrViewAsType = nIndex;
+       mp_view_as_ctrl_set_type(g_pViewAsHandle->nCurrViewAsType);
+
+       ListViewAsCtrlCbFunc fFunc = g_pViewAsHandle->ListViewAsCtrlUserCbFunc;
+       mp_view_as_ctrl_hide();
+
+       if (fFunc) {
+               fFunc();
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pEvas
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_view_as_ctrl_mouse_up_cb(void *pUserData, Evas * pEvas,
+                                                                                 Evas_Object * pObject,
+                                                                                 void *pEventInfo)
+{
+       Evas_Event_Mouse_Up *pEvent = pEventInfo;
+
+       if (pEvent->button == 3) {
+               mp_view_as_ctrl_hide();
+       }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_view_as_ctrl_realized(void *data, Evas_Object * obj,
+                                                                          void *event_info)
+{
+       if (!event_info || !obj) {
+               VideoLogError("event info is invalid");
+               return;
+       }
+       Elm_Object_Item *pItem = elm_genlist_last_item_get(obj);
+
+       if (pItem) {
+               elm_object_item_signal_emit(pItem, "elm,state,bottomline,hide",
+                                                                       "");
+       }
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_view_as_ctrl_rotate_cb(void *data, Evas_Object * obj,
+                                                                               void *event_info)
+{
+       if (!g_pViewAsHandle) {
+               VideoLogError("pVideoListSortPopUpHandle IS null");
+               return;
+       }
+       if (g_pViewAsHandle->nListCount < VIDEO_POPUP_MIN_ITEMS) {
+               return;
+       }
+       mp_widget_ctrl_set_popup_min_size(g_pViewAsHandle->pBox,
+                                                                         g_pViewAsHandle->nListCount,
+                                                                         VIDEOS_POPUP_114);
+
+}
+
+////////////////////////////////////////////////////////////
+// External function
+////////////////////////////////////////////////////////////
+/**
+ *
+ * @param tabType
+ * @param pListViewAsCtrlCb
+ * @return
+ */
+bool mp_view_as_ctrl_show(int tabType,
+                                                 ListViewAsCtrlCbFunc pListViewAsCtrlCb)
+{
+       VideoLogInfo("");
+
+       if (pListViewAsCtrlCb == NULL) {
+               VideoLogError("No have pListViewAsCtrlCb handle.");
+               return FALSE;
+       }
+
+       mp_view_as_ctrl_delete_handle();
+       g_pViewAsHandle =
+               (stMpVideoViewAs *) calloc(1, sizeof(stMpVideoViewAs));
+       if (!g_pViewAsHandle) {
+               VideoLogError("g_pViewAsHandle is NULL");
+               return FALSE;
+       }
+
+       g_pViewAsHandle->ListViewAsCtrlUserCbFunc = pListViewAsCtrlCb;
+       g_pViewAsHandle->nCurrTabType = tabType;
+       g_pViewAsHandle->nCurrViewAsType = mp_view_as_ctrl_get_type();
+
+       g_pViewAsHandle->pPopUpHandle =
+               elm_popup_add(mp_util_get_main_window_handle());
+       elm_object_style_set(g_pViewAsHandle->pPopUpHandle, "theme_bg");
+
+       elm_object_domain_translatable_part_text_set(g_pViewAsHandle->
+                                                                                                pPopUpHandle,
+                                                                                                "title,text", PACKAGE,
+                                                                                                VIDEOS_VIEWASPOP_HEADER_VIEW_AS);
+       evas_object_size_hint_weight_set(g_pViewAsHandle->pPopUpHandle,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       eext_object_event_callback_add(g_pViewAsHandle->pPopUpHandle,
+                                                                  EEXT_CALLBACK_BACK,
+                                                                  __mp_view_as_ctrl_cancel_btn_cb, NULL);
+       evas_object_event_callback_add(g_pViewAsHandle->pPopUpHandle,
+                                                                  EVAS_CALLBACK_MOUSE_UP,
+                                                                  __mp_view_as_ctrl_mouse_up_cb, NULL);
+       evas_object_smart_callback_add(g_pViewAsHandle->pPopUpHandle,
+                                                                  "block,clicked",
+                                                                  __mp_view_as_ctrl_cancel_btn_cb, NULL);
+       evas_object_smart_callback_add((Evas_Object *)
+                                                                  mp_util_get_main_window_handle(),
+                                                                  "rotation,changed",
+                                                                  __mp_view_as_ctrl_rotate_cb, NULL);
+
+       //  Set item of Genlist.
+       MP_DEL_ITC(g_pViewAsHandle->stViewAsItc);
+       g_pViewAsHandle->stViewAsItc = elm_genlist_item_class_new();
+       g_pViewAsHandle->stViewAsItc->item_style = "default";   //"1text.1icon.2/popup";
+       g_pViewAsHandle->stViewAsItc->func.text_get =
+               (void *) __mp_view_as_ctrl_get_label_of_genlsit_item_cb;
+       g_pViewAsHandle->stViewAsItc->func.content_get =
+               (void *) __mp_view_as_ctrl_get_icon_of_genlsit_item_cb;
+       g_pViewAsHandle->stViewAsItc->func.state_get = NULL;
+       g_pViewAsHandle->stViewAsItc->func.del = NULL;
+
+       // Create genlist handle
+       g_pViewAsHandle->pGenList =
+               elm_genlist_add(g_pViewAsHandle->pPopUpHandle);
+       evas_object_size_hint_weight_set(g_pViewAsHandle->pGenList,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pViewAsHandle->pGenList,
+                                                                       EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_smart_callback_add(g_pViewAsHandle->pGenList, "realized",
+                                                                  __mp_view_as_ctrl_realized, NULL);
+
+       g_pViewAsHandle->pGroupRadio =
+               elm_radio_add(g_pViewAsHandle->pGenList);
+
+       int nMax_view_list = 0;
+#ifdef VS_FEATURE_LIST_VIEW
+       elm_genlist_item_append(g_pViewAsHandle->pGenList,
+                                                       g_pViewAsHandle->stViewAsItc,
+                                                       (void *) MP_LIST_VIEW_AS_NORMAL_LIST, NULL,
+                                                       ELM_GENLIST_ITEM_NONE,
+                                                       __mp_view_as_ctrl_select_item_cb, NULL);
+       nMax_view_list++;
+#endif
+#ifdef VS_FEATURE_THUMBNAIL_VIEW
+       elm_genlist_item_append(g_pViewAsHandle->pGenList,
+                                                       g_pViewAsHandle->stViewAsItc,
+                                                       (void *) MP_LIST_VIEW_AS_THUMBNAIL_LIST, NULL,
+                                                       ELM_GENLIST_ITEM_NONE,
+                                                       __mp_view_as_ctrl_select_item_cb, NULL);
+       nMax_view_list++;
+#endif
+#ifdef ENABLE_STORE_VIEWAS
+       if (FOOTER_TAB_TYPE_PERSONAL == g_pViewAsHandle->nCurrTabType) {
+               elm_genlist_item_append(g_pViewAsHandle->pGenList,
+                                                               g_pViewAsHandle->stViewAsItc,
+                                                               (void *) MP_LIST_VIEW_AS_FOLDER_LIST, NULL,
+                                                               ELM_GENLIST_ITEM_NONE,
+                                                               __mp_view_as_ctrl_select_item_cb, NULL);
+               nMax_view_list++;
+       }
+#else
+       elm_genlist_item_append(g_pViewAsHandle->pGenList,
+                                                       g_pViewAsHandle->stViewAsItc,
+                                                       (void *) MP_LIST_VIEW_AS_FOLDER_LIST, NULL,
+                                                       ELM_GENLIST_ITEM_NONE,
+                                                       __mp_view_as_ctrl_select_item_cb, NULL);
+       nMax_view_list++;
+#endif
+
+       g_pViewAsHandle->nListCount = nMax_view_list;
+
+       g_pViewAsHandle->pBox = elm_box_add(g_pViewAsHandle->pPopUpHandle);
+
+       mp_widget_ctrl_set_popup_min_size(g_pViewAsHandle->pBox,
+                                                                         g_pViewAsHandle->nListCount,
+                                                                         VIDEOS_POPUP_114);
+       evas_object_size_hint_weight_set(g_pViewAsHandle->pBox,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(g_pViewAsHandle->pBox, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+
+       elm_box_pack_end(g_pViewAsHandle->pBox, g_pViewAsHandle->pGenList);
+       elm_object_content_set(g_pViewAsHandle->pPopUpHandle,
+                                                  g_pViewAsHandle->pBox);
+
+       evas_object_show(g_pViewAsHandle->pGenList);
+       evas_object_show(g_pViewAsHandle->pPopUpHandle);
+
+       return TRUE;
+}
+
+/**
+ *
+ */
+void mp_view_as_ctrl_hide(void)
+{
+       VideoLogInfo("");
+
+       mp_view_as_ctrl_delete_handle();
+}
+
+/**
+ *
+ */
+void mp_view_as_ctrl_change_language(void)
+{
+       if (!g_pViewAsHandle) {
+               VideoLogError("g_pViewAsHandle is NULL");
+               return;
+       }
+
+       if (!g_pViewAsHandle->pGenList || !g_pViewAsHandle->pPopUpHandle) {
+               VideoLogInfo("No existed genlist or popup handle.");
+               return;
+       }
+
+       VideoLogInfo("");
+
+       elm_object_domain_translatable_part_text_set(g_pViewAsHandle->
+                                                                                                pPopUpHandle,
+                                                                                                "title,text", PACKAGE,
+                                                                                                VIDEOS_VIEWASPOP_HEADER_VIEW_AS);
+       elm_genlist_realized_items_update(g_pViewAsHandle->pGenList);
+
+}
+
+/**
+ *
+ * @return
+ */
+int mp_view_as_ctrl_get_type(void)
+{
+       int nValue = MP_LIST_VIEW_AS_NONE;
+
+       if (preference_get_int(PREF_MP_VIDEO_VIEW_AS_TYPE_KEY, &nValue) != 0) {
+               VideoLogInfo
+                       ("Setting normal list type because of defending wrong value.");
+               mp_view_as_ctrl_set_type(MP_LIST_VIEW_AS_THUMBNAIL_LIST);
+               return MP_LIST_VIEW_AS_THUMBNAIL_LIST;
+       }
+
+       if (nValue <= MP_LIST_VIEW_AS_NONE || nValue >= MP_LIST_VIEW_AS_MAX) {
+               mp_view_as_ctrl_set_type(MP_LIST_VIEW_AS_THUMBNAIL_LIST);
+               return MP_LIST_VIEW_AS_THUMBNAIL_LIST;
+       }
+       return nValue;
+}
diff --git a/src/widget/mp-video-nocontent-layout.c b/src/widget/mp-video-nocontent-layout.c
new file mode 100755 (executable)
index 0000000..2d7312c
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 2020 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 <Elementary.h>
+
+#include "mp-video-nocontent-layout.h"
+#include "mp-video-log.h"
+#include "mp-video-value-define.h"
+
+/**
+ *
+ * @param pObject
+ * @param ID
+ * @param pPart
+ */
+void
+mp_object_part_translate_set(Evas_Object * pObject, const char *ID,
+                                                        const char *pPart)
+{
+       if (!pObject || !ID || !pPart) {
+               VideoLogError("pObject || ID || pPart == NULL!!!");
+               return;
+       }
+
+       const char *domain;
+       domain = NULL;
+       elm_object_domain_translatable_part_text_set(pObject, pPart, domain,
+                                                                                                ID);
+}
+
+/**
+ *
+ * @param pParent
+ * @param pText
+ * @param pHelpText
+ * @return
+ */
+Evas_Object *mp_create_nocontent_layout(const Evas_Object * pParent,
+                                                                               const char *pText,
+                                                                               const char *pHelpText)
+{
+       Evas_Object *pLayout = NULL;
+
+       if (pParent == NULL) {
+               VideoLogError("pParent == NULL!!!");
+               VideoLogAssert(0);
+               return NULL;
+       }
+
+       if (pText == NULL) {
+               VideoLogError("pTextIds == NULL!!!");
+               VideoLogAssert(0);
+               return NULL;
+       }
+
+       VideoSecureLogInfo("pText : [%s], pHelpText : [%s]", pText, pHelpText);
+
+       pLayout = elm_layout_add((Evas_Object *) pParent);
+       elm_layout_theme_set(pLayout, "layout", "nocontents", "text");
+
+       evas_object_size_hint_weight_set(pLayout, EVAS_HINT_EXPAND,
+                                                                        EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pLayout, EVAS_HINT_FILL,
+                                                                       EVAS_HINT_FILL);
+
+       elm_object_part_text_set(pLayout, "elm.text", pText);
+
+       if (pHelpText != NULL) {
+               mp_object_part_translate_set(pLayout, pHelpText, "elm.help.text");
+       }
+       elm_layout_signal_emit(pLayout, "text,disabled", "");
+       elm_layout_signal_emit(pLayout, "align.center", "elm");
+
+       return pLayout;
+}
diff --git a/src/widget/mp-video-rename-ctrl.c b/src/widget/mp-video-rename-ctrl.c
new file mode 100755 (executable)
index 0000000..7ec20ef
--- /dev/null
@@ -0,0 +1,847 @@
+/*
+ * Copyright (c) 2020 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 <app.h>
+#include <glib.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "video-player.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-video-rename-ctrl.h"
+#include "mp-util-media-service.h"
+#include "mp-util-widget-ctrl.h"
+#include "mp-video-info-ctrl.h"
+#include "vp-util.h"
+#include "vp-file-util.h"
+#include "mp-util-preference.h"
+#include "mp-util-config.h"
+#include "mp-video-list-view-select.h"
+
+
+typedef struct _VideoRenamePopup {
+       //obj
+       void *pNaviFrameHandle;
+       Evas_Object *pBaseLayout;
+       Evas_Object *pGenlist;
+       Evas_Object *pPopUpHandle;
+       Evas_Object *pPopupCancelBtn;
+       Evas_Object *pPopupOkBtn;
+       Evas_Object *pEntry;
+       Evas_Object *pEntryClearBtn;
+       Evas_Object *pEntryLayout;
+
+       //data
+       mpRenameCtrlCbFunc RenameCtrlUserCbFunc;
+       char *szSaveFileName;
+       char *szOldName;
+       char *szTempName;
+       int nVideoIndex;
+       bool bPersonalType;
+       bool bSetToEnd;
+       Ecore_Idler *pSetLineEndIdler;
+} stRenamePopup;
+
+
+stRenamePopup *g_pRenameHandle = NULL;
+
+static bool __mp_rename_ctrl_check_valid_text(const char *text, int *nLen);
+static bool __mp_rename_ctrl_check_valid_all_space(const char *text);
+
+////////////////////////////////////////////////////////////
+// Callback function
+////////////////////////////////////////////////////////////
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_rename_ctrl_cancel_btn_cb(void *pUserData,
+                                                                                  Evas_Object * pObject,
+                                                                                  void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_rename_ctrl_delete_handle();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param event_info
+ */
+static void __mp_rename_ctrl_timeout_cb(void *pUserData,
+                                                                               Evas_Object * pObject,
+                                                                               void *event_info)
+{
+       evas_object_del(pObject);
+
+       elm_entry_cursor_end_set(g_pRenameHandle->pEntry);
+       elm_object_focus_set(g_pRenameHandle->pEntry, EINA_TRUE);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_rename_ctrl_ok_btn_cb(void *pUserData,
+                                                                          Evas_Object * pObject,
+                                                                          void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       Evas_Object *en = (Evas_Object *) pUserData;
+       if (!en || !g_pRenameHandle) {
+               VideoLogError("g_pRenameHandle is NULL");
+               return;
+       }
+
+       int nDstLen = 0;
+       if (!__mp_rename_ctrl_check_valid_text
+               (g_pRenameHandle->szSaveFileName, &nDstLen)) {
+               mp_util_ticker_toast_with_timeout_cb_popup
+                       (VIDEOS_NOTIPOP_MSG_INVALID_CHARACTERS,
+                        __mp_rename_ctrl_timeout_cb);
+               return;
+       }
+
+       char *szFilePath =
+               mp_util_svc_get_video_url(g_pRenameHandle->nVideoIndex);
+       if (!szFilePath) {
+               VideoLogError("szFilePath is NULL.");
+               mp_rename_ctrl_delete_handle();
+               return;
+       }
+
+       char *szFileExt = mp_info_ctrl_get_file_extension(szFilePath);
+       if (!szFileExt) {
+               VideoLogError("szFileExt is NULL.");
+               MP_FREE_STRING(szFilePath);
+               mp_rename_ctrl_delete_handle();
+               return;
+       }
+
+       char *szFileName = strrchr(szFilePath, '/');
+       if (!szFileName) {
+               VideoLogError("szFileName is NULL.");
+               MP_FREE_STRING(szFilePath);
+               MP_FREE_STRING(szFileExt);
+               mp_rename_ctrl_delete_handle();
+               return;
+       }
+
+       char *szLocation = NULL;
+       szLocation =
+               g_strndup(szFilePath, strlen(szFilePath) - strlen(szFileName));
+
+       if (!szLocation) {
+               VideoLogError("szLocation is NULL.");
+               MP_FREE_STRING(szFilePath);
+               MP_FREE_STRING(szFileExt);
+               mp_rename_ctrl_delete_handle();
+               return;
+       }
+
+       char *szNewFile =
+               g_strdup_printf("%s/%s.%s", szLocation,
+                                               g_pRenameHandle->szSaveFileName, szFileExt);
+
+       if (!szNewFile || vp_file_exists(szNewFile)) {
+               VideoLogInfo("szNewFile is %s.", szNewFile);
+               MP_FREE_STRING(szFilePath);
+               MP_FREE_STRING(szFileExt);
+               MP_FREE_STRING(szLocation);
+
+               mp_util_ticker_toast_with_timeout_cb_popup
+                       (VIDEOS_NOTIPOP_MSG_ALREADY_EXISTS,
+                        __mp_rename_ctrl_timeout_cb);
+
+               return;
+       }
+
+       if (strcmp(szNewFile, szFilePath) != 0) {
+               VideoLogInfo("Correct new name style");
+               char *szNewPath = NULL;
+               int ret =
+                       mp_util_rename_file((const char *) szFilePath,
+                                                               (const char *) szNewFile, &szNewPath);
+
+               if (!szNewPath) {
+                       VideoLogError("szNewPath is NULL.");
+                       MP_FREE_STRING(szFilePath);
+                       MP_FREE_STRING(szFileExt);
+                       MP_FREE_STRING(szLocation);
+                       MP_FREE_STRING(szNewFile);
+                       mp_rename_ctrl_delete_handle();
+                       return;
+               }
+
+               if (ret != 0) {
+                       VideoLogError("mp_util_rename_file failed");
+               } else {
+                       mp_util_svc_move_to_db(g_pRenameHandle->nVideoIndex,
+                                                                  szNewPath);
+               }
+
+               char *szMediaUrl = mp_util_config_get_preview();
+               if (szMediaUrl) {
+                       if (!strcmp(szFilePath, szMediaUrl)) {
+                               mp_util_config_set_preview(szNewFile);
+                       }
+               }
+
+               MP_FREE_STRING(szFilePath);
+               MP_FREE_STRING(szFileExt);
+               MP_FREE_STRING(szLocation);
+               MP_FREE_STRING(szNewPath);
+
+               if (g_pRenameHandle->RenameCtrlUserCbFunc) {
+                       g_pRenameHandle->RenameCtrlUserCbFunc();
+               }
+       }
+
+       MP_FREE_STRING(szFileExt);
+       MP_FREE_STRING(szNewFile);
+
+       mp_rename_ctrl_delete_handle();
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_rename_ctrl_entry_max_len_cb(void *pUserData,
+                                                                                         Evas_Object * pObject,
+                                                                                         void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_util_ticker_toast_popup(VIDEOS_NOTIPOP_MSG_MAX_NUM_OF_CHARACTERS,
+                                                          false, false);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_rename_ctrl_entry_activate_cb(void *pUserData,
+                                                                                          Evas_Object * pObject,
+                                                                                          void *pEventInfo)
+{
+       if (!g_pRenameHandle) {
+               VideoLogError("g_pRenameHandle is NULL");
+               return;
+       }
+
+       if (!pObject) {
+               VideoLogError("pObject is NULL");
+               return;
+       }
+
+       char *entry_data = (char *) elm_entry_entry_get(pObject);
+       char *szFileName = elm_entry_markup_to_utf8(entry_data);
+
+       if (!szFileName) {
+               VideoLogError("failed to get text");
+               return;
+       }
+       VideoLogInfo("title is %s", szFileName);
+
+       MP_FREE_STRING(g_pRenameHandle->szSaveFileName);
+       if (!strlen(szFileName)) {
+               VideoLogWarning("title is empty");
+       } else {
+               g_pRenameHandle->szSaveFileName = g_strdup(szFileName);
+       }
+
+       MP_FREE_STRING(szFileName);
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static Eina_Bool __mp_rename_ctrl_entry_set_line_end(void *pUserData)
+{
+       if (!g_pRenameHandle) {
+               VideoLogError("g_pRenameHandle is NULL");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       if (pUserData == NULL) {
+               VideoLogError("pUserData is NULL");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       Evas_Object *pObj = pUserData;
+
+       g_pRenameHandle->pSetLineEndIdler = NULL;
+       g_pRenameHandle->bSetToEnd = FALSE;
+
+       elm_entry_cursor_line_end_set(pObj);
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param emission
+ * @param source
+ */
+static void __mp_rename_ctrl_entry_clear_cb(void *data, Evas_Object * obj,
+                                                                                       const char *emission,
+                                                                                       const char *source)
+{
+       if (!g_pRenameHandle) {
+               VideoLogError("g_pRenameHandle is NULL");
+               return;
+       }
+
+       Evas_Object *en = (Evas_Object *) data;
+       elm_entry_entry_set(en, "");
+       MP_FREE_STRING(g_pRenameHandle->szTempName);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __mp_rename_ctrl_entry_changed_cb(void *pUserData,
+                                                                                         Evas_Object * pObj,
+                                                                                         void *pEvent)
+{
+       if (!g_pRenameHandle) {
+               VideoLogError("g_pRenameHandle is NULL");
+               return;
+       }
+
+       if (!pObj) {
+               VideoLogError("pObj is NULL");
+               return;
+       }
+       VideoLogInfo("");
+
+       Evas_Object *en = pObj;
+
+       char *entry_data = (char *) elm_entry_entry_get(en);
+       char *szFileName = elm_entry_markup_to_utf8(entry_data);
+       int nDstLen = 0;
+       bool isEmpty = elm_entry_is_empty(en);
+
+       if (!szFileName) {
+               VideoLogError("failed to get text");
+               return;
+       }
+
+       if (isEmpty) {
+               VideoLogInfo("Entry is empty");
+               elm_object_part_content_unset(g_pRenameHandle->pEntryLayout,
+                                                                         "elm.swallow.end");
+               evas_object_hide(g_pRenameHandle->pEntryClearBtn);
+       } else {
+               elm_object_part_content_set(g_pRenameHandle->pEntryLayout,
+                                                                       "elm.swallow.end",
+                                                                       g_pRenameHandle->pEntryClearBtn);
+               evas_object_show(g_pRenameHandle->pEntryClearBtn);
+       }
+
+       MP_FREE_STRING(g_pRenameHandle->szSaveFileName);
+       if (isEmpty || !__mp_rename_ctrl_check_valid_all_space(szFileName)) {
+               VideoLogWarning("Title is empty or title consists of only spaces");
+               if (g_pRenameHandle->pPopupOkBtn) {
+                       elm_object_disabled_set(g_pRenameHandle->pPopupOkBtn,
+                                                                       EINA_TRUE);
+               }
+       } else if (!__mp_rename_ctrl_check_valid_text(szFileName, &nDstLen)) {
+               VideoLogWarning("New file name is invalid.");
+               if (!g_strcmp0(g_pRenameHandle->szOldName, szFileName)) {
+                       elm_object_disabled_set(g_pRenameHandle->pPopupOkBtn,
+                                                                       EINA_TRUE);
+                       VideoLogInfo("it is the old name");
+               } else {
+                       int position = elm_entry_cursor_pos_get(en);
+                       elm_entry_entry_set(en,
+                                                               elm_entry_utf8_to_markup(g_pRenameHandle->
+                                                                                                                szTempName));
+                       elm_entry_cursor_begin_set(en);
+                       elm_entry_cursor_pos_set(en, position - 1);
+
+                       mp_util_status_bar_noti_popup_show
+                               (VIDEOS_NOTIPOP_MSG_INVALID_CHARACTERS);
+                       MP_FREE_STRING(szFileName);
+                       return;
+               }
+       } else {
+               g_pRenameHandle->szSaveFileName = g_strdup(szFileName);
+               if (!g_strcmp0(g_pRenameHandle->szOldName, szFileName)) {
+                       elm_object_disabled_set(g_pRenameHandle->pPopupOkBtn,
+                                                                       EINA_TRUE);
+                       VideoLogInfo("it is the old name");
+                       /*elm_entry_select_all(en); */
+                       elm_entry_cursor_end_set(en);
+               } else {
+                       elm_object_disabled_set(g_pRenameHandle->pPopupOkBtn,
+                                                                       EINA_FALSE);
+               }
+       }
+       MP_FREE_STRING(g_pRenameHandle->szTempName);
+       g_pRenameHandle->szTempName = strdup(szFileName);
+       if (g_pRenameHandle->bSetToEnd) {
+               MP_DEL_IDLER(g_pRenameHandle->pSetLineEndIdler);
+               g_pRenameHandle->pSetLineEndIdler =
+                       ecore_idler_add(__mp_rename_ctrl_entry_set_line_end, pObj);
+       }
+       MP_FREE_STRING(szFileName);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __mp_rename_ctrl_entry_clicked_cb(void *pUserData,
+                                                                                         Evas_Object * pObj,
+                                                                                         void *pEvent)
+{
+       if (!g_pRenameHandle) {
+               VideoLogError("g_pRenameHandle is NULL");
+               return;
+       }
+
+       Evas_Object *en = (Evas_Object *) pObj;
+       elm_entry_select_none(en);
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObj
+ * @param pEvent
+ */
+static void __mp_rename_ctrl_entry_long_pressed_cb(void *pUserData,
+                                                                                                  Evas_Object * pObj,
+                                                                                                  void *pEvent)
+{
+       if (!g_pRenameHandle) {
+               VideoLogError("g_pRenameHandle is NULL");
+               return;
+       }
+
+       Evas_Object *en = (Evas_Object *) pObj;
+       evas_object_smart_callback_del(en, "clicked",
+                                                                  (Evas_Smart_Cb)
+                                                                  __mp_rename_ctrl_entry_clicked_cb);
+}
+
+/**
+ *
+ * @param data
+ * @param e
+ * @param pObj
+ * @param event_pEvent
+ */
+static void __mp_entry_show_cb(void *data, Evas * e, Evas_Object * pObj,
+                                                          void *event_pEvent)
+{
+       elm_object_focus_set(pObj, EINA_TRUE);
+}
+
+////////////////////////////////////////////////////////////
+// Internal function
+////////////////////////////////////////////////////////////
+/**
+ *
+ * @param text
+ * @param nLen
+ * @return
+ */
+static bool __mp_rename_ctrl_check_valid_text(const char *text, int *nLen)
+{
+       if (!text) {
+               return FALSE;
+       }
+
+       char pattern[] = { '/', '\\', ':', '*', '?', '"', '<', '>', '|', '\0' };
+       const char *tmp = text;
+       int nSrcLen = 0;
+
+       /* hidden property check */
+       if (strncmp(tmp, ".", strlen(".")) == 0) {
+               return FALSE;
+       }
+
+       /* check bad character */
+       while (*tmp != '\0') {
+               if (strchr(pattern, *tmp) != NULL) {
+                       VideoLogError("Invalid text=%s char=%c", text, *tmp);
+                       *nLen = nSrcLen;
+                       return FALSE;
+               }
+               nSrcLen++;
+               tmp++;
+       }
+
+       *nLen = nSrcLen;
+       return TRUE;
+}
+
+/**
+ *
+ * @param text
+ * @return
+ */
+static bool __mp_rename_ctrl_check_valid_all_space(const char *text)
+{
+       if (!text) {
+               return FALSE;
+       }
+
+       const char *tmp = text;
+
+       /* check all space */
+       while (*tmp != '\0') {
+
+               if (' ' != *tmp) {
+                       return TRUE;
+               }
+               tmp++;
+       }
+
+       return FALSE;
+}
+
+/**
+ *
+ */
+static void __mp_rename_ctrl_set_save_file_name()
+{
+       if (!g_pRenameHandle) {
+               VideoLogError("g_pRenameHandle is NULL");
+               return;
+       }
+
+       if (g_pRenameHandle->szSaveFileName) {
+               MP_FREE_STRING(g_pRenameHandle->szSaveFileName);
+               g_pRenameHandle->szSaveFileName = NULL;
+       }
+       char *szTitle = NULL;
+       char *szPath = mp_util_svc_get_video_url(g_pRenameHandle->nVideoIndex);
+       szTitle = mp_util_get_title_from_path(szPath);
+       g_pRenameHandle->szSaveFileName = g_strdup(szTitle);
+
+       MP_FREE_STRING(szPath);
+       MP_FREE_STRING(szTitle);
+}
+
+/**
+ *
+ * @param data
+ * @param obj
+ * @param event_info
+ */
+static void __mp_rename_view_rotate_cb(void *data, Evas_Object * obj,
+                                                                          void *event_info)
+{
+       if (!g_pRenameHandle) {
+               VideoLogError("__mp_rename_view_rotate_cb IS null");
+               return;
+       }
+       VideoLogInfo("");
+       mp_select_view_arrange_video_list(g_pRenameHandle->pGenlist, FALSE);
+}
+
+////////////////////////////////////////////////////////////
+// External function
+////////////////////////////////////////////////////////////
+/**
+ *
+ * @param pNaviFrameHandle
+ * @param pUserData
+ * @param pRenameCtrlCb
+ * @param nVideoItemIndex
+ * @return
+ */
+Evas_Object *mp_rename_ctrl_show(void *pNaviFrameHandle, void *pUserData,
+                                                                mpRenameCtrlCbFunc pRenameCtrlCb,
+                                                                int nVideoItemIndex)
+{
+       VideoLogInfo("");
+
+       if (nVideoItemIndex < 0) {
+               VideoLogError("nVideoItemIndex is INVALID = %d", nVideoItemIndex);
+               return FALSE;
+       }
+
+       mp_rename_ctrl_delete_handle();
+
+       g_pRenameHandle = (stRenamePopup *) calloc(1, sizeof(stRenamePopup));
+       if (!g_pRenameHandle) {
+               VideoLogError("g_pRenameHandle is NULL");
+               return FALSE;
+       }
+
+       g_pRenameHandle->pNaviFrameHandle = pNaviFrameHandle;
+       g_pRenameHandle->RenameCtrlUserCbFunc = pRenameCtrlCb;
+       g_pRenameHandle->nVideoIndex = nVideoItemIndex;
+       g_pRenameHandle->bSetToEnd = TRUE;
+
+       char *pVideoFile =
+               mp_util_svc_get_video_url(g_pRenameHandle->nVideoIndex);
+       char *szFileExt = mp_info_ctrl_get_file_extension(pVideoFile);
+
+       mp_widget_ctrl_disable_navi_handle_focus_except_item(g_pRenameHandle->
+                                                                                                                pNaviFrameHandle,
+                                                                                                                NULL);
+
+       evas_object_smart_callback_add((Evas_Object *)
+                                                                  mp_util_get_main_window_handle(),
+                                                                  "wm,rotation,changed",
+                                                                  __mp_rename_view_rotate_cb, NULL);
+
+       Evas_Object *pLayout = NULL;
+       char edj_path[1024] = { 0 };
+
+       char *path = app_get_resource_path();
+       snprintf(edj_path, 1024, "%s%s/%s", path, "edje", VIDEO_CUSTOM_THEME);
+       free(path);
+       //Create popup
+       g_pRenameHandle->pPopUpHandle =
+               elm_popup_add(g_pRenameHandle->pNaviFrameHandle);
+
+       eext_object_event_callback_add(g_pRenameHandle->pPopUpHandle,
+                                                                  EEXT_CALLBACK_BACK,
+                                                                  __mp_rename_ctrl_cancel_btn_cb,
+                                                                  pUserData);
+
+       elm_object_part_text_set(g_pRenameHandle->pPopUpHandle, "title,text",
+                                                        VIDEOS_RENAMEPOP_HEADER_RENAME);
+       evas_object_size_hint_weight_set(g_pRenameHandle->pPopUpHandle,
+                                                                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       pLayout = elm_layout_add(g_pRenameHandle->pPopUpHandle);
+       elm_layout_file_set(pLayout, edj_path, "pv.popup.entry");
+
+       //Create entry
+       Evas_Object *en = NULL;
+       en = elm_entry_add(pLayout);
+       elm_entry_single_line_set(en, EINA_TRUE);
+       elm_entry_scrollable_set(en, EINA_TRUE);
+
+       elm_entry_cnp_mode_set(en, ELM_CNP_MODE_PLAINTEXT);
+       elm_entry_input_panel_layout_set(en, ELM_INPUT_PANEL_LAYOUT_NORMAL);
+       elm_entry_editable_set(en, TRUE);
+       elm_entry_input_panel_return_key_type_set(en,
+                                                                                         ELM_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT);
+       elm_entry_input_panel_return_key_disabled_set(en, EINA_FALSE);
+       elm_entry_prediction_allow_set(en, EINA_TRUE);
+       g_pRenameHandle->pEntryLayout = pLayout;
+
+       static Elm_Entry_Filter_Limit_Size limit_filter_data;
+       limit_filter_data.max_char_count = VIDEO_FILE_SEARCH_CHAR_LEN_MAX;
+       limit_filter_data.max_byte_count = 0;
+       elm_entry_markup_filter_append(en, elm_entry_filter_limit_size,
+                                                                  &limit_filter_data);
+
+       evas_object_smart_callback_add(en, "maxlength,reached",
+                                                                  __mp_rename_ctrl_entry_max_len_cb,
+                                                                  pUserData);
+       evas_object_smart_callback_add(en, "activated",
+                                                                  __mp_rename_ctrl_entry_activate_cb,
+                                                                  pUserData);
+       evas_object_smart_callback_add(en, "changed",
+                                                                  __mp_rename_ctrl_entry_changed_cb,
+                                                                  pUserData);
+       evas_object_smart_callback_add(en, "preedit,changed",
+                                                                  __mp_rename_ctrl_entry_changed_cb,
+                                                                  pUserData);
+       evas_object_smart_callback_add(en, "clicked",
+                                                                  __mp_rename_ctrl_entry_clicked_cb,
+                                                                  pUserData);
+       evas_object_smart_callback_add(en, "longpressed",
+                                                                  __mp_rename_ctrl_entry_long_pressed_cb,
+                                                                  pUserData);
+       evas_object_event_callback_add(en, EVAS_CALLBACK_SHOW,
+                                                                  __mp_entry_show_cb, pUserData);
+
+       __mp_rename_ctrl_set_save_file_name();
+       MP_FREE_STRING(g_pRenameHandle->szOldName);
+       g_pRenameHandle->szOldName = g_strdup(g_pRenameHandle->szSaveFileName);
+       char *pNameUtf8 =
+               elm_entry_utf8_to_markup(g_pRenameHandle->szSaveFileName);
+       elm_entry_entry_set(en, pNameUtf8);
+       MP_FREE_STRING(pNameUtf8);
+       elm_object_focus_set(en, EINA_TRUE);
+       g_pRenameHandle->pEntry = en;
+       elm_entry_select_all(en);
+       elm_entry_cursor_end_set(en);
+
+       elm_object_part_content_set(pLayout, "elm.swallow.content", en);
+       elm_object_content_set(g_pRenameHandle->pPopUpHandle, pLayout);
+
+       g_pRenameHandle->pEntryClearBtn = elm_button_add(pLayout);
+       elm_object_style_set(g_pRenameHandle->pEntryClearBtn, "clear");
+       elm_object_part_content_set(pLayout, "elm.swallow.end",
+                                                               g_pRenameHandle->pEntryClearBtn);
+       elm_object_signal_callback_add(g_pRenameHandle->pEntryClearBtn,
+                                                                  "elm,action,click", "",
+                                                                  __mp_rename_ctrl_entry_clear_cb,
+                                                                  (void *) en);
+       evas_object_show(g_pRenameHandle->pEntryClearBtn);
+
+       g_pRenameHandle->pPopupCancelBtn =
+               elm_button_add(g_pRenameHandle->pPopUpHandle);
+       elm_object_style_set(g_pRenameHandle->pPopupCancelBtn, "popup");
+       elm_object_domain_translatable_text_set(g_pRenameHandle->
+                                                                                       pPopupCancelBtn, VIDEOS_STRING,
+                                                                                       VIDEOS_COMMON_BUTTON_CANCEL_IDS);
+       elm_object_part_content_set(g_pRenameHandle->pPopUpHandle, "button1",
+                                                               g_pRenameHandle->pPopupCancelBtn);
+       evas_object_smart_callback_add(g_pRenameHandle->pPopupCancelBtn,
+                                                                  "clicked",
+                                                                  __mp_rename_ctrl_cancel_btn_cb,
+                                                                  pUserData);
+
+       g_pRenameHandle->pPopupOkBtn =
+               elm_button_add(g_pRenameHandle->pPopUpHandle);
+       elm_object_style_set(g_pRenameHandle->pPopupOkBtn, "popup");
+       elm_object_domain_translatable_text_set(g_pRenameHandle->pPopupOkBtn,
+                                                                                       VIDEOS_STRING,
+                                                                                       VIDEOS_COMMON_BUTTON_RENAME_IDS);
+       elm_object_part_content_set(g_pRenameHandle->pPopUpHandle, "button2",
+                                                               g_pRenameHandle->pPopupOkBtn);
+       evas_object_smart_callback_add(g_pRenameHandle->pPopupOkBtn, "clicked",
+                                                                  __mp_rename_ctrl_ok_btn_cb, en);
+       elm_object_disabled_set(g_pRenameHandle->pPopupOkBtn, EINA_TRUE);
+
+       evas_object_show(g_pRenameHandle->pPopUpHandle);
+
+       MP_FREE_STRING(szFileExt);
+       MP_FREE_STRING(pVideoFile);
+       return g_pRenameHandle->pPopUpHandle;
+}
+
+/**
+ *
+ * @return
+ */
+bool mp_rename_ctrl_is_top_view()
+{
+       if (!g_pRenameHandle) {
+               VideoLogInfo("RenamePopUp is not shown");
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+/**
+ *
+ */
+void mp_rename_ctrl_set_focus()
+{
+       if (!g_pRenameHandle) {
+               VideoLogInfo("RenamePopUp is not shown");
+               return;
+       }
+
+       VideoLogInfo("");
+       elm_object_focus_set(g_pRenameHandle->pEntry, EINA_TRUE);
+}
+
+/**
+ *
+ */
+void mp_rename_ctrl_focus_out_cb(void)
+{
+
+       if (!g_pRenameHandle) {
+               VideoLogInfo("RenamePopUp is not shown");
+               return;
+       }
+
+       if (g_pRenameHandle->pPopUpHandle) {
+               eext_object_event_callback_del(g_pRenameHandle->pPopUpHandle,
+                                                                          EEXT_CALLBACK_BACK,
+                                                                          __mp_rename_ctrl_cancel_btn_cb);
+       }
+
+       if (g_pRenameHandle->pPopupCancelBtn) {
+               evas_object_smart_callback_del(g_pRenameHandle->pPopupCancelBtn,
+                                                                          "clicked",
+                                                                          __mp_rename_ctrl_cancel_btn_cb);
+       }
+       MP_DEL_OBJ(g_pRenameHandle->pPopupOkBtn);
+       MP_DEL_OBJ(g_pRenameHandle->pPopupCancelBtn);
+       MP_DEL_OBJ(g_pRenameHandle->pPopUpHandle);
+}
+
+/**
+ *
+ */
+void mp_rename_ctrl_delete_handle(void)
+{
+       VideoLogInfo("");
+       if (!g_pRenameHandle) {
+               VideoLogError("g_pRenameHandle is NULL");
+               return;
+       }
+       if (g_pRenameHandle->pPopUpHandle) {
+               eext_object_event_callback_del(g_pRenameHandle->pPopUpHandle,
+                                                                          EEXT_CALLBACK_BACK,
+                                                                          __mp_rename_ctrl_cancel_btn_cb);
+       }
+
+       if (g_pRenameHandle->pPopupCancelBtn) {
+               evas_object_smart_callback_del(g_pRenameHandle->pPopupCancelBtn,
+                                                                          "clicked",
+                                                                          __mp_rename_ctrl_cancel_btn_cb);
+       }
+
+       if (g_pRenameHandle->pPopupOkBtn) {
+               evas_object_smart_callback_del(g_pRenameHandle->pPopupOkBtn,
+                                                                          "clicked",
+                                                                          __mp_rename_ctrl_ok_btn_cb);
+       }
+
+       mp_widget_ctrl_enable_navi_handle_focus(g_pRenameHandle->
+                                                                                       pNaviFrameHandle);
+       MP_DEL_IDLER(g_pRenameHandle->pSetLineEndIdler);
+       MP_DEL_OBJ(g_pRenameHandle->pPopupOkBtn);
+       MP_DEL_OBJ(g_pRenameHandle->pPopupCancelBtn);
+       MP_DEL_OBJ(g_pRenameHandle->pPopUpHandle);
+       MP_FREE_STRING(g_pRenameHandle->szSaveFileName);
+       MP_FREE_STRING(g_pRenameHandle->szOldName);
+       MP_FREE_STRING(g_pRenameHandle->szTempName);
+
+       MP_FREE_STRING(g_pRenameHandle);
+}
diff --git a/src/widget/mp-video-view-popup-ctrl.c b/src/widget/mp-video-view-popup-ctrl.c
new file mode 100755 (executable)
index 0000000..364d3b9
--- /dev/null
@@ -0,0 +1,172 @@
+/*
+ * Copyright (c) 2020 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 <app.h>
+#include <glib.h>
+#include <app_preference.h>
+
+#include <Eina.h>
+#include <Ecore_Evas.h>
+#include <Elementary.h>
+
+#include "vp-play-log.h"
+#include "mp-util.h"
+#include "mp-video-log.h"
+#include "mp-video-value-define.h"
+#include "mp-video-string-define.h"
+#include "mp-video-view-popup-ctrl.h"
+#include "mp-video-list-view-main.h"
+#include "mp-util-widget-ctrl.h"
+#include "vp-util.h"
+
+#define PREF_MP_VIDEO_CONTENT_DISPLAYER_TYPE_KEY "preference/org.tizen.videos/storage_type"
+
+
+typedef struct __list_view_ctr {
+       Evas_Object *pLVPopUpHandle;
+       Evas_Object *pLVGroupRadio;
+       Evas_Object *pLVGenList;
+       Evas_Object *pBox;
+
+       int nListCount;
+       MpListItemType nCurrViewType;
+       Elm_Genlist_Item_Class *lv_Itc;
+       ListViewCtrlCbFunc pListViewCtrlCbFunc;
+} st_list_view_ctr;
+
+static st_list_view_ctr *g_list_view_data = NULL;
+
+static void __mp_view_ctrl_btn_asc_cb(void *pUserData,
+                                                                         Evas_Object * pObject,
+                                                                         void *pEventInfo);
+/**
+ *
+ * @param nViewType
+ */
+void mp_view_ctrl_set_type(MpListItemType nViewType)
+{
+       if (!g_list_view_data) {
+               VideoLogError("");
+               return;
+       }
+
+       if (MP_LIST_VIEW_NONE >= nViewType || nViewType >= MP_LIST_VIEW_MAX) {
+               VideoLogWarning("[WARNING] Value of View as type is not matched.");
+               nViewType = MP_LIST_VIEW_ALL;
+       }
+
+       g_list_view_data->nCurrViewType = nViewType;
+
+       int nRet = preference_set_int(PREF_MP_VIDEO_CONTENT_DISPLAYER_TYPE_KEY,
+                                                                 g_list_view_data->nCurrViewType);
+       if (nRet) {
+               VideoLogWarning
+                       ("[WARNING] Fail to set value about list view type.");
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ */
+void mp_view_ctrl_delete_handle(void *pUserData)
+{
+       VideoLogInfo("");
+
+       if (!pUserData) {
+               VideoLogInfo("pUserData is NULL");
+               return;
+       }
+       st_list_view_ctr *pLVData = (st_list_view_ctr *) pUserData;
+       if (pLVData->pLVPopUpHandle) {
+               eext_object_event_callback_del(pLVData->pLVPopUpHandle,
+                                                                          EEXT_CALLBACK_BACK,
+                                                                          __mp_view_ctrl_btn_asc_cb);
+               evas_object_smart_callback_del(pLVData->pLVPopUpHandle,
+                                                                          "block,clicked",
+                                                                          __mp_view_ctrl_btn_asc_cb);
+       }
+       MP_DEL_ITC(pLVData->lv_Itc);
+       MP_DEL_OBJ(pLVData->pLVGroupRadio);
+       MP_DEL_OBJ(pLVData->pLVGenList);
+       MP_DEL_OBJ(pLVData->pBox);
+       MP_DEL_OBJ(pLVData->pLVPopUpHandle);
+       MP_FREE_STRING(pLVData);
+       g_list_view_data = NULL;
+
+       VideoLogInfo("end");
+}
+
+/**
+ *
+ * @param pUserData
+ * @param pObject
+ * @param pEventInfo
+ */
+static void __mp_view_ctrl_btn_asc_cb(void *pUserData,
+                                                                         Evas_Object * pObject,
+                                                                         void *pEventInfo)
+{
+       VideoLogInfo("");
+
+       mp_view_ctrl_hide();
+}
+
+/*//////////////////////////////////////////////////////////*/
+/* External function*/
+/*//////////////////////////////////////////////////////////*/
+/**
+ *
+ * @param pListViewCtrlCb
+ * @return
+ */
+bool mp_view_ctrl_show(ListViewCtrlCbFunc pListViewCtrlCb)
+{
+       VideoLogInfo("disable cloud module.");
+       return false;
+}
+
+/**
+ *
+ */
+void mp_view_ctrl_hide(void)
+{
+       VideoLogInfo("");
+
+       if (!g_list_view_data) {
+               VideoLogInfo("g_list_view_data is NULL.");
+               return;
+       }
+
+       mp_view_ctrl_delete_handle(g_list_view_data);
+}
+
+/**
+ *
+ */
+void mp_view_ctrl_change_language(void)
+{
+       return;
+}
+
+/**
+ *
+ * @return
+ */
+int mp_view_ctrl_get_list_type(void)
+{
+       return MP_LIST_VIEW_ALL;
+}
diff --git a/tizen-manifest.xml b/tizen-manifest.xml
new file mode 100755 (executable)
index 0000000..bd31c13
--- /dev/null
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="4.0" package="org.tizen.videos_common" version="1.0.0">
+    <profile name="mobile"/>
+    <ui-application appid="org.tizen.videos" exec="videos" launch_mode="single" hw-acceleration="on" multiple="false" nodisplay="false" taskmanage="true" type="capp">
+        <label>Video</label>
+       <label xml:lang="en-gb">Video</label>
+       <label xml:lang="hi-in">वीडियो</label>
+       <label xml:lang="bn-in">ভিডিও</label>
+       <label xml:lang="gu-in">વિડિયો</label>
+       <label xml:lang="kn-in">ವೀಡಿಯೊ</label>
+       <label xml:lang="ml-in">വീഡിയോ</label>
+       <label xml:lang="si-lk">වීඩියෝ</label>
+       <label xml:lang="ta-in">நிகழ்படம்</label>
+       <label xml:lang="te-in">వీడియో</label>
+       <label xml:lang="ur-pk">ویڈیو</label>
+       <label xml:lang="en-us">Video</label>
+       <label xml:lang="en-ph">Video</label>
+       <label xml:lang="zh-cn">视频</label>
+       <label xml:lang="tl-ph">Video</label>
+       <label xml:lang="id-id">Video</label>
+       <label xml:lang="ko-kr">비디오</label>
+       <label xml:lang="ms-my">Video</label>
+       <label xml:lang="my-mm">ဗီဒီယို</label>
+       <label xml:lang="th-th">วิดีโอ</label>
+       <label xml:lang="vi-vn">Video</label>
+       <label xml:lang="lo-la">ວິດີໂອ</label>
+       <label xml:lang="km-kh">វីដេអូ</label>
+       <label xml:lang="hy-am">Վիդեո</label>
+       <label xml:lang="az-az">Video</label>
+       <label xml:lang="eu-es">Bideoa</label>
+       <label xml:lang="bg-bg">Видеоклип</label>
+       <label xml:lang="ca-es">Vídeo</label>
+       <label xml:lang="zh-cn">视频</label>
+       <label xml:lang="zh-hk">影片</label>
+       <label xml:lang="zh-tw">影片</label>
+       <label xml:lang="hr-hr">Video</label>
+       <label xml:lang="cs-cz">Video</label>
+       <label xml:lang="da-dk">Videoklip</label>
+       <label xml:lang="nl-nl">Video</label>
+       <label xml:lang="en-gb">Video</label>
+       <label xml:lang="en-us">Video</label>
+       <label xml:lang="et-ee">Video</label>
+       <label xml:lang="fi-fi">Video</label>
+       <label xml:lang="fr-fr">Vidéo</label>
+       <label xml:lang="gl-es">Vídeo</label>
+       <label xml:lang="ka-ge">ვიდეო</label>
+       <label xml:lang="de-de">Video</label>
+       <label xml:lang="el-gr">Βίντεο</label>
+       <label xml:lang="hu-hu">Videó</label>
+       <label xml:lang="is-is">Myndskeið</label>
+       <label xml:lang="ga-ie">Físeán</label>
+       <label xml:lang="it-it">Video</label>
+       <label xml:lang="ja-jp">動画</label>
+       <label xml:lang="kk-kz">Бейне</label>
+       <label xml:lang="ko-kr">동영상</label>
+       <label xml:lang="lv-lv">Video</label>
+       <label xml:lang="lt-lt">Vaizdo įrašas</label>
+       <label xml:lang="mk-mk">Видео-запис</label>
+       <label xml:lang="nb-no">Video</label>
+       <label xml:lang="pl-pl">Film</label>
+       <label xml:lang="pt-pt">Vídeo</label>
+       <label xml:lang="pt-br">Vídeo</label>
+       <label xml:lang="ro-ro">Videoclip</label>
+       <label xml:lang="ru-ru">Видео</label>
+       <label xml:lang="sr-rs">Video zapis</label>
+       <label xml:lang="sk-sk">Video</label>
+       <label xml:lang="sl-si">Video</label>
+       <label xml:lang="es-es">Vídeo</label>
+       <label xml:lang="es-us">Video</label>
+       <label xml:lang="sv-se">Videoklipp</label>
+       <label xml:lang="tr-tr">Video</label>
+       <label xml:lang="uk-ua">Відео</label>
+       <label xml:lang="uz-uz">Video</label>
+       <label xml:lang="ar-ae">فيديو</label>
+       <!-- <label xml:lang="zh-sg">画廊</label> -->
+       <label xml:lang="hi-in">वीडियो</label>
+       <label xml:lang="en-ph">Video</label>
+       <label xml:lang="fr-ca">Vidéo</label>
+        <icon>org.tizen.videos.png</icon>
+    </ui-application>
+    <privileges>
+       <privilege>http://tizen.org/privilege/mediastorage</privilege>
+       <privilege>http://tizen.org/privilege/externalstorage.appdata</privilege>
+       <privilege>http://tizen.org/privilege/externalstorage</privilege>
+       <privilege>http://tizen.org/privilege/telephony</privilege>
+       <privilege>http://tizen.org/privilege/wifidirect</privilege>
+       <privilege>http://tizen.org/privilege/network.get</privilege>
+       <privilege>http://tizen.org/privilege/volume.set</privilege>
+       <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+       <privilege>http://tizen.org/privilege/content.write</privilege>
+       <privilege>http://tizen.org/privilege/display</privilege>
+       <privilege>http://tizen.org/privilege/internet</privilege>
+</privileges>
+</manifest>
diff --git a/video-downloader/CMakeLists.txt b/video-downloader/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..32d2238
--- /dev/null
@@ -0,0 +1,39 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(video-downloader C CXX)
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(VERSION 0.1.0)
+
+SET(SRCS
+       src/VppDownload.c
+)
+
+INCLUDE_DIRECTORIES(
+       include
+       ${CMAKE_SOURCE_DIR}/include/
+)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(${PROJECT_NAME}_pkgs REQUIRED
+       ecore
+       eina
+       glib-2.0
+       capi-web-url-download
+)
+
+FOREACH(flag ${${PROJECT_NAME}_pkgs_CFLAGS})
+       SET(EXTRA_FLAGS "${EXTRA_FLAGS} ${flag}")
+ENDFOREACH(flag)
+
+ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
+ADD_DEFINITIONS("-DLOG_LVL=DBG_MSG_LVL_HIGH")
+
+ADD_LIBRARY(${PROJECT_NAME} STATIC ${SRCS})
+
+SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION} )
+SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
+#SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS ${EXTRA_FLAGS})
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${${PROJECT_NAME}_pkgs_LDFLAGS})
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib)
diff --git a/video-downloader/include/VppDownload.h b/video-downloader/include/VppDownload.h
new file mode 100755 (executable)
index 0000000..d259edd
--- /dev/null
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 2020 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 __VPP_DOWNLOAD_H__
+#define __VPP_DOWNLOAD_H__
+
+
+#include <stdbool.h>
+
+
+/* downloader handle */
+typedef void *VppDownloadHandle;
+
+
+/**
+ * @brief Enumerations of download state
+ */
+typedef enum {
+       VPP_DOWNLOAD_STATE_AGENT_ERROR = -2,    /**< agent error */
+       VPP_DOWNLOAD_STATE_APP_ERROR = -1,              /**< application error */
+       VPP_DOWNLOAD_STATE_NONE = 0,                    /**< download_state_e :  DOWNLOAD_STATE_NONE */
+       VPP_DOWNLOAD_STATE_READY,                               /**< download_state_e :  DOWNLOAD_STATE_READY */
+       VPP_DOWNLOAD_STATE_QUEUED,                              /**< download_state_e :  DOWNLOAD_STATE_QUEUED */
+       VPP_DOWNLOAD_STATE_DOWNLOADING,                 /**< download_state_e :  DOWNLOAD_STATE_DOWNLOADING */
+       VPP_DOWNLOAD_STATE_PAUSED,                              /**< download_state_e :  DOWNLOAD_STATE_PAUSED */
+       VPP_DOWNLOAD_STATE_COMPLETED,                   /**< download_state_e :  DOWNLOAD_STATE_COMPLETED */
+       VPP_DOWNLOAD_STATE_FAILED,                              /**< download_state_e :  DOWNLOAD_STATE_FAILED */
+       VPP_DOWNLOAD_STATE_CANCELED,                    /**< download_state_e :  DOWNLOAD_STATE_CANCELED */
+} VppDownloadState;
+
+
+/**
+ * @brief Enumerations of download item type
+ */
+typedef enum {
+       VPP_DOWNLOAD_ITEM_TYPE_NONE = 0,                                        /**< NONE */
+
+       VPP_DOWNLOAD_ITEM_TYPE_VIDEO_FILE,                                      /**< video file */
+
+       /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+       // these values only supprot store
+       VPP_DOWNLOAD_ITEM_TYPE_STORE_VIDEO_FILE,                        /**< store video file */
+       VPP_DOWNLOAD_ITEM_TYPE_VIDEO_INDEX_FILE,                        /**< store video infex file. It will be reomved when download video file is completed. */
+       VPP_DOWNLOAD_ITEM_TYPE_VIDEO_CAPTION_FILE,                      /**< store video caption file */
+       /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+       VPP_DOWNLOAD_ITEM_TYPE_THUMBNAIL_IMAGE, /* product thumbnail image */
+       VPP_DOWNLOAD_ITEM_TYPE_LARGE_POSTER_IMAGE,      /* product large poster image */
+       VPP_DOWNLOAD_ITEM_TYPE_CATEGORY_IMAGE,  /* category thumbnail image */
+       VPP_DOWNLOAD_ITEM_TYPE_RATING_IMAGE,    /* user rating image */
+       VPP_DOWNLOAD_ITEM_TYPE_CAPION_FILE,     /* caption file */
+} VppDownloadItemType;
+
+
+/* downloader callback */
+typedef void (*vpp_dl_progress_cb) (VppDownloadHandle pHandle,
+                                                                       unsigned long long received,
+                                                                       unsigned long long total,
+                                                                       void *userData);
+typedef void (*vpp_dl_state_changed_cb) (VppDownloadHandle pHandle,
+                                                                                VppDownloadState eState,
+                                                                                const char *pPath,
+                                                                                void *userData);
+
+
+// download callback structure
+typedef struct {
+       vpp_dl_progress_cb progressCb;
+       vpp_dl_state_changed_cb stateChangedCb;
+} VppDownloadCallback;
+
+
+#ifdef _cplusplus
+extern "C" {
+#endif
+
+
+       VppDownloadHandle VppDownloadCreateItem(const char *pUrl,
+                                                                                       const char *pDstFolder,
+                                                                                       const char *pDstName,
+                                                                                       VppDownloadItemType eType,
+                                                                                       VppDownloadCallback cb,
+                                                                                       void *userData);
+       VppDownloadHandle VppDownloadCreateItemById(int nId, const char *pUrl,
+                                                                                               const char *pDstFolder,
+                                                                                               const char *pDstName,
+                                                                                               VppDownloadItemType eType,
+                                                                                               VppDownloadCallback cb,
+                                                                                               void *userData);
+
+       void VppDownloadDestroyItem(VppDownloadHandle pHandle);
+       void VppDownloadDestroyItemById(int nId);
+       void VppDownloadClearItem(VppDownloadHandle pHandle);
+
+       bool VppDownloadStartVideoStoreVideoItem(VppDownloadHandle pHandle, void *pOnGoingServiceData, void *pCompleteServiceData);     // pServiceData is app control. It is service extra data at quickpanel service.
+
+
+       bool VppDownloadSetCb(VppDownloadHandle pHandle,
+                                                 VppDownloadCallback cb, void *userData);
+       bool VppDownloadUnsetCb(VppDownloadHandle pHandle);
+
+       bool VppDownloadRequestAppend(VppDownloadHandle pHandle);
+       bool VppDownloadRequestPrepend(VppDownloadHandle pHandle);
+
+       bool VppDownloadPause(VppDownloadHandle pHandle);
+       bool VppDownloadResume(VppDownloadHandle pHandle);
+
+       bool VppDownloadCancel(VppDownloadHandle pHandle);
+
+       bool VppDownloadStoreVideoRestore(VppDownloadHandle pHandle);
+
+       VppDownloadState VppDownloadGetState(VppDownloadHandle pHandle);
+       VppDownloadState VppDownloadGetStateById(int nDownloadId);
+
+       char *VppDownloadGetDownloadedFilePath(VppDownloadHandle pHandle);
+       int VppDownloadGetDownloadId(VppDownloadHandle pHandle);
+
+       bool VppDownloadSetNotificationAppControl(VppDownloadHandle pHandle,
+                                                                                         void *pData);
+       void *VppDownloadGetNotificationAppControl(VppDownloadHandle pHandle);
+
+       void VppDownloadResetUserData(void *pDataItem);
+
+#ifdef _cplusplus
+}
+#endif
+#endif                                                 // __VPP_DOWNLOAD_H__
diff --git a/video-downloader/src/VppDownload.c b/video-downloader/src/VppDownload.c
new file mode 100755 (executable)
index 0000000..2c0c2d9
--- /dev/null
@@ -0,0 +1,1589 @@
+/*
+ * Copyright (c) 2020 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 <Ecore.h>
+#include <Ecore_File.h>
+#include <Eina.h>
+#include <glib.h>
+#include <app_control.h>
+#include <download.h>
+
+#include "mp-video-log.h"
+#include "VppDownload.h"
+#include "vp-file-util.h"
+
+/* download cb type. for download pipe data */
+typedef enum {
+       VPP_DOWNLOAD_CB_TYPE_STATE_CHANGED,
+       VPP_DOWNLOAD_CB_TYPE_PROGRESS,
+} VppDownloadCbType;
+
+
+// download item
+typedef struct {
+       int id;                                         /* downloader id */
+
+       char *pDownloadUrl;                     /* download url */
+       char *pDstFolder;                       /* destination path */
+       char *pDstName;                         /* destination path */
+
+       char *pTempPath;                        /* tepmdownload path */
+       char *pEtag;                            /* eTag */
+
+       VppDownloadItemType eType;      /* download item type */
+
+       vpp_dl_progress_cb progressCb;  /* download progress callback */
+       vpp_dl_state_changed_cb stateChangedCb; /* download state changed callback */
+
+       bool bDownloading;                      /* downloading state */
+
+       bool bSetNoti;                          /* quick pannel download view state. default FALSE */
+
+       Ecore_Pipe *pDownloadPipe;      /* internal pipe */
+
+       void *pUserdata;                        /* user data */
+} __VppDownloadItem;
+
+
+// download list
+typedef struct {
+       Ecore_Timer *downloadTimer;     /* internal timer */
+
+       int currentDownloadingCount;    /* downloading item count */
+
+       Eina_List *downloadList;        /* download item list */
+} __VppDownloadListData;
+
+
+/* download pipe data */
+typedef struct {
+       __VppDownloadItem *pItem;       /* download item */
+       unsigned long long received;    /* received file size from progress callback */
+       VppDownloadCbType eCbType;      /* pipe callback type */
+       VppDownloadState eState;        /* downloader state */
+} VppDownloadPipeData;
+
+
+__VppDownloadListData *g_download_list = NULL;
+
+
+///////////////////////////////////////////////////////////////////////////////////////////
+//  local functions proto types
+///////////////////////////////////////////////////////////////////////////////////////////
+void __VppDownloadPrintErr(download_error_e err);
+
+void __VppDownloadListInitialize();
+void __VppDestoryDownloadListDestory();
+
+bool __VppDownloadCreate(__VppDownloadItem * pItem);
+bool __VppDownloadStart(__VppDownloadItem * pItem, bool bResume);
+
+static void __VppDownloadStateChangedCb(int download_id,
+                                                                               download_state_e state,
+                                                                               void *user_data);
+static void __VppDownloadProgressCb(int download_id,
+                                                                       unsigned long long received,
+                                                                       void *user_data);
+
+unsigned int __VppDownloadListCount();
+bool __VppDownloadListAdd(__VppDownloadItem * pItem, bool bAppend);
+void __VppDownloadListRemove(__VppDownloadItem * pItem);
+
+void __VppDownloadListNextTrigger();
+void __VppDownloadStartTimer();
+
+static void __VppDownloadPipeCb(void *data, void *pdata,
+                                                               unsigned int nbyte);
+static Eina_Bool __VppDownloadTimerCb(void *data);
+
+
+///////////////////////////////////////////////////////////////////////////////////////////
+//  download api
+///////////////////////////////////////////////////////////////////////////////////////////
+
+/**
+ *
+ * @param pUrl
+ * @param pDstFolder
+ * @param pDstName
+ * @param eType
+ * @param cb
+ * @param userData
+ * @return
+ */
+VppDownloadHandle
+VppDownloadCreateItem(const char *pUrl, const char *pDstFolder,
+                                         const char *pDstName, VppDownloadItemType eType,
+                                         VppDownloadCallback cb, void *userData)
+{
+       __VppDownloadItem *pItem = NULL;
+
+       if (pUrl == NULL) {
+               VideoLogError("pUrl == NULL!!!");
+               return NULL;
+       }
+
+
+       if (pDstFolder == NULL) {
+               VideoLogError("pDstFolder == NULL!!!");
+               return NULL;
+       }
+
+       if (cb.stateChangedCb == NULL) {
+               VideoLogError("cb.stateChangedCb == NULL!!!");
+               return NULL;
+       }
+
+       pItem = calloc(1, sizeof(__VppDownloadItem));
+       if (pItem == NULL) {
+               VideoLogError("pItem calloc fail!!!");
+               return NULL;
+       }
+
+       pItem->pDownloadUrl = strdup(pUrl);
+       pItem->pDstFolder = strdup(pDstFolder);
+       pItem->eType = eType;
+       pItem->progressCb = cb.progressCb;
+       pItem->stateChangedCb = cb.stateChangedCb;
+       pItem->pUserdata = userData;
+       pItem->bSetNoti = TRUE;
+
+       if (pDstName != NULL) {
+               pItem->pDstName = strdup(pDstName);
+       }
+
+       if (eType == VPP_DOWNLOAD_ITEM_TYPE_VIDEO_FILE
+               || eType == VPP_DOWNLOAD_ITEM_TYPE_STORE_VIDEO_FILE) {
+               pItem->bSetNoti = TRUE;
+       } else if (eType >= VPP_DOWNLOAD_ITEM_TYPE_VIDEO_INDEX_FILE
+                          && eType <= VPP_DOWNLOAD_ITEM_TYPE_RATING_IMAGE) {
+               pItem->bSetNoti = FALSE;
+       } else {
+               VideoLogError("eType error : [%d]", eType);
+       }
+
+       pItem->pDownloadPipe =
+               ecore_pipe_add(__VppDownloadPipeCb, (const void *) pItem);
+
+       return (VppDownloadHandle) pItem;
+}
+
+/**
+ *
+ * @param nId
+ * @param pUrl
+ * @param pDstFolder
+ * @param pDstName
+ * @param eType
+ * @param cb
+ * @param userData
+ * @return
+ */
+VppDownloadHandle
+VppDownloadCreateItemById(int nId, const char *pUrl,
+                                                 const char *pDstFolder, const char *pDstName,
+                                                 VppDownloadItemType eType,
+                                                 VppDownloadCallback cb, void *userData)
+{
+       __VppDownloadItem *pItem = NULL;
+
+       if (nId <= 0) {
+               VideoLogError("nId error : [%d]!!!", nId);
+               return NULL;
+       }
+
+
+       pItem =
+               VppDownloadCreateItem(pUrl, pDstFolder, pDstName, eType, cb,
+                                                         userData);
+       if (pItem == NULL) {
+               VideoLogError("VppDownloadCreateItem fail!!!");
+               return NULL;
+       }
+
+       pItem->id = nId;
+
+       if (VppDownloadSetCb((VppDownloadHandle) pItem, cb, pItem->pUserdata)
+               == FALSE) {
+               VideoLogError("VppDownloadSetCb error");
+               VppDownloadDestroyItem((VppDownloadHandle) pItem);
+
+               return NULL;
+       }
+
+       return (VppDownloadHandle) pItem;
+}
+
+/**
+ *
+ * @param pHandle
+ */
+void VppDownloadDestroyItem(VppDownloadHandle pHandle)
+{
+       __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+       download_error_e error = DOWNLOAD_ERROR_NONE;
+       char *pPath = NULL;
+
+       if (pHandle == NULL) {
+               VideoLogError("pHandle == NULL");
+               return;
+       }
+
+       if (pItem->pDownloadPipe != NULL) {
+               ecore_pipe_del(pItem->pDownloadPipe);
+               pItem->pDownloadPipe = NULL;
+       }
+
+       pPath = VppDownloadGetDownloadedFilePath(pHandle);
+
+       if (pItem->pDownloadUrl != NULL) {
+               free(pItem->pDownloadUrl);
+               pItem->pDownloadUrl = NULL;
+       }
+
+       if (pItem->pDstFolder != NULL) {
+               free(pItem->pDstFolder);
+               pItem->pDstFolder = NULL;
+       }
+
+       if (pItem->pDstName != NULL) {
+               free(pItem->pDstName);
+               pItem->pDstName = NULL;
+       }
+
+       if (pItem->pTempPath != NULL) {
+               free(pItem->pTempPath);
+               pItem->pTempPath = NULL;
+       }
+
+       if (pItem->pEtag != NULL) {
+               free(pItem->pEtag);
+               pItem->pEtag = NULL;
+       }
+
+       if (pItem->id > 0) {
+               VppDownloadUnsetCb(pItem);
+
+               VppDownloadState state = VppDownloadGetState(pItem);
+
+
+               if (state != VPP_DOWNLOAD_STATE_COMPLETED) {
+                       if (pPath != NULL
+                               && vp_file_exists((const char *) pPath) == EINA_TRUE) {
+                               vp_file_unlink((const char *) pPath);
+                       }
+               }
+
+               error =
+                       download_set_notification_type(pItem->id,
+                                                                                  DOWNLOAD_NOTIFICATION_TYPE_NONE);
+               if (error != DOWNLOAD_ERROR_NONE) {
+                       __VppDownloadPrintErr(error);
+               }
+
+               error = download_destroy(pItem->id);
+               if (error != DOWNLOAD_ERROR_NONE) {
+                       __VppDownloadPrintErr(error);
+               }
+       }
+
+       if (pItem->eType < VPP_DOWNLOAD_ITEM_TYPE_STORE_VIDEO_FILE
+               || pItem->eType > VPP_DOWNLOAD_ITEM_TYPE_VIDEO_CAPTION_FILE) {
+               __VppDownloadListRemove(pHandle);
+       }
+
+       if (pPath != NULL) {
+               free(pPath);
+               pPath = NULL;
+       }
+
+       free(pItem);
+       pItem = NULL;
+}
+
+/**
+ *
+ * @param nId
+ */
+void VppDownloadDestroyItemById(int nId)
+{
+       download_error_e error = DOWNLOAD_ERROR_NONE;
+
+       error = download_destroy(nId);
+       if (error != DOWNLOAD_ERROR_NONE) {
+               __VppDownloadPrintErr(error);
+       }
+}
+
+/**
+ *
+ * @param pHandle
+ */
+void VppDownloadClearItem(VppDownloadHandle pHandle)
+{
+
+       __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+       if (pHandle == NULL) {
+               VideoLogError("pHandle == NULL");
+               return;
+       }
+
+       if (pItem->pDownloadPipe != NULL) {
+               ecore_pipe_del(pItem->pDownloadPipe);
+               pItem->pDownloadPipe = NULL;
+       }
+
+       if (pItem->pDownloadUrl != NULL) {
+               free(pItem->pDownloadUrl);
+               pItem->pDownloadUrl = NULL;
+       }
+
+       if (pItem->pDstFolder != NULL) {
+               free(pItem->pDstFolder);
+               pItem->pDstFolder = NULL;
+       }
+
+       if (pItem->pDstName != NULL) {
+               free(pItem->pDstName);
+               pItem->pDstName = NULL;
+       }
+
+       if (pItem->id > 0) {
+               VppDownloadUnsetCb(pItem);
+       }
+
+       free(pItem);
+       pItem = NULL;
+}
+
+/**
+ *
+ * @param pHandle
+ * @param pOnGoingServiceData
+ * @param pCompleteServiceData
+ * @return
+ */
+bool
+VppDownloadStartVideoStoreVideoItem(VppDownloadHandle pHandle,
+                                                                       void *pOnGoingServiceData,
+                                                                       void *pCompleteServiceData)
+{
+       __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+       if (pHandle == NULL) {
+               VideoLogError("pHandle == NULL");
+               return FALSE;
+       }
+
+       if (pItem->id <= 0) {
+               if (__VppDownloadCreate(pItem) == FALSE) {
+                       VideoLogError("__VppDownloadCreate faile !!!");
+                       return FALSE;
+               }
+       }
+
+       if (pOnGoingServiceData != NULL) {
+               int error = 0;
+
+               error =
+                       download_set_notification_app_control(pItem->id,
+                                                                                                 DOWNLOAD_NOTIFICATION_APP_CONTROL_TYPE_ONGOING,
+                                                                                                 (app_control_h)
+                                                                                                 pOnGoingServiceData);
+               if (error != DOWNLOAD_ERROR_NONE) {
+                       VideoLogError("download_get_downloaded_file_path error");
+                       __VppDownloadPrintErr(error);
+
+                       return FALSE;
+               }
+       }
+
+       if (pCompleteServiceData != NULL) {
+               int error = 0;
+
+               error =
+                       download_set_notification_app_control(pItem->id,
+                                                                                                 DOWNLOAD_NOTIFICATION_APP_CONTROL_TYPE_COMPLETE,
+                                                                                                 (app_control_h)
+                                                                                                 pCompleteServiceData);
+               if (error != DOWNLOAD_ERROR_NONE) {
+                       VideoLogError("download_get_downloaded_file_path error");
+                       __VppDownloadPrintErr(error);
+
+                       return FALSE;
+               }
+       }
+
+       if (__VppDownloadStart((__VppDownloadItem *) pHandle, FALSE) == FALSE) {
+               VideoLogError("fail __VppDownloadStart!!!");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pHandle
+ * @param cb
+ * @param userData
+ * @return
+ */
+bool
+VppDownloadSetCb(VppDownloadHandle pHandle, VppDownloadCallback cb,
+                                void *userData)
+{
+       __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+       download_error_e error = DOWNLOAD_ERROR_NONE;
+
+       if (pHandle == NULL) {
+               VideoLogError("pHandle == NULL");
+               return FALSE;
+       }
+
+       VppDownloadUnsetCb(pHandle);
+
+       pItem->pUserdata = userData;
+
+       if (cb.progressCb != NULL) {
+               pItem->progressCb = cb.progressCb;
+               if (pItem->id > 0) {
+                       error =
+                               download_set_progress_cb(pItem->id,
+                                                                                __VppDownloadProgressCb, pItem);
+                       if (error != DOWNLOAD_ERROR_NONE) {
+                               __VppDownloadPrintErr(error);
+                       }
+               }
+       }
+
+       if (cb.stateChangedCb != NULL) {
+               pItem->stateChangedCb = cb.stateChangedCb;
+               if (pItem->id > 0) {
+                       error =
+                               download_set_state_changed_cb(pItem->id,
+                                                                                         __VppDownloadStateChangedCb,
+                                                                                         pItem);
+                       if (error != DOWNLOAD_ERROR_NONE) {
+                               __VppDownloadPrintErr(error);
+                       }
+               }
+       }
+
+       if (error != DOWNLOAD_ERROR_NONE) {
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pHandle
+ * @return
+ */
+bool VppDownloadUnsetCb(VppDownloadHandle pHandle)
+{
+       __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+       download_error_e error = DOWNLOAD_ERROR_NONE;
+
+       if (pHandle == NULL) {
+               VideoLogError("pHandle == NULL");
+               return FALSE;
+       }
+
+       if (pItem->id > 0) {
+               if (pItem->progressCb != NULL) {
+                       error = download_unset_progress_cb(pItem->id);
+                       if (error != DOWNLOAD_ERROR_NONE) {
+                               __VppDownloadPrintErr(error);
+                       }
+               }
+
+               if (pItem->stateChangedCb != NULL) {
+                       error = download_unset_state_changed_cb(pItem->id);
+                       if (error != DOWNLOAD_ERROR_NONE) {
+                               __VppDownloadPrintErr(error);
+                       }
+               }
+       }
+
+       pItem->progressCb = NULL;
+       pItem->stateChangedCb = NULL;
+       pItem->pUserdata = NULL;
+
+       if (error != DOWNLOAD_ERROR_NONE) {
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pHandle
+ * @return
+ */
+bool VppDownloadRequestAppend(VppDownloadHandle pHandle)
+{
+       return __VppDownloadListAdd((__VppDownloadItem *) pHandle, TRUE);
+}
+
+/**
+ *
+ * @param pHandle
+ * @return
+ */
+bool VppDownloadRequestPrepend(VppDownloadHandle pHandle)
+{
+       return __VppDownloadListAdd((__VppDownloadItem *) pHandle, FALSE);
+}
+
+/**
+ *
+ * @param pHandle
+ * @return
+ */
+bool VppDownloadPause(VppDownloadHandle pHandle)
+{
+       __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+       if (pHandle == NULL) {
+               VideoLogError("pHandle == NULL");
+               return FALSE;
+       }
+
+       if (pItem->id <= 0) {
+               VideoLogError("pItem->id : [%d]!!!", pItem->id);
+               return FALSE;
+       }
+
+       download_error_e error = DOWNLOAD_ERROR_NONE;
+
+       error = download_pause(pItem->id);
+       if (error != DOWNLOAD_ERROR_NONE) {
+               __VppDownloadPrintErr(error);
+
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pHandle
+ * @return
+ */
+bool VppDownloadResume(VppDownloadHandle pHandle)
+{
+       return __VppDownloadStart((__VppDownloadItem *) pHandle, TRUE);
+}
+
+/**
+ *
+ * @param pHandle
+ * @return
+ */
+bool VppDownloadCancel(VppDownloadHandle pHandle)
+{
+       __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+       if (pHandle == NULL) {
+               VideoLogError("pHandle == NULL");
+               return FALSE;
+       }
+
+       if (pItem->id <= 0) {
+               VideoLogError("pItem->id : [%d]!!!", pItem->id);
+               return FALSE;
+       }
+
+       download_error_e error = DOWNLOAD_ERROR_NONE;
+
+       error = download_cancel(pItem->id);
+       if (error != DOWNLOAD_ERROR_NONE) {
+               __VppDownloadPrintErr(error);
+
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pHandle
+ * @return
+ */
+bool VppDownloadStoreVideoRestore(VppDownloadHandle pHandle)
+{
+       __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+       unsigned long long lFileSize = 0;
+
+       int nRet = 0;
+       char szTemp[32] = { 0, };
+
+       if (pHandle == NULL) {
+               VideoLogError("pHandle == NULL");
+               return FALSE;
+       }
+
+       if (pItem->pTempPath == NULL) {
+               VideoLogError("pItem->pTempPath!!!");
+               return FALSE;
+       }
+
+       if (pItem->pEtag == NULL) {
+               VideoLogError("pItem->pEtag!!!");
+               return FALSE;
+       }
+
+       nRet = download_set_temp_file_path(pItem->id, pItem->pTempPath);
+       if (nRet != DOWNLOAD_ERROR_NONE) {
+               VideoLogError("download_set_temp_file_path failed!!!");
+               __VppDownloadPrintErr(nRet);
+               return FALSE;
+       }
+
+       nRet =
+               download_add_http_header_field(pItem->id, "If-Range",
+                                                                          pItem->pEtag);
+       if (nRet != DOWNLOAD_ERROR_NONE) {
+               VideoLogError("download_add_http_header_field failed!!!");
+               __VppDownloadPrintErr(nRet);
+               return FALSE;
+       }
+
+       lFileSize =
+               (unsigned long long) vp_file_size((const char *) pItem->pTempPath);
+
+       snprintf(szTemp, sizeof(szTemp), "bytes=%llu-", lFileSize);
+
+       nRet = download_add_http_header_field(pItem->id, "Range", szTemp);
+       if (nRet != DOWNLOAD_ERROR_NONE) {
+               VideoLogError("download_add_http_header_field failed!!!");
+               __VppDownloadPrintErr(nRet);
+               return FALSE;
+       }
+
+       nRet = download_start(pItem->id);
+       if (nRet != DOWNLOAD_ERROR_NONE) {
+               VideoLogError("download_start failed!!!");
+               __VppDownloadPrintErr(nRet);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pHandle
+ * @return
+ */
+VppDownloadState VppDownloadGetState(VppDownloadHandle pHandle)
+{
+       __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+       if (pHandle == NULL) {
+               VideoLogError("pHandle == NULL");
+               return VPP_DOWNLOAD_STATE_APP_ERROR;
+       }
+
+       if (pItem->id <= 0) {
+               VideoLogError("id error: [%d]", pItem->id);
+               return VPP_DOWNLOAD_STATE_APP_ERROR;
+       }
+
+       download_error_e error = DOWNLOAD_ERROR_NONE;
+       download_state_e state = DOWNLOAD_STATE_NONE;
+
+       error = download_get_state(pItem->id, &state);
+       if (error != DOWNLOAD_ERROR_NONE) {
+               __VppDownloadPrintErr(error);
+               return VPP_DOWNLOAD_STATE_AGENT_ERROR;
+       }
+
+       return (VppDownloadState) state;
+}
+
+/**
+ *
+ * @param nDownloadId
+ * @return
+ */
+VppDownloadState VppDownloadGetStateById(int nDownloadId)
+{
+       if (nDownloadId <= 0) {
+               VideoLogError("id error: [%d]", nDownloadId);
+               return VPP_DOWNLOAD_STATE_APP_ERROR;
+       }
+
+       download_error_e error = DOWNLOAD_ERROR_NONE;
+       download_state_e state = DOWNLOAD_STATE_NONE;
+
+       error = download_get_state(nDownloadId, &state);
+       if (error != DOWNLOAD_ERROR_NONE) {
+               __VppDownloadPrintErr(error);
+               return VPP_DOWNLOAD_STATE_AGENT_ERROR;
+       }
+
+       return (VppDownloadState) state;
+}
+
+/**
+ *
+ * @param pHandle
+ * @return
+ */
+char *VppDownloadGetDownloadedFilePath(VppDownloadHandle pHandle)
+{
+       if (pHandle == NULL) {
+               VideoLogError("pHandle == NULL");
+               return NULL;
+       }
+
+       __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+       download_error_e error = DOWNLOAD_ERROR_NONE;
+
+       char *pPath = NULL;
+       char sDestPath[PATH_MAX] = { 0, };
+
+       if (pItem->id <= 0) {
+               VideoLogWarning("id error: [%d]", pItem->id);
+               return NULL;
+       }
+
+       if (pItem->pDstFolder != NULL && pItem->pDstName != NULL) {
+               if (pItem->pDstFolder[strlen(pItem->pDstFolder) - 1] == '/') {
+                       snprintf(sDestPath, PATH_MAX, "%s%s", pItem->pDstFolder,
+                                        pItem->pDstName);
+               } else {
+                       snprintf(sDestPath, PATH_MAX, "%s/%s", pItem->pDstFolder,
+                                        pItem->pDstName);
+               }
+
+               VideoSecureLogDebug("Path : [%s]:%s,%s,%d", sDestPath,
+                                                       pItem->pDstFolder[strlen(pItem->pDstFolder)],
+                                                       pItem->pDstFolder, strlen(pItem->pDstFolder));
+
+               return strdup(sDestPath);
+       } else {
+               error = download_get_downloaded_file_path(pItem->id, &pPath);
+               if (error != DOWNLOAD_ERROR_NONE) {
+                       VideoLogError("download_get_downloaded_file_path error");
+                       __VppDownloadPrintErr(error);
+
+                       if (pPath != NULL) {
+                               free(pPath);
+                               pPath = NULL;
+                       }
+               }
+
+               if (pPath != NULL) {
+                       VideoSecureLogDebug("Path : [%s]", pPath);
+                       return pPath;
+               } else {
+                       VideoLogDebug("pPath == NULL");
+                       return NULL;
+               }
+       }
+}
+
+/**
+ *
+ * @param pHandle
+ * @return
+ */
+int VppDownloadGetDownloadId(VppDownloadHandle pHandle)
+{
+       if (pHandle == NULL) {
+               VideoLogError("pHandle == NULL ");
+               return 0;
+       }
+
+       __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+       return pItem->id;
+}
+
+/**
+ *
+ * @param pHandle
+ * @param pData
+ * @return
+ */
+bool
+VppDownloadSetNotificationAppControl(VppDownloadHandle pHandle,
+                                                                        void *pData)
+{
+       download_error_e error = DOWNLOAD_ERROR_NONE;
+
+       if (pHandle == NULL) {
+               VideoLogError("pHandle == NULL ");
+               return FALSE;
+       }
+
+       if (pData == NULL) {
+               VideoLogError("pData == NULL ");
+               return FALSE;
+       }
+
+       __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+       error =
+               download_set_notification_app_control(pItem->id,
+                                                                                         DOWNLOAD_NOTIFICATION_APP_CONTROL_TYPE_ONGOING,
+                                                                                         (app_control_h) pData);
+       if (error != DOWNLOAD_ERROR_NONE) {
+               VideoLogError("download_get_downloaded_file_path error");
+               __VppDownloadPrintErr(error);
+
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pHandle
+ */
+void *VppDownloadGetNotificationAppControl(VppDownloadHandle pHandle)
+{
+       download_error_e error = DOWNLOAD_ERROR_NONE;
+       app_control_h *b = NULL;
+
+       if (pHandle == NULL) {
+               VideoLogError("pHandle == NULL ");
+               return NULL;
+       }
+
+       __VppDownloadItem *pItem = (__VppDownloadItem *) pHandle;
+
+       error =
+               download_get_notification_app_control(pItem->id,
+                                                                                         DOWNLOAD_NOTIFICATION_APP_CONTROL_TYPE_ONGOING,
+                                                                                         b);
+       if (error != DOWNLOAD_ERROR_NONE) {
+               VideoLogError("download_get_downloaded_file_path error");
+               __VppDownloadPrintErr(error);
+
+               return NULL;
+       }
+
+       return (void *) b;
+}
+
+
+///////////////////////////////////////////////////////////////////////////////////////////
+//  local function implementations
+///////////////////////////////////////////////////////////////////////////////////////////
+
+/**
+ *
+ * @param err
+ */
+void __VppDownloadPrintErr(download_error_e err)
+{
+       switch (err) {
+       case DOWNLOAD_ERROR_NONE:{
+                       VideoLogError("err == DOWNLOAD_ERROR_NONE");
+               }
+               break;
+       case DOWNLOAD_ERROR_INVALID_PARAMETER:{
+                       VideoLogError("err == DOWNLOAD_ERROR_INVALID_PARAMETER");
+               }
+               break;
+       case DOWNLOAD_ERROR_OUT_OF_MEMORY:{
+                       VideoLogError("err == DOWNLOAD_ERROR_OUT_OF_MEMORY");
+               }
+               break;
+       case DOWNLOAD_ERROR_NETWORK_UNREACHABLE:{
+                       VideoLogError("err == DOWNLOAD_ERROR_NETWORK_UNREACHABLE");
+               }
+               break;
+       case DOWNLOAD_ERROR_CONNECTION_TIMED_OUT:{
+                       VideoLogError("err == DOWNLOAD_ERROR_CONNECTION_TIMED_OUT");
+               }
+               break;
+       case DOWNLOAD_ERROR_NO_SPACE:{
+                       VideoLogError("err == DOWNLOAD_ERROR_NO_SPACE");
+               }
+               break;
+       case DOWNLOAD_ERROR_FIELD_NOT_FOUND:{
+                       VideoLogError("err == DOWNLOAD_ERROR_FIELD_NOT_FOUND");
+               }
+               break;
+       case DOWNLOAD_ERROR_INVALID_STATE:{
+                       VideoLogError("err == DOWNLOAD_ERROR_INVALID_STATE");
+               }
+               break;
+       case DOWNLOAD_ERROR_CONNECTION_FAILED:{
+                       VideoLogError("err == DOWNLOAD_ERROR_CONNECTION_FAILED");
+               }
+               break;
+       case DOWNLOAD_ERROR_INVALID_URL:{
+                       VideoLogError("err == DOWNLOAD_ERROR_INVALID_URL");
+               }
+               break;
+       case DOWNLOAD_ERROR_INVALID_DESTINATION:{
+                       VideoLogError("err == DOWNLOAD_ERROR_INVALID_DESTINATION");
+               }
+               break;
+       case DOWNLOAD_ERROR_TOO_MANY_DOWNLOADS:{
+                       VideoLogError("err == DOWNLOAD_ERROR_TOO_MANY_DOWNLOADS");
+               }
+               break;
+       case DOWNLOAD_ERROR_QUEUE_FULL:{
+                       VideoLogError("err == DOWNLOAD_ERROR_QUEUE_FULL");
+               }
+               break;
+       case DOWNLOAD_ERROR_ALREADY_COMPLETED:{
+                       VideoLogError("err == DOWNLOAD_ERROR_ALREADY_COMPLETED");
+               }
+               break;
+       case DOWNLOAD_ERROR_FILE_ALREADY_EXISTS:{
+                       VideoLogError("err == DOWNLOAD_ERROR_FILE_ALREADY_EXISTS");
+               }
+               break;
+       case DOWNLOAD_ERROR_TOO_MANY_REDIRECTS:{
+                       VideoLogError("err == DOWNLOAD_ERROR_TOO_MANY_REDIRECTS");
+               }
+               break;
+       case DOWNLOAD_ERROR_UNHANDLED_HTTP_CODE:{
+                       VideoLogError("err == DOWNLOAD_ERROR_UNHANDLED_HTTP_CODE");
+               }
+               break;
+       case DOWNLOAD_ERROR_NO_DATA:{
+                       VideoLogError("err == DOWNLOAD_ERROR_NO_DATA");
+               }
+               break;
+       case DOWNLOAD_ERROR_IO_ERROR:{
+                       VideoLogError("err == DOWNLOAD_ERROR_IO_ERROR");
+               }
+               break;
+       default:{
+                       VideoLogError("UNKNOW err == [%d]", err);
+               }
+               break;
+       }
+}
+
+/**
+ *
+ */
+void __VppDownloadListInitialize()
+{
+       if (g_download_list != NULL) {
+               __VppDestoryDownloadListDestory();
+       }
+
+       g_download_list = calloc(1, sizeof(__VppDownloadListData));
+}
+
+/**
+ *
+ */
+void __VppDestoryDownloadListDestory()
+{
+       if (g_download_list == NULL) {
+               VideoLogError("g_download_list == NULL!!!");
+               return;
+       }
+
+       if (g_download_list->downloadTimer != NULL) {
+               ecore_timer_del(g_download_list->downloadTimer);
+               g_download_list->downloadTimer = NULL;
+       }
+
+       if (g_download_list->downloadList != NULL) {
+               if (__VppDownloadListCount() > 0) {
+                       VideoLogError
+                               ("list count error[%d]!!!. some data are not destoryed!!!",
+                                __VppDownloadListCount());
+               }
+
+               Eina_List *l;
+               __VppDownloadItem *pItem;
+
+               EINA_LIST_FOREACH(g_download_list->downloadList, l, pItem) {
+                       if (pItem != NULL) {
+                               VideoLogError("list item is not freed!!!");
+                               VideoSecureLogError
+                                       ("list item type[%d], url[%s], pDstFolder[%s], pDstName[%s]!!!",
+                                        pItem->eType, pItem->pDownloadUrl, pItem->pDstFolder,
+                                        pItem->pDstName);
+
+                               VppDownloadDestroyItem(pItem);
+                       }
+               }
+
+               eina_list_free(g_download_list->downloadList);
+               g_download_list->downloadList = NULL;
+       }
+
+       free(g_download_list);
+       g_download_list = NULL;
+}
+
+/**
+ *
+ * @param pItem
+ * @return
+ */
+bool __VppDownloadCreate(__VppDownloadItem * pItem)
+{
+       download_error_e error = DOWNLOAD_ERROR_NONE;
+
+       error = download_create(&(pItem->id));
+       if (error != DOWNLOAD_ERROR_NONE) {
+               VideoLogError("download_create error");
+               goto ERROR_HANDLE;
+       }
+
+       error =
+               download_set_url(pItem->id, (const char *) pItem->pDownloadUrl);
+       if (error != DOWNLOAD_ERROR_NONE) {
+               VideoLogError("download_set_url error");
+               goto ERROR_HANDLE;
+       }
+
+       error =
+               download_set_destination(pItem->id,
+                                                                (const char *) (pItem->pDstFolder));
+       if (error != DOWNLOAD_ERROR_NONE) {
+               VideoLogError("download_set_destination error");
+               goto ERROR_HANDLE;
+       }
+
+       if (pItem->pDstName != NULL) {
+               char szDestName[PATH_MAX] = { 0, };
+
+               if (pItem->eType != VPP_DOWNLOAD_ITEM_TYPE_VIDEO_FILE
+                       && pItem->eType != VPP_DOWNLOAD_ITEM_TYPE_STORE_VIDEO_FILE) {
+                       snprintf(szDestName, PATH_MAX, "%s%s", pItem->pDstName,
+                                        ".temp");
+               } else {
+                       int dstlength = strlen(pItem->pDstName);
+                       if (dstlength + 1 <= PATH_MAX) {
+                               strncpy(szDestName, pItem->pDstName, dstlength + 1);
+                       }
+               }
+
+               error =
+                       download_set_file_name(pItem->id, (const char *) szDestName);
+               if (error != DOWNLOAD_ERROR_NONE) {
+                       VideoLogError("download_set_file_name error");
+                       goto ERROR_HANDLE;
+               }
+       }
+
+       if (pItem->bSetNoti == TRUE) {
+               error =
+                       download_set_notification_type(pItem->id,
+                                                                                  DOWNLOAD_NOTIFICATION_TYPE_ALL);
+       } else {
+               error =
+                       download_set_notification_type(pItem->id,
+                                                                                  DOWNLOAD_NOTIFICATION_TYPE_NONE);
+       }
+
+       if (error != DOWNLOAD_ERROR_NONE) {
+               VideoLogError("download_set_notification error");
+               goto ERROR_HANDLE;
+       }
+
+       VppDownloadCallback cb = { 0, };
+       cb.progressCb = pItem->progressCb;
+       cb.stateChangedCb = pItem->stateChangedCb;
+
+       if (VppDownloadSetCb((VppDownloadHandle) pItem, cb, pItem->pUserdata)
+               == FALSE) {
+               VideoLogError("VppDownloadSetCb error");
+               VppDownloadDestroyItem((VppDownloadHandle) pItem);
+
+               return FALSE;
+       }
+
+       return TRUE;
+
+  ERROR_HANDLE:
+       __VppDownloadPrintErr(error);
+
+       if (pItem->id > 0) {
+               error = download_destroy(pItem->id);
+               if (error != DOWNLOAD_ERROR_NONE) {
+                       VideoLogError("download_destroy error");
+                       __VppDownloadPrintErr(error);
+               }
+
+               pItem->id = 0;
+       }
+
+       return FALSE;
+}
+
+/**
+ *
+ * @param pItem
+ * @param bResume
+ * @return
+ */
+bool __VppDownloadStart(__VppDownloadItem * pItem, bool bResume)
+{
+       if (pItem == NULL) {
+               VideoLogError("pItem == NULL!!!");
+               return FALSE;
+       }
+
+       if (pItem->id <= 0) {
+               VideoLogError("pItem->id : [%d]!!!", pItem->id);
+               return FALSE;
+       }
+
+       if (bResume == FALSE) {
+               VideoLogDebug("download start!!!");
+       } else {
+               VideoLogDebug("download resume!!!");
+       }
+
+       download_error_e error = DOWNLOAD_ERROR_NONE;
+
+       if (pItem->eType == VPP_DOWNLOAD_ITEM_TYPE_STORE_VIDEO_FILE) {
+               error = download_set_auto_download(pItem->id, TRUE);
+               if (error != DOWNLOAD_ERROR_NONE) {
+                       VideoLogError("download_set_auto_download error!!!");
+                       __VppDownloadPrintErr(error);
+               }
+       }
+
+       error = download_start(pItem->id);
+       if (error != DOWNLOAD_ERROR_NONE) {
+               VideoLogError("download_start error!!!");
+               __VppDownloadPrintErr(error);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param download_id
+ * @param state
+ * @param user_data
+ */
+static void
+__VppDownloadStateChangedCb(int download_id, download_state_e state,
+                                                       void *user_data)
+{
+       __VppDownloadItem *pItem = (__VppDownloadItem *) user_data;
+
+       VideoLogDebug("state : [%d]", state);
+
+       if (user_data == NULL) {
+               VideoLogError("user_data == NULL!!!");
+               return;
+       }
+
+       if (pItem->eType == VPP_DOWNLOAD_ITEM_TYPE_STORE_VIDEO_FILE
+               && state == DOWNLOAD_STATE_DOWNLOADING) {
+               int nRet = 0;
+               if (pItem->pTempPath != NULL) {
+                       free(pItem->pTempPath);
+                       pItem->pTempPath = NULL;
+               }
+               nRet = download_get_temp_path(pItem->id, &pItem->pTempPath);
+               if (nRet != DOWNLOAD_ERROR_NONE) {
+                       VideoLogError("download_get_temp_path failed!!!");
+                       __VppDownloadPrintErr((download_error_e) nRet);
+               }
+
+
+               if (pItem->pEtag != NULL) {
+                       free(pItem->pEtag);
+                       pItem->pEtag = NULL;
+               }
+               nRet = download_get_etag(pItem->id, &pItem->pEtag);
+               if (nRet != DOWNLOAD_ERROR_NONE) {
+                       VideoLogError("download_get_temp_path failed!!!");
+                       __VppDownloadPrintErr((download_error_e) nRet);
+               }
+       }
+
+       if (state >= DOWNLOAD_STATE_COMPLETED
+               && state <= DOWNLOAD_STATE_CANCELED) {
+               if (pItem->bDownloading == TRUE) {
+                       pItem->bDownloading = FALSE;
+
+                       if (pItem->eType < VPP_DOWNLOAD_ITEM_TYPE_STORE_VIDEO_FILE
+                               || pItem->eType >
+                               VPP_DOWNLOAD_ITEM_TYPE_VIDEO_CAPTION_FILE) {
+                               --(g_download_list->currentDownloadingCount);
+                       }
+               }
+       }
+
+       VppDownloadPipeData pipeData = { 0, };
+
+       pipeData.eCbType = VPP_DOWNLOAD_CB_TYPE_STATE_CHANGED;
+       pipeData.eState = (VppDownloadState) state;
+       pipeData.pItem = pItem;
+
+       ecore_pipe_write(pItem->pDownloadPipe, &pipeData,
+                                        sizeof(VppDownloadPipeData));
+}
+
+/**
+ *
+ * @param download_id
+ * @param received
+ * @param user_data
+ */
+static void
+__VppDownloadProgressCb(int download_id, unsigned long long received,
+                                               void *user_data)
+{
+       __VppDownloadItem *pItem = (__VppDownloadItem *) user_data;
+
+       VppDownloadPipeData pipeData = { 0, };
+
+       if (user_data == NULL) {
+               VideoLogError("user_data == NULL!!!");
+               return;
+       }
+
+       pipeData.eCbType = VPP_DOWNLOAD_CB_TYPE_PROGRESS;
+       pipeData.eState = VPP_DOWNLOAD_STATE_DOWNLOADING;
+       pipeData.pItem = (__VppDownloadItem *) user_data;
+       pipeData.received = received;
+
+       ecore_pipe_write(pItem->pDownloadPipe, &pipeData,
+                                        sizeof(VppDownloadPipeData));
+}
+
+/**
+ *
+ * @return
+ */
+unsigned int __VppDownloadListCount()
+{
+       if (g_download_list != NULL && g_download_list->downloadList != NULL) {
+               if (g_download_list->downloadList->accounting != NULL) {
+                       return eina_list_count(g_download_list->downloadList);
+               }
+       }
+
+       return 0;
+}
+
+/**
+ *
+ * @param pItem
+ * @param bAppend
+ * @return
+ */
+bool __VppDownloadListAdd(__VppDownloadItem * pItem, bool bAppend)
+{
+       if (pItem == NULL) {
+               VideoLogError("pItem == NULL!!!");
+               return FALSE;
+       }
+
+       if (g_download_list == NULL) {
+               __VppDownloadListInitialize();
+       }
+
+       if (g_download_list == NULL) {
+               return FALSE;
+       }
+
+       if (bAppend == TRUE) {
+               g_download_list->downloadList =
+                       eina_list_append(g_download_list->downloadList,
+                                                        (void *) pItem);
+
+               if (g_download_list->downloadList == NULL) {
+                       VideoLogError("eina_list_append faile !!!");
+                       return FALSE;
+               }
+       } else {
+               g_download_list->downloadList =
+                       eina_list_prepend(g_download_list->downloadList,
+                                                         (void *) pItem);
+
+               if (g_download_list->downloadList == NULL) {
+                       VideoLogError("eina_list_prepend faile !!!");
+                       return FALSE;
+               }
+       }
+
+       __VppDownloadListNextTrigger();
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pItem
+ */
+void __VppDownloadListRemove(__VppDownloadItem * pItem)
+{
+       if (pItem == NULL) {
+               VideoLogError("pItem == NULL!!!");
+               return;
+       }
+
+       if (g_download_list == NULL) {
+               VideoLogError("g_download_list == NULL!!!");
+               return;
+       }
+
+       if (g_download_list->downloadList == NULL) {
+               VideoLogError("g_download_list->downloadList == NULL!!!");
+               return;
+       }
+
+       g_download_list->downloadList =
+               eina_list_remove(g_download_list->downloadList, (void *) pItem);
+       if (__VppDownloadListCount() <= 0) {
+               __VppDestoryDownloadListDestory();
+       }
+}
+
+
+/**
+ *
+ */
+void __VppDownloadListNextTrigger()
+{
+       if (g_download_list == NULL) {
+               VideoLogError("g_download_list == NULL!!!");
+               return;
+       }
+
+       if (g_download_list->downloadList == NULL) {
+               VideoLogError("g_download_list->downloadList == NULL!!!");
+               return;
+       }
+
+       if (g_download_list->currentDownloadingCount > 5) {
+               __VppDownloadStartTimer();
+               return;
+       }
+
+       Eina_List *l;
+       __VppDownloadItem *pItem;
+
+       EINA_LIST_FOREACH(g_download_list->downloadList, l, pItem) {
+               if (pItem == NULL) {
+                       continue;
+               }
+
+               if (pItem->bDownloading == TRUE) {
+                       continue;
+               }
+
+               if (pItem->id <= 0) {
+                       if (__VppDownloadCreate(pItem) == FALSE) {
+                               VideoLogError("__VppDownloadCreate faile !!!");
+                               __VppDownloadStartTimer();
+                               return;
+                       }
+               }
+
+               VppDownloadState eState =
+                       VppDownloadGetState((VppDownloadHandle) pItem);
+               VideoLogDebug("eState : [%d]", eState);
+
+               if (eState == VPP_DOWNLOAD_STATE_PAUSED) {
+                       pItem->bDownloading = TRUE;
+                       ++(g_download_list->currentDownloadingCount);
+               } else {
+                       if (__VppDownloadStart(pItem, FALSE) == TRUE) {
+                               pItem->bDownloading = TRUE;
+                               ++(g_download_list->currentDownloadingCount);
+                       } else {
+                               VideoSecureLogError
+                                       ("__VppDownloadStart faile : [%s : %s]!!!",
+                                        pItem->pDstFolder, pItem->pDstName);
+                               __VppDownloadStartTimer();
+                               return;
+                       }
+               }
+       }
+}
+
+/**
+ *
+ */
+void __VppDownloadStartTimer()
+{
+       if (g_download_list == NULL) {
+               VideoLogError("g_download_list == NULL!!!");
+               return;
+       }
+
+       if (g_download_list->downloadTimer != NULL) {
+               ecore_timer_del(g_download_list->downloadTimer);
+               g_download_list->downloadTimer = NULL;
+       }
+
+       g_download_list->downloadTimer =
+               ecore_timer_add(1.0, __VppDownloadTimerCb, g_download_list);
+}
+
+/**
+ *
+ * @param data
+ * @param pdata
+ * @param nbyte
+ */
+static void
+__VppDownloadPipeCb(void *data, void *pdata, unsigned int nbyte)
+{
+       VppDownloadPipeData *pPipeData = NULL;
+       __VppDownloadItem *pItem = NULL;
+
+       if (pdata == NULL) {
+               VideoLogError("pdata == NULL!!!");
+               return;
+       }
+
+       pPipeData = (VppDownloadPipeData *) pdata;;
+       pItem = pPipeData->pItem;
+
+       if (pItem == NULL) {
+               VideoLogError("pItem == NULL!!!");
+               return;
+       }
+
+       if (pPipeData->eCbType == VPP_DOWNLOAD_CB_TYPE_STATE_CHANGED) {
+               char *pDstPath =
+                       VppDownloadGetDownloadedFilePath((VppDownloadHandle) pItem);
+
+               if (pPipeData->eState == VPP_DOWNLOAD_STATE_COMPLETED) {
+                       char *pTempDstPath = NULL;
+                       int error = 0;
+
+                       error =
+                               download_get_downloaded_file_path(pItem->id,
+                                                                                                 &pTempDstPath);
+                       if (error != DOWNLOAD_ERROR_NONE) {
+                               VideoLogError("download_get_downloaded_file_path error");
+                               __VppDownloadPrintErr((download_error_e) error);
+                       } else {
+                               if (pTempDstPath != NULL && pDstPath != NULL) {
+                                       if (strcmp(pTempDstPath, pDstPath) != 0) {
+                                               if (vp_file_exists((const char *) pDstPath) ==
+                                                       EINA_TRUE) {
+                                                       vp_file_unlink((const char *) pDstPath);
+                                               }
+
+                                               if (vp_file_mv(pTempDstPath, pDstPath) !=
+                                                       EINA_TRUE) {
+                                                       VideoSecureLogError
+                                                               ("vp_file_mv failed!!! src : [%s], dst : [%s]",
+                                                                pTempDstPath, pDstPath);
+                                               }
+                                       }
+                               }
+                       }
+
+                       if (pTempDstPath != NULL) {
+                               free(pTempDstPath);
+                               pTempDstPath = NULL;
+                       }
+               }
+
+               if (pItem->stateChangedCb != NULL) {
+                       pItem->stateChangedCb((VppDownloadHandle) pItem,
+                                                                 pPipeData->eState,
+                                                                 (const char *) pDstPath,
+                                                                 pItem->pUserdata);
+               }
+
+               if (pDstPath != NULL) {
+                       free(pDstPath);
+                       pDstPath = NULL;
+               }
+       } else {
+               if (pItem->progressCb != NULL) {
+                       unsigned long long contentTotalSize = 0;
+                       download_error_e error =
+                               download_get_content_size(pItem->id, &contentTotalSize);
+                       if (error != DOWNLOAD_ERROR_NONE) {
+                               VideoLogError("download_get_content_size error");
+                               __VppDownloadPrintErr(error);
+                               return;
+                       }
+
+                       pItem->progressCb((VppDownloadHandle) pItem,
+                                                         pPipeData->received, contentTotalSize,
+                                                         pItem->pUserdata);
+               }
+       }
+}
+
+/**
+ *
+ * @param data
+ * @return
+ */
+static Eina_Bool __VppDownloadTimerCb(void *data)
+{
+       if (g_download_list == NULL) {
+               goto TIMER_CB_RETURN;
+       }
+
+       if (g_download_list->downloadList == NULL) {
+               goto TIMER_CB_RETURN;
+       }
+
+       int cnt = __VppDownloadListCount();
+
+       if (cnt <= 0) {
+               goto TIMER_CB_RETURN;
+       }
+
+       __VppDownloadListNextTrigger();
+
+  TIMER_CB_RETURN:
+       if (g_download_list != NULL) {
+               g_download_list->downloadTimer = NULL;
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+/**
+ *
+ * @param pDataItem
+ */
+void VppDownloadResetUserData(void *pDataItem)
+{
+       __VppDownloadItem *pItem = (__VppDownloadItem *) pDataItem;
+
+       pItem->pUserdata = NULL;
+}
diff --git a/vp-main/.cproject b/vp-main/.cproject
new file mode 100755 (executable)
index 0000000..4b30158
--- /dev/null
@@ -0,0 +1,832 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+       <storageModule moduleId="org.eclipse.cdt.core.settings">
+               <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.app.debug.421564615">
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.debug.421564615" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+                               <externalSettings/>
+                               <extensions>
+                                       <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+                                       <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                               </extensions>
+                       </storageModule>
+                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+                               <configuration artifactName="video-player" buildArtefactType="org.tizen.nativecore.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.app,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.app.debug.421564615" name="Debug" parent="org.tizen.nativecore.config.sbi.gcc45.app.debug">
+                                       <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.debug.421564615." name="/" resourcePath="">
+                                               <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug.1145418711" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug">
+                                                       <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.270407117" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+                                                       <builder autoBuildTarget="all" buildPath="${workspace_loc:/vp-main}/Debug" enableAutoBuild="true" id="org.tizen.nativecore.target.sbi.gnu.builder.130720797" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecore.target.sbi.gnu.builder">
+                                                               <outputEntries>
+                                                                       <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Debug"/>
+                                                                       <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Release"/>
+                                                               </outputEntries>
+                                                       </builder>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.532670730" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.536960338" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+                                                               <option id="gnu.cpp.compiler.option.optimization.level.930514732" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
+                                                               <option defaultValue="gnu.cpp.compiler.debugging.level.max" id="sbi.gnu.cpp.compiler.option.debugging.level.core.1665203834" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+                                                               <option id="sbi.gnu.cpp.compiler.option.38649999" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-4.0-emulator.core_llvm40.i386"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.1410143195" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/asp/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cbhm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/csr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/privacy-privilege-manager/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/SDL2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tef&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tzsh&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui-viewmgr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/vulkan&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/yaca&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.1364714478" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.compiler.option.include.paths.1187648910" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="../vp-main/inc"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/asp/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cbhm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/csr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/privacy-privilege-manager/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/SDL2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tef&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tzsh&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui-viewmgr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/vulkan&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/yaca&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks.core.1986041556" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.compiler.option.preprocessor.def.167573098" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
+                                                                       <listOptionValue builtIn="false" value="url_download_h"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1868925416" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+                                                       </tool>
+                                                       <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.2128608195" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
+                                                               <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.632056996" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+                                                               <option defaultValue="gnu.c.debugging.level.max" id="sbi.gnu.c.compiler.option.debugging.level.core.1433403657" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+                                                               <option id="sbi.gnu.c.compiler.option.296105968" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-4.0-emulator.core_llvm40.i386"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.471136444" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/asp/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cbhm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/csr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/privacy-privilege-manager/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/SDL2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tef&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tzsh&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui-viewmgr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/vulkan&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/yaca&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.2038012840" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </option>
+                                                               <option id="gnu.c.compiler.option.include.paths.427317944" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/playview/src/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/csf&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony-client&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ug-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/vconf&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/vp-main/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/vp-main/vp-main/inc}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/playview/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/common/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/include/common}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/include/feature}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/include/view}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/include/viewMgr}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/include/widget}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/vp-main/include/serviceParser}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/vp-main/playview/src/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/playview/src/core/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/playview/src/common/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/playview/src/feature/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/playview/src/view/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/playview/src/widget/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/common/src/include}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/asp/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cbhm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/csr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/privacy-privilege-manager/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/SDL2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tef&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tzsh&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui-viewmgr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/vulkan&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/yaca&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks.core.501359575" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <option id="gnu.c.compiler.option.preprocessor.def.symbols.792902822" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
+                                                                       <listOptionValue builtIn="false" value="VS_FEATURE_THUMBNAIL_VIEW"/>
+                                                                       <listOptionValue builtIn="false" value="VS_FEATURE_FOLDER_VIEW"/>
+                                                                       <listOptionValue builtIn="false" value="SUBTITLE_K_FEATURE"/>
+                                                                       <listOptionValue builtIn="false" value="ENABLE_VOLUME_BRIGHTNESS_POPUP"/>
+                                                                       <listOptionValue builtIn="false" value="_SUBTITLE_MULTI_LANGUAGE"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.256391318" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.84495529" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.665836440" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+                                                               <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.1477578873" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="-pie -lpthread "/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker -rpath=&quot;/home/developer/sdk_tools/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker --version-script=&quot;${PROJ_PATH}/.exportMap&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.link.option.paths.1756983383" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths"/>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.707272681" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+                                                                       <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+                                                                       <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+                                                               </inputType>
+                                                       </tool>
+                                                       <tool command="i386-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.1601106623" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+                                                               <option id="gnu.both.asm.option.include.paths.1546882937" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="../vp-main/inc"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/video-player/include}&quot;"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.assembler.input.19345659" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.1665761074" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.1741858927" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.238680757" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.cpp.531032416" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.2044244722" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.po.compiler.1575895817" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.523652733" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler">
+                                                               <option command="-id " id="sbi.gnu.edc.compiler.option.misc.id.1110218062" name="Image Path (-id)" superClass="sbi.gnu.edc.compiler.option.misc.id" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}/edje/images&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/playview/res/edje/images}&quot;"/>
+                                                               </option>
+                                                       </tool>
+                                               </toolChain>
+                                       </folderInfo>
+                                       <sourceEntries>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="common"/>
+                                               <entry excluding="res/edje/custom/pv-custom-layout.edc|res/edje/custom/pv-custom-naviframe.edc|res/edje/custom/pv-custom-genlist-item.edc|res/edje/custom/pv-custom-gengrid-item.edc|res/edje/custom/pv-custom-colorselector.edc|res/edje/custom/pv-custom-button.edc|src/view/vp-play-multi-view.c|res/edje/" flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="playview"/>
+                                               <entry excluding="edje/custom/pv-custom-button.edc|edje/custom/pv-custom-colorselector.edc|edje/custom/pv-custom-gengrid-item.edc|edje/custom/pv-custom-genlist-item.edc|edje/custom/pv-custom-layout.edc|edje/custom/pv-custom-naviframe.edc" flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="res"/>
+                                               <entry excluding="common/mp-video-streaming-ctrl.c|feature/mp-video-url-downloader-ctrl.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
+                                       </sourceEntries>
+                               </configuration>
+                       </storageModule>
+                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+               </cconfiguration>
+               <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.app.release.87516547">
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.release.87516547" moduleId="org.eclipse.cdt.core.settings" name="Release">
+                               <externalSettings/>
+                               <extensions>
+                                       <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+                                       <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                               </extensions>
+                       </storageModule>
+                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+                               <configuration artifactName="org.tizen.video-player" buildArtefactType="org.tizen.nativecore.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.app,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.app.release.87516547" name="Release" parent="org.tizen.nativecore.config.sbi.gcc45.app.release">
+                                       <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.release.87516547." name="/" resourcePath="">
+                                               <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.release.56797286" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.app.release">
+                                                       <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.198762337" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+                                                       <builder buildPath="${workspace_loc:/vp-main}/Release" id="org.tizen.nativecore.target.sbi.gnu.builder.572657410" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecore.target.sbi.gnu.builder"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.1547587325" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.148650553" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+                                                               <option id="gnu.cpp.compiler.option.optimization.level.624673297" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
+                                                               <option defaultValue="gnu.cpp.compiler.debugging.level.default" id="sbi.gnu.cpp.compiler.option.debugging.level.core.1395317510" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+                                                               <option id="sbi.gnu.cpp.compiler.option.2048375207" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-4.0-emulator.core_llvm40.i386"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.23242580" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/asp/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cbhm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/csr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/privacy-privilege-manager/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/SDL2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tef&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tzsh&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui-viewmgr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/vulkan&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/yaca&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.212893746" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.compiler.option.include.paths.1954657230" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks.core.1284105464" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.718378865" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+                                                       </tool>
+                                                       <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.1258110340" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
+                                                               <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.option.optimization.level.680368213" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+                                                               <option defaultValue="gnu.c.debugging.level.default" id="sbi.gnu.c.compiler.option.debugging.level.core.802110081" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+                                                               <option id="sbi.gnu.c.compiler.option.1422201275" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-4.0-emulator.core_llvm40.i386"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1015845140" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/asp/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cbhm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/csr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/privacy-privilege-manager/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/SDL2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tef&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tzsh&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui-viewmgr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/vulkan&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/yaca&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.1995440368" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </option>
+                                                               <option id="gnu.c.compiler.option.include.paths.1061929575" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks.core.1485437004" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1646460364" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1620889661" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.557501076" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+                                                               <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.168083430" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="-pie -lpthread "/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker -rpath=&quot;/home/developer/sdk_tools/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker --version-script=&quot;${PROJ_PATH}/.exportMap&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.link.option.paths.633169776" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib}&quot;"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1048235637" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+                                                                       <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+                                                                       <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+                                                               </inputType>
+                                                       </tool>
+                                                       <tool command="i386-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.250986481" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.assembler.input.82348497" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.1244149308" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.714507889" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.1435972255" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.cpp.55409204" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.598467471" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.po.compiler.1039889121" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.1180089543" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler"/>
+                                               </toolChain>
+                                       </folderInfo>
+                                       <sourceEntries>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+                                       </sourceEntries>
+                               </configuration>
+                       </storageModule>
+                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+               </cconfiguration>
+       </storageModule>
+       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+               <project id="vp-main.org.tizen.nativecore.target.sbi.gcc45.app.878879350" name="Tizen Native Application" projectType="org.tizen.nativecore.target.sbi.gcc45.app"/>
+       </storageModule>
+       <storageModule moduleId="scannerConfiguration">
+               <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+               <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.app.release.87516547">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+               </scannerConfigBuildInfo>
+               <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.app.debug.421564615">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+               </scannerConfigBuildInfo>
+       </storageModule>
+       <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+       <storageModule moduleId="refreshScope"/>
+</cproject>
diff --git a/vp-main/.exportMap b/vp-main/.exportMap
new file mode 100755 (executable)
index 0000000..43e310e
--- /dev/null
@@ -0,0 +1,4 @@
+{
+       global: main;
+       local: *;
+};
diff --git a/vp-main/.project b/vp-main/.project
new file mode 100755 (executable)
index 0000000..20a8611
--- /dev/null
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>vp-main</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.tizen.nativecore.apichecker.apicheckerbuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+                       <triggers>full,incremental,</triggers>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.cdt.core.cnature</nature>
+               <nature>org.eclipse.cdt.core.ccnature</nature>
+               <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+               <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+               <nature>org.tizen.nativecore.apichecker.apicheckernature</nature>
+       </natures>
+       <linkedResources>
+               <link>
+                       <name>common</name>
+                       <type>2</type>
+                       <locationURI>PARENT-1-PROJECT_LOC/common</locationURI>
+               </link>
+               <link>
+                       <name>playview</name>
+                       <type>2</type>
+                       <locationURI>PARENT-1-PROJECT_LOC/playview</locationURI>
+               </link>
+               <link>
+                       <name>include/common</name>
+                       <type>2</type>
+                       <locationURI>PARENT-1-PROJECT_LOC/include/common</locationURI>
+               </link>
+               <link>
+                       <name>include/feature</name>
+                       <type>2</type>
+                       <locationURI>PARENT-1-PROJECT_LOC/include/feature</locationURI>
+               </link>
+               <link>
+                       <name>include/view</name>
+                       <type>2</type>
+                       <locationURI>PARENT-1-PROJECT_LOC/include/view</locationURI>
+               </link>
+               <link>
+                       <name>include/viewMgr</name>
+                       <type>2</type>
+                       <locationURI>PARENT-1-PROJECT_LOC/include/viewMgr</locationURI>
+               </link>
+               <link>
+                       <name>include/widget</name>
+                       <type>2</type>
+                       <locationURI>PARENT-1-PROJECT_LOC/include/widget</locationURI>
+               </link>
+               <link>
+                       <name>src/common</name>
+                       <type>2</type>
+                       <locationURI>PARENT-1-PROJECT_LOC/src/common</locationURI>
+               </link>
+               <link>
+                       <name>src/feature</name>
+                       <type>2</type>
+                       <locationURI>PARENT-1-PROJECT_LOC/src/feature</locationURI>
+               </link>
+               <link>
+                       <name>src/view</name>
+                       <type>2</type>
+                       <locationURI>PARENT-1-PROJECT_LOC/src/view</locationURI>
+               </link>
+               <link>
+                       <name>src/viewMgr</name>
+                       <type>2</type>
+                       <locationURI>PARENT-1-PROJECT_LOC/src/viewMgr</locationURI>
+               </link>
+               <link>
+                       <name>src/widget</name>
+                       <type>2</type>
+                       <locationURI>PARENT-1-PROJECT_LOC/src/widget</locationURI>
+               </link>
+       </linkedResources>
+       <filteredResources>
+               <filter>
+                       <id>1454502827219</id>
+                       <name></name>
+                       <type>26</type>
+                       <matcher>
+                               <id>org.eclipse.ui.ide.multiFilter</id>
+                               <arguments>1.0-projectRelativePath-matches-false-false-*/.tpk</arguments>
+                       </matcher>
+               </filter>
+               <filter>
+                       <id>1454502827221</id>
+                       <name></name>
+                       <type>6</type>
+                       <matcher>
+                               <id>org.eclipse.ui.ide.multiFilter</id>
+                               <arguments>1.0-name-matches-false-false-project_def.prop</arguments>
+                       </matcher>
+               </filter>
+       </filteredResources>
+</projectDescription>
diff --git a/vp-main/.tproject b/vp-main/.tproject
new file mode 100755 (executable)
index 0000000..468a834
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<tproject xmlns="http://www.tizen.org/tproject">
+    <platforms>
+        <platform>
+            <name>mobile-4.0</name>
+        </platform>
+    </platforms>
+    <package>
+        <blacklist/>
+        <resFallback autoGen="true"/>
+    </package>
+</tproject>
diff --git a/vp-main/Build/appendix.mk b/vp-main/Build/appendix.mk
new file mode 100755 (executable)
index 0000000..2e06c34
--- /dev/null
@@ -0,0 +1 @@
+# Appendix\r
diff --git a/vp-main/Build/basedef.mk b/vp-main/Build/basedef.mk
new file mode 100755 (executable)
index 0000000..a762983
--- /dev/null
@@ -0,0 +1,34 @@
+# Add inputs and outputs from these tool invocations to the build variables
+
+
+OS_NAME := $(shell $(UNAME))
+
+
+#ifeq ($(origin BUILD_CONFIG), undefined)
+BUILD_CONFIG ?= Debug
+#endif
+
+#ifeq ($(origin ARCH), undefined)
+ARCH ?= i386
+#endif
+
+#ifeq ($(origin PROJPATH), undefined)
+PROJPATH ?= .
+#endif
+
+
+#ifeq ($(origin PROJ_PATH), undefined)
+PROJ_PATH ?= $(PROJPATH)
+#endif
+
+#ifeq ($(strip $(OUTPUT_DIR)),)
+#OUTPUT_DIR ?= $(PROJ_PATH)/$(BUILD_CONFIG)
+#endif
+
+#ifeq ($(strip $(BUILD_ARCH)),)
+BUILD_ARCH ?= $(ARCH)
+#endif
+
+#ifeq ($(strip $(ENVENTOR_PATH)),)
+ENVENTOR_PATH ?= $(SDK_TOOLPATH)/enventor
+#endif
diff --git a/vp-main/Build/build_c.mk b/vp-main/Build/build_c.mk
new file mode 100755 (executable)
index 0000000..5fffeea
--- /dev/null
@@ -0,0 +1,113 @@
+# C/C++ build script
+
+
+_FUNC_EXT2O = $(patsubst %.$(3),$(1)/%.o,$(2))
+_FUNC_C2O = $(call _FUNC_EXT2O,$(1),$(2),c)
+_FUNC_CPP2O = $(call _FUNC_EXT2O,$(1),$(2),cpp)
+
+
+# parameter :
+#  $(1) - C/C++ soruce file
+#  $(2) - output path
+#  $(3) - .ext
+#  $(4) - unique id
+CONVERT_ESC_EXT_TO_O = $(addprefix $(2)/,$(notdir $(patsubst %.$(3),%-$(4).o,$(1))))
+
+#CONVERT_ESC_C_TO_O = $(call CONVERT_ESC_EXT_TO_O,$(1),$(2),c)
+#CONVERT_ESC_CPP_TO_O = $(call CONVERT_ESC_EXT_TO_O,$(1),$(2),cpp)
+
+
+# parameter :
+#  $(1) - encoded one C/C++ soruce file
+#  $(2) - output path
+#  $(3) - ext title (C/C++)
+#  $(4) - ext (c/cpp)
+#  $(5) - compiler ($(CC)/$(CXX))
+#  $(6) - build opt
+#  $(7) - build opt file
+# output :
+#  $(8) - output files list
+define C_BUILD_PROC_RAW
+$(call CONVERT_ESC_EXT_TO_O,$(1),$(2),$(4),$(8)) : $(call DECODE_4MAKE,$(1)) $(7)
+       @echo '  Building file: $$<'
+       @echo '  Invoking: $(3) Compiler'
+       $$(call MAKEDIRS,$$(@D))
+       $(5) -c "$$<" -o "$$@" $(6) -Wp,@$(7)
+       @echo '  Finished building: $$<'
+$(9) += $(call CONVERT_ESC_EXT_TO_O,$(1),$(2),$(4),$(8))
+endef
+
+
+# parameter :
+#  $(1) - output paths
+#  $(2) - src paths
+#  $(3) - inc paths
+#  $(4) - inc files
+#  $(5) - Defs
+#  $(6) - UnDefs
+#  $(7) - compiler opt
+#  $(8) - compiler opt file
+#  $(9) - ext title (C/C++)
+#  $(10) - ext (c/cpp)
+#  $(11) - compiler ($(CC)/$(CXX))
+# output :
+#  $(12) - OBJS
+# return :
+#  none
+define C_PROC_RAW
+
+_OUTPUT_DIR := $$(strip $(1))#
+_SRCS := $(2)#
+_INCS := $(3)#
+_INC_FILES := $(4)#
+_DEFS := $(5)#
+_UNDEFS := $(6)#
+
+_OPT := $(7)
+_OPT_FILE := $(8)
+
+_EXT_TITLE := $(9)
+_EXT := $(10)
+_COMPILER := $(11)
+
+#_OUTPUT_FILES := $(12)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_SRCS))
+_ENC_SRCS := $$(filter %.$$(_EXT),$$(_ENC_SRCS))
+
+ifneq ($$(strip $$(_SRCS)),)
+
+_NORMAL_SRCS := $$(filter-out %*.$$(_EXT),$$(_ENC_SRCS))
+_WIDLCARD_SRCS := $$(filter %*.$$(_EXT),$$(_ENC_SRCS))
+
+_ALL_SRCS := $$(call DECODE_4MAKE,$$(_NORMAL_SRCS)) \
+             $$(foreach var,$$(_WIDLCARD_SRCS),$$(call FIND_FILES_4MAKE,$$(call DECODE_4MAKE,$$(var))))
+
+ifneq ($$(strip $$(_ALL_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_ALL_SRCS))
+
+_CDEFS := $$(CDEFS)
+_CDEFS += $$(addprefix -D,$$(_DEFS))
+_CDEFS += $$(addprefix -U,$$(_UNDEFS))
+
+_ENC_C_INCS := $$(call ENCODE_4MAKE,$$(_INCS))
+_ENC_C_INCS := $$(addprefix -I,$$(_ENC_C_INCS))
+
+_ENC_INC_FILES := $$(call ENCODE_4MAKE,$$(_INC_FILES))
+_ENC_INC_FILES += $$(addprefix -include,$$(_ENC_INC_FILES))
+
+_C_INCS := $$(call DECODE_4MAKE,$$(_ENC_C_INCS) $$(_ENC_C_INC_FILES))
+
+_DEFS := $$(_CDEFS) $$(_C_INCS) -I"pch" $$(_OPT)
+
+_UNIQUE_ID = $$(firstword $$(shell echo $$(var) | $$(CKSUM)))
+
+$$(foreach var,$$(_ENC_SRCS),$$(eval $$(call C_BUILD_PROC_RAW,$$(var),$$(_OUTPUT_DIR),$$(_EXT_TITLE),$$(_EXT),$$(_COMPILER),$$(_DEFS),$$(_OPT_FILE),$$(_UNIQUE_ID),$(12))))
+
+endif  # (_(strip _(_ALL_SRCS)),)
+
+endif  # (_(strip _(_SRCS)),)
+
+
+endef
diff --git a/vp-main/Build/build_edc.mk b/vp-main/Build/build_edc.mk
new file mode 100755 (executable)
index 0000000..6f85fdd
--- /dev/null
@@ -0,0 +1,81 @@
+# EDC build script
+
+
+FUNC_EDC2EDJ = $(patsubst %.edc,$(2)/%.edj,$(1))
+
+# parameter :
+#  $(1) - C/C++ soruce file
+#  $(2) - output path
+CONVERT_ESC_EDC_TO_EDJ = $(call CONVERT_4MAKE_TO_OUT,$(call FUNC_EDC2EDJ,$(1),$(2)))
+
+
+# parameter :
+#  $(1) - encoded one C/C++ soruce file
+#  $(2) - output path
+#  $(3) - build opt
+# output :
+#  $(4) - output files list
+define EDJ_BUILD_PROC_RAW
+$(call CONVERT_ESC_EDC_TO_EDJ,$(1),$(2)) : $(call DECODE_4MAKE,$(1))
+       @echo '  Building file: $$<'
+       @echo '  Invoking: EDC Resource Compiler'
+       $$(call MAKEDIRS,$$(@D))
+       $$(EDJE_CC) $(3) "$$<" "$$@"
+       @echo '  Finished building: $$<'
+$(4) += $(call CONVERT_ESC_EDC_TO_EDJ,$(1),$(2))
+endef
+
+
+# parameter :
+#  $(1) - output paths
+#  $(2) - src paths
+#  $(3) - image inc paths
+#  $(4) - sound inc paths
+#  $(5) - font inc paths
+# output :
+#  $(6) - OBJS 
+# return :
+#  none
+define EDJ_PROC_RAW
+
+_OUTPUT_DIR := $$(strip $(1))#
+_SRCS := $(2)# 
+_IMAGE_DIRS := $(3)# 
+_SOUND_DIRS := $(4)# 
+_FONT_DIRS := $(5)# 
+
+ifneq ($$(strip $$(_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_SRCS)) 
+
+_NORMAL_SRCS := $$(filter-out %*.edc,$$(_ENC_SRCS))
+_WIDLCARD_SRCS := $$(filter %*.edc,$$(_ENC_SRCS))
+
+_ALL_SRCS := $$(call DECODE_4MAKE,$$(_NORMAL_SRCS)) \
+             $$(foreach var,$$(_WIDLCARD_SRCS),$$(call FIND_FILES_4MAKE,$$(call DECODE_4MAKE,$$(var))))
+
+ifneq ($$(strip $$(_ALL_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_ALL_SRCS)) 
+
+_COMPILER_FLAGS := -id "$$(ENVENTOR_SHARED_RES_PATH)/images"
+_COMPILER_FLAGS += -sd "$$(ENVENTOR_SHARED_RES_PATH)/sounds"
+_COMPILER_FLAGS += -fd "$$(ENVENTOR_SHARED_RES_PATH)/fonts"
+
+ifneq ($$(strip $$(_IMAGE_DIRS)),)
+_COMPILER_FLAGS += $$(addprefix -id ,$$(_IMAGE_DIRS))
+endif
+ifneq ($$(strip $$(_SOUND_DIRS)),)
+_COMPILER_FLAGS += $$(addprefix -sd ,$$(_SOUND_DIRS))
+endif
+ifneq ($$(strip $$(_FONT_DIRS)),)
+_COMPILER_FLAGS += $$(addprefix -fd ,$$(_FONT_DIRS))
+endif
+
+$$(foreach var,$$(_ENC_SRCS),$$(eval $$(call EDJ_BUILD_PROC_RAW,$$(var),$$(_OUTPUT_DIR),$$(_COMPILER_FLAGS),$(6))))
+
+endif  # (_(strip _(_ALL_SRCS)),)
+
+endif  # (_(strip _(_SRCS)),)
+
+endef
diff --git a/vp-main/Build/build_po.mk b/vp-main/Build/build_po.mk
new file mode 100755 (executable)
index 0000000..d88d71a
--- /dev/null
@@ -0,0 +1,64 @@
+# PO build script
+
+
+_FUNC_PO2MO = $(patsubst %.po,$(2)/res/locale/%/LC_MESSAGES/$(3).mo,$(notdir $(1)))
+
+
+# parameter :
+#  $(1) - C/C++ soruce file
+#  $(2) - output path
+#  $(3) - app name
+CONVERT_ESC_PO_TO_MO = $(call CONVERT_4MAKE_TO_OUT,$(call _FUNC_PO2MO,$(1),$(2),$(3)))
+
+
+# parameter :
+#  $(1) - encoded one C/C++ soruce file
+#  $(2) - output path
+#  $(3) - app name
+# output :
+#  $(4) - output files list
+define MO_BUILD_PROC_RAW
+$(call CONVERT_ESC_PO_TO_MO,$(1),$(2),$(3)) : $(call DECODE_4MAKE,$(1))
+       @echo '  Building file: $$<'
+       @echo '  Invoking: msgfmt String Formatter'
+       $$(call MAKEDIRS,$$(@D))
+       $$(MSGFMT) -o "$$@" "$$<"
+       @echo '  Finished building: $$<'
+$(4) += $(call CONVERT_ESC_PO_TO_MO,$(1),$(2),$(3))
+endef
+
+# parameter :
+#  $(1) - output dir
+#  $(2) - src paths
+#  $(3) - app name
+# output :
+#  $(4) - OBJS 
+
+define MO_PROC_RAW
+
+_OUTPUT_DIR := $(1)
+_SRCS := $(2)
+_APPNAME := $(3)
+
+ifneq ($$(strip $$(_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_SRCS)) 
+
+_NORMAL_SRCS := $$(filter-out %*.po,$$(_ENC_SRCS))
+_WIDLCARD_SRCS := $$(filter %*.po,$$(_ENC_SRCS))
+
+_ALL_SRCS := $$(call DECODE_4MAKE,$$(_NORMAL_SRCS)) \
+             $$(foreach var,$$(_WIDLCARD_SRCS),$$(call FIND_FILES_4MAKE,$$(call DECODE_4MAKE,$$(var))))
+
+ifneq ($$(strip $$(_ALL_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_ALL_SRCS)) 
+
+$$(foreach var,$$(_ENC_SRCS),$$(eval $$(call MO_BUILD_PROC_RAW,$$(var),$$(_OUTPUT_DIR),$$(_APPNAME),$(4))))
+
+endif  # (_(strip _(_ALL_SRCS)),)
+
+endif  # (_(strip _(_SRCS)),)
+
+endef
diff --git a/vp-main/Build/flags.mk b/vp-main/Build/flags.mk
new file mode 100755 (executable)
index 0000000..1f3c7f8
--- /dev/null
@@ -0,0 +1,16 @@
+
+DEBUG_OP = -g3 
+CPP_DEBUG_OP = 
+
+OPTIMIZATION_OP = -O0 
+CPP_OPTIMIZATION_OP = 
+
+COMPILE_FLAGS = $(DEBUG_OP) $(OPTIMIZATION_OP) -Wall -c -fmessage-length=0 -fPIC 
+
+CPP_COMPILE_FLAGS = $(CPP_DEBUG_OP) $(CPP_OPTIMIZATION_OP) 
+
+LINK_FLAGS = -shared -Wl,--no-undefined 
+
+AR_FLAGS = 
+
+EDC_COMPILE_FLAGS = 
\ No newline at end of file
diff --git a/vp-main/Build/funcs.mk b/vp-main/Build/funcs.mk
new file mode 100755 (executable)
index 0000000..3ba778b
--- /dev/null
@@ -0,0 +1,50 @@
+
+BSLASH := \\#
+NULL_CHAR := #
+SPACE := \ #
+COLON := :#
+DOTDOT := ..#
+SPACE_ESC := &sp;#
+COLON_ESC := &co;#
+SPACE_OUT := ~sp~#
+COLON_OUT := ~co~#
+DOTDOT_OUT := ~dtdt~#
+
+BSLASH2SLASH = $(subst $(BSLASH),/,$(1))
+
+REMOVE_TAIL = $(patsubst %/,%,$(1))
+
+#LOWER_CASE = $(shell echo translit($(1),[A-Z],[a-z])|$(M4))
+LOWER_CASE = $(shell echo $(1)|$(TR) [A-Z] [a-z])
+
+#ifneq ($(findstring Windows,$(OS)),)
+# ...
+#endif
+
+FIND_FILES = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///')
+FIND_FILES_ESC = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///' -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
+FIND_FILES_4MAKE = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///')
+
+FIND_FILES_ABS = $(shell $(FIND) $(1))
+FIND_FILES_ABS_4MAKE = $(shell $(FIND) $(1) -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
+FIND_FILES_ABS_ESC = $(shell $(FIND) $(1) -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
+
+FIND_FILES_4MAKE = $(shell $(FIND) $(1) | $(SED) 's/ /\\\ /g')
+
+#ENCODE_ESC = $(shell echo $(1) | $(SED) -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
+#DECODE_ESC = $(shell echo $(1) | $(SED) -e 's/$(BSLASH)&co;/:/g' -e 's/$(BSLASH)&sp;/$(BSLASH) / g')
+ENCODE_ESC = $(subst $(SPACE),$(SPACE_ESC),$(subst $(COLON),$(COLON_ESC),$(1)))
+DECODE_ESC = $(subst $(COLON_ESC),$(COLON),$(subst $(SPACE_ESC),$(SPACE),$(1)))
+ENCODE_4MAKE = $(subst $(SPACE),$(SPACE_ESC),$(1))
+DECODE_4MAKE = $(subst $(SPACE_ESC),$(SPACE),$(1))
+
+CONVERT_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON),$(COLON_OUT),$(subst $(SPACE),$(SPACE_OUT),$(1))))
+CONVERT_ESC_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON_ESC),$(COLON_OUT),$(subst $(SPACE_ESC),$(SPACE_OUT),$(1))))
+CONVERT_4MAKE_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON),$(COLON_OUT),$(subst $(SPACE_ESC),$(SPACE_OUT),$(1))))
+
+PROC_NO_EXIST = $(if $(wildcard $(1)),,$(call $(2),$(1)))
+define MAKEDIRS0
+       @echo '  Building directory: $(1)'
+       @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(1))
+endef
+MAKEDIRS = $(call PROC_NO_EXIST,$(1),MAKEDIRS0)
diff --git a/vp-main/Build/makefile b/vp-main/Build/makefile
new file mode 100755 (executable)
index 0000000..f491b50
--- /dev/null
@@ -0,0 +1,34 @@
+# 
+# Usege : make -f <proj_root>/Build/makefile -C <proj_root> 
+#
+BUILD_SCRIPT_VERSION := 1.1.0
+
+.PHONY : app_version app_build app_clean build_version
+
+
+all : app_build
+
+clean : app_clean
+
+version : build_version
+
+#PROJ_ROOT = .
+BUILD_ROOT := $(PROJ_PATH)/Build#
+
+ifeq ($(MAKE_NAME),mingw32-make)
+ifneq ($(SHELL),)
+OPTIONS += --eval="SHELL=$(SHELL)"
+endif
+endif
+
+app_build :
+       @echo $(MAKE) -f "$(BUILD_ROOT)/makefile.mk"
+       @$(MAKE_BIN) -f "$(BUILD_ROOT)/makefile.mk" -C "$(PROJ_PATH)" $(OPTIONS)
+
+app_clean :
+       @$(MAKE) -f "$(BUILD_ROOT)/makefile.mk" -C "$(PROJ_PATH)" $(OPTIONS) clean
+
+build_version :
+       @echo makefile : $(BUILD_SCRIPT_VERSION)
+       @$(MAKE) -f "$(BUILD_ROOT)/makefile.mk" -C "$(PROJ_PATH)" $(OPTIONS) version
diff --git a/vp-main/Build/makefile.mk b/vp-main/Build/makefile.mk
new file mode 100755 (executable)
index 0000000..205a3ad
--- /dev/null
@@ -0,0 +1,197 @@
+#
+# Usege : make -f <proj_root>/Build/makefile -C <proj_root>
+#
+
+BUILD_SCRIPT_VERSION := 1.2.3
+
+.PHONY : app_version app_clean build_version
+
+
+all : app_build
+
+clean : app_clean
+
+version : build_version
+
+
+#PROJ_ROOT := $(call BSLASH2SLASH,$(PROJ_PATH))
+PROJ_ROOT := .
+BUILD_ROOT := $(PROJ_ROOT)/Build
+
+include $(BUILD_ROOT)/basedef.mk
+
+include $(PROJ_ROOT)/project_def.prop
+-include $(PROJ_ROOT)/build_def.prop
+
+include $(BUILD_ROOT)/funcs.mk
+
+-include $(BUILD_ROOT)/tooldef.mk
+-include $(BUILD_ROOT)/flags.mk
+-include $(BUILD_ROOT)/platform.mk
+
+
+APPTYPE := $(type)
+
+OUTPUT_DIR := $(PROJ_ROOT)/$(BUILD_CONFIG)
+OBJ_OUTPUT := $(OUTPUT_DIR)/objs
+
+LOWER_APPNAME := $(call LOWER_CASE,$(APPNAME))
+APPID2 := $(subst $(basename $(APPID)).,,$(APPID))
+
+ifeq ($(strip $(APPTYPE)),app)
+APPFILE := $(OUTPUT_DIR)/$(LOWER_APPNAME)
+endif
+ifeq ($(strip $(APPTYPE)),staticLib)
+APPFILE := $(OUTPUT_DIR)/lib$(LOWER_APPNAME).a
+endif
+ifeq ($(strip $(APPTYPE)),sharedLib)
+APPFILE := $(OUTPUT_DIR)/lib$(LOWER_APPNAME).so
+endif
+
+ifneq ($(strip $(PLATFORM_INCS)),)
+PLATFORM_INCS_FILE := $(OBJ_OUTPUT)/platform_incs_file.inc
+endif
+
+include $(BUILD_ROOT)/build_c.mk
+
+
+ifeq ($(strip $(APPTYPE)),app)
+EXT_OP := -fPIE
+endif
+ifeq ($(strip $(APPTYPE)),staticLib)
+EXT_OP := -fPIE
+endif
+ifeq ($(strip $(APPTYPE)),sharedLib)
+EXT_OP := -fPIC
+endif
+
+C_OPT := $(COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) $(EXT_OP) --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) $(USER_C_OPTS)
+CPP_OPT := $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) $(EXT_OP) --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) $(USER_CPP_OPTS)
+C_OPT_FILE := $(PLATFORM_INCS_FILE)
+
+OBJS := #
+
+# Global C/C++
+ifeq ($(strip $(USER_ROOT)),)
+USER_ROOT := $(PROJ_ROOT)
+endif
+$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_SRCS),$(USER_INC_DIRS),$(USER_INC_FILES),$(USER_DEFS),$(USER_UNDEFS),$(C_OPT),$(C_OPT_FILE),C,c,$(CC),OBJS))
+$(foreach ext,cpp cxx cc c++ C,$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_SRCS),$(USER_INC_DIRS),$(USER_CPP_INC_FILES),$(USER_CPP_DEFS),$(USER_CPP_UNDEFS),$(CPP_OPT),$(C_OPT_FILE),C++,$(ext),$(CXX),OBJS)))
+
+# Individual C/C++
+ifneq ($(strip $(USER_EXT_C_KEYS)),)
+$(foreach var,$(USER_EXT_C_KEYS),$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_EXT_$(var)_SRCS),$(USER_EXT_$(var)_INC_DIRS),$(USER_EXT_$(var)_INC_FILES),$(USER_EXT_$(var)_DEFS),$(USER_EXT_$(var)_UNDEFS),$(C_OPT),$(C_OPT_FILE),C,c,$(CC),OBJS)))
+$(foreach ext,cpp cxx cc c++ C,$(foreach var,$(USER_EXT_C_KEYS),$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_EXT_$(var)_SRCS),$(USER_EXT_$(var)_INC_DIRS),$(USER_EXT_$(var)_CPP_INC_FILES),$(USER_EXT_$(var)_CPP_DEFS),$(USER_EXT_$(var)_CPP_UNDEFS),$(CPP_OPT),$(C_OPT_FILE),C++,$(ext),$(CXX),OBJS))))
+endif
+
+
+ifneq ($(strip $(USER_LIB_DIRS)),)
+_ENC_USER_LIB_DIRS := $(call ENCODE_4MAKE,$(USER_LIB_DIRS))
+_ENC_USER_LIB_DIRS := $(addprefix -L,$(_ENC_USER_LIB_DIRS))
+LIBPATHS := $(call DECODE_4MAKE,$(_ENC_USER_LIB_DIRS))
+endif
+
+LIBS += $(addprefix -l,$(USER_LIBS))
+
+UOBJS += $(USER_OBJS)
+
+M_OPT = -MMD -MP -MF"$(@:%.o=%.d)"
+
+DEPS := $(OBJS:.o=.d)
+
+ifneq ($(strip $(DEPS)),)
+-include $(PROJ_ROOT)/Build/$(DEPS)
+endif
+
+
+ifeq ($(strip $(APPTYPE)),app)
+$(APPFILE) : $(OBJS) $(UOBJS)
+       @echo '  Building target: $@'
+       @echo '  Invoking: C/C++ Linker'
+       $(call MAKEDIRS,$(@D))
+       $(CXX) -o $(APPFILE) $(OBJS) $(UOBJS) $(LIBPATHS) -Xlinker --as-needed $(LIBS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -pie -lpthread --sysroot="$(SYSROOT)" -Xlinker --version-script="$(PROJ_ROOT)/.exportMap" $(RS_LIB_PATHS) $(RS_LIBRARIES) -Xlinker -rpath="/opt/usr/apps/$(APPID)/lib" -Werror-implicit-function-declaration $(USER_LINK_OPTS)
+       @echo '  Finished building target: $@'
+endif
+ifeq ($(strip $(APPTYPE)),staticLib)
+$(APPFILE) : $(OBJS) $(UOBJS)
+       @echo '  Building target: $@'
+       @echo '  Invoking: Archive utility'
+       $(call MAKEDIRS,$(@D))
+       $(AR) -r $(APPFILE) $(OBJS) $(UOBJS) $(AR_FLAGS) $(USER_LINK_OPTS)
+       @echo '  Finished building target: $@'
+endif
+ifeq ($(strip $(APPTYPE)),sharedLib)
+$(APPFILE) : $(OBJS) $(UOBJS)
+       @echo '  Building target: $@'
+       @echo '  Invoking: C/C++ Linker'
+       $(call MAKEDIRS,$(@D))
+       $(CXX) -o $(APPFILE) $(OBJS) $(UOBJS) $(LIBPATHS) -Xlinker --as-needed $(LIBS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -shared -lpthread --sysroot="$(SYSROOT)" $(RS_LIB_PATHS) $(RS_LIBRARIES) $(USER_LINK_OPTS)
+       @echo '  Finished building target: $@'
+endif
+
+
+$(OBJ_OUTPUT) :
+       $(call MAKEDIRS,$@)
+
+$(OUTPUT_DIR) :
+       $(call MAKEDIRS,$@)
+
+
+ifneq ($(strip $(PLATFORM_INCS)),)
+$(PLATFORM_INCS_FILE) : $(OBJ_OUTPUT)
+       @echo '  Building inc file: $@'
+ifneq ($(findstring Windows,$(OS)),)
+ifneq ($(findstring 3.82,$(MAKE_VERSION)),)
+       $(file > $@,$(PLATFORM_INCS))
+else
+       @echo $(PLATFORM_INCS) > $@
+endif
+else
+       @echo $(PLATFORM_INCS) > $@
+endif
+endif
+
+
+include $(BUILD_ROOT)/build_edc.mk
+
+#ifeq ($(strip $(ENVENTOR_SHARED_RES_PATH)),)
+ENVENTOR_SHARED_RES_PATH ?= $(ENVENTOR_PATH)/share/enventor
+#endif
+
+EDJ_FILES :=
+
+# Global EDCs
+ifneq ($(strip $(USER_EDCS)),)
+$(eval $(call EDJ_PROC_RAW,$(OUTPUT_DIR),$(USER_EDCS),$(USER_EDCS_IMAGE_DIRS),$(USER_EDCS_SOUND_DIRS),$(USER_EDCS_FONT_DIRS),EDJ_FILES))
+endif
+
+# Individual EDCs
+ifneq ($(strip $(USER_EXT_EDC_KEYS)),)
+$(foreach var,$(USER_EXT_EDC_KEYS),$(eval $(call EDJ_PROC_RAW,$(OUTPUT_DIR),$(USER_EXT_$(var)_EDCS),$(USER_EXT_$(var)_EDCS_IMAGE_DIRS),$(USER_EXT_$(var)_EDCS_SOUND_DIRS),$(USER_EXT_$(var)_EDCS_FONT_DIRS),EDJ_FILES)))
+endif
+
+
+include $(BUILD_ROOT)/build_po.mk
+
+MO_FILES :=
+
+# Global POs
+ifneq ($(strip $(USER_POS)),)
+$(eval $(call MO_PROC_RAW,$(OUTPUT_DIR),$(USER_POS),$(APPID2),MO_FILES))
+endif
+
+
+secondary-outputs : $(EDJ_FILES) $(MO_FILES)
+
+-include appendix.mk
+
+app_build : $(OUTPUT_DIR) $(APPFILE) secondary-outputs
+       @echo ========= done =========
+
+
+app_clean :
+       rm -f $(APPFILE)
+       rm -rf $(OUTPUT_DIR)
+
+build_version :
+       @echo makefile.mk : $(BUILD_SCRIPT_VERSION)
diff --git a/vp-main/Build/platform.mk b/vp-main/Build/platform.mk
new file mode 100755 (executable)
index 0000000..294a38a
--- /dev/null
@@ -0,0 +1,15 @@
+# Add inputs and outputs from these tool invocations to the build variables
+
+SYSROOT = $(SBI_SYSROOT)
+
+USR_INCS := $(addprefix -I $(SYSROOT),$(PLATFORM_INCS_EX))
+
+ifeq ($(strip $(PLATFORM_LIB_PATHS)),)
+RS_LIB_PATHS := "$(SYSROOT)/usr/lib"
+else
+RS_LIB_PATHS := $(addprefix -L$(SYSROOT),$(PLATFORM_LIB_PATHS))
+endif
+
+RS_LIBRARIES := $(addprefix -l,$(RS_LIBRARIES_EX))
+
+PLATFORM_INCS = $(USR_INCS) -I"$(SDK_PATH)/library"
diff --git a/vp-main/Build/tooldef.mk b/vp-main/Build/tooldef.mk
new file mode 100755 (executable)
index 0000000..c62243c
--- /dev/null
@@ -0,0 +1,70 @@
+# Add inputs and outputs from these tool invocations to the build variables
+
+ifneq ($(strip $(SHELL_BIN)),)
+SHELL = $(SHELL_BIN)
+else
+SHELL = sh
+endif
+
+ifneq ($(strip $(MKDIR_BIN)),)
+MKDIR = $(MKDIR_BIN)
+MKDIR_OP = -p
+else
+MKDIR = mkdir
+MKDIR_OP = -p
+endif
+
+ifneq ($(strip $(UNAME_BIN)),)
+UNAME = $(UNAME_BIN)
+else
+UNAME = uname
+endif
+
+ifneq ($(strip $(M4_BIN)),)
+M4 = $(M4_BIN)
+else
+M4 = m4
+endif
+
+ifneq ($(strip $(TR_BIN)),)
+TR = $(TR_BIN)
+else
+TR = tr
+endif
+
+ifneq ($(strip $(FIND_BIN)),)
+FIND = $(FIND_BIN)
+else
+FIND = find
+endif
+
+ifneq ($(strip $(SED_BIN)),)
+SED = $(SED_BIN)
+else
+SED = sed
+endif
+
+ifneq ($(strip $(GREP_BIN)),)
+GREP = $(GREP_BIN)
+else
+GREP = grep
+endif
+
+ifneq ($(strip $(EDJE_CC_BIN)),)
+EDJE_CC = $(EDJE_CC_BIN)
+else
+EDJE_CC = edje_cc
+endif
+
+ifneq ($(strip $(MSGFMT_BIN)),)
+MSGFMT = $(MSGFMT_BIN)
+else
+MSGFMT = msgfmt
+endif
+
+ifneq ($(strip $(CKSUM_BIN)),)
+CKSUM = $(CKSUM_BIN)
+else
+CKSUM = cksum
+endif
+
diff --git a/vp-main/CMakeLists.txt b/vp-main/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..b23c4df
--- /dev/null
@@ -0,0 +1,64 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(video-player C CXX)
+
+
+SET(SRCS
+       src/vp-main.c
+       src/serviceParser/vp-service-parser.c
+)
+
+INCLUDE_DIRECTORIES(
+       ${CMAKE_CURRENT_SOURCE_DIR}/include
+       ${CMAKE_CURRENT_SOURCE_DIR}/include/serviceParser
+)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(${PROJECT_NAME}_pkgs REQUIRED
+       elementary
+       ecore
+       ecore-evas
+       edje
+       eina
+       evas
+       dlog
+       ecore-input
+       glib-2.0
+       capi-appfw-application
+       capi-content-media-content
+       capi-web-url-download
+       libcore-context-manager
+       libtzplatform-config
+)
+
+#SET(VIDEO_PLAYER_PACKAGE "com.${VIDEO_PLAYER_VENDOR}.video-player")
+SET(VIDEO_PLAYER_PACKAGE "org.tizen.video-player")
+SET(VIDEO_PLAYER_DIR "${TZ_SYS_RO_APP}/${VIDEO_PLAYER_PACKAGE}")
+SET(VIDEO_PLAYER_RES_DIR "${TZ_SYS_RO_APP}/${VIDEO_PLAYER_PACKAGE}/res")
+SET(VIDEO_PLAYER_BINDIR "${TZ_SYS_RO_APP}/${VIDEO_PLAYER_PACKAGE}/bin")
+SET(VP_RESDIR "${TZ_SYS_RO_APP}/${VIDEO_PLAYER_PACKAGE}/res")
+SET(VP_LOCALEDIR "${VP_RESDIR}/locale")
+
+ADD_DEFINITIONS("-DVP_LOCALEDIR=\"${VP_LOCALEDIR}\"")
+
+FOREACH(flag ${${PROJECT_NAME}_pkgs_CFLAGS})
+       SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -fvisibility=hidden")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
+SET(CMAKE_C_FLAGS_RELEASE "-O2 -fPIC")
+
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie -Wl,--rpath=/usr/lib")
+SET(CMAKE_LDFLAGS "-Wl,-zdefs" )
+
+ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${${PROJECT_NAME}_pkgs_LDFLAGS} common playview video-downloader -ldl)
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${VIDEO_PLAYER_BINDIR})
+
+# install desktop file & icon
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/res/images/org.tizen.video-player.png DESTINATION  ${CMAKE_DESKTOP_ICON_DIR})
+INSTALL(FILES ${VIDEO_PLAYER_PACKAGE}.xml DESTINATION ${CMAKE_APP_SHARE_PACKAGES_DIR})
+
+ADD_SUBDIRECTORY(res/po)
+
diff --git a/vp-main/build_def.prop b/vp-main/build_def.prop
new file mode 100755 (executable)
index 0000000..7c5fd8f
--- /dev/null
@@ -0,0 +1,6 @@
+
+# Add pre/post build process
+PREBUILD_DESC = 
+PREBUILD_COMMAND = 
+POSTBUILD_DESC = 
+POSTBUILD_COMMAND =
diff --git a/vp-main/include/serviceParser/vp-service-parser.h b/vp-main/include/serviceParser/vp-service-parser.h
new file mode 100755 (executable)
index 0000000..b6204e1
--- /dev/null
@@ -0,0 +1,128 @@
+/*
+ * Copyright (c) 2020 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_SERVICE_PARSER__
+#define         __VP_SERVICE_PARSER__
+
+#include <glib.h>
+#include <Eina.h>
+#include <app.h>
+
+typedef enum {
+       VP_LAUNCH_TYPE_NONE = 0,
+       VP_LAUNCH_TYPE_STORE,
+       VP_LAUNCH_TYPE_LIST,
+       VP_LAUNCH_TYPE_SIMPLE,
+       VP_LAUNCH_TYPE_EMAIL,
+       VP_LAUNCH_TYPE_MMS,
+       VP_LAUNCH_TYPE_MYFILE,
+       VP_LAUNCH_TYPE_GALLERY,
+       VP_LAUNCH_TYPE_IMAGE_VIEWER,
+       VP_LAUNCH_TYPE_IMAGE_VIEWER_TRIM,
+       VP_LAUNCH_TYPE_MULTI_PATH,
+       VP_LAUNCH_TYPE_MAX,
+} VpLaunchType;
+
+
+typedef enum {
+       VP_VIDEO_SORT_TYPE_BY_NONE = 0,
+
+       VP_VIDEO_SORT_TYPE_BY_NAME_DESC,
+       VP_VIDEO_SORT_TYPE_BY_NAME_ASC,
+       VP_VIDEO_SORT_TYPE_BY_DATE_DESC,
+       VP_VIDEO_SORT_TYPE_BY_DATE_ASC,
+
+       VP_VIDEO_SORT_TYPE_BY_MAX,
+} VpVideoSortType;
+
+
+typedef enum {
+       VP_VIDEO_PLAY_LIST_TYPE_NONE = 0,
+
+       VP_VIDEO_PLAY_LIST_TYPE_FOLDER,
+       VP_VIDEO_PLAY_LIST_TYPE_ALL_FOLDER_GALLERY,
+       VP_VIDEO_PLAY_LIST_TYPE_TAG_GALLERY,
+       VP_VIDEO_PLAY_LIST_TYPE_FAVORITE,
+       VP_VIDEO_PLAY_LIST_TYPE_MAX,
+} VpVideoPlayListType;
+
+
+typedef struct {
+       VpLaunchType eLaunchType;       // launch type
+
+       VpVideoSortType eSortType;      // only use gallery, image viewer and my files(?)
+       VpVideoPlayListType eListType;  // only use gallery, image viewer and my files(?)
+#if 0                                                  //Tizen3.0 Build error
+       Ecore_X_Window nParentXID;
+#else
+       unsigned int nParentXID;
+#endif
+
+       Eina_Bool bLaunchMultiWindow;   // launch multi winodw
+       Eina_Bool bStreaming;           // launch streaming
+       Eina_Bool bStoreDownload;
+       double dStoreDL_FileSize;
+       int nStorePlayedTime;
+       Eina_Bool bStopAfterRepeat;
+
+       char *pMediaUri;                        // play file path or url
+       char *szMediaTitle;                     // media file title
+       char *szDeviceID;
+       char *szAutoPlay;
+       char *szDMRID;
+       char *szCookie;
+       char *szProxy;
+
+       char **szMultiPath;
+       int nMultiPath;
+
+       char **szMultiTitle;
+       int nMultiTitle;
+
+       char **szIsSameAP;                      // Samsung link : remote / local content,
+       int nSameAP;
+
+       char **szMultiSubTitle;
+       int nMultiSubTitle;
+
+       char **szMultiPosition;
+       int nMultiPosition;
+
+       char **szMultiDuration;
+       int nMultiDuration;
+
+       char *pStoreOrderId;
+       char *pStoreServerId;
+       char *pStoreAppId;
+       char *pStoreMvId;
+} VpServiceData;
+
+
+#ifdef _cplusplus
+extern "C" {
+#endif
+
+
+       Eina_Bool VpServiceParserGetServiceData(app_control_h pAppSvcHandle,
+                                                                                       VpServiceData * pReceiveData);
+       void VpServiceParserDestroyServiceData(VpServiceData * pServiceData);
+
+
+#ifdef _cplusplus
+}
+#endif
+#endif                                                 //__VP_SERVICE_PARSER__
diff --git a/vp-main/include/vp-main.h b/vp-main/include/vp-main.h
new file mode 100755 (executable)
index 0000000..fbd1903
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2020 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_MAIN__
+#define         __VP_MAIN__
+
+
+#ifndef EXPORT_API
+#define EXPORT_API __attribute__((__visibility__("default")))
+#endif
+
+
+#include "vp-service-parser.h"
+#include <Ecore.h>
+
+
+/**
+ * @struct Video player App data
+ */
+typedef struct {
+       VpServiceData *pServiceData;
+       bool bPause;
+       void *pPlayView;
+
+       Ecore_Idler *pAppSvcIdler;
+
+       //////////////////////////////////////
+       // for multi window
+       char *pValStartup;
+       char *pValLayout;
+
+       bool bIsRelaunch;
+       //////////////////////////////////////
+} VpAppData;
+
+
+#endif                                                 //__VP_MAIN__
diff --git a/vp-main/org.tizen.video-player.xml b/vp-main/org.tizen.video-player.xml
new file mode 100755 (executable)
index 0000000..f65b1a5
--- /dev/null
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.video-player" version="1.0.39" install-location="internal-only" api-version="2.4">
+       <label>video-player</label>
+               <!--INDIA-->
+                       <label xml:lang="en-gb">Video Player</label>    <!--  -->
+                       <label xml:lang="bn-in">ভিডিও প্লেয়ার</label>
+                       <label xml:lang="gu-in">વિડિયો પ્લેયર</label>
+                       <label xml:lang="hi-in">वीडियो प्‍लेयर</label>
+                       <label xml:lang="kn-in">ವೀಡಿಯೊ ಪ್ಲೇಯರ್</label>
+                       <label xml:lang="ml-in">വീഡിയോ പ്ലെയര്‍</label>
+                       <label xml:lang="si-lk">වීඩියෝ වාදකය</label>
+                       <label xml:lang="ta-in">நிகழ்பட இயக்கி</label>
+                       <label xml:lang="te-in">వీడియో ప్లేయర్</label>
+                       <label xml:lang="ur-pk">ویڈیو پلیئر</label>
+               <!--SEA-->
+                       <label xml:lang="en-us">Video Player</label>
+                       <label xml:lang="en-ph">Video Player</label>
+                       <label xml:lang="zh-cn">视频播放器</label>
+                       <label xml:lang="tl-ph">Video Player</label>
+                       <label xml:lang="id-id">Pemutar Video</label>
+                       <label xml:lang="ko-kr">비디오 플레이어</label>
+                       <label xml:lang="ms-my">Pemain Video</label>
+                       <label xml:lang="my-mm">ဗီြဒီယုိ ဖြင့္စက္</label>
+                       <label xml:lang="th-th">เครื่อง​เล่น​วีดีโอ</label>
+                       <label xml:lang="vi-vn">Máy xem video</label>
+                       <label xml:lang="lo-la">ເຄື່ອງຫຼິ້ນວິດີໂອ</label>
+                       <label xml:lang="km-kh">កម្មវិធី​ចាក់​វីដេអូ</label>
+               <!--Latin-->
+                       <label xml:lang="pt-br">Video Player</label>
+                       <label xml:lang="es-us">Reproductor de Video</label>
+   <author email="jhyuk47.lee@samsung.com" href="www.samsung.com">Jonghyuk Lee</author>
+       <description>Video player</description>
+       <ui-application appid="org.tizen.video-player" exec="/usr/apps/org.tizen.video-player/bin/video-player" nodisplay="true" multiple="false" type="capp" taskmanage="true" hw-acceleration="on" process-pool="true" launch_mode="caller">
+               <label>Video player</label>
+               <icon>org.tizen.video-player.png</icon>
+               <metadata key="http://developer.samsung.com/tizen/metadata/multiwindow"/>
+               <!--INDIA-->
+                       <label xml:lang="en-gb">Video Player</label>    <!--  -->
+                       <label xml:lang="bn-in">ভিডিও প্লেয়ার</label>
+                       <label xml:lang="gu-in">વિડિયો પ્લેયર</label>
+                       <label xml:lang="hi-in">वीडियो प्‍लेयर</label>
+                       <label xml:lang="kn-ca">ವೀಡಿಯೊ ಪ್ಲೇಯರ್</label>
+                       <label xml:lang="ml-my">വീഡിയോ പ്ലെയര്‍</label>
+                       <label xml:lang="si-lk">වීඩියෝ වාදකය</label>
+                       <label xml:lang="ta-in">நிகழ்பட இயக்கி</label>
+                       <label xml:lang="te-in">వీడియో ప్లేయర్</label>
+                       <label xml:lang="ur-pk">ویڈیو پلیئر</label>
+               <!--SEA-->
+                       <label xml:lang="en-us">Video Player</label>
+                       <label xml:lang="en-ph">Video Player</label>
+                       <label xml:lang="zh-cn">视频播放器</label>
+                       <label xml:lang="tl-ph">Video Player</label>
+                       <label xml:lang="id-id">Pemutar Video</label>
+                       <label xml:lang="ko-kr">비디오 플레이어</label>
+                       <label xml:lang="ms-mw">Pemain Video</label>
+                       <label xml:lang="my-mm">ဗီြဒီယုိ ဖြင့္စက္</label>
+                       <label xml:lang="th-th">เครื่อง​เล่น​วีดีโอ</label>
+                       <label xml:lang="vi-vn">Máy xem video</label>
+                       <label xml:lang="lo-la">ເຄື່ອງຫຼິ້ນວິດີໂອ</label>
+                       <label xml:lang="km-kh">កម្មវិធី​ចាក់​វីដេអូ</label>
+               <!--Latin-->
+                       <label xml:lang="pt-br">Video Player</label>
+                       <label xml:lang="es-us">Reproductor de Video</label>
+      <app-control>
+                       <operation name="http://tizen.org/appcontrol/operation/view" />
+                       <mime name="video/mp4" />
+                       <mime name="video/3gp" />
+                       <mime name="video/divx" />
+                       <mime name="video/x-msvideo" />
+                       <mime name="video/x-ms-wmv" />
+                       <mime name="video/x-ms-asf" />
+                       <mime name="application/vnd.ms-asf" />
+                       <mime name="video/x-flv" />
+                       <mime name="video/3gpp" />
+                       <mime name="video/x-matroska" />
+                       <mime name="video/vnd.ms-playready.media.pyv" />
+                       <mime name="application/vnd.apple.mpegurl" />
+                       <mime name="application/x-mpegurl" />
+                       <mime name="audio/x-mpegurl" />
+                       <mime name="video/x-mpegurl" />
+                       <mime name="video/x-flv" />
+                       <mime name="video/ogg" />
+                       <mime name="video/quicktime" />
+                       <mime name="video/mp2t" />
+                       <mime name="audio/isma" />
+                       <mime name="application/sdp" />
+                       <uri name="http" />
+                       <uri name="https" />
+                       <uri name="rtsp" />
+                       <uri name="rtp" />
+               </app-control>
+               <app-control>
+                       <operation name="http://tizen.org/appcontrol/operation/view" />
+                       <mime name="video/mp4" />
+                       <mime name="video/3gp" />
+                       <mime name="video/divx" />
+                       <mime name="video/x-msvideo" />
+                       <mime name="video/x-ms-wmv" />
+                       <mime name="video/x-ms-asf" />
+                       <mime name="application/vnd.ms-asf" />
+                       <mime name="video/x-flv" />
+                       <mime name="video/3gpp" />
+                       <mime name="video/x-matroska" />
+                       <mime name="video/vnd.ms-playready.media.pyv" />
+                       <mime name="application/vnd.apple.mpegurl" />
+                       <mime name="application/x-mpegurl" />
+                       <mime name="video/x-mpegurl" />
+                       <mime name="video/x-flv" />
+                       <mime name="video/ogg" />
+                       <mime name="video/quicktime" />
+                       <mime name="video/mp2t" />
+                       <mime name="application/sdp" />
+               </app-control>
+       </ui-application>
+       <privileges>
+               <privilege>http://tizen.org/privilege/wifi.wifidirect.admin</privilege>
+               <privilege>http://tizen.org/privilege/wifi.wifidirect.read</privilege>
+               <privilege>http://tizen.org/privilege/maps</privilege>
+               <privilege>http://tizen.org/privilege/mediastorage</privilege>
+               <privilege>http://tizen.org/privilege/systemsettings</privilege>
+               <privilege>http://tizen.org/privilege/externalstorage.appdata</privilege>
+               <privilege>http://tizen.org/privilege/telephony</privilege>
+               <privilege>http://tizen.org/privilege/externalstorage</privilege>
+               <privilege>http://tizen.org/privilege/wifidirect</privilege>
+               <privilege>http://tizen.org/privilege/network.get</privilege>
+               <privilege>http://tizen.org/privilege/volume.set</privilege>
+               <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+               <privilege>http://tizen.org/privilege/content.write</privilege>
+               <privilege>http://tizen.org/privilege/display</privilege>
+               <privilege>http://tizen.org/privilege/internet</privilege>
+       </privileges>
+</manifest>
diff --git a/vp-main/playview/res/edje/custom/pv-custom-define.edj b/vp-main/playview/res/edje/custom/pv-custom-define.edj
new file mode 100755 (executable)
index 0000000..e2ddfa6
Binary files /dev/null and b/vp-main/playview/res/edje/custom/pv-custom-define.edj differ
diff --git a/vp-main/playview/res/edje/custom/pv-custom-image.edj b/vp-main/playview/res/edje/custom/pv-custom-image.edj
new file mode 100755 (executable)
index 0000000..3db7492
Binary files /dev/null and b/vp-main/playview/res/edje/custom/pv-custom-image.edj differ
diff --git a/vp-main/playview/res/edje/pv-bookmark-item.edj b/vp-main/playview/res/edje/pv-bookmark-item.edj
new file mode 100755 (executable)
index 0000000..04ac492
Binary files /dev/null and b/vp-main/playview/res/edje/pv-bookmark-item.edj differ
diff --git a/vp-main/playview/res/edje/pv-bookmark.edj b/vp-main/playview/res/edje/pv-bookmark.edj
new file mode 100755 (executable)
index 0000000..71d3f0f
Binary files /dev/null and b/vp-main/playview/res/edje/pv-bookmark.edj differ
diff --git a/vp-main/playview/res/edje/pv-brightness-popup.edj b/vp-main/playview/res/edje/pv-brightness-popup.edj
new file mode 100755 (executable)
index 0000000..1e3e411
Binary files /dev/null and b/vp-main/playview/res/edje/pv-brightness-popup.edj differ
diff --git a/vp-main/playview/res/edje/pv-chapter-main-new.edj b/vp-main/playview/res/edje/pv-chapter-main-new.edj
new file mode 100755 (executable)
index 0000000..ee7fad4
Binary files /dev/null and b/vp-main/playview/res/edje/pv-chapter-main-new.edj differ
diff --git a/vp-main/playview/res/edje/pv-colorselector.edj b/vp-main/playview/res/edje/pv-colorselector.edj
new file mode 100755 (executable)
index 0000000..9ea6f37
Binary files /dev/null and b/vp-main/playview/res/edje/pv-colorselector.edj differ
diff --git a/vp-main/playview/res/edje/pv-custom-winset.edj b/vp-main/playview/res/edje/pv-custom-winset.edj
new file mode 100755 (executable)
index 0000000..5c9e38e
Binary files /dev/null and b/vp-main/playview/res/edje/pv-custom-winset.edj differ
diff --git a/vp-main/playview/res/edje/pv-gesture.edj b/vp-main/playview/res/edje/pv-gesture.edj
new file mode 100755 (executable)
index 0000000..70938f9
Binary files /dev/null and b/vp-main/playview/res/edje/pv-gesture.edj differ
diff --git a/vp-main/playview/res/edje/pv-image.edj b/vp-main/playview/res/edje/pv-image.edj
new file mode 100755 (executable)
index 0000000..d01a027
Binary files /dev/null and b/vp-main/playview/res/edje/pv-image.edj differ
diff --git a/vp-main/playview/res/edje/pv-macro.edj b/vp-main/playview/res/edje/pv-macro.edj
new file mode 100755 (executable)
index 0000000..49eda59
Binary files /dev/null and b/vp-main/playview/res/edje/pv-macro.edj differ
diff --git a/vp-main/playview/res/edje/pv-minicontroller.edj b/vp-main/playview/res/edje/pv-minicontroller.edj
new file mode 100755 (executable)
index 0000000..cd71816
Binary files /dev/null and b/vp-main/playview/res/edje/pv-minicontroller.edj differ
diff --git a/vp-main/playview/res/edje/pv-multi-main.edj b/vp-main/playview/res/edje/pv-multi-main.edj
new file mode 100755 (executable)
index 0000000..6156b1d
Binary files /dev/null and b/vp-main/playview/res/edje/pv-multi-main.edj differ
diff --git a/vp-main/playview/res/edje/pv-normal-control.edj b/vp-main/playview/res/edje/pv-normal-control.edj
new file mode 100755 (executable)
index 0000000..022d3e6
Binary files /dev/null and b/vp-main/playview/res/edje/pv-normal-control.edj differ
diff --git a/vp-main/playview/res/edje/pv-normal-function.edj b/vp-main/playview/res/edje/pv-normal-function.edj
new file mode 100755 (executable)
index 0000000..7e8d320
Binary files /dev/null and b/vp-main/playview/res/edje/pv-normal-function.edj differ
diff --git a/vp-main/playview/res/edje/pv-normal-main.edj b/vp-main/playview/res/edje/pv-normal-main.edj
new file mode 100755 (executable)
index 0000000..b7bfc01
Binary files /dev/null and b/vp-main/playview/res/edje/pv-normal-main.edj differ
diff --git a/vp-main/playview/res/edje/pv-normal-top-control.edj b/vp-main/playview/res/edje/pv-normal-top-control.edj
new file mode 100755 (executable)
index 0000000..1275f9b
Binary files /dev/null and b/vp-main/playview/res/edje/pv-normal-top-control.edj differ
diff --git a/vp-main/playview/res/edje/pv-popup.edj b/vp-main/playview/res/edje/pv-popup.edj
new file mode 100755 (executable)
index 0000000..01b187e
Binary files /dev/null and b/vp-main/playview/res/edje/pv-popup.edj differ
diff --git a/vp-main/playview/res/edje/pv-progressbar.edj b/vp-main/playview/res/edje/pv-progressbar.edj
new file mode 100755 (executable)
index 0000000..3523ce9
Binary files /dev/null and b/vp-main/playview/res/edje/pv-progressbar.edj differ
diff --git a/vp-main/playview/res/edje/pv-resource.edj b/vp-main/playview/res/edje/pv-resource.edj
new file mode 100755 (executable)
index 0000000..ca90d29
Binary files /dev/null and b/vp-main/playview/res/edje/pv-resource.edj differ
diff --git a/vp-main/playview/res/edje/pv-sensor-popup.edj b/vp-main/playview/res/edje/pv-sensor-popup.edj
new file mode 100755 (executable)
index 0000000..45562fc
Binary files /dev/null and b/vp-main/playview/res/edje/pv-sensor-popup.edj differ
diff --git a/vp-main/playview/res/edje/pv-speed-popup.edj b/vp-main/playview/res/edje/pv-speed-popup.edj
new file mode 100755 (executable)
index 0000000..9409572
Binary files /dev/null and b/vp-main/playview/res/edje/pv-speed-popup.edj differ
diff --git a/vp-main/playview/res/edje/pv-subtitle-color-popup.edj b/vp-main/playview/res/edje/pv-subtitle-color-popup.edj
new file mode 100755 (executable)
index 0000000..3e8650d
Binary files /dev/null and b/vp-main/playview/res/edje/pv-subtitle-color-popup.edj differ
diff --git a/vp-main/playview/res/edje/pv-subtitle.edj b/vp-main/playview/res/edje/pv-subtitle.edj
new file mode 100755 (executable)
index 0000000..a45379a
Binary files /dev/null and b/vp-main/playview/res/edje/pv-subtitle.edj differ
diff --git a/vp-main/playview/res/edje/pv-tag-buddy.edj b/vp-main/playview/res/edje/pv-tag-buddy.edj
new file mode 100755 (executable)
index 0000000..36d414f
Binary files /dev/null and b/vp-main/playview/res/edje/pv-tag-buddy.edj differ
diff --git a/vp-main/playview/res/edje/pv-tag-preview.edj b/vp-main/playview/res/edje/pv-tag-preview.edj
new file mode 100755 (executable)
index 0000000..af932e9
Binary files /dev/null and b/vp-main/playview/res/edje/pv-tag-preview.edj differ
diff --git a/vp-main/playview/res/edje/pv-trim-control.edj b/vp-main/playview/res/edje/pv-trim-control.edj
new file mode 100755 (executable)
index 0000000..788ddd0
Binary files /dev/null and b/vp-main/playview/res/edje/pv-trim-control.edj differ
diff --git a/vp-main/playview/res/edje/pv-trim-item.edj b/vp-main/playview/res/edje/pv-trim-item.edj
new file mode 100755 (executable)
index 0000000..46ed8f9
Binary files /dev/null and b/vp-main/playview/res/edje/pv-trim-item.edj differ
diff --git a/vp-main/playview/res/edje/pv-trim-main.edj b/vp-main/playview/res/edje/pv-trim-main.edj
new file mode 100755 (executable)
index 0000000..43225bc
Binary files /dev/null and b/vp-main/playview/res/edje/pv-trim-main.edj differ
diff --git a/vp-main/playview/res/edje/pv-trim-top-control.edj b/vp-main/playview/res/edje/pv-trim-top-control.edj
new file mode 100755 (executable)
index 0000000..4e673f9
Binary files /dev/null and b/vp-main/playview/res/edje/pv-trim-top-control.edj differ
diff --git a/vp-main/playview/res/edje/pv-volume-popup.edj b/vp-main/playview/res/edje/pv-volume-popup.edj
new file mode 100755 (executable)
index 0000000..a2d0c25
Binary files /dev/null and b/vp-main/playview/res/edje/pv-volume-popup.edj differ
diff --git a/vp-main/playview/res/edje/pv-volume.edj b/vp-main/playview/res/edje/pv-volume.edj
new file mode 100755 (executable)
index 0000000..51f8a68
Binary files /dev/null and b/vp-main/playview/res/edje/pv-volume.edj differ
diff --git a/vp-main/playview/res/edje/pv-zoom-guide.edj b/vp-main/playview/res/edje/pv-zoom-guide.edj
new file mode 100755 (executable)
index 0000000..417f5fc
Binary files /dev/null and b/vp-main/playview/res/edje/pv-zoom-guide.edj differ
diff --git a/vp-main/project_def.prop b/vp-main/project_def.prop
new file mode 100755 (executable)
index 0000000..894fe1c
--- /dev/null
@@ -0,0 +1,73 @@
+
+# Project Name
+APPNAME = video-player
+
+# Project Type
+type = app
+
+# Project Profile
+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 ../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 =  
+
+# PO Sources
+USER_POS = res/po/pt_BR.po res/po/el_GR.po res/po/sr.po res/po/sl.po res/po/mk.po res/po/en.po res/po/da.po res/po/zh_HK.po res/po/fr_CA.po res/po/es_ES.po res/po/et.po res/po/cs.po res/po/ga.po res/po/de.po res/po/ja_JP.po res/po/uk.po res/po/sv.po res/po/nl.po res/po/fr.po res/po/ca.po res/po/nb.po res/po/zh_TW.po res/po/pt_PT.po res/po/hu.po res/po/hi.po res/po/es_US.po res/po/ka.po res/po/is.po res/po/ru_RU.po res/po/en_US.po res/po/hy.po res/po/zh_CN.po res/po/sk.po res/po/tr_TR.po res/po/ar.po res/po/gl.po res/po/az.po res/po/kk.po res/po/eu.po res/po/ko_KR.po res/po/it_IT.po res/po/en_PH.po res/po/pl.po res/po/lv.po res/po/fi.po res/po/bg.po res/po/ro.po res/po/uz.po res/po/lt.po res/po/hr.po 
+
+# User Defines
+USER_DEFS = USE_I_FRAMESEKK VS_FEATURE_THUMBNAIL_VIEW VS_FEATURE_FOLDER_VIEW SUBTITLE_K_FEATURE _SUBTITLE_MULTI_LANGUAGE _TRIME_VIEW_NEW_FEATURE ENABLE_VOLUME_BRIGHTNESS_POPUP
+USER_CPP_DEFS = 
+
+# User Undefines
+USER_UNDEFS = 
+USER_CPP_UNDEFS = 
+
+# User Libraries
+USER_LIBS = 
+
+# User Objects
+USER_OBJS = 
+USER_OBJS_ABS = 
+
+# User Includes
+## C Compiler
+USER_INC_DIRS = include include/serviceParser $(workspace_loc)/include $(workspace_loc)/playview/include $(workspace_loc)/common/include $(workspace_loc)/include/common $(workspace_loc)/include/feature $(workspace_loc)/include/view $(workspace_loc)/include/viewMgr $(workspace_loc)/include/widget $(workspace_loc)/playview/src/include $(workspace_loc)/playview/src/core/include $(workspace_loc)/playview/src/common/include $(workspace_loc)/playview/src/feature/include $(workspace_loc)/playview/src/view/include $(workspace_loc)/playview/src/widget/include $(workspace_loc)/common/src/include
+USER_INC_DIRS_ABS = include include/serviceParser $(workspace_loc)/include $(workspace_loc)/playview/include $(workspace_loc)/common/include $(workspace_loc)/include/common $(workspace_loc)/include/feature $(workspace_loc)/include/view $(workspace_loc)/include/viewMgr $(workspace_loc)/include/widget $(workspace_loc)/playview/src/include $(workspace_loc)/playview/src/core/include $(workspace_loc)/playview/src/common/include $(workspace_loc)/playview/src/feature/include $(workspace_loc)/playview/src/view/include $(workspace_loc)/playview/src/widget/include $(workspace_loc)/common/src/include
+USER_INC_FILES = 
+USER_INC_FILES_ABS = 
+## C++ Compiler
+USER_CPP_INC_DIRS = 
+USER_CPP_INC_DIRS_ABS = 
+USER_CPP_INC_FILES = 
+USER_CPP_INC_FILES_ABS = 
+
+# User Library Path
+USER_LIB_DIRS = 
+USER_LIB_DIRS_ABS = 
+
+# EDC Resource Path
+USER_EDCS_IMAGE_DIRS = edje/images $(workspace_loc)/playview/res/edje/images
+USER_EDCS_IMAGE_DIRS_ABS =
+USER_EDCS_SOUND_DIRS = edje/sounds 
+USER_EDCS_SOUND_DIRS_ABS = 
+USER_EDCS_FONT_DIRS = edje/fonts 
+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-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 $(workspace_loc)/playview/res/edje/images
+USER_EXT_EDC0_EDCS_IMAGE_DIRS_ABS = edje/images $(workspace_loc)/playview/res/edje/images
+USER_EXT_EDC0_EDCS_SOUND_DIRS = edje/sounds 
+USER_EXT_EDC0_EDCS_SOUND_DIRS_ABS = 
+USER_EXT_EDC0_EDCS_FONT_DIRS = edje/fonts
+USER_EXT_EDC0_EDCS_FONT_DIRS_ABS = 
+
+# Resource Filter
+USER_RES_INCLUDE = 
+USER_RES_EXCLUDE = res/**/*.edc 
+
diff --git a/vp-main/res/edje/custom/Tizen_Touch.wav b/vp-main/res/edje/custom/Tizen_Touch.wav
new file mode 100755 (executable)
index 0000000..ef6e6ae
Binary files /dev/null and b/vp-main/res/edje/custom/Tizen_Touch.wav differ
diff --git a/vp-main/res/edje/custom/button-pressed.wav b/vp-main/res/edje/custom/button-pressed.wav
new file mode 100755 (executable)
index 0000000..ef6e6ae
Binary files /dev/null and b/vp-main/res/edje/custom/button-pressed.wav differ
diff --git a/vp-main/res/edje/custom/pv-custom-button.edc b/vp-main/res/edje/custom/pv-custom-button.edc
new file mode 100755 (executable)
index 0000000..381da26
--- /dev/null
@@ -0,0 +1,4469 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+
+#define BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC           63 63
+#define BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC                      63 63
+
+#define BUTTON_CUSTOM_ICON_NORMAL_COLOR                                        236 234 226 255
+#define BUTTON_CUSTOM_ICON_PRESS_COLOR                                 64 147 247 255
+#define BUTTON_CUSTOM_ICON_DIM_COLOR                                   236 234 226 75
+
+#define BUTTON_NAVIFRAME_MORE_BG_MIN_MAX_INC                           85 98
+#define BUTTON_NAVIFRAME_MORE_DEFAULT_IMAGE_MIN_MAX_INC        63 63
+
+#define BUTTON_CIRCLE_01_MIN_MAX_INC                                           40 40
+#define BUTTON_CIRCLE_02_MIN_MAX_INC                                           36 36
+#define BUTTON_CIRCLE_03_MIN_MAX_INC                                           45 45
+
+#define BUTTON_FLAT_MIN_MAX_INC                                                                30 30
+
+#define BUTTON_ROUND_LEFT_MIN_MAX_INC                                          104 68
+#define BUTTON_ROUND_CENTER_MIN_MAX_INC                                                104 68
+#define BUTTON_ROUND_RIGHT_MIN_MAX_INC                                         104 68
+
+#define BUTTON_ROUND_ICON_MIN_MAX_INC                                          40 40
+
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_NORMAL_COLOR_INC 255 255 255 255
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DEFAULT_COLOR_INC 101 101 101 255
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DEFAULT_BLACK_COLOR_INC 255 255 255 255
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_PRESSED_COLOR_INC 64 147 247 255
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DISABLED_COLOR_INC 101 101 101 76
+
+
+#define BUTTON_CUSTOM_ICON_STYLES(style_name, min_width, min_height)   \
+group {                                                                                                                                \
+       name: "elm/button/base/custom/"style_name;                              \
+       parts  {                                                                                                                        \
+               part {                                                                                                          \
+                       name: "button_image";                                                                           \
+                       type: RECT;                                                                                             \
+                       scale: 1;                                                                                                       \
+                       description {                                                                                           \
+                               state: "default" 0.0;                                                                   \
+                               min: min_width min_height;                                                              \
+                               max: min_width min_height;                                                              \
+                               fixed: 1 1;                                                                                     \
+                               visible: 0;                                                                                     \
+                       }                                                                                                               \
+                       description {                                                                                           \
+                               state: "clicked" 0.0;                                                                   \
+                               inherit: "default" 0.0;                                                                 \
+                       }                                                                                                               \
+                       description {                                                                                           \
+                               state: "disabled" 0.0;                                                                  \
+                               inherit: "default" 0.0;                                                                 \
+                       }                                                                                                               \
+                       description {                                                                                           \
+                               state: "focused" 0.0;                                                                   \
+                               inherit: "default" 0.0;                                                                 \
+                       }                                                                                                               \
+               }                                                                                                                       \
+               part {                                                                                                          \
+                       name: "elm.text";                                                                                       \
+                       type: TEXT;                                                                                             \
+                       mouse_events: 0;                                                                                        \
+                       scale: 1;                                                                                                       \
+                       description {                                                                                           \
+                               state: "default" 0.0;                                                                   \
+                               visible: 0;                                                                                     \
+                               rel1 { relative: 0.0 0.0;}                                                              \
+                               rel2 { relative: 0.0 0.0;}                                                              \
+                               color: 0 0 0 0;                                                                                 \
+                               text {                                                                                          \
+                                       font: "Tizen:style=Regular";                                                    \
+                                       size: 24;                                                                                       \
+                                       min: 0 0;                                                                                       \
+                               }                                                                                                       \
+                       }                                                                                                               \
+               }                                                                                                                       \
+               part {                                                                                                          \
+                       name: "elm.swallow.content";                                                            \
+                       type: SWALLOW;                                                                                  \
+                       scale: 1;                                                                                                       \
+                       mouse_events: 0;                                                                                        \
+                       description {                                                                                           \
+                               state: "default" 0.0;                                                                   \
+                               visible: 1;                                                                             \
+                               min: min_width min_height;                                                              \
+                               max: min_width min_height;                                                              \
+                               fixed: 1 1;                                                                                     \
+                               rel1.to: "button_image";                                                                        \
+                               rel2.to: "button_image";                                                                        \
+                       }                                                                                                               \
+               }                                                                                                                       \
+               part {                                                                                                          \
+                       name: "over2";                                                                                  \
+                       type: RECT;                                                                                             \
+                       repeat_events: 1;                                                                                       \
+                       ignore_flags: ON_HOLD;                                                                  \
+                       description {                                                                                           \
+                               state: "default" 0.0;                                                                   \
+                               color: 0 0 0 0;                                                                                 \
+                       }                                                                                                               \
+               }                                                                                                                       \
+               part {                                                                                                          \
+                       name: "over3";                                                                                  \
+                       type: RECT;                                                                                             \
+                       repeat_events: 1;                                                                                       \
+                       ignore_flags: ON_HOLD;                                                                  \
+                       description {                                                                                           \
+                               state: "default" 0.0;                                                                   \
+                               color: 0 0 0 0;                                                                                 \
+                       }                                                                                                               \
+               }                                                                                                                       \
+       }                                                                                                                               \
+       programs                                                                                                                        \
+       {                                                                                                                               \
+               program {                                                                                                       \
+                       name: "button_down";                                                                            \
+                       signal: "mouse,down,1";                                                                 \
+                       source: "over2";                                                                                        \
+                       action: SIGNAL_EMIT "elm,action,press" "";                                              \
+               }                                                                                                                       \
+               program {                                                                                                       \
+                       name: "button_up";                                                                              \
+                       signal: "mouse,up,1";                                                                           \
+                       source: "over3";                                                                                        \
+                       action: SIGNAL_EMIT "elm,action,unpress" "";                                    \
+               }                                                                                                                       \
+               program {                                                                                                       \
+                       name: "button_clicked";                                                                         \
+                       signal: "mouse,clicked,1";                                                                      \
+                       source: "over2";                                                                                        \
+                       action: SIGNAL_EMIT "elm,action,click" "";                                              \
+               }                                                                                                                       \
+               program {                                                                                                       \
+                       name: "button_click";                                                                   \
+                       source: "over2";                                                                                \
+                       signal: "mouse,clicked,1";                                                              \
+                       action: RUN_PLUGIN "touch_sound_plugin";                                \
+               }                                                                                                                       \
+       }                                                                                                                               \
+}
+
+
+
+group {
+       name: "elm/button/base/custom/circle_1/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               rel1.relative: 0.3 0.3;
+                               rel2.relative: 0.7 0.7;
+                               color: 0 166 191 255;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "button_bg";
+                       type: IMAGE;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01-2_control_circle_button_01_press.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01_press.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01_press.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01_press.png";
+                               color: 0 166 191 255;
+                       }
+               }
+
+               part {
+                       name: "button_circle";
+                       type: IMAGE;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01-2_control_circle_button_01.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01_focus.png";
+                               color: 0 166 191 255;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+
+               /*program {
+                       name: "focused";
+                       signal: "elm,action,focus";
+                       source: "elm";
+                       action: STATE_SET "focused" 0.0;
+                       target: "button_circle";
+                       target: "button_bg";
+               }
+
+               program {
+                       name: "unfocused";
+                       signal: "elm,action,unfocus";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_circle";
+                       target: "button_bg";
+               }*/
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+group {
+       name: "elm/button/base/custom/circle_1_focus/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               rel1.relative: 0.3 0.3;
+                               rel2.relative: 0.7 0.7;
+                               color: 0 255 0 255;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "button_bg";
+                       type: IMAGE;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01-2_control_circle_button_01_press.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01_press.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01_press.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01_press.png";
+                               color: 0 166 191 255;
+                       }
+               }
+
+               part {
+                       name: "button_circle";
+                       type: IMAGE;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01-2_control_circle_button_01.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01.png";
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_01.png";
+                               color: 0 166 191 255;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+               part {
+                       name: "over2";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       target: "button_circle";
+                       target: "button_bg";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "button_circle";
+                       target: "button_bg";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "button_circle";
+                       target: "button_bg";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "button_circle";
+                       target: "button_bg";
+               }
+
+               program {
+                       name: "focused";
+                       signal: "elm,action,focus";
+                       source: "elm";
+                       action: STATE_SET "focused" 0.0;
+                       target: "button_circle";
+                       target: "button_bg";
+               }
+
+               program {
+                       name: "unfocused";
+                       signal: "elm,action,unfocus";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_circle";
+                       target: "button_bg";
+               }
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+group {
+       name: "elm/button/base/custom/circle_2/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: IMAGE;
+                       description {
+                               state: "default" 0.0;
+                               rel1.relative: 0.8 0.3;
+                               rel2.relative: 1.2 0.7;
+                               visible: 1;
+                               image { normal: "control/T01-2_control_circle_icon_rewind.png";}
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+
+               /*part {
+                       name: "button_bg";
+                       type: IMAGE;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01-2_control_circle_button_02_press.png";
+                               color: 0 0 0 153;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02_press.png";
+                               color: 66 162 207 255;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02_press.png";
+                               color: 0 0 0 153;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02_press.png";
+                               color: 0 0 0 153;
+                       }
+               }
+
+               part {
+                       name: "button_circle";
+                       type: IMAGE;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01-2_control_circle_button_02.png";
+                               color: 255 255 255 255 128;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02.png";
+                               color: 66 162 207 255;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02.png";
+                               color: 255 255 255 51;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02.png";
+                               color: 255 255 255 255 128;
+                       }
+               }*/
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               /*part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }*/
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+               /*program {
+                       name: "focused";
+                       action: STATE_SET "focused" 0.0;
+                       target: "button_circle";
+                       target: "button_bg";
+               }
+
+               program {
+                       name: "unfocused";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_circle";
+                       target: "button_bg";
+               }*/
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+
+group {
+       name: "elm/button/base/custom/circle_3/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: IMAGE;
+                       description {
+                               state: "default" 0.0;
+                               rel1.relative: -0.2 0.3;
+                               rel2.relative: 0.2 0.7;
+                               visible: 1;
+                               image { normal: "control/T01-2_control_circle_icon_next.png";}
+                               color: 0 166 191 255;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+
+               /*part {
+                       name: "button_bg";
+                       type: IMAGE;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01-2_control_circle_button_02_press.png";
+                               color: 0 0 0 153;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02_press.png";
+                               color: 66 162 207 255;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02_press.png";
+                               color: 0 0 0 153;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02_press.png";
+                               color: 0 0 0 153;
+                       }
+               }
+
+               part {
+                       name: "button_circle";
+                       type: IMAGE;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01-2_control_circle_button_02.png";
+                               color: 255 255 255 255 128;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02.png";
+                               color: 66 162 207 255;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02.png";
+                               color: 255 255 255 51;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01-2_control_circle_button_02.png";
+                               color: 255 255 255 255 128;
+                       }
+               }*/
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               /*part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }*/
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                               rel1.relative: 0 0;
+                               rel2.relative: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       //target: "button_circle";
+                       //target: "button_bg";
+               }
+               /*program {
+                       name: "focused";
+                       action: STATE_SET "focused" 0.0;
+                       target: "button_circle";
+                       target: "button_bg";
+               }
+
+               program {
+                       name: "unfocused";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_circle";
+                       target: "button_bg";
+               }*/
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+
+
+
+group { name: "elm/button/base/custom/navi_button/default";
+   parts {
+         part { name: "button_image";
+                type: RECT;
+                scale: 1;
+                description { state: "default" 0.0;
+                       visible: 0;
+                       min: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+                       max: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+                }
+                description { state: "clicked" 0.0;
+                       inherit: "default" 0.0;
+                }
+                description { state: "disabled" 0.0;
+                       inherit: "default" 0.0;
+                }
+         }
+         part { name: "elm.swallow.content";
+                type: SWALLOW;
+                scale: 1;
+                clip_to: "elm.icon.clipper";
+                description { state: "default" 0.0;
+                       visible: 1;
+                       fixed: 1 1;
+                       min: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+                       max: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+                       rel1 { relative: 0.5 0.5; to : "button_image"; }
+                       rel2 { relative: 0.5 0.5; to : "button_image"; }
+
+                }
+                description { state: "visible" 0.0;
+                       inherit: "default" 0.0;
+                       visible: 1;
+                }
+         }
+         part { name: "elm.swallow.icon.proxy";
+                type: PROXY;
+                scale: 1;
+                clip_to: "elm.icon.proxy.clipper";
+                description { state: "default" 0.0;
+                        source: "elm.swallow.content";
+                        rel1.to: "elm.swallow.content";
+                        rel1.offset: 0 -2;
+                        rel2.to: "elm.swallow.content";
+                        rel2.offset: -1 -3;
+                }
+         }
+         part { name: "elm.icon.proxy.clipper";
+                type: RECT;
+                description { state: "default" 0.0;
+                       color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DEFAULT_BLACK_COLOR_INC;
+                }
+                description { state: "clicked" 0.0;
+                       color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_PRESSED_COLOR_INC;
+                }
+                description { state: "disabled" 0.0;
+                       color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DISABLED_COLOR_INC;
+                }
+         }
+         part { name: "elm.icon.clipper";
+                type: RECT;
+                description { state: "default" 0.0;
+                       color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_NORMAL_COLOR_INC;
+                }
+                description { state: "clicked" 0.0;
+                       color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_NORMAL_COLOR_INC;
+                }
+                description { state: "disabled" 0.0;
+                       color: BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DISABLED_COLOR_INC;
+                }
+         }
+         part { name: "over2";
+                type: RECT;
+                ignore_flags: ON_HOLD;
+                description { state: "default" 0.0;
+                       color: 0 0 0 0;
+                }
+         }
+         part { name: "over3";
+                type: RECT;
+                repeat_events: 1;
+                description { state: "default" 0.0;
+                       color: 0 0 0 0;
+                }
+         }
+         part { name: "disabler";
+                type: RECT;
+                description { state: "default" 0.0;
+                       color: 0 0 0 0;
+                       visible: 0;
+                }
+                description { state: "disabled" 0.0;
+                       inherit: "default" 0.0;
+                       visible: 1;
+                }
+         }
+   }
+   programs {
+         program { name: "button_click";
+                signal: "mouse,down,1";
+                source: "over2";
+                action: SIGNAL_EMIT "elm,action,press" "";
+                after: "button_click_anim";
+         }
+         program { name: "button_click_anim";
+                action: STATE_SET "clicked" 0.0;
+                target: "button_image";
+                target: "elm.icon.clipper";
+                target: "elm.icon.proxy.clipper";
+         }
+         program { name: "button_unpress";
+                action: SIGNAL_EMIT "elm,action,unpress" "";
+         }
+         program { name: "button_mouseout_clicked";
+                signal: "mouse,up,1";
+                source: "over3";
+                action: STATE_SET "default" 0.0;
+                target: "elm.icon.clipper";
+                target: "elm.icon.proxy.clipper";
+                after: button_unpress;
+         }
+         program { name: "touch_snd";
+                signal: "mouse,clicked,1";
+                source: "over2";
+                action: RUN_PLUGIN "touch_sound_plugin";
+                after: button_unclick3;
+         }
+         program { name: "button_unclick3";
+                action: SIGNAL_EMIT "elm,action,click" "";
+         }
+         program { name: "icon_show";
+                signal: "elm,state,icon,visible";
+                source: "elm";
+                action: STATE_SET "visible" 0.0;
+                target: "elm.swallow.content";
+         }
+         program { name: "icon_hide";
+                signal: "elm,state,icon,hidden";
+                source: "elm";
+                action: STATE_SET "default" 0.0;
+                target: "elm.swallow.content";
+         }
+         program { name: "disable";
+                signal: "elm,state,disabled";
+                source: "elm";
+                action: STATE_SET "disabled" 0.0;
+                target: "button_image";
+                target: "disabler";
+                target: "elm.icon.clipper";
+                target: "elm.icon.proxy.clipper";
+         }
+         program { name: "enable";
+                signal: "elm,state,enabled";
+                source: "elm";
+                action: STATE_SET "default" 0.0;
+                target: "button_image";
+                target: "elm.icon.clipper";
+                target: "elm.icon.proxy.clipper";
+                target: "disabler";
+         }
+   }
+}
+
+group {
+       name: "elm/button/base/custom/sound_path/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+                               max: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "rotate_button";
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+                               max: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+                               rel1 { relative: 0.5 0.5; to : "button_image"; }
+                               rel2 { relative: 0.5 0.5; to : "button_image"; }
+                               image.normal: "button/T01_2_icon_bluetooth_headset.png";
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01_2_icon_bluetooth_headset_press.png";
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01_2_icon_bluetooth_headset.png";
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       target: "rotate_button";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "rotate_button";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "rotate_button";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "rotate_button";
+               }
+       } /* programs */
+}
+
+group
+{
+       name: "elm/button/base/custom/allshare/default";
+       parts
+       {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+                               max: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "allshare_button";
+                       type: IMAGE;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+                               max: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01_2_icon_Near_by_device.png";
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01_2_icon_Near_by_device_press.png";
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01_2_icon_Near_by_device.png";
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01_2_icon_Near_by_device_press.png";
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "over2";
+                       type: RECT;
+                       repeat_events: 1;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       }
+
+       programs
+       {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       target: "allshare_button";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "allshare_button";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "allshare_button";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "allshare_button";
+               }
+               program {
+                       name: "focused";
+                       signal: "elm,action,focus";
+                       source: "elm";
+                       action: STATE_SET "focused" 0.0;
+                       target: "allshare_button";
+               }
+
+               program {
+                       name: "unfocused";
+                       signal: "elm,action,unfocus";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "allshare_button";
+               }
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       }
+
+}
+
+group {
+       name: "elm/button/base/custom/check/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+                               max: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "save_button";
+                       scale: 1;
+                       mouse_events: 0;
+                       type: IMAGE;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+                               max: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01_2_icon_check.png";
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01_2_icon_check_press.png";
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01_2_icon_check.png";
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       target: "save_button";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "save_button";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "save_button";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "save_button";
+               }
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+group {
+       name: "elm/button/base/playview/naviframe/close/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+                               max: BUTTON_NAVIFRAME_TITLE_BUTTON_BG_MIN_MAX_INC;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "back_button";
+                       type: IMAGE;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+                               max: BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_MAX_INC;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image.normal: "button/T01_2_icon_close.png";
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01_2_icon_close_press.png";
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "button/T01_2_icon_close.png";
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       target: "back_button";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "back_button";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "back_button";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "back_button";
+               }
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+
+
+
+group {
+       name: "elm/button/base/custom/round_left/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+                               max: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "round_button";
+                       type: IMAGE;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               fixed: 1 1;
+                               min: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+                               max: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image { normal: "multi/T01_2_mw_control_bg_left.png"; border: 37 1 0 0;}
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image { normal: "multi/T01_2_mw_control_bg_left_press.png"; border: 37 1 0 0;}
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image { normal: "multi/T01_2_mw_control_bg_left.png"; border: 37 1 0 0;}
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: BUTTON_ROUND_ICON_MIN_MAX_INC;
+                               max: BUTTON_ROUND_ICON_MIN_MAX_INC;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1 { relative: 0.5 0.5; to: "button_image"; }
+                               rel2 { relative: 0.5 0.5; to: "button_image"; }
+                       }
+               }
+
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       target: "round_button";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "round_button";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "round_button";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "round_button";
+               }
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+
+group {
+       name: "elm/button/base/custom/round_right/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_ROUND_RIGHT_MIN_MAX_INC;
+                               max: BUTTON_ROUND_RIGHT_MIN_MAX_INC;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "round_button";
+                       type: IMAGE;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               fixed: 1 1;
+                               min: BUTTON_ROUND_RIGHT_MIN_MAX_INC;
+                               max: BUTTON_ROUND_RIGHT_MIN_MAX_INC;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image { normal: "multi/T01_2_mw_control_bg_right.png"; border: 1 37 0 0;}
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image { normal: "multi/T01_2_mw_control_bg_right_press.png"; border: 1 37 0 0;}
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image { normal: "multi/T01_2_mw_control_bg_right.png"; border: 1 37 0 0;}
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: BUTTON_ROUND_ICON_MIN_MAX_INC;
+                               max: BUTTON_ROUND_ICON_MIN_MAX_INC;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1 { relative: 0.5 0.5; to: "button_image"; }
+                               rel2 { relative: 0.5 0.5; to: "button_image"; }
+                       }
+               }
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       target: "round_button";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "round_button";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "round_button";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "round_button";
+               }
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+
+
+group {
+       name: "elm/button/base/custom/round_center/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_ROUND_CENTER_MIN_MAX_INC;
+                               max: BUTTON_ROUND_CENTER_MIN_MAX_INC;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "round_button";
+                       type: IMAGE;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               fixed: 1 1;
+                               min: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+                               max: BUTTON_ROUND_LEFT_MIN_MAX_INC;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                               image { normal: "multi/T01_2_mw_control_bg_center.png"; border: 19 19 0 0;}
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image { normal: "multi/T01_2_mw_control_bg_center_press.png"; border: 19 19 0 0;}
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image { normal: "multi/T01_2_mw_control_bg_center.png"; border: 19 19 0 0;}
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               fixed: 1 1;
+                               min: BUTTON_ROUND_ICON_MIN_MAX_INC;
+                               max: BUTTON_ROUND_ICON_MIN_MAX_INC;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1 { relative: 0.5 0.5; to: "button_image"; }
+                               rel2 { relative: 0.5 0.5; to: "button_image"; }
+                       }
+               }
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       target: "round_button";
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "round_button";
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "round_button";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "disabler";
+                       target: "round_button";
+               }
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+
+group {
+       name: "elm/button/base/custom/flat_70_70/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BUTTON_FLAT_MIN_MAX_INC;
+                               max: BUTTON_FLAT_MIN_MAX_INC;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: BUTTON_FLAT_MIN_MAX_INC;
+                               max: BUTTON_FLAT_MIN_MAX_INC;
+                               fixed: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.press";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: BUTTON_FLAT_MIN_MAX_INC;
+                               max: BUTTON_FLAT_MIN_MAX_INC;
+                               fixed: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.dim";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: BUTTON_FLAT_MIN_MAX_INC;
+                               max: BUTTON_FLAT_MIN_MAX_INC;
+                               fixed: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "clicked", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "show", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "disabled", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+                       }
+               }
+               program {
+                       name: "enable";
+                       source: "elm";
+                       signal: "elm,state,enabled";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+//volume icon
+
+group {
+       name: "elm/button/base/custom/flat_46_46/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       
+                       description {
+                               state: "default" 0.0;
+                               rel1.relative:0.0 0.0;
+                               rel2.relative:0.95 1.0;
+                               color:255 0 0 255;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 26 26;
+                               max: 26 26;
+                               //fixed: 1 1;
+                               rel1 
+                               {       relative: 0.0 0.0; to:"button_image";}
+                               rel2
+                               {relative: 1.0 1.0; to:"button_image"; }
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.press";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 26 26;
+                               max: 26 26;
+                               fixed: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.dim";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 26 26;
+                               max: 26 26;
+                               fixed: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               align: 0.5 0.5;
+                               rel1 { relative: 0.0 0.7; to:"button_image";}
+                               rel2 { relative: 1.0 1.0; to:"button_image";}
+                               color: 255 255 255 255;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 10;
+                                       align: 0.5 0.5;
+                               }
+                       }
+               }
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "clicked", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "show", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "disabled", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+                       }
+               }
+               program {
+                       name: "enable";
+                       source: "elm";
+                       signal: "elm,state,enabled";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+//screen size icon
+
+group {
+       name: "elm/button/base/custom/flat_56_56/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;                     
+                       description {
+                               state: "default" 0.0;
+                               //rel1.relative:0.7 0.0;
+                               //rel2.relative:1.0 1.0;
+                               color:0 0 255 255;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 26 26;
+                               max: 26 26;
+                               //fixed: 1 1;
+                               rel1 
+                               {       relative: 0.0 0.0; to:"button_image";}
+                               rel2
+                               {relative: 1.0 1.0; to:"button_image"; }
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.press";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 26 26;
+                               max: 26 26;
+                               fixed: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.dim";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 26 26;
+                               max: 26 26;
+                               fixed: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               align: 0.5 0.5;
+                               rel1 { relative: 0.0 0.6;to: "button_image";}
+                               rel2 { relative: 1.0 1.0;to: "button_image";}
+                               color: 0 166 191 255;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 10;
+                                       align: 0.5 0.5;
+                               }
+                       }
+               }
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "clicked", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "show", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "disabled", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+                       }
+               }
+               program {
+                       name: "enable";
+                       source: "elm";
+                       signal: "elm,state,enabled";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+
+group {
+       name: "elm/button/base/custom/flat_63_63/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: 63 63;
+                               max: 63 63;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 63 63;
+                               max: 63 63;
+                               fixed: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.press";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 63 63;
+                               max: 63 63;
+                               fixed: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.dim";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 63 63;
+                               max: 63 63;
+                               fixed: 1 1;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "clicked", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "show", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "disabled", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+                       }
+               }
+               program {
+                       name: "enable";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+group {
+       name: "elm/button/base/custom/flat_63_85/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: 63 85;
+                               max: 63 85;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 63 63;
+                               max: 63 63;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.press";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 63 63;
+                               max: 63 63;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.dim";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 63 63;
+                               max: 63 63;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "clicked", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "show", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "disabled", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+                       }
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+               /*keep default state when it is focused, Only show blue border in focued state*/
+               program {
+                       name: "focused";
+                       signal: "elm,action,focus";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "clicked", 0.0);
+                               set_state(PART:"disabler", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "unfocused";
+                       signal: "elm,action,unfocus";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+group {
+       name: "elm/button/base/custom/flat_94_60/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: 94 60;
+                               max: 94 60;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 45 45;
+                               max: 45 45;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.press";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 45 45;
+                               max: 45 45;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.dim";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 45 45;
+                               max: 45 45;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "clicked", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "show", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "disabled", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+                       }
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+
+group {
+       name: "elm/button/base/custom/flat_36_36/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: 36 36;
+                               max: 36 36;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 36 36;
+                               max: 36 36;
+                               fixed: 1 1;
+                               align: 0.0 0.0;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.press";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 36 36;
+                               max: 36 36;
+                               fixed: 1 1;
+                               align: 0.0 0.0;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.dim";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 36 36;
+                               max: 36 36;
+                               fixed: 1 1;
+                               align: 0.0 0.0;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+
+               part {
+                       name: "over2";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "clicked", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "show", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "disabled", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+                       }
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+
+
+group {
+       name: "elm/button/base/custom/flat_63_78/default";
+       parts {
+               part {
+                       name: "button_image";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: 40 40;
+                               max: 40 40;
+                               align: 0.5 0.5;
+                               visible: 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 0.0;}
+                               color: 0 0 0 0;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: 24;
+                                       min: 0 0;
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 40 40;
+                               max: 40 40;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.press";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 40 40;
+                               max: 40 40;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content.dim";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 40 40;
+                               max: 40 40;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+
+               part {
+                       name: "over2";
+                       type: RECT;
+                       mouse_events: 1;
+                       repeat_events: 1;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               min: 50 50;
+                       max: 50 50;
+                       rel1.to: "button_image";
+                               rel2.to: "button_image";
+                       align: 0.5 0.5;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       mouse_events: 1;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 100 100;
+                       max: 100 100;
+                       align: 0.5 0.5;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               align: 0.5 0.5;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       } /* parts */
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+
+               program {
+                       name: "button_click_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "clicked", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "show", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       after: "button_unclick_anim";
+               }
+               program {
+                       name: "button_unclick_anim";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "disabled", 0.0);
+                               set_state(PART:"elm.swallow.content", "hide", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "show", 0.0);
+                       }
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"disabler", "default", 0.0);
+                               set_state(PART:"elm.swallow.content", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.press", "default", 0.0);
+                               set_state(PART:"elm.swallow.content.dim", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "button_clicked";
+                       source: "over2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+               }
+       } /* programs */
+}
+group {
+       name: "elm/button/base/back";
+       images
+       {
+               image: "button/core_icon_back.png" COMP;
+       }
+       parts {
+               part {
+                       name: "bg";
+                       type: RECT;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               min: 80 80;
+                               max: 80 80;
+                       }
+               }
+               part {
+                       name: "icon";
+                       type: IMAGE;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 {
+                                       relative: 0 0;
+                                       to: "bg";
+                               }
+                               rel2 {
+                                       relative: 1 1;
+                                       to: "bg";
+                               }
+                               image {
+                                       normal: "button/core_icon_back.png";
+                               }
+                       }
+               }
+       } /*parts*/
+       programs {
+               program {
+                       name:   "buttonclicked";
+                       signal: "mouse,clicked,1";
+                       source: "bg";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+               program {
+                       name:   "buttontextclicked";
+                       signal: "mouse,clicked,1";
+                       source: "icon";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+               program{
+                       name: "touch_snd";
+                       source: "bg";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+               program{
+                       name: "touch_snd1";
+                       source: "icon";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+       }
+
+}
+
diff --git a/vp-main/res/edje/custom/pv-custom-colorselector.edc b/vp-main/res/edje/custom/pv-custom-colorselector.edc
new file mode 100755 (executable)
index 0000000..19b8a9d
--- /dev/null
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+ group {
+        name: "colorplane";
+                parts{
+                        part {
+                                name: "bg";
+                                type: SPACER;
+                                scale: 1;
+                                description {
+                                        state: "default" 0.0;
+                                        min: 578 344;
+                                        max: 578 344;
+                                }
+                        }
+                        part {
+                                name: "top_padding";
+                                type: SPACER;
+                                scale: 1;
+                                description {
+                                        state: "default" 0.0;
+                                        min: 0 21;
+                                        fixed: 0 1;
+                                        rel1.to: "bg";
+                                        rel2 {
+                                                to: "bg";
+                                                relative: 1.0 0.0;
+                                        }
+                                        align: 0.0 0.0;
+                                }
+                        }
+                        part {
+                                name: "colorpalette";
+                                type: SWALLOW;
+                                scale: 1;
+                                description {
+                                        state: "default" 0.0;
+                                        fixed: 0 1;
+                                        rel1 {
+                                                relative: 0.0 1.0;
+                                                to_y: "top_padding";
+                                                to_x: "bg";
+                                        }
+                                        rel2 {
+                                                to_y: "top_padding";
+                                                to_x: "bg";
+                                        }
+                                        align: 0.0 0.0;
+                                }
+                        }
+                        part {
+                                name: "colorpalette_bottom_padding";
+                                type: SPACER;
+                                scale: 1;
+                                description {
+                                        state: "default" 0.0;
+                                        min: 0 12;
+                                        fixed: 0 1;
+                                        rel1 {
+                                                relative: 0.0 1.0;
+                                                to_y: "colorpalette";
+                                                to_x: "bg";
+                                        }
+                                        rel2 {
+                                                to_x: "bg";
+                                                to_y: "colorpalette";
+                                        }
+                                        align: 0.0 0.0;
+                                }
+                        }
+                }//end parts
+ }
diff --git a/vp-main/res/edje/custom/pv-custom-define.edc b/vp-main/res/edje/custom/pv-custom-define.edc
new file mode 100755 (executable)
index 0000000..6d43fee
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+
+
+#define VIDEO_TITLE_FONT_STYLE                         "Tizen:style=Medium"
+#define VIDEO_TITLE_FONT_SIZE                          40
+#define VIDEO_TITLE_FONT_DEFAULT_COLOR         255 255 255 204
+
+
diff --git a/vp-main/res/edje/custom/pv-custom-gengrid-item.edc b/vp-main/res/edje/custom/pv-custom-gengrid-item.edc
new file mode 100755 (executable)
index 0000000..9d9cdbd
--- /dev/null
@@ -0,0 +1,514 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#define GENGRID_PART_BG_COLOR_INC 0 0 0 0
+#define GENGRID_PART_REORDER_BG_COLOR_INC 0 0 0 128
+
+
+group {
+       name: "elm/gengrid/item/bookmark/default";
+       data.item: "contents" "elm.swallow.icon elm.swallow.end";
+       parts {
+               part {
+                       name: "bg";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: GENGRID_PART_BG_COLOR_INC;
+                       }
+               }
+
+               part {
+                       name: "left_top_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 8 18;
+                               align: 0.0 0.0;
+                               visible: 0;
+                               rel1.to: "bg";
+                               rel2 { relative: 0.0 0.0; to: "bg"; }
+                       }
+               }
+
+               part {
+                       name: "right_bottom_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 8 0;
+                               align: 1.0 1.0;
+                               visible: 0;
+                               rel1 { relative: 1.0 1.0; to: "bg"; }
+                               rel2.to: "bg";
+                       }
+               }
+
+               part {
+                       name: "item_bg";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 1.0 1.0; to: "left_top_padding"; }
+                               rel2 { relative: 0.0 0.0; to: "right_bottom_padding"; }
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "item_bg_left_top_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 2 0;
+                               align: 0.0 0.0;
+                               visible: 0;
+                               rel1.to: "item_bg";
+                               rel2 { relative: 0.0 0.0; to: "item_bg"; }
+                       }
+               }
+
+               part {
+                       name: "item_bg_right_bottom_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 2 6;
+                               align: 1.0 1.0;
+                               visible: 0;
+                               rel1 { relative: 1.0 1.0; to: "item_bg"; }
+                               rel2.to: "item_bg";
+                       }
+               }
+
+               part {
+                       name: "item_real_bg";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1 { relative: 1.0 1.0; to: "item_bg_left_top_padding"; }
+                               rel2 { relative: 0.0 0.0; to: "item_bg_right_bottom_padding"; }
+                       }
+               }
+
+               part {
+                       name: "item_real_bg_left_top_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 2 2;
+                               align: 0.0 0.0;
+                               visible: 0;
+                               rel1.to: "item_real_bg";
+                               rel2 { relative: 0.0 0.0; to: "item_real_bg"; }
+                       }
+               }
+
+
+               part {
+                       name: "item_real_bg_right_bottom_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 2 2;
+                               align: 1.0 1.0;
+                               visible: 0;
+                               rel1 { relative: 1.0 1.0; to: "item_real_bg"; }
+                               rel2.to: "item_real_bg";
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.icon";
+                       type: SWALLOW;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 1.0 1.0; to: "item_real_bg_left_top_padding"; }
+                               rel2 { relative: 0.0 0.0; to: "item_real_bg_right_bottom_padding"; }
+                       }
+               }
+
+
+               part {
+                       name: "elm.swallow.end";
+                       type: SWALLOW;
+                       description {
+                               state: "default" 0.0;
+                               rel1.to: "elm.swallow.icon";
+                               rel2.to: "elm.swallow.icon";
+                       }
+               }
+
+
+               part {
+                       name: "reorder_bg";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: GENGRID_PART_BG_COLOR_INC;
+                               rel1.to: "item_bg";
+                               rel2.to: "item_bg";
+                       }
+                       description {
+                               state: "enabled" 0.0;
+                               inherit: "default" 0.0;
+                               color: GENGRID_PART_REORDER_BG_COLOR_INC;
+                       }
+               }
+
+
+               part {
+                       name: "focus_bg_left_top_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 8 16;
+                               align: 0.0 0.0;
+                               visible: 0;
+                               rel1.to: "bg";
+                               rel2 { relative: 0.0 0.0; to: "bg"; }
+                       }
+               }
+
+
+               part {
+                       name: "focus_bg_right_bottom_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 8 4;
+                               align: 1.0 1.0;
+                               visible: 0;
+                               rel1 {  relative: 1.0 1.0; to: "bg"; }
+                               rel2.to: "bg";
+                       }
+               }
+
+
+               part {
+                       name: "focus_bg";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 1.0 1.0; to: "focus_bg_left_top_padding"; }
+                               rel2 { relative: 0.0 0.0; to: "focus_bg_right_bottom_padding"; }
+                       }
+                       description {
+                               state: "enabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+       } /* parts */
+
+
+       programs {
+               program {
+                       name: "go_mouse_down";
+                       signal: "mouse,down,1";
+                       source: "reorder_bg";
+                       action: STATE_SET "enabled" 0.0;
+                       target: "focus_bg";
+                       transition: ACCELERATE 0.2;
+               }
+               program {
+                       name: "go_mouse_up";
+                       signal: "mouse,up,1";
+                       source: "reorder_bg";
+                       action: STATE_SET "default" 0.0;
+                       target: "focus_bg";
+                       transition: DECELERATE 0.2;
+               }
+               program {
+                       name: "go_reorder_disabled";
+                       signal: "elm,state,reorder,disabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "reorder_bg";
+                       target: "focus_bg";
+                       transition: ACCELERATE 0.3;
+               }
+               program {
+                       name: "go_reorder_enabled";
+                       signal: "elm,state,reorder,enabled";
+                       source: "elm";
+                       action: STATE_SET "enabled" 0.0;
+                       target: "reorder_bg";
+                       target: "focus_bg";
+                       transition: DECELERATE 0.3;
+               }
+       }
+}
+
+
+group {
+       name: "elm/gengrid/item/trim_thumb/default";
+       data.item: "contents" "elm.swallow.icon elm.swallow.end";
+       parts {
+               part {
+                       name: "bg";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: GENGRID_PART_BG_COLOR_INC;
+                       }
+               }
+
+               part {
+                       name: "left_top_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 8 18;
+                               align: 0.0 0.0;
+                               visible: 0;
+                               rel1.to: "bg";
+                               rel2 { relative: 0.0 0.0; to: "bg"; }
+                       }
+               }
+
+               part {
+                       name: "right_bottom_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 8 0;
+                               align: 1.0 1.0;
+                               visible: 0;
+                               rel1 { relative: 1.0 1.0; to: "bg"; }
+                               rel2.to: "bg";
+                       }
+               }
+
+               part {
+                       name: "item_bg";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 1.0 1.0; to: "left_top_padding"; }
+                               rel2 { relative: 0.0 0.0; to: "right_bottom_padding"; }
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "item_bg_left_top_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 2 0;
+                               align: 0.0 0.0;
+                               visible: 0;
+                               rel1.to: "item_bg";
+                               rel2 { relative: 0.0 0.0; to: "item_bg"; }
+                       }
+               }
+
+               part {
+                       name: "item_bg_right_bottom_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 2 6;
+                               align: 1.0 1.0;
+                               visible: 0;
+                               rel1 { relative: 1.0 1.0; to: "item_bg"; }
+                               rel2.to: "item_bg";
+                       }
+               }
+
+               part {
+                       name: "item_real_bg";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1 { relative: 1.0 1.0; to: "item_bg_left_top_padding"; }
+                               rel2 { relative: 0.0 0.0; to: "item_bg_right_bottom_padding"; }
+                       }
+               }
+
+               part {
+                       name: "item_real_bg_left_top_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 2 2;
+                               align: 0.0 0.0;
+                               visible: 0;
+                               rel1.to: "item_real_bg";
+                               rel2 { relative: 0.0 0.0; to: "item_real_bg"; }
+                       }
+               }
+
+
+               part {
+                       name: "item_real_bg_right_bottom_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 2 2;
+                               align: 1.0 1.0;
+                               visible: 0;
+                               rel1 { relative: 1.0 1.0; to: "item_real_bg"; }
+                               rel2.to: "item_real_bg";
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.icon";
+                       type: SWALLOW;
+                       description {
+                               state: "default" 0.0;
+                               min: 100 100;
+                               align: 0.0 0.0;
+                               rel1.to: "bg";
+                               rel2 { relative: 0.0 0.0; to: "bg"; }
+                       }
+               }
+
+
+               part {
+                       name: "elm.swallow.end";
+                       type: SWALLOW;
+                       description {
+                               state: "default" 0.0;
+                               rel1.to: "elm.swallow.icon";
+                               rel2.to: "elm.swallow.icon";
+                       }
+               }
+
+
+               part {
+                       name: "reorder_bg";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: GENGRID_PART_BG_COLOR_INC;
+                               rel1.to: "item_bg";
+                               rel2.to: "item_bg";
+                       }
+                       description {
+                               state: "enabled" 0.0;
+                               inherit: "default" 0.0;
+                               color: GENGRID_PART_REORDER_BG_COLOR_INC;
+                       }
+               }
+
+
+               part {
+                       name: "focus_bg_left_top_padding";
+                       type: RECT;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 8 16;
+                               align: 0.0 0.0;
+                               visible: 0;
+                               rel1.to: "bg";
+                               rel2 { relative: 0.0 0.0; to: "bg"; }
+                       }
+               }
+
+
+               part {
+                       name: "focus_bg_right_bottom_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 8 4;
+                               align: 1.0 1.0;
+                               visible: 0;
+                               rel1 {  relative: 1.0 1.0; to: "bg"; }
+                               rel2.to: "bg";
+                       }
+               }
+
+
+               part {
+                       name: "focus_bg";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 { relative: 1.0 1.0; to: "focus_bg_left_top_padding"; }
+                               rel2 { relative: 0.0 0.0; to: "focus_bg_right_bottom_padding"; }
+                       }
+                       description {
+                               state: "enabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+       } /* parts */
+
+
+       programs {
+               program {
+                       name: "go_mouse_down";
+                       signal: "mouse,down,1";
+                       source: "reorder_bg";
+                       action: STATE_SET "enabled" 0.0;
+                       target: "focus_bg";
+                       transition: ACCELERATE 0.2;
+               }
+               program {
+                       name: "go_mouse_up";
+                       signal: "mouse,up,1";
+                       source: "reorder_bg";
+                       action: STATE_SET "default" 0.0;
+                       target: "focus_bg";
+                       transition: DECELERATE 0.2;
+               }
+               program {
+                       name: "go_reorder_disabled";
+                       signal: "elm,state,reorder,disabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "reorder_bg";
+                       target: "focus_bg";
+                       transition: ACCELERATE 0.3;
+               }
+               program {
+                       name: "go_reorder_enabled";
+                       signal: "elm,state,reorder,enabled";
+                       source: "elm";
+                       action: STATE_SET "enabled" 0.0;
+                       target: "reorder_bg";
+                       target: "focus_bg";
+                       transition: DECELERATE 0.3;
+               }
+       }
+}
diff --git a/vp-main/res/edje/custom/pv-custom-genlist-item.edc b/vp-main/res/edje/custom/pv-custom-genlist-item.edc
new file mode 100755 (executable)
index 0000000..fec9aee
--- /dev/null
@@ -0,0 +1,2068 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#define GENLIST_HEIGHT_MULTILINE_SUB      38
+#define GENLIST_HEIGHT_2LINE_SUB          42
+#define GENLIST_LIST_SUB_TEXT_SIZE        32
+#define GENLIST_TREESIZE_DEFAULT          26
+#define GENLIST_PART_LIST_LINE_HEIGHT     1
+#define GENLIST_HEIGHT_2LINE_MAIN         57
+#define GENLIST_PADDING_SIZE_DEFAULT            16
+#define GENLIST_PADDING_SIZE_LEFT               62
+#define GENLIST_PADDING_SIZE_RIGHT              GENLIST_PADDING_SIZE_LEFT
+#define GENLIST_PADDING_SIZE_TOP_2LINE          19
+#define GENLIST_PADDING_SIZE_BOTTOM_2LINE       19
+#define GENLIST_HEIGHT_1LINE                    112  // (114 - top/bottom padding)
+#define GENLIST_PADDING_SIZE_TOP                5
+#define GENLIST_PADDING_SIZE_BOTTOM             5
+#define GENLIST_ICON_MEDIUM_SIZE                       81
+#define GENLIST_BTN_01_HEIGHT                   74
+
+#define GENLIST_LIST_MAIN_TEXT_SIZE                         44
+
+//popup
+#define POPUP_ITEM_BG_PRESSED_BORDER_INC 8 8 8 8
+#define POPUP_ITEM_BG_LEFT_TOP_PAD_MIN_INC 4 4
+#define POPUP_ITEM_BG_RIGHT_BOTTOM_PAD_MIN_INC 4 6
+
+
+//white
+///---------------------------------------------------------------start
+#define GENLIST_LIST_BG_COLOR                       248 246 239 0
+#define GENLIST_LIST_PRESS_COLOR                    87 135 194 255
+#define GENLIST_LIST_DIM_COLOR                      248 246 239 255
+#define GENLIST_LIST_LINE2_COLOR                    204 203 199 255
+#define GENLIST_LIST_LINE1_COLOR                    250 250 250 255
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR         0 0 0 255
+#define GENLIST_LIST_GROUP_TEXT_COLOR                  14 104 173 255
+
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE           "#4F4F4FFF"
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE       "#A3A99FFF"
+//#define GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE                 "#FFFFFFFF"
+#define GENLIST_PART_MATCH_TAG_COLOR                    "+ color=#1382FF"
+
+
+// Genlist Text
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE           "#000000FF"
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR             124 123 119 255
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE       "#7C7B77FF"
+#define GENLIST_LIST_MAIN_TEXT_READ_COLOR                   128 128 128 255
+#define GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR               188 187 183 255
+#define GENLIST_LIST_TEXT_FOCUS_COLOR                       255 255 255 255
+#define GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE                 "#FAFAFAFF"
+
+
+//popup
+#define GENLIST_LIST_BG_POPUP_COLOR                 0 0 0 0
+#define GENLIST_LIST_BG_POPUP_PRESS_COLOR           255 255 255 255
+#define GENLIST_LIST_LINE1_POPUP_COLOR              211 209 203 255
+#define GENLIST_LIST_LINE2_POPUP_COLOR              250 250 250 255
+
+
+#define PV_POPUP_TITLE_LINE_WIDTH_HEIGHT_MIN           0 4
+#define PV_GENLIST_LIST_LINE1_POPUP_COLOR           211 209 203 255
+
+//----------------------------------------------------------------end
+
+#define GENLIST_PARAM_ICON_MEDIUM \
+         min: GENLIST_ICON_MEDIUM_SIZE GENLIST_ICON_MEDIUM_SIZE; \
+         max: GENLIST_ICON_MEDIUM_SIZE GENLIST_ICON_MEDIUM_SIZE;
+
+#define GENLIST_PARAM_ICON_BTN_01 \
+         min: 0 GENLIST_BTN_01_HEIGHT; \
+         max: -1 GENLIST_BTN_01_HEIGHT;
+
+
+#define STYLE_TAG \
+      tag:  "br" "\n";\
+      tag:  "ps" "ps";\
+      tag:  "tab" "\t";\
+      tag:  "b" "+ font_weight=Bold";
+
+#define STYLE_TAG_MATCH \
+      tag:  "match" GENLIST_PART_MATCH_TAG_COLOR;
+
+
+styles {
+               style { name: "genlist_style_list_sub_text_default_wrap";
+                  base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+               style { name: "genlist_style_list_main_multiline_text_default_wrap";
+                  base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+               style { name: "genlist_style_list_sub_multiline_text_default_wrap";
+                  base: "font=Tizen:style=Light font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+               style { name: "genlist_style_list_sub_text_default_dim_wrap";
+                  base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+               style { name: "genlist_style_list_sub_text_focus_wrap";
+                  base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+
+               style { name: "genlist_style_list_main_text_default_wrap";
+                  base: "font=Tizen:style=Bold font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+               style { name: "genlist_style_list_main_text_default_dim_wrap";
+                  base: "font=Tizen:style=Bold font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+               style { name: "genlist_style_list_main_text_focus_wrap";
+                  base: "font=Tizen:style=Bold font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+               style { name: "genlist_style_list_main_text_custom_wrap";
+                  base: "font=Tizen:style=Roman font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+               style { name: "genlist_style_list_main_1_text_default_wrap";
+                  base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+               style { name: "genlist_style_list_main_1_text_default_dim_wrap";
+                  base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+               style { name: "genlist_style_list_main_1_text_focus_wrap";
+                  base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#FFFFFF wrap=mixed";
+                  STYLE_TAG
+                  STYLE_TAG_MATCH
+               }
+}
+
+
+#define GENLIST_NAME(NAME) \
+          name: "elm/genlist/item/"NAME; \
+          alias: "elm/genlist/item_compress/"NAME; \
+          alias: "elm/genlist/tree/"NAME; \
+          alias: "elm/genlist/tree_compress/"NAME;
+
+ // |  PART == HERE  |
+ // ------------------
+ #define GENLIST_DESCRIPTION_ENVELOP( PART, PARAM ) \
+          description { state: "default" 0.0;\
+                 rel1 { \
+                        relative: 0 0; \
+                        to: PART; \
+                 }\
+                 rel2 {\
+                        relative: 1 1;\
+                        to: PART; \
+                 }\
+                 PARAM\
+          }
+
+
+ //     |       top  |
+ // ---------------------
+ // left |     HERE  | right
+ // ---------------------
+ //     | bottom |
+#define GENLIST_DESCRIPTION( left, right, top, bottom, param ) \
+          description { state: "default" 0.0;\
+                 rel1 { \
+                        relative: 1 1; \
+                        to_x: left; \
+                        to_y: top; \
+                 }\
+                 rel2 {\
+                        relative: 0 0;\
+                        to_x: right;\
+                        to_y: bottom;\
+                 }\
+                 param\
+          }
+
+
+//      |   top  |
+// ---------------------
+// left |  HERE  | right
+#define GENLIST_DESCRIPTION_LRT( left, right, top, param ) \
+      description { state: "default" 0.0;\
+         align: 0.5 0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: top;\
+         }\
+         param\
+      }
+
+// ---------------------
+// left |--> HERE
+// ---------------------
+#define GENLIST_DESCRIPTION_L( left, param ) \
+      description { state: "default" 0.0;\
+         align: 0 0.5; \
+         fixed: 1 0; \
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         rel2 { \
+            relative: 1 1;\
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+//   |  top     |
+// -----------------
+//  |  HERE  <--| right
+// -----------------
+//  | bottom   |
+#define GENLIST_DESCRIPTION_RTB( right, top, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 1 0.5;\
+         rel1 { \
+            relative: 0 1; \
+            to_x: right; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+// --------------------------
+// left |--> HERE  <--| right
+// --------------------------
+#define GENLIST_DESCRIPTION_LR( left, right, param ) \
+      description { state: "default" 0.0;\
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+//      |     top  |
+// ---------------------
+// left |--> HERE  |
+// ---------------------
+//      |   bottom |
+#define GENLIST_DESCRIPTION_LTB( left, top, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0 0.5;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 1 0;\
+            to_x: left;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+
+#define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP \
+       description { state: "disabled" 0.0; \
+          inherit: "default" 0.0; \
+          text.style: "genlist_style_list_sub_text_default_dim_wrap"; \
+       } \
+       description { state: "selected" 0.0; \
+          inherit: "default" 0.0; \
+          text.style: "genlist_style_list_sub_text_focus_wrap"; \
+       }
+
+#define GENLIST_PARAM_SUBITEM_DEFAULT_TB_WRAP \
+        text { \
+               min: 0 1; \
+               style: "genlist_style_list_sub_text_default_wrap"; \
+        }
+
+#define GENLIST_PARAM_MULTI_MAINITEM_DEFAULT_TB_WRAP \
+        text { \
+               min: 0 1; \
+               style: "genlist_style_list_main_multiline_text_default_wrap"; \
+        }
+
+#define GENLIST_PARAM_MULTI_SUBITEM_DEFAULT_TB_WRAP \
+        text { \
+               min: 0 1; \
+               style: "genlist_style_list_sub_multiline_text_default_wrap"; \
+        }
+
+#define GENLIST_PARAM_MAINITEM_DEFAULT_TB_WRAP \
+        text { \
+               min: 0 1; \
+               style: "genlist_style_list_main_text_default_wrap"; \
+        }
+
+#define GENLIST_PARAM_MAINITEM_CUSTOM_TB_WRAP \
+        text { \
+               min: 0 1; \
+               style: "genlist_style_list_main_text_custom_wrap"; \
+        }
+
+#define GENLIST_PARAM_MAINITEM_1TEXT_DEFAULT_TB_WRAP \
+        text { \
+               min: 0 1; \
+               style: "genlist_style_list_main_1_text_default_wrap"; \
+        }
+
+#define GENLIST_DESCRIPTION_MAINITEM_1TEXT_DEFAULT_OTHERS_TB_WRAP \
+       description { state: "disabled" 0.0; \
+          inherit: "default" 0.0; \
+          text.style: "genlist_style_list_main_1_text_default_dim_wrap"; \
+       } \
+       description { state: "selected" 0.0; \
+          inherit: "default" 0.0; \
+          text.style: "genlist_style_list_main_1_text_focus_wrap"; \
+       }
+
+
+#define GENLIST_DESCRIPTION_MAINITEM_DEFAULT_OTHERS_TB_WRAP \
+       description { state: "disabled" 0.0; \
+          inherit: "default" 0.0; \
+          text.style: "genlist_style_list_main_text_default_dim_wrap"; \
+       } \
+       description { state: "selected" 0.0; \
+          inherit: "default" 0.0; \
+          text.style: "genlist_style_list_main_text_focus_wrap"; \
+       }
+
+#define GENLIST_PART_TEXTBLOCK(NAME, DESCRIPION) \
+        part { name: NAME; \
+          scale: 1; \
+          type: TEXTBLOCK; \
+          repeat_events: 1; \
+          DESCRIPION \
+       }
+
+#define GENLIST_PART_TEXT(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      type: TEXT; \
+      repeat_events: 1; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_SPACER(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      mouse_events: 0; \
+      type: SPACER; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_RECT(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      type: RECT; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_IMAGE(NAME, DESCRIPION) \
+   part { name: NAME; \
+      scale: 1; \
+      type: IMAGE; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_ICON(NAME, DESCRIPION) \
+   part { name: NAME; \
+      scale: 1; \
+      type: SWALLOW; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_ICON_MEDIUM_L(NAME, LEFT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.top", "elm.padding.bottom", \
+         GENLIST_PARAM_ICON_MEDIUM \
+         fixed: 1 1; \
+      ) \
+   )
+
+
+// list main text
+#define GENLIST_PARAM_LISTITEM \
+   color: 8 8 8 255; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "Tizen:style=Regular"; \
+      size: GENLIST_LIST_MAIN_TEXT_SIZE; \
+   }
+
+// list main text
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR; \
+   } \
+   description { state: "read" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_MAIN_TEXT_READ_COLOR; \
+   } \
+   description { state: "read,disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_TEXT_FOCUS_COLOR; \
+   }
+
+#define GENLIST_PART_PADDING_T_SIZE( NAME, TOP, SIZE ) \
+                 GENLIST_PART_SPACER(NAME, \
+                        description { state: "default" 0.0; \
+                               min: 0 SIZE; \
+                               max: -1 SIZE; \
+                               fixed: 0 1; \
+                               align: 0.5 0; \
+                               rel1 { \
+                                  relative: 0 1; \
+                                  to: TOP; \
+                               } \
+                               rel2 { \
+                                  relative: 1 1; \
+                                  to: TOP; \
+                               } \
+                        } \
+                 )
+
+#define GENLIST_PART_EXPANDED_PAD \
+         part { name: "elm.swallow.pad"; \
+            type: SWALLOW; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               visible: 0; \
+               min: 0 0; \
+               fixed: 1 0; \
+               align: 0.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel2.relative: 0.0 1.0; \
+            } \
+         } \
+
+#define GENLIST_PROLOG \
+      data.item: "selectraise" "on"; \
+      data.item: "treesize" 0;
+
+
+#define GENLIST_PROLOG_NORMAL \
+      GENLIST_PROLOG \
+      data.item: "treesize" GENLIST_TREESIZE_DEFAULT; \
+      data.item: "flips" "elm.flip.icon elm.flip.content"; \
+      images { \
+         image : "genlist/00_list_group_bg.png" COMP; \
+         image : "genlist/00_list_group_bg_press.png" COMP; \
+      }
+
+#define GENLIST_PART_BASE_SIZE(HEIGHT) \
+         part { name: "base"; \
+            type: RECT; \
+            mouse_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+               min: 0 HEIGHT; \
+            } \
+         } \
+         part { name: "state"; \
+            type: RECT; \
+            mouse_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+            description { state: "decorate" 0.0; \
+               inherit: "default"; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default"; \
+            } \
+            description { state: "decorate_reorder" 0.0; \
+               inherit: "default"; \
+            } \
+         }
+
+#define GENLIST_PART_BASE \
+         GENLIST_PART_BASE_SIZE(0)
+
+#define GENLIST_DESCRIPTION_DECORATE_PADDING \
+   description { state: "decorate" 0.0; \
+      inherit: "default" 0.0; \
+      min: 0 0; \
+      max: 0 0; \
+   }
+
+#define GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+   description { state: "decorate_reorder" 0.0; \
+      inherit: "default" 0.0; \
+      min: 0 0; \
+      max: 0 0; \
+   }
+
+#define GENLIST_DESCRIPTION_REORDER_PADDING \
+   description { state: "reorder" 0.0; \
+      inherit: "default" 0.0; \
+      min: 32 0; \
+      max: 32 -1; \
+   }
+
+
+#define GENLIST_PART_PADDING_LEFT \
+                 GENLIST_PART_EXPANDED_PAD \
+                 GENLIST_PART_SPACER("elm.padding.left", \
+                        GENLIST_DESCRIPTION_L("elm.swallow.pad",  \
+                               min: GENLIST_PADDING_SIZE_LEFT 0; \
+                               max: GENLIST_PADDING_SIZE_LEFT -1; \
+                               fixed: 1 0; \
+                        ) \
+                        GENLIST_DESCRIPTION_DECORATE_PADDING \
+                        GENLIST_DESCRIPTION_REORDER_PADDING \
+                        GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+                 )
+
+#define GENLIST_PART_PADDING_RIGHT \
+         GENLIST_PART_SPACER("elm.padding.right", \
+            description { state: "default" 0.0; \
+               min: GENLIST_PADDING_SIZE_RIGHT 0; \
+               max: GENLIST_PADDING_SIZE_RIGHT -1; \
+               fixed: 1 0; \
+               align: 1.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 1 0; \
+            } \
+            GENLIST_DESCRIPTION_DECORATE_PADDING \
+            GENLIST_DESCRIPTION_REORDER_PADDING \
+            GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+         )
+
+
+#define GENLIST_PART_PADDING_R( NAME, RIGHT ) \
+         GENLIST_PART_SPACER(NAME, \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+               max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+               align: 1 0.5; \
+               rel1 { \
+                  relative: 0 0; \
+                  to_x: RIGHT; \
+               } \
+               rel2 { \
+                  relative: 0 1; \
+                  to_x: RIGHT; \
+               } \
+            } \
+         )
+
+#define GENLIST_PART_ICON_BTN_01_LTB(NAME, LEFT, TOP, BOTTOM) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_LTB(LEFT, TOP, BOTTOM,\
+         GENLIST_PARAM_ICON_BTN_01 \
+         fixed: 1 1; \
+      ) \
+   )
+
+#define GENLIST_PART_BG_NORMAL \
+          GENLIST_PART_RECT("bg_clip", \
+                 mouse_events: 0; \
+                 description { state: "default" 0.0; \
+                        visible: 1; \
+                        color: 255 255 255 255; \
+                 } \
+                 description { state: "decorate" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                 } \
+                 description { state: "reorder" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                 } \
+                 description { state: "decorate_reorder" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                 } \
+          ) \
+          GENLIST_PART_RECT("bg_reorder_clip", \
+                 mouse_events: 0; \
+                 description { state: "default" 0.0; \
+                        visible: 0; \
+                 } \
+                 description { state: "reorder" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 1; \
+                        color: 255 255 255 255; \
+                 } \
+                 description { state: "decorate_reorder" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                 } \
+                 description { state: "decorate" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                 } \
+                 description { state: "reorder_flip" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                 } \
+          ) \
+          GENLIST_PART_RECT("bg",      \
+                 clip_to: "bg_clip"; \
+                 description { state: "default" 0.0; \
+                        color: GENLIST_LIST_BG_COLOR; \
+                 } \
+                 description { state: "selected" 0.0; \
+                        inherit: "default" 0.0; \
+                        color: GENLIST_LIST_PRESS_COLOR; \
+                 } \
+                 description { state: "disabled" 0.0; \
+                        inherit: "default" 0.0; \
+                        color: GENLIST_LIST_DIM_COLOR; \
+                 } \
+          ) \
+          GENLIST_PART_SPACER("bg_reorder_left", \
+                 description { state: "default" 0.0; \
+                        min: 16 0; \
+                        max: 16 -1; \
+                        fixed: 1 0; \
+                        align: 0 0.5; \
+                        rel2.relative: 0 1; \
+                 } \
+          ) \
+          GENLIST_PART_SPACER("bg_reorder_right", \
+                 description { state: "default" 0.0; \
+                        min: 16 0; \
+                        max: 16 -1; \
+                        fixed: 1 0; \
+                        align: 1.0 0.5; \
+                        rel1.relative: 1 0; \
+                 } \
+          ) \
+          GENLIST_PART_SPACER("bg_reorder_top", \
+                 description { state: "default" 0.0; \
+                        min: 0 2; \
+                        max: -1 2; \
+                        fixed: 0 1; \
+                        align: 0.5 0; \
+                        rel2.relative: 1 0; \
+                 } \
+          ) \
+          GENLIST_PART_SPACER("bg_reorder_bottom", \
+                 description { state: "default" 0.0; \
+                        min: 0 2; \
+                        max: -1 2; \
+                        fixed: 0 1; \
+                        align: 0.5 1.0; \
+                        rel1.relative: 0 1; \
+                 } \
+          ) \
+          GENLIST_PART_IMAGE("bg_reorder", \
+                 clip_to: "bg_reorder_clip"; \
+                 description { state: "default" 0.0; \
+                        rel1 { \
+                               relative: 1 1; \
+                               to_x: "bg_reorder_left"; \
+                               to_y: "bg_reorder_top"; \
+                        } \
+                        rel2 { \
+                               relative: 0 0; \
+                               to_x: "bg_reorder_right"; \
+                               to_y: "bg_reorder_bottom"; \
+                        } \
+                        image { \
+                               normal: "genlist/00_list_group_bg.png"; \
+                               border: 17 17 8 8; \
+                               border_scale: 1; \
+                        } \
+                 } \
+                 description { state: "selected" 0.0; \
+                        inherit: "default"; \
+                        image { \
+                               normal: "genlist/00_list_group_bg_press.png"; \
+                               border: 17 17 8 8; \
+                               border_scale: 1; \
+                        } \
+                 } \
+                 description { state: "flipped" 0.0; \
+                        inherit: "default"; \
+                        visible: 0; \
+                 } \
+          ) \
+          GENLIST_PART_RECT("sound",  \
+                 repeat_events: 1;  /*for play_sound to check selected state*/ \
+                 description { state: "default" 0.0; \
+                        color: 0 0 0 0; \
+                 } \
+          ) \
+
+
+#define GENLIST_PART_BOTTOM_LINE \
+                 GENLIST_PART_RECT("bottom_line_clip", \
+                        description { state: "default" 0.0; \
+                               color: 255 255 255 255; \
+                        } \
+                        description { state: "decorate" 0.0; \
+                               inherit: "default" 0.0; \
+                               color: 0 0 0 0; \
+                        } \
+                        description { state: "reorder" 0.0; \
+                               inherit: "default" 0.0; \
+                               color: 0 0 0 0; \
+                        } \
+                        description { state: "decorate_reorder" 0.0; \
+                               inherit: "default" 0.0; \
+                               color: 0 0 0 0; \
+                        } \
+                 ) \
+                 GENLIST_PART_RECT("bottom_line", \
+                        mouse_events: 0; \
+                        clip_to: "bottom_line_clip"; \
+                        description { state: "default" 0.0; \
+                               min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+                               max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+                               fixed: 0 1; \
+                               align: 0.5 1; \
+                               color: GENLIST_LIST_LINE1_COLOR; \
+                               rel1.to: "bottom_line2"; \
+                               rel2.to: "bottom_line2"; \
+                               rel2.relative: 1 0; \
+                               rel1.offset: -1 -1; \
+                        } \
+                        description { state: "flipped" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 0; \
+                        } \
+                 ) \
+                 GENLIST_PART_RECT("bottom_line2", \
+                        mouse_events: 0; \
+                        clip_to: "bottom_line_clip"; \
+                        description { state: "default" 0.0; \
+                               min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+                               max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+                               fixed: 0 1; \
+                               align: 0.5 1; \
+                               color: GENLIST_LIST_LINE2_COLOR; \
+                               rel1.to_x: "base"; \
+                               rel1.relative: 0 0; \
+                               rel2.to_x: "base"; \
+                               rel2.relative: 1 1; \
+                               rel1.offset: -1 -1; \
+                        } \
+                        description { state: "flipped" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 0; \
+                        } \
+                 )
+
+#define GENLIST_PART_PADDING_TOP_2LINE \
+                 GENLIST_PART_SPACER("elm.padding.top", \
+                        description { \
+                               state: "default" 0.0; \
+                               min: 0 GENLIST_PADDING_SIZE_TOP_2LINE; \
+                               max: -1 GENLIST_PADDING_SIZE_TOP_2LINE; \
+                               fixed: 0 1; \
+                               rel1.to: "base"; \
+                               rel2.to: "base"; \
+                               rel2.relative: 1.0 0.0; \
+                               align: 0.5 0.0; \
+                        } \
+                        description { state: "reorder" 0.0; \
+                               inherit: "default" 0.0; \
+                               min: 0 (GENLIST_PADDING_SIZE_TOP_2LINE+2); \
+                               max: -1 (GENLIST_PADDING_SIZE_TOP_2LINE+2); \
+                        } \
+                 )
+
+#define GENLIST_PART_PADDING_BOTTOM_2LINE \
+                 GENLIST_PART_SPACER("elm.padding.bottom", \
+                        description { state: "default" 0.0; \
+                               min: 0 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
+                               max: -1 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
+                               fixed: 0 1; \
+                               rel1.to: "base"; \
+                               rel2.to: "base"; \
+                               rel1.relative: 0.0 1.0; \
+                               align: 0.5 1.0; \
+                        } \
+                        description { state: "reorder" 0.0; \
+                               inherit: "default" 0.0; \
+                               min: 0 (GENLIST_PADDING_SIZE_BOTTOM_2LINE+2); \
+                               max: -1 (GENLIST_PADDING_SIZE_BOTTOM_2LINE+2); \
+                        } \
+                 )
+
+#define GENLIST_PART_PADDING_TOP \
+         GENLIST_PART_SPACER("elm.padding.top", \
+            description { \
+               state: "default" 0.0; \
+               min: 0 GENLIST_PADDING_SIZE_TOP; \
+               max: -1 GENLIST_PADDING_SIZE_TOP; \
+               fixed: 0 1; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel2.relative: 1.0 0.0; \
+               align: 0.5 0.0; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               min: 0 (GENLIST_PADDING_SIZE_TOP+2); \
+               max: -1 (GENLIST_PADDING_SIZE_TOP+2); \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_BOTTOM \
+                        GENLIST_PART_SPACER("elm.padding.bottom", \
+                               description { state: "default" 0.0; \
+                                  min: 0 GENLIST_PADDING_SIZE_BOTTOM; \
+                                  max: -1 GENLIST_PADDING_SIZE_BOTTOM; \
+                                  fixed: 0 1; \
+                                  rel1.to: "base"; \
+                                  rel2.to: "base"; \
+                                  rel1.relative: 0.0 1.0; \
+                                  align: 0.5 1.0; \
+                               } \
+                               description { state: "reorder" 0.0; \
+                                  inherit: "default" 0.0; \
+                                  min: 0 (GENLIST_PADDING_SIZE_BOTTOM+2); \
+                                  max: -1 (GENLIST_PADDING_SIZE_BOTTOM+2); \
+                               } \
+                        )
+
+
+#define GENLIST_PART_FLIP \
+                 GENLIST_PART_RECT("elm.flip.bg", \
+                        mouse_events: 0; \
+                        description { state: "default" 0.0;\
+                               color: 0 0 0 0;\
+                        } \
+                        description { state: "flipped" 0.0; \
+                               inherit: "default" 0.0; \
+                               rel2.offset: 0 -3; \
+                               color: GENLIST_LIST_BG_COLOR;\
+                        }\
+                 ) \
+                 GENLIST_PART_SPACER("elm.flip.padding.right", \
+                        description { state: "default" 0.0; \
+                               min: 26 0; \
+                               max: 26 -1; \
+                               fixed: 1 0; \
+                               align: 1 0.5; \
+                               rel1.relative: 1 0; \
+                        } \
+                 ) \
+                 GENLIST_PART_ICON("elm.flip.content", \
+                        GENLIST_DESCRIPTION("elm.padding.left", "elm.flip.padding.icon.left",  \
+                               "elm.padding.top", "elm.padding.bottom", \
+                               visible: 0; \
+                               aspect: 1 1; \
+                               min: 0 96; \
+                        ) \
+                        description { state: "flipped" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 1; \
+                        } \
+                 ) \
+                 GENLIST_PART_PADDING_R("elm.flip.padding.icon.left", "elm.flip.icon") \
+                 GENLIST_PART_ICON( "elm.flip.icon", \
+                        GENLIST_DESCRIPTION_RTB("elm.flip.padding.right", \
+                               "elm.padding.top", "elm.padding.bottom", \
+                               visible: 0; \
+                               aspect: 1 1; \
+                               align: 1 0.5; \
+                               max: 158 74; \
+                        ) \
+                        description { state: "flipped" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 1; \
+                        } \
+                 )
+
+#define GENLIST_PART_FOCUS \
+   GENLIST_PART_IMAGE("focus_part", \
+      mouse_events: 0; \
+      description { state: "default" 0.0; \
+         visible: 0; \
+         image { \
+            normal: "genlist/00_focus.png"; \
+            border: 6 6 6 6; \
+            border_scale: 1; \
+         } \
+      } \
+      description { state: "focused" 0.0; \
+         inherit: "default" 0.0; \
+         visible: 1; \
+      } \
+   ) \
+   GENLIST_PART_ICON("elm.icon.focus", \
+      repeat_events: 1; \
+      GENLIST_DESCRIPTION_ENVELOP("focus_part", \
+         fixed: 1 1; \
+      ) \
+   )
+
+#define GENLIST_PART_FOCUS_REORDER \
+   GENLIST_PART_IMAGE("focus_part_reorder", \
+      mouse_events: 0; \
+         description { state: "default" 0.0; \
+            rel1 { \
+               relative: 1 1; \
+               to_x: "bg_reorder_left"; \
+               to_y: "bg_reorder_top"; \
+            } \
+            rel2 { \
+               relative: 0 0; \
+               to_x: "bg_reorder_right"; \
+               to_y: "bg_reorder_bottom"; \
+            } \
+         visible: 0; \
+         image { \
+            normal: "genlist/00_focus.png"; \
+            border: 6 6 6 6; \
+            border_scale: 1; \
+         } \
+      } \
+      description { state: "focused" 0.0; \
+         inherit: "default" 0.0; \
+         visible: 1; \
+      } \
+   )
+
+#define GENLIST_PART_PADDING_L( NAME, LEFT ) \
+         GENLIST_PART_SPACER(NAME, \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+               max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+               align: 0 0.5; \
+               rel1 { \
+                  relative: 1 0; \
+                  to_x: LEFT; \
+               } \
+               rel2 { \
+                  relative: 1 1; \
+                  to_x: LEFT; \
+               } \
+            } \
+         )
+
+
+#define GENLIST_PART_FOCUS_NORMAL \
+       GENLIST_PART_FOCUS \
+       GENLIST_PART_FOCUS_REORDER
+
+
+#define GENLIST_PROGRAM_DEFAULT( TARGET ) \
+         program { name: "default"; \
+            signal: "elm,state,default"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         } \
+
+#define GENLIST_PROGRAM_DISABLED( TARGET ) \
+         program { name: "enabled"; \
+            signal: "elm,state,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         } \
+         program { name: "disabled"; \
+            signal: "elm,state,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "disabled" 0.0; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_FOCUS \
+      program { name: "focused"; \
+         signal: "elm,state,focused"; \
+         source: "elm"; \
+         action: STATE_SET "focused" 0.0; \
+         target: "focus_part"; \
+      } \
+      program { name: "unfocused"; \
+         signal: "elm,state,unfocused"; \
+         source: "elm"; \
+         action: STATE_SET "default" 0.0; \
+         target: "focus_part"; \
+      }
+
+#define GENLIST_PROGRAM_FOCUS_NORMAL \
+      program { name: "focused"; \
+         signal: "elm,action,focus_highlight,show"; \
+         source: "elm"; \
+         script { \
+            new st[31]; \
+            new Float:vl; \
+            get_state(PART:"bg_reorder_clip", st, 30, vl); \
+            if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) \
+               set_state(PART:"focus_part_reorder", "focused", 0.0); \
+            else \
+               set_state(PART:"focus_part", "focused", 0.0); \
+         } \
+      } \
+      program { name: "unfocused"; \
+         signal: "elm,action,focus_highlight,hide"; \
+         source: "elm"; \
+         action: STATE_SET "default" 0.0; \
+         target: "focus_part_reorder"; \
+         target: "focus_part"; \
+      }
+
+#define GENLIST_PROGRAM_FOCUS_DIALOGUE \
+      program { name: "focused"; \
+         signal: "elm,state,focused"; \
+         source: "elm"; \
+         script { \
+            new st[31]; \
+            new Float:vl; \
+            get_state(PART:"bg_dialogue", st, 30, vl); \
+            if (!strcmp(st, "top") || !strcmp(st, "top_selected") || !strcmp(st, "2depth_top")) \
+               set_state(PART:"focus_part_dialogue", "top_focused", 0.0); \
+            else if (!strcmp(st, "center") || !strcmp(st, "center_selected") || !strcmp(st, "2depth_center")) \
+               set_state(PART:"focus_part_dialogue", "center_focused", 0.0); \
+            else if (!strcmp(st, "bottom") || !strcmp(st, "bottom_selected") || !strcmp(st, "2depth_bottom")) \
+               set_state(PART:"focus_part_dialogue", "bottom_focused", 0.0); \
+            else if (!strcmp(st, "default") || !strcmp(st, "selected") || !strcmp(st, "2depth")) \
+               set_state(PART:"focus_part_dialogue", "focused", 0.0); \
+         } \
+      } \
+      program { name: "unfocused"; \
+         signal: "elm,state,unfocused"; \
+         source: "elm"; \
+         action: STATE_SET "default" 0.0; \
+         target: "focus_part_dialogue"; \
+      }
+
+#define GENLIST_PROGRAM_SOUND( SRC ) \
+      program { name: "play_sound"SRC; \
+         signal: "mouse,clicked,1"; \
+         source: SRC; \
+         script { \
+            new st[31]; \
+            new Float:vl; \
+            get_state(PART:SRC, st, 30, vl); \
+         } \
+      }
+
+#define GENLIST_PROGRAM_SELECT( TARGET ) \
+         program { name: "selected"; \
+            signal: "elm,state,selected"; \
+            source: "elm"; \
+            action: STATE_SET "selected" 0.0; \
+            TARGET \
+         } \
+         program { name: "unselected"; \
+            signal: "elm,state,unselected"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_DECORATE_REORDER( NAME, TARGET ) \
+         program { name: "reorder_enabled"NAME; \
+            signal: "elm,state,reorder,mode_set"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"decorate_reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"reorder_set"NAME); \
+               } \
+            } \
+         } \
+         program { name: "reorder_disabled"NAME; \
+            signal: "elm,state,reorder,mode_unset"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"decorate_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"default_set"NAME); \
+               } \
+            } \
+         } \
+         program { name: "decorate_enabled_effect"NAME; \
+            signal: "elm,state,decorate,enabled,effect";\
+            source: "elm";\
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"decorate_reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"decorate_set"NAME); \
+               } \
+            } \
+         }\
+         program { name: "decorate_disabled_effect"NAME;\
+            signal: "elm,state,decorate,disabled,effect";\
+            source: "elm";\
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"default_set"NAME); \
+               } \
+            } \
+         }\
+         program { name: "decorate_enabled"NAME;\
+            signal: "elm,state,decorate,enabled";\
+            source: "elm";\
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"decorate_reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"decorate_set"NAME); \
+               } \
+            } \
+         }\
+         program { name: "decorate_disabled"NAME;\
+            signal: "elm,state,decorate,disabled";\
+            source: "elm";\
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"default_set"NAME); \
+               } \
+            } \
+         } \
+         program { name: "default_set"NAME; \
+            action: STATE_SET "default" 0.0;\
+            target: "state"; \
+            TARGET \
+         } \
+         program { name: "decorate_set"NAME; \
+            action: STATE_SET "decorate" 0.0;\
+            target: "state"; \
+            TARGET \
+         } \
+         program { name: "reorder_set"NAME; \
+            action: STATE_SET "reorder" 0.0;\
+            target: "state"; \
+            TARGET \
+         } \
+         program { name: "decorate_reorder_set"NAME; \
+            action: STATE_SET "decorate_reorder" 0.0;\
+            target: "state"; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_FLIP \
+         program { name: "flip_enabled"; \
+            signal:  "elm,state,flip,enabled"; \
+            source:  "elm"; \
+            transition: DECELERATE 0.5; \
+            action:  STATE_SET "flipped" 0.0; \
+            target: "elm.flip.content"; \
+            target: "elm.flip.icon"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal:  "elm,state,flip,disabled"; \
+            source:  "elm"; \
+            transition: DECELERATE 0.5; \
+            action:  STATE_SET "default" 0.0; \
+            target: "elm.flip.content"; \
+            target: "elm.flip.icon"; \
+         } \
+         program { name: "flip_enabled_bg"; \
+            signal:  "elm,state,flip,enabled"; \
+            source:  "elm"; \
+            action:  STATE_SET "flipped" 0.0; \
+            target: "elm.flip.bg"; \
+         } \
+         program { name: "flip_disabled_bg"; \
+            signal:  "elm,state,flip,disabled"; \
+            source:  "elm"; \
+            action:  STATE_SET "default" 0.0; \
+            target: "elm.flip.bg"; \
+         }
+
+
+#define GENLIST_PROGRAMS_NORMAL( TARGET ) \
+   programs { \
+      GENLIST_PROGRAM_DEFAULT( TARGET \
+         target: "bg"; \
+         target: "bg_clip"; \
+         target: "bottom_line"; \
+         target: "bottom_line2"; \
+         target: "bottom_line_clip"; \
+         target: "bg_reorder"; \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+         target: "elm.padding.top"; \
+         target: "elm.padding.bottom"; \
+      ) \
+      GENLIST_PROGRAM_DISABLED( TARGET \
+         target: "bg"; \
+         target: "bg_reorder"; \
+      ) \
+      GENLIST_PROGRAM_FOCUS_NORMAL \
+      GENLIST_PROGRAM_SELECT( TARGET \
+         target: "bg"; \
+         target: "bg_reorder"; \
+      ) \
+      GENLIST_PROGRAM_SOUND("bg") \
+      GENLIST_PROGRAM_SOUND("bg_reorder") \
+      GENLIST_PROGRAM_DECORATE_REORDER("normal", TARGET \
+         target: "bg_clip"; \
+         target: "bg_reorder_clip"; \
+         target: "bottom_line_clip"; \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+         target: "elm.padding.top"; \
+         target: "elm.padding.bottom"; \
+      ) \
+      GENLIST_PROGRAM_FLIP \
+   }
+
+ group { GENLIST_NAME("video.multiline/2text/default")
+       GENLIST_PROLOG_NORMAL
+       data.item: "texts" "elm.text.1 elm.text.2";
+
+       parts {
+          GENLIST_PART_BASE
+          GENLIST_PART_BG_NORMAL
+          GENLIST_PART_BOTTOM_LINE
+          GENLIST_PART_PADDING_LEFT
+          GENLIST_PART_PADDING_RIGHT
+          GENLIST_PART_PADDING_TOP_2LINE
+          GENLIST_PART_PADDING_BOTTOM_2LINE
+
+          GENLIST_PART_TEXT("elm.text.1",
+                 GENLIST_DESCRIPTION_LRT("elm.padding.left", "elm.padding.right", "elm.padding.top",
+                        GENLIST_PARAM_LISTITEM
+                        min: 0 GENLIST_HEIGHT_2LINE_MAIN;
+                        fixed: 0 1;
+                 )
+                 GENLIST_DESCRIPTION_LISTITEM_OTHERS
+          )
+          //GENLIST_PART_PADDING_T_SIZE("elm.padding.text1.bottom", "elm.text.1", 0)
+          GENLIST_PART_TEXTBLOCK("elm.text.2",
+                 GENLIST_DESCRIPTION("elm.padding.left", "elm.padding.right", "elm.text.1", "elm.padding.bottom",
+                        GENLIST_PARAM_SUBITEM_DEFAULT_TB_WRAP
+                        min: 0 GENLIST_HEIGHT_MULTILINE_SUB;
+                 )
+                 GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP
+          )
+          GENLIST_PART_FLIP
+          GENLIST_PART_FOCUS_NORMAL
+       }
+       GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; )
+ }
+
+ group { GENLIST_NAME("video.multiline/1text.2icon/default")
+       GENLIST_PROLOG_NORMAL
+       data.item: "texts" "elm.text";
+       data.item: "contents" "elm.icon.1 elm.icon.2";
+
+       parts {
+          GENLIST_PART_BASE
+          GENLIST_PART_BG_NORMAL
+          GENLIST_PART_BOTTOM_LINE
+          GENLIST_PART_PADDING_LEFT
+          GENLIST_PART_PADDING_RIGHT
+          GENLIST_PART_PADDING_TOP
+          GENLIST_PART_PADDING_BOTTOM
+
+          GENLIST_PART_ICON_BTN_01_LTB("elm.icon.2", "elm.padding.left", "elm.padding.top", "elm.padding.bottom")
+          GENLIST_PART_PADDING_L("elm.padding.icon2.right", "elm.icon.2")
+          GENLIST_PART_ICON_MEDIUM_L( "elm.icon.1", "elm.padding.icon2.right")
+          GENLIST_PART_PADDING_L("elm.padding.icon1.right", "elm.icon.1")
+          GENLIST_PART_TEXTBLOCK("elm.text",
+                        GENLIST_DESCRIPTION_LR("elm.padding.icon1.right", "elm.padding.right",
+                        GENLIST_PARAM_MAINITEM_1TEXT_DEFAULT_TB_WRAP
+                        min: 0 GENLIST_HEIGHT_1LINE;
+                 )
+                 GENLIST_DESCRIPTION_MAINITEM_1TEXT_DEFAULT_OTHERS_TB_WRAP
+          )
+          GENLIST_PART_FLIP
+          GENLIST_PART_FOCUS_NORMAL
+       }
+       GENLIST_PROGRAMS_NORMAL( target: "elm.text"; target: "elm.icon.1"; target: "elm.icon.2"; )
+ }
+
+ group { GENLIST_NAME("video.multiline/2text.1icon/default")
+       GENLIST_PROLOG_NORMAL
+       data.item: "texts" "elm.text.1 elm.text.2" ;
+       data.item: "contents" "elm.icon";
+       parts {
+          GENLIST_PART_BASE
+          GENLIST_PART_BG_NORMAL
+          GENLIST_PART_BOTTOM_LINE
+          GENLIST_PART_PADDING_LEFT
+          GENLIST_PART_PADDING_RIGHT
+          GENLIST_PART_PADDING_TOP_2LINE
+          GENLIST_PART_PADDING_BOTTOM_2LINE
+
+          GENLIST_PART_ICON_MEDIUM_L( "elm.icon", "elm.padding.left")
+          GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon")
+          GENLIST_PART_TEXTBLOCK("elm.text.1",
+                       GENLIST_DESCRIPTION_LRT("elm.padding.icon.right", "elm.padding.right", "elm.padding.top",
+                        GENLIST_PARAM_MAINITEM_DEFAULT_TB_WRAP
+                        min: 0 GENLIST_HEIGHT_2LINE_MAIN;
+                 )
+                 GENLIST_DESCRIPTION_MAINITEM_DEFAULT_OTHERS_TB_WRAP
+          )
+          GENLIST_PART_TEXTBLOCK("elm.text.2",
+                        GENLIST_DESCRIPTION("elm.padding.icon.right", "elm.padding.right",  "elm.text.1", "elm.padding.bottom",
+                        GENLIST_PARAM_MULTI_SUBITEM_DEFAULT_TB_WRAP
+                        min: 0 GENLIST_HEIGHT_MULTILINE_SUB;
+                 )
+                 GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP
+          )
+          GENLIST_PART_FLIP
+          GENLIST_PART_FOCUS_NORMAL
+       }
+       GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.icon";)
+ }
+
+
+ group { GENLIST_NAME("video.multiline/1text.1icon/default")
+       GENLIST_PROLOG_NORMAL
+       data.item: "texts" "elm.text";
+       data.item: "contents" "elm.icon";
+       parts {
+          GENLIST_PART_BASE
+          GENLIST_PART_BG_NORMAL
+          GENLIST_PART_BOTTOM_LINE
+          GENLIST_PART_PADDING_LEFT
+          GENLIST_PART_PADDING_RIGHT
+          GENLIST_PART_PADDING_TOP
+          GENLIST_PART_PADDING_BOTTOM
+
+          GENLIST_PART_ICON_MEDIUM_L( "elm.icon", "elm.padding.left")
+          GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon")
+          GENLIST_PART_TEXTBLOCK("elm.text",
+                 GENLIST_DESCRIPTION_LR("elm.padding.icon.right", "elm.padding.right",
+                        GENLIST_PARAM_MAINITEM_CUSTOM_TB_WRAP
+                        min: 0 GENLIST_HEIGHT_1LINE;
+                 )
+                 GENLIST_DESCRIPTION_MAINITEM_DEFAULT_OTHERS_TB_WRAP
+          )
+          GENLIST_PART_FLIP
+          GENLIST_PART_FOCUS_NORMAL
+       }
+       GENLIST_PROGRAMS_NORMAL( target: "elm.text"; target: "elm.icon";)
+ }
+
+ group {
+       name: "elm/genlist/item/custom.subtitle/default";
+       alias: "elm/genlist/item_compress/custom.subtitle/default";
+       alias: "elm/genlist/tree/custom.subtitle/default";
+       alias: "elm/genlist/tree_compress/custom.subtitle/default";
+       data.item: "stacking" "above";
+       data.item: "selectraise" "on";
+       data.item: "texts" "elm.text";
+       data.item: "contents" "elm.icon";
+       parts {
+               part {
+                       name: "base";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               //color: 22 28 45 255;
+                               color: GENLIST_LIST_BG_POPUP_COLOR;
+                               min: 0 76;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       scale: 1;
+                       type: TEXT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 0.0;
+                               rel1 {
+                                       relative: 26/618 0.0; offset: 0 0; to: "base";
+                               }
+                               rel2 {
+                                       relative: 556/618 1.0; to: "base";
+                               }
+                               text {
+                                       align: 0.0 0.5;
+                                       min: 0 1;
+                                       size: 27;
+                               }
+                               color: 21 108 148 255;
+                       }
+               }
+               part {
+                       name: "elm.icon";
+                       scale: 0;
+                       type: SWALLOW;
+                       description {
+                               state: "default" 0.0;
+                               align: 1.0 0.0;
+                               fixed: 1 1;
+                               rel1 {
+                                       relative: 1.0 23/76; to: "base";
+                               }
+                               rel2 {
+                                       relative: 1.0 59/76; to: "base"; offset:-26 0;
+                               }
+                               min: 36 36;
+                               max: 36 36;
+                       }
+               }
+
+               part {
+                       name:"bottom.line";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               //min: PV_POPUP_TITLE_LINE_WIDTH_HEIGHT_MIN;
+                               //color: PV_GENLIST_LIST_LINE1_POPUP_COLOR;
+                               color: 217 217 217 255;
+                               fixed: 0 1;
+                               align: 0.5 1.0;
+                               rel1 { relative: 0.0 1.0; to_x: "base"; to_y: "elm.icon"; offset:4 13;}
+                               rel2 { relative: 1.0 1.0; to_x: "base"; to_y: "elm.icon"; offset:-5 17;}
+                       }
+               }
+       }
+}/* group */
+
+
+#define GENLIST_POPUP_STYLE(NAME) \
+        group { GENLIST_NAME(NAME"/popup/default") \
+               inherit: "elm/genlist/item/"NAME"/default"; \
+               images { \
+                  image: "genlist/00_popup_list_press.png" COMP; \
+               } \
+               parts { \
+                  GENLIST_PART_SPACER("bg_left_top_padding", \
+                         description { state: "default" 0.0; \
+                                min: POPUP_ITEM_BG_LEFT_TOP_PAD_MIN_INC; \
+                                fixed: 1 1; \
+                                align: 0 0; \
+                                rel2.relative: 0 0; \
+                         } \
+                  ) \
+                  GENLIST_PART_SPACER("bg_right_bottom_padding", \
+                         description { state: "default" 0.0; \
+                                min: POPUP_ITEM_BG_RIGHT_BOTTOM_PAD_MIN_INC; \
+                                fixed: 1 1; \
+                                align: 1 1; \
+                                rel1.relative: 1 1; \
+                         } \
+                  ) \
+                  GENLIST_PART_IMAGE("bg", \
+                         description { state: "default" 0.0; \
+                                image { \
+                                       normal: "genlist/00_popup_list_press.png"; \
+                                       border: POPUP_ITEM_BG_PRESSED_BORDER_INC; \
+                                       border_scale: 1; \
+                                } \
+                                rel1 { \
+                                       relative: 1 1; \
+                                       to_x: "bg_left_top_padding"; \
+                                       to_y: "bg_left_top_padding"; \
+                                } \
+                                rel2 { \
+                                       relative: 0 0; \
+                                       to_x: "bg_right_bottom_padding"; \
+                                       to_y: "bg_right_bottom_padding"; \
+                                } \
+                                color: GENLIST_LIST_BG_POPUP_COLOR; \
+                         } \
+                         description { state: "disabled" 0.0; \
+                                inherit: "default" 0.0; \
+                                color: GENLIST_LIST_BG_POPUP_COLOR; \
+                         } \
+                         description { state: "selected" 0.0; \
+                                inherit: "default" 0.0; \
+                                color: GENLIST_LIST_BG_POPUP_PRESS_COLOR; \
+                         } \
+                  ) \
+                  GENLIST_PART_RECT("bottom_line", \
+                         description { state: "default" 0.0; \
+                                color: GENLIST_LIST_LINE1_POPUP_COLOR; \
+                                rel1.to: "bottom_line2"; \
+                                rel2.to: "bottom_line2"; \
+                                rel2.relative: 1 0; \
+                         } \
+                         description { state: "disabled" 0.0; \
+                                inherit: "default" 0.0; \
+                                visible: 0; \
+                         } \
+                  ) \
+                  GENLIST_PART_RECT("bottom_line2", \
+                         description { state: "default" 0.0; \
+                                color: GENLIST_LIST_LINE2_POPUP_COLOR; \
+                                rel1.to_x: "bg"; \
+                                rel2.to_x: "bg"; \
+                                rel1.offset: 1 0; \
+                                rel2.offset: -2 -1; \
+                         } \
+                         description { state: "disabled" 0.0; \
+                                inherit: "default" 0.0; \
+                                visible: 0; \
+                         } \
+                  ) \
+               } \
+               programs { \
+                  program { name : "hide_bottomline"; \
+                         signal: "elm,state,bottomline,hide"; \
+                         source: ""; \
+                         action: STATE_SET "disabled" 0.0; \
+                         target: "bottom_line"; \
+                         target: "bottom_line2"; \
+                  } \
+                  program { name : "show_bottomline"; \
+                         signal: "elm,state,bottomline,show"; \
+                         source: ""; \
+                         action: STATE_SET "default" 0.0; \
+                         target: "bottom_line"; \
+                         target: "bottom_line2"; \
+                  } \
+               } \
+        }
+
+
+//popup
+GENLIST_POPUP_STYLE("video.multiline/2text")
+GENLIST_POPUP_STYLE("video.multiline/1text.2icon")
+GENLIST_POPUP_STYLE("video.multiline/1text.1icon")
+GENLIST_POPUP_STYLE("video.multiline/2text.1icon")
+
+#define POPUP_FS_OUTSIDE_PADDING "500"
+#define POPUP_FS_TITLE_AREA_HEIGHT "72"
+
+#define POPUP_FS_TITLE_LEFT_PADDING 15
+#define POPUP_FS_TITLE_RIGHT_PADDING 15
+#define POPUP_FS_TITLE_TOP_PADDING 3
+#define POPUP_FS_TITLE_BOTTOM_PADDING 3
+#define POPUP_SUBTITLE_HEIGHT 28
+
+
+#define POPUP_FS_DEFAULT_TEXT_FONT_SIZE_INC 30
+#define POPUP_FS_SUBTITLE_TEXT_FONT_SIZE_INC 21
+
+#define POPUP_FS_DEFAULT_BASE_DEFAULT_MIN_INC 480 0
+#define POPUP_FS_DEFAULT_BASE_DEFAULT_MAX_INC 480 800
+#define POPUP_FS_DEFAULT_BASE_LANDSCAPE_MIN_INC 800 0
+#define POPUP_FS_DEFAULT_BASE_LANDSCAPE_MAX_INC 800 480
+#define POPUP_FS_DEFAULT_TITLE_DEFAULT_MIN_INC 480 72
+#define POPUP_FS_DEFAULT_TITLE_DEFAULT_MAX_INC 800 72
+#define POPUP_FS_DEFAULT_BUTTON_BG_DEFAULT_MIN_INC 480 0
+#define POPUP_FS_DEFAULT_TEXT_SHADOW_COLOR_INC "#08080855"
+#define POPUP_FS_SUBTITLE_TEXT_SHADOW_COLOR_INC "#08080855"
+
+       group { name: "elm/popup/fullsrceen/default";
+          data {
+             item: "focus_highlight" "on";
+             item: "default_orient" "2"; //top, center:1 bottom:2
+             item: "title_height" POPUP_FS_TITLE_AREA_HEIGHT;
+             item: "popup_outside_pad" POPUP_FS_OUTSIDE_PADDING;
+          }
+          styles {
+             style { name: "popup_fs_title_style";
+                base: "font=Tizen:style=Regular align=center font_size="POPUP_FS_DEFAULT_TEXT_FONT_SIZE_INC" color=#FFFFFF wrap=mixed ellipsis=1.0 style=far_shadow,bottom shadow_color="POPUP_FS_DEFAULT_TEXT_SHADOW_COLOR_INC"";
+                tag:  "br" "\n";
+                tag:  "tab" "\t";
+             }
+             style { name: "popup_subtitle_style";
+                base: "font=Tizen:style=Regular align=center font_size="POPUP_FS_SUBTITLE_TEXT_FONT_SIZE_INC" color=#FFFFFF wrap=mixed ellipsis=1.0 style=far_shadow,bottom shadow_color="POPUP_FS_SUBTITLE_TEXT_SHADOW_COLOR_INC"";
+                tag:  "br" "\n";
+                tag:  "tab" "\t";
+             }
+          }
+          parts {
+             part { name: "base";
+                scale: 1;
+                type: RECT;
+                description { state: "default" 0.0;
+                   min: POPUP_FS_DEFAULT_BASE_DEFAULT_MAX_INC;
+                   max: POPUP_FS_DEFAULT_BASE_DEFAULT_MAX_INC;
+                   fixed: 1 0;
+                }
+                description { state: "landscape" 0.0;
+                   inherit: "default" 0.0;
+                   min: POPUP_FS_DEFAULT_BASE_LANDSCAPE_MAX_INC;
+                   max: POPUP_FS_DEFAULT_BASE_LANDSCAPE_MAX_INC;
+                }
+             }
+             part { name: "bg";
+                type: RECT;
+                scale: 1;
+                description { state: "default" 0.0;
+                   rel1.to: "base";
+                   rel2.to: "base";
+                   color: 255 255 255 255;
+                }
+             }
+             part { name: "access.outline";
+                type: RECT;
+                repeat_events: 1;
+                description { state: "default" 0.0;
+                   fixed: 1 1;
+                   rel1.to: "base";
+                   rel2.to: "base";
+                   color: 0 0 0 0;
+                }
+             }
+             part { name: "elm.bg.title";
+                type: RECT;
+                scale: 1;
+                description { state: "default" 0.0;
+                   min: 0 0;
+                   max: 0 0;
+                   fixed: 1 1;
+                   align: 0.5 0.0;
+                               rel1.relative: 0.0 0.0;
+                   rel2.relative: 0.0 1.0;
+                   color: 115 167 191 255;
+                }
+                       description { state: "visible" 0.0;
+                                inherit: "default" 0.0;
+                                min: POPUP_FS_DEFAULT_TITLE_DEFAULT_MAX_INC;
+                                max: POPUP_FS_DEFAULT_TITLE_DEFAULT_MAX_INC;
+                        }
+                       description { state: "landscape" 0.0;
+                                inherit: "default" 0.0;
+                                min: POPUP_FS_DEFAULT_TITLE_DEFAULT_MAX_INC;
+                                max: POPUP_FS_DEFAULT_TITLE_DEFAULT_MAX_INC;
+                        }
+             }
+             part { name: "title_left_top_padding";
+                type: SPACER;
+                scale: 1;
+                description { state: "default" 0.0;
+                   align: 0.0 0.0;
+                   rel1.to: "elm.bg.title";
+                   fixed: 1 1;
+                   min: POPUP_FS_TITLE_LEFT_PADDING POPUP_FS_TITLE_TOP_PADDING;
+                   max: POPUP_FS_TITLE_LEFT_PADDING POPUP_FS_TITLE_TOP_PADDING;
+                }
+             }
+             part { name: "title_right_bottom_padding";
+                type: SPACER;
+                scale: 1;
+                description { state: "default" 0.0;
+                   align: 1.0 1.0;
+                   rel2.to: "elm.bg.title";
+                   fixed: 1 1;
+                   min: POPUP_FS_TITLE_RIGHT_PADDING POPUP_FS_TITLE_BOTTOM_PADDING;
+                   max: POPUP_FS_TITLE_RIGHT_PADDING POPUP_FS_TITLE_BOTTOM_PADDING;
+                }
+             }
+             part { name: "elm.text.title";
+                type: TEXTBLOCK;
+                scale:1;
+                description { state: "default" 0.0;
+                   fixed: 1 1;
+                   text {
+                     style: "popup_fs_title_style";
+                     size: POPUP_FS_DEFAULT_TEXT_FONT_SIZE_INC;
+                   }
+                   rel1 {
+                      relative: 1.0 1.0;
+                      to: "title_left_top_padding";
+                   }
+                   rel2 {
+                      relative: 0.0 0.0;
+                      to: "title_right_bottom_padding";
+                   }
+                }
+                description { state: "subtitle_visible" 0.0;
+                   inherit: "default" 0.0;
+                   rel2 {
+                      relative: 1.0 0.0;
+                      to: "elm.text.subtitle";
+                   }
+                }
+             }
+
+             part { name: "elm.text.subtitle";
+                type: TEXTBLOCK;
+                scale: 1;
+                description { state: "default" 0.0;
+                   min: 0 POPUP_SUBTITLE_HEIGHT;
+                   max: -1 POPUP_SUBTITLE_HEIGHT;
+                   text.style: "popup_subtitle_style";
+                   rel1 {
+                      relative: 1.0 0.0;
+                      to_x: "title_left_top_padding";
+                      to_y: "title_right_bottom_padding";
+                   }
+                   rel2 {
+                      relative: 0.0 0.0;
+                      to: "title_right_bottom_padding";
+                   }
+                   align: 0.5 1.0;
+                   fixed: 1 1;
+                   visible: 0;
+                }
+                description { state: "subtitle_visible" 0.0;
+                   inherit: "default" 0.0;
+                   visible: 1;
+                }
+             }
+             part { name: "access.title";
+                type: RECT;
+                repeat_events: 1;
+                description { state: "default" 0.0;
+                   rel1.to: "elm.bg.title";
+                   rel2.to: "elm.bg.title";
+                   color: 0 0 0 0;
+                }
+             }
+             part { name: "elm.swallow.content";
+                type: SWALLOW;
+                scale: 1;
+                description { state: "default" 0.0;
+                   fixed: 1 0;
+                   rel1.to: "base";
+                   rel2.to: "base";
+                }
+                description { state: "show_title_area" 0.0;
+                   inherit: "default" 0.0;
+                   rel1 {
+                      relative: 0.0 1.0;
+                      to_x: "base";
+                      to_y: "elm.bg.title";
+                   }
+                   rel2.to: "base";
+                }
+                description { state: "show_action_area" 0.0;
+                   inherit: "default" 0.0;
+                   rel1.to: "base";
+                   rel2 {
+                      relative: 1.0 0.0;
+                      to_x: "base";
+                      to_y: "elm.swallow.action_area.bg";
+                   }
+                }
+                description { state: "show_action_title_area" 0.0;
+                   inherit: "default" 0.0;
+                   rel1 {
+                      relative: 0.0 1.0;
+                      to_x: "base";
+                      to_y: "elm.bg.title";
+                   }
+                   rel2 {
+                      relative: 1.0 0.0;
+                      to_x: "base";
+                      to_y: "elm.swallow.action_area.bg";
+                   }
+                }
+             }
+             part { name: "access.body";
+                type: RECT;
+                repeat_events: 1;
+                description { state: "default" 0.0;
+                   fixed: 1 1;
+                   rel1.to: "elm.swallow.content";
+                   rel2.to: "elm.swallow.content";
+                   color: 0 0 0 0;
+                }
+             }
+             part { name: "elm.swallow.action_area.bg";
+                type: RECT;
+                scale : 1;
+                description { state: "default" 0.0;
+                   fixed : 1 1;
+                   align: 0.5 1.0;
+                   visible: 0;
+                   rel1 {
+                      relative: 0.0 1.0;
+                      to: "base";
+                   }
+                   rel2.to: "base";
+                }
+                description { state: "visible" 0.0;
+                   inherit: "default" 0.0;
+                   min: POPUP_FS_DEFAULT_BUTTON_BG_DEFAULT_MIN_INC;
+                   visible: 1;
+                   color: 245 245 242 255;
+                }
+             }
+             part { name: "elm.swallow.action_area";
+                type: SWALLOW;
+                scale : 1;
+                description { state: "default" 0.0;
+                   rel1.to: "elm.swallow.action_area.bg";
+                   rel2.to: "elm.swallow.action_area.bg";
+                }
+             }
+          }
+          programs {
+             program { name: "show_subtitle";
+                signal: "elm,state,subtitle,text,visible";
+                source: "elm";
+                action: STATE_SET "subtitle_visible" 0.0;
+                target: "elm.text.title";
+                target: "elm.text.subtitle";
+             }
+             program { name: "hide_subtitle";
+                signal: "elm,state,subtitle,text,hidden";
+                source: "elm";
+                action: STATE_SET "default" 0.0;
+                target: "elm.text.title";
+                target: "elm.text.subtitle";
+             }
+             program { name: show_title_area;
+                signal: "elm,state,title_area,visible";
+                source: "elm";
+                script {
+                   new st[31];
+                   new Float:vl;
+                   get_state(PART:"elm.swallow.action_area.bg", st, 30, vl);
+                   if (!strcmp(st, "visible"))
+                     set_state(PART:"elm.swallow.content", "show_action_title_area", 0.0);
+                   else
+                     set_state(PART:"elm.swallow.content", "show_title_area", 0.0);
+                   set_state(PART:"elm.bg.title", "visible", 0.0);
+                }
+             }
+             program { name: hide_title_area;
+                signal: "elm,state,title_area,hidden";
+                source: "elm";
+                action: STATE_SET "default" 0.0;
+                script {
+                   new st[31];
+                   new Float:vl;
+                   get_state(PART:"elm.swallow.action_area.bg", st, 30, vl);
+                   if ((!strcmp(st, "visible")) || (!strcmp(st, "landscape_visible")))
+                     set_state(PART:"elm.swallow.content", "show_action_area", 0.0);
+                   else
+                     set_state(PART:"elm.swallow.content", "default", 0.0);
+                   set_state(PART:"elm.bg.title", "default", 0.0);
+                }
+             }
+             program { name: show_action_area;
+                signal: "elm,state,action_area,visible";
+                source: "elm";
+                script {
+                   new st[31];
+                   new Float:vl;
+                   get_state(PART:"elm.bg.title", st, 30, vl);
+                   if ((!strcmp(st, "visible")))
+                     set_state(PART:"elm.swallow.content", "show_action_title_area", 0.0);
+                   else
+                     set_state(PART:"elm.swallow.content", "show_action_area", 0.0);
+                   set_state(PART:"elm.swallow.action_area.bg", "visible", 0.0);
+                }
+             }
+             program { name: hide_action_area;
+                signal: "elm,state,action_area,hidden";
+                source: "elm";
+                action: STATE_SET "default" 0.0;
+                script {
+                   new st[31];
+                   new Float:vl;
+                   get_state(PART:"elm.bg.title", st, 30, vl);
+                   if ((!strcmp(st, "visible")))
+                     set_state(PART:"elm.swallow.content", "show_title_area", 0.0);
+                   else
+                     set_state(PART:"elm.swallow.content", "default", 0.0);
+                   set_state(PART:"elm.swallow.action_area.bg", "default", 0.0);
+                }
+             }
+             program { name: "change_to_landscape";
+                action: STATE_SET "landscape" 0.0;
+                target: "base";
+                        target: "elm.bg.title";
+                after: "orientation_change";
+             }
+                 program { name: "title_change_to_portrait";
+                        action: STATE_SET "visible" 0.0;
+                        target: "elm.bg.title";
+                 }
+             program { name: "orientation_change";
+                action: SIGNAL_EMIT "elm,state,orientation,changed" "";
+                        after: "title_change_to_portrait";
+             }
+             program { name: "change_to_portrait";
+                action: STATE_SET "default" 0.0;
+                target: "base";
+                after: "orientation_change";
+             }
+             program { name: "landscape_mode";
+                source: "elm";
+                signal: "elm,state,orient,90";
+                after: "change_to_landscape";
+             }
+             program { name: "landscape_mode2";
+                source: "elm";
+                signal: "elm,state,orient,270";
+                after: "change_to_landscape";
+             }
+             program { name: "portrait_mode";
+                source: "elm";
+                signal: "elm,state,orient,0";
+                after: "change_to_portrait";
+             }
+             program { name: "portrait_mode2";
+                source: "elm";
+                signal: "elm,state,orient,180";
+                after: "change_to_portrait";
+             }
+          } /* end of programs */
+       }
+       group { name: "elm/popup/fullsrceen/notitle/default";
+          data {
+             item: "focus_highlight" "on";
+             item: "default_orient" "2"; //top, center:1 bottom:2
+             item: "title_height" POPUP_FS_TITLE_AREA_HEIGHT;
+             item: "popup_outside_pad" POPUP_FS_OUTSIDE_PADDING;
+          }
+          parts {
+             part { name: "base";
+                scale: 1;
+                type: RECT;
+                description { state: "default" 0.0;
+                   min: POPUP_FS_DEFAULT_BASE_DEFAULT_MAX_INC;
+                   max: POPUP_FS_DEFAULT_BASE_DEFAULT_MAX_INC;
+                   fixed: 1 0;
+                }
+                description { state: "landscape" 0.0;
+                   inherit: "default" 0.0;
+                   min: POPUP_FS_DEFAULT_BASE_LANDSCAPE_MAX_INC;
+                   max: POPUP_FS_DEFAULT_BASE_LANDSCAPE_MAX_INC;
+                }
+             }
+             part { name: "bg";
+                type: RECT;
+                scale: 1;
+                description { state: "default" 0.0;
+                   rel1.to: "base";
+                   rel2.to: "base";
+                   color: 255 255 255 255;
+                }
+             }
+
+               part { name: "elm.bg.title";
+                type: RECT;
+                scale: 1;
+                description { state: "default" 0.0;
+                   min: 0 0;
+                   max: 0 0;
+                   fixed: 1 1;
+                   align: 0.5 0.0;
+                               rel1.relative: 0.0 0.0;
+                   rel2.relative: 0.0 1.0;
+                               visible: 0;
+                }
+             }
+             part { name: "elm.swallow.content";
+                type: SWALLOW;
+                scale: 1;
+
+                description { state: "default" 0.0;
+                   rel1 {
+                      relative: 0.0 1.0;
+                      to_x: "base";
+                      to_y: "elm.bg.title";
+                   }
+                   rel2.to: "base";
+                }
+             }
+          }
+
+          programs {
+             program { name: "change_to_landscape";
+                action: STATE_SET "landscape" 0.0;
+                target: "base";
+                after: "orientation_change";
+             }
+             program { name: "orientation_change";
+                action: SIGNAL_EMIT "elm,state,orientation,changed" "";
+             }
+             program { name: "change_to_portrait";
+                action: STATE_SET "default" 0.0;
+                target: "base";
+                after: "orientation_change";
+             }
+             program { name: "landscape_mode";
+                source: "elm";
+                signal: "elm,state,orient,90";
+                after: "change_to_landscape";
+             }
+             program { name: "landscape_mode2";
+                source: "elm";
+                signal: "elm,state,orient,270";
+                after: "change_to_landscape";
+             }
+             program { name: "portrait_mode";
+                source: "elm";
+                signal: "elm,state,orient,0";
+                after: "change_to_portrait";
+             }
+             program { name: "portrait_mode2";
+                source: "elm";
+                signal: "elm,state,orient,180";
+                after: "change_to_portrait";
+             }
+          } /* end of programs */
+       }
diff --git a/vp-main/res/edje/custom/pv-custom-image.edc b/vp-main/res/edje/custom/pv-custom-image.edc
new file mode 100755 (executable)
index 0000000..48b3805
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+images
+{
+       /* multi window */
+       image: "multi/T01_2_mw_control_bg_left.png" COMP;
+       image: "multi/T01_2_mw_control_bg_left_press.png" COMP;
+       image: "multi/T01_2_mw_control_bg_center.png" COMP;
+       image: "multi/T01_2_mw_control_bg_center_press.png" COMP;
+       image: "multi/T01_2_mw_control_bg_right.png" COMP;
+       image: "multi/T01_2_mw_control_bg_right_press.png" COMP;
+
+       /* button images */
+       image: "button/T01_2_icon_Near_by_device.png" COMP;
+       image: "button/T01_2_icon_Near_by_device_press.png" COMP;
+       image: "button/T01_2_icon_bluetooth_headset.png" COMP;
+       image: "button/T01_2_icon_bluetooth_headset_press.png" COMP;
+
+       image: "button/T01_2_icon_check.png" COMP;
+       image: "button/T01_2_icon_check_press.png" COMP;
+       image: "button/T01_2_icon_close.png" COMP;
+       image: "button/T01_2_icon_close_press.png" COMP;
+       image: "button/T01-2_control_circle_button_01.png" COMP;
+       image: "button/T01-2_control_circle_button_01_press.png" COMP;
+       image: "button/T01-2_control_circle_button_01_focus.png" COMP;
+       image: "button/T01-2_control_circle_button_02.png" COMP;
+       image: "button/T01-2_control_circle_button_02_press.png" COMP;
+       image: "button/T01-2_control_circle_button_02_focus.png" COMP;
+       image: "button/T01-2_control_circle_button_03.png" COMP;
+       image: "button/T01-2_control_circle_button_03_press.png" COMP;
+       image: "button/core_icon_back.png" COMP;
+       image: "control/T01-2_control_circle_icon_rewind.png" COMP;
+       image: "control/T01-2_control_circle_icon_next.png" COMP;
+       /*genlist*/
+       image: "genlist/00_focus.png" COMP;
+       image: "genlist/00_list_group_bg.png" COMP;
+       image: "genlist/00_list_group_bg_press.png" COMP;
+       image: "genlist/00_popup_list_press.pngg" COMP;
+
+}
diff --git a/vp-main/res/edje/custom/pv-custom-layout.edc b/vp-main/res/edje/custom/pv-custom-layout.edc
new file mode 100755 (executable)
index 0000000..dd78f5f
--- /dev/null
@@ -0,0 +1,110 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+ group {
+       name: "elm/layout/application/play_view";
+       parts {
+               part {
+                       name: "elm.swallow.bg";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 255;
+                       }
+               }
+               part {
+                       name: "elm.swallow.event";
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                       }
+               }
+       } /* parts */
+} /* group */
+
+ group {
+       name: "elm/layout/application/multi_view";
+       parts {
+               part {
+                       name: "elm.swallow.bg";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 255;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       repeat_events : 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                       }
+               }
+       } /* parts */
+} /* group */
+group {
+       name: "elm/layout/application/detail_view";
+       parts {
+               part {
+                       name: "elm.swallow.bg";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 255;
+                       }
+               }
+               part {
+                       name: "elm.swallow.event";
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                       }
+               }
+       } /* parts */
+} /* group */
+
diff --git a/vp-main/res/edje/custom/pv-custom-naviframe.edc b/vp-main/res/edje/custom/pv-custom-naviframe.edc
new file mode 100755 (executable)
index 0000000..98f6e08
--- /dev/null
@@ -0,0 +1,2839 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+
+#define NAVIFRAME_TITLE_BG_COLOR_INC                           0 0 0 0
+#define NAVIFRAME_TOOLBAR_BG_COLOR_INC                         0 0 0 0
+#define NAVIFRAME_TITLE_TOP_PADDING_INC                                0 16
+#define NAVIFRAME_TITLE_H_INC                                          50
+#define NAVIFRAME_TOOLBAR_HEIGHT_INC                           0
+#define NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC                      63 63
+
+#define NAVIFRAME_PADDING_INC                                          20 0
+#define NAVIFRAME_PADDING2_INC                                                 6 0
+#define NAVIFRAME_PADDING3_INC                                                 8 0
+
+#define NAVIFRAME_BOTTOM_TEXT_PADDING_INC                      0 11
+#define NAVIFRAME_BOTTOM_RIGHT_PADDING_INC             26 11
+#define NAVIFRAME_BOTTOM_PADDING_INC                           0 10
+
+#define NAVIFRAME_VIEW_TRANS_TIME                                      0.3
+
+#define NAVIFRAME_TOP_LINE_COLOR                                       0 0 0 0
+
+//tag buddy
+#define NAVIFRAME_TAG_TOP_PADDING                                      116
+#define NAVIFRAME_TAG_RIGHT_PADDING                                    26
+#define NAVIFRAME_TAG_LEFT_PADDING                                     26
+#define NAVIFRAME_TAG_HEIGHT                                           192
+
+
+group {
+       name:"elm/naviframe/item/playview/basic/default";
+       alias:"elm/naviframe/item/playview/1line/default";
+       script  {
+               public tbar_bg = 0;                                     //Toolbar BG Show call count
+               public buttons_visible = 0;                     //when both buttons are visible
+               public toolbar_buttons_visible = 0;     //when both toolbar buttons are visible
+       }
+       parts {
+               part {
+                       name: "base";
+                       type: RECT;
+                       mouse_events:  0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "left" 0.0;
+                               inherit: "default" 0.0;
+                               rel1.relative: -1.0 0.0;
+                               rel2.relative: 0.0 1.0;
+                       }
+                       description {
+                               state: "right" 0.0;
+                               inherit: "default" 0.0;
+                               rel1.relative: 1.0 0.0;
+                               rel2.relative: 2.0 1.0;
+                       }
+               }
+
+               part {
+                       name: "title_swallow";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               align: 0.0 1.0;
+                               fixed: 0 1;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2 { relative: 1.0 0.0; to: "base"; }
+                               color: NAVIFRAME_TITLE_BG_COLOR_INC;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 NAVIFRAME_TITLE_H_INC;
+                               fixed: 0 1;
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2 { relative: 1.0 0.0; to: "base"; }
+                       }
+               }
+
+               part {
+                       name: "title_bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 NAVIFRAME_TITLE_H_INC;
+                               align: 0.0 0.0;
+                               fixed: 0 1;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0; to: "title_swallow"; }
+                               rel2 { relative: 1.0 0.0; to: "title_swallow"; }
+                               color: NAVIFRAME_TITLE_BG_COLOR_INC;
+                       }
+/*
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                               fixed: 0 1;
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2 { relative: 1.0 0.0; to: "base"; }
+                       }
+*/
+               }
+               part {
+                       name: "title_line";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 2;
+                               align: 0.0 0.0;
+                               fixed: 0 1;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0; to: "title_swallow"; }
+                               rel2 { relative: 1.0 0.0; to: "title_swallow"; }
+                               color: NAVIFRAME_TOP_LINE_COLOR;
+                       }
+/*
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                       }
+*/
+               }
+               part {
+                       name: "title_clip";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                       }
+               }
+               part {
+                       name: "top_padding";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_TITLE_TOP_PADDING_INC;
+                               fixed: 0 1;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 0.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }/*
+               part {
+                       name: "padding_center_text1";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_PADDING_INC;
+                               visible: 0;
+                               fixed: 1 0;
+                               align: 0.0 0.0;
+                               rel1 { relative: 1.0 0.0; to: "title_left_btn"; }
+                               rel2 { relative: 1.0 1.0; to: "title_left_btn"; }
+                       }
+               }*/
+               part {
+                       name: "padding_center_text1";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 45 0;
+                               fixed: 1 0;
+                               align: 0.0 0.5;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 0.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       repeat_events: 0;
+                       clip_to: "content_clip";
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 0.0;
+                               // _NATIVE_BUFFER_SYNC
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2 { relative: 1.0 1.0; to: "base"; }
+                               /*
+                               rel1.relative: 0.0 1.0;
+                               rel1.to_x: "base";
+                               rel1.to_y: "title_bg";
+                               rel2.relative: 1.0 0.0;
+                               rel2.to_x: "base";
+                               rel2.to_y: "toolbar_bg";
+                               */
+                       }
+                       description {
+                               state: "sip_visible" 0.0;
+                               inherit: "default" 0.0;
+                               rel2.relative: 1.0 1.0;
+                               rel2.to: "base";
+                       }
+               }
+               part {
+                       name: "content_clip";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1.to: "elm.swallow.content";
+                               rel2.to: "elm.swallow.content";
+                       }
+               }
+               part {
+                       name: "padding_center_text2";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 45 0;
+                               fixed: 1 0;
+                               align: 1.0 0.5;
+                               rel1 { relative: 1.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "padding_bottom_text";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_BOTTOM_TEXT_PADDING_INC;
+                               fixed: 0 1;
+                               align: 0.0 1.0;
+                               rel1 { relative: 0.0 1.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.text.title";
+                       type: TEXT;
+                       effect: FAR_SHADOW BOTTOM;
+                       scale: 1;
+                       repeat_events: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               text {
+                                       min: 0 0;
+                                       max: 1 0;
+                                       size: 18;
+                               }
+/*     chageable GUI
+                               color: VIDEO_TITLE_FONT_DEFAULT_COLOR;
+                               color3: 0 0 0 255;
+                               align: 0.5 0.5;
+*/
+                               color: 240 240 240 255;
+
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 1.0; to_x: "padding_center_text1"; to_y: "top_padding"; }
+                               rel2 { relative: 0.0 0.0; to_x: "padding_center_text2"; to_y: "padding_bottom_text"; }
+                       }
+               }
+               part {
+                       name: "access.title";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               rel1.to: "title_bg";
+                               rel2.to: "title_bg";
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "padding_before_text";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.0; to: "elm.text.title"; }
+                               rel2 { relative: 0.0 1.0; to: "elm.text.title"; }
+                               fixed: 1 0;
+                               min: NAVIFRAME_PADDING_INC;
+                               visible: 0;
+                       }
+               }
+
+               part {
+                       name: "click_event_area";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+
+               part {
+                       name: "title_btns_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_PADDING2_INC;
+                               fixed: 1 1;
+                               align: 0.0 0.5;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 0.0 1.0; to: "title_bg"; }
+                       }
+               }
+
+               part {
+                       name: "bottom_right_padding";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 1;
+                               align: 1.0 1.0;
+                               rel1 { relative: 1.0 1.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: NAVIFRAME_BOTTOM_RIGHT_PADDING_INC;
+                       }
+               }
+
+               part {
+                       name: "title_left_btn";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+                               fixed: 1 1;
+                               align: 0.0 0.5;
+                               rel1 { relative: 0.5 0.0; to: "title_btns_padding"; }
+                               rel2 { relative: 0.5 1.0; to: "title_btns_padding"; }
+                       }
+               }
+               part {
+                       name: "title_right_btn";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+                               align: 1 0.5;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 1.0; to_x: "title_bg"; to_y: "top_padding"; }
+                               rel2 { relative: 0.0 0.0; to: "bottom_right_padding"; }
+                       }
+               }
+               part {
+                       name: "toolbar_bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               max: 999999 0;
+                               fixed: 0 1;
+                               align: 0.0 1.0;
+                               visible: 0;
+                               rel1 { to: "base"; }
+                               rel2 { to: "base"; }
+                               color: NAVIFRAME_TOOLBAR_BG_COLOR_INC;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 NAVIFRAME_TOOLBAR_HEIGHT_INC;
+                               max: 999999 NAVIFRAME_TOOLBAR_HEIGHT_INC;
+                               visible: 1;
+                       }
+                       description {
+                               state: "sip_visible" 0.0;
+                               inherit: "default" 0.0;
+                               align: 0.0 0.0;
+                               min: 1 NAVIFRAME_TITLE_H_INC;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "pv.tag.left.padding";
+                       type: SPACER;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_TAG_LEFT_PADDING 0;
+                               fixed: 1 0;
+                               align: 0.0 0.5;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 0.0 1.0;}
+                       }
+               }
+               part {
+                       name: "pv.tag.right.padding";
+                       type: SPACER;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_TAG_RIGHT_PADDING 0;
+                               fixed: 1 0;
+                               align: 1.0 0.5;
+                               rel1 { relative: 1.0 0.0;}
+                               rel2 { relative: 1.0 1.0;}
+                       }
+               }
+               part {
+                       name: "pv.tag.top.padding";
+                       type: SPACER;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 NAVIFRAME_TAG_TOP_PADDING;
+                               fixed: 0 1;
+                               align: 0.5 0.0;
+                               rel1 { relative: 1.0 0.0; to: "pv.tag.left.padding";}
+                               rel2 { relative: 0.0 0.0; to: "pv.tag.right.padding";}
+                       }
+               }
+               part {
+                       name: "pv.tag.bg";
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 0 NAVIFRAME_TAG_HEIGHT;
+                               fixed: 0 1;
+                               align: 0.5 0.0;
+                               rel1 { relative: 0.0 1.0;  to:"pv.tag.top.padding";}
+                               rel2 { relative: 1.0 1.0;  to:"pv.tag.top.padding";}
+                               color: 90 46 7 255;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "content_new_pushed";
+                       signal: "elm,state,new,pushed,internal";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "show_finished";
+               }
+               program {
+                       name: "content_cur_pushed";
+                       signal: "elm,state,cur,pushed,internal";
+                       source: "";
+                       action: STATE_SET "left" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "pushed_finished";
+               }
+               program {
+                       name: "content_prev_popped";
+                       signal: "elm,state,prev,popped,internal";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "show_finished";
+               }
+               program {
+                       name: "content_cur_popped";
+                       signal: "elm,state,cur,popped,internal";
+                       source: "";
+                       action: STATE_SET "right" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "popped_finished";
+               }
+               program {
+                       name: "cur_pushed";
+                       signal: "elm,state,cur,pushed";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "default", 0.0);
+                               emit("elm,state,cur,pushed,internal", "");
+                       }
+               }
+               program {
+                       name: "new_pushed";
+                       signal: "elm,state,new,pushed";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "right", 0.0);
+                               emit("elm,state,new,pushed,internal", "");
+                       }
+               }
+               program {
+                       name: "prev_popped";
+                       signal: "elm,state,prev,popped";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "left", 0.0);
+                               emit("elm,state,prev,popped,internal", "");
+                       }
+               }
+               program {
+                       name: "cur_popped";
+                       signal: "elm,state,cur,popped";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "default", 0.0);
+                               emit("elm,state,cur,popped,internal", "");
+                       }
+               }
+               program {
+                       name: "visible";
+                       signal: "elm,state,visible";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+               }
+               program {
+                       name: "title_show";
+                       signal: "elm,state,title,show";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "title_swallow";
+                       transition: LINEAR 0.2;
+                       after: "show_finished";
+               }
+               program {
+                       name: "title_hide";
+                       signal: "elm,state,title,hide";
+                       source: "elm";
+                       action: STATE_SET "hide" 0.0;
+                       target: "title_swallow";
+                       transition: LINEAR 0.2;
+                       after: "hide_finished";
+               }
+               program {
+                       name: "no_effect_title_hide";
+                       signal: "elm,state,title,no,effect,hide";
+                       source: "elm";
+                       action: STATE_SET "hide" 0.0;
+                       target: "title_swallow";
+                       transition: LINEAR 0.0;
+                       after: "hide_finished";
+               }
+               program {
+                       name: "subtitle_show";
+                       signal: "elm,state,subtitle,show";
+                       source: "elm";
+                       script {
+                               set_state(PART:"elm.text.title", "subtitle_is_set", 0.0);
+                       }
+               }
+               program {
+                       name: "subtitle_hide";
+                       signal: "elm,state,subtitle,hide";
+                       source: "elm";
+                       script {
+                               set_state(PART:"elm.text.title", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "prev_btn_show";
+                       signal: "elm,state,prev_btn,show";
+                       source: "elm";
+                       script {
+                               emit("elm,state,toolbar_bg,show", "elm");
+                       }
+               }
+               program {
+                       name: "prev_btn_hide";
+                       signal: "elm,state,prev_btn,hide";
+                       source: "elm";
+                       script {
+                               emit("elm,state,toolbar_bg,hide", "elm");
+                       }
+               }
+               program {
+                       name: "sip_show";
+                       signal: "elm,state,sip,shown";
+                       source: "";
+                       script {
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                               else
+                               {
+                                       set_state(PART:"toolbar_bg", "sip_visible", 0.0);
+                                       set_state(PART:"elm.swallow.content", "sip_visible", 0.0);
+                               }
+                       }
+               }
+
+               program {
+                       name: "sip_hide";
+                       signal: "elm,state,sip,hidden";
+                       source: "";
+                       script {
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                               else
+                               {
+                                       set_state(PART:"toolbar_bg", "visible", 0.0);
+                                       set_state(PART:"elm.swallow.content", "default", 0.0);
+                               }
+                       }
+               }
+               program {
+                       name: "left_btn_show";
+                       signal: "elm,state,title_left_btn,show";
+                       source: "elm";
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) + 1);
+                               set_state(PART:"bottom_right_padding", "visible", 0.0);
+                       }
+               }
+               program {
+                       name: "left_btn_hide";
+                       signal: "elm,state,title_left_btn,hide";
+                       source: "elm";
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) - 1);
+                               if (get_int(buttons_visible) == 0)
+                                       set_state(PART:"bottom_right_padding", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "right_btn_show";
+                       signal: "elm,state,title_right_btn,show";
+                       source: "elm";
+                       action: STATE_SET "visible" 0.0;
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) + 1);
+                               set_state(PART:"bottom_right_padding", "visible", 0.0);
+                       }
+               }
+               program {
+                       name: "right_btn_hide";
+                       signal: "elm,state,title_right_btn,hide";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) - 1);
+                               if (get_int(buttons_visible) == 0)
+                                       set_state(PART:"bottom_right_padding", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "toolbar_bg_show";
+                       signal: "elm,state,toolbar_bg,show";
+                       source: "elm";
+                       script {
+                               set_state(PART:"toolbar_bg", "visible", 0.0);
+                               set_int(tbar_bg, get_int(tbar_bg) + 1);
+                       }
+               }
+               program {
+                       name: "toolbar_bg_hide";
+                       signal: "elm,state,toolbar_bg,hide";
+                       source: "elm";
+                       script {
+                               set_int(tbar_bg, get_int(tbar_bg) - 1);
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "toolbar_open";
+                       signal: "elm,state,toolbar,open";
+                       source: "";
+                       action: STATE_SET "visible" 0.0;
+                       target: "toolbar_bg";
+                       transition: LINEAR 0.2;
+               }
+               program {
+                       name: "toolbar_close";
+                       signal: "elm,state,toolbar,close";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "toolbar_bg";
+                       transition: LINEAR 0.2;
+               }
+
+               program {
+                       name: "show_finished";
+                       action: SIGNAL_EMIT "elm,action,show,finished" "";
+               }
+               program {
+                       name: "hide_finished";
+                       action: SIGNAL_EMIT "elm,action,hide,finished" "";
+               }
+
+               program {
+                       name: "pushed_finished";
+                       action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+               }
+               program {
+                       name: "popped_finished";
+                       action: SIGNAL_EMIT "elm,action,popped,finished" "";
+               }
+               program {
+                       name: "title_clicked";
+                       signal: "mouse,clicked,1";
+                       source: "click_event_area";
+                       action: SIGNAL_EMIT "elm,action,title,clicked" "";
+               }
+               program {
+                       name: "display_mode_compress";
+                       signal: "display,mode,compress";
+                       source: "";
+                       action: SIGNAL_EMIT "elm,state,toolbar,instant_close" "";
+               }
+               program {
+                       name: "display_mode_default";
+                       signal: "display,mode,default";
+                       source: "";
+                       action: SIGNAL_EMIT "elm,state,toolbar,instant_open" "";
+               }
+               program {
+                       name: "pv.tag.bg.hide";
+                       signal: "signal.pv.tag.bg.hide";
+                       source: "*";
+                       action: STATE_SET "hide" 0.0;
+                       target: "pv.tag.bg";
+               }
+               program {
+                       name: "pv.tag.bg.show";
+                       signal: "signal.pv.tag.bg.show";
+                       source: "*";
+                       action: STATE_SET "default" 0.0;
+                       target: "pv.tag.bg";
+               }
+       }
+}
+
+
+
+group {
+       name:"elm/naviframe/item/playview/multiwin/default";
+       script  {
+               public tbar_bg = 0;                                     //Toolbar BG Show call count
+               public buttons_visible = 0;                     //when both buttons are visible
+               public toolbar_buttons_visible = 0;     //when both toolbar buttons are visible
+       }
+       parts {
+               part {
+                       name: "base";
+                       type: RECT;
+                       mouse_events:  0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "left" 0.0;
+                               inherit: "default" 0.0;
+                               rel1.relative: -1.0 0.0;
+                               rel2.relative: 0.0 1.0;
+                       }
+                       description {
+                               state: "right" 0.0;
+                               inherit: "default" 0.0;
+                               rel1.relative: 1.0 0.0;
+                               rel2.relative: 2.0 1.0;
+                       }
+               }
+               part {
+                       name: "title_bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               align: 0.0 0.0;
+                               fixed: 0 1;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2 { relative: 1.0 0.0; to: "base"; }
+                               color: NAVIFRAME_TITLE_BG_COLOR_INC;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                               fixed: 0 1;
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2 { relative: 1.0 0.0; to: "base"; }
+                       }
+               }
+               part {
+                       name: "title_clip";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                       }
+               }
+               part {
+                       name: "top_padding";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 0 1;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 0.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "padding_center_text1";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 0;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 0.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       repeat_events: 0;
+                       clip_to: "content_clip";
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 0.0;
+                               rel1.relative: 0.0 1.0;
+                               rel1.to_x: "base";
+                               rel1.to_y: "title_bg";
+                               rel2.relative: 1.0 0.0;
+                               rel2.to_x: "base";
+                               rel2.to_y: "toolbar_bg";
+                       }
+                       description {
+                               state: "sip_visible" 0.0;
+                               inherit: "default" 0.0;
+                               rel2.relative: 1.0 1.0;
+                               rel2.to: "base";
+                       }
+               }
+               part {
+                       name: "content_clip";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1.to: "elm.swallow.content";
+                               rel2.to: "elm.swallow.content";
+                       }
+               }
+               part {
+                       name: "padding_center_text2";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 0;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.0; to: "title_btns_padding_ext"; }
+                               rel2 { relative: 0.0 1.0; to: "title_btns_padding_ext"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "padding_bottom_text";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 0 1;
+                               align: 0.0 1.0;
+                               rel1 { relative: 0.0 1.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.text.title";
+                       type: TEXT;
+                       effect: FAR_SHADOW BOTTOM;
+                       scale: 1;
+                       repeat_events: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               text {
+                                       font: VIDEO_TITLE_FONT_STYLE;
+                                       size: VIDEO_TITLE_FONT_SIZE;
+                                       min: 0 0;
+                                       max: 1 0;
+                                       align: 0.0 0.5;
+                               }
+                               color: VIDEO_TITLE_FONT_DEFAULT_COLOR;
+                               color3: 0 0 0 255;
+                               align: 0.0 0.5;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 1.0; to_x: "padding_center_text1"; to_y: "top_padding"; }
+                               rel2 { relative: 0.0 0.0; to_x: "padding_center_text2"; to_y: "padding_bottom_text"; }
+                       }
+               }
+               part {
+                       name: "access.title";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               rel1.to: "title_bg";
+                               rel2.to: "title_bg";
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "padding_before_text";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.0; to: "elm.text.title"; }
+                               rel2 { relative: 0.0 1.0; to: "elm.text.title"; }
+                               fixed: 1 0;
+                               min: 0 0;
+                               visible: 0;
+                       }
+               }
+
+               part {
+                       name: "click_event_area";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "title_left_btn_ext";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: 0 0;
+                               fixed: 1 1;
+                               align: 1 0.5;
+                               rel1 { relative: 0.0 0.0; to: "title_btns_padding_ext"; }
+                               rel2 { relative: 0.0 1.0; to: "title_btns_padding_ext"; }
+                       }
+               }
+               part {
+                       name: "title_btns_padding_ext";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 1;
+                               align: 1 0.5;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0; to: "title_left_btn"; }
+                               rel2 { relative: 0.0 1.0; to: "title_left_btn"; }
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                       }
+               }
+               part {
+                       name: "title_left_btn";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: 0 0;
+                               fixed: 1 1;
+                               align: 1 0.5;
+                               rel1 { relative: 0.0 0.0; to: "title_btns_padding"; }
+                               rel2 { relative: 0.0 1.0; to: "title_btns_padding"; }
+                       }
+               }
+               part {
+                       name: "title_btns_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 1;
+                               align: 1 0.5;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0; to: "title_right_btn"; }
+                               rel2 { relative: 0.0 1.0; to: "title_right_btn"; }
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                       }
+               }
+               part {
+                       name: "bottom_right_padding";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 1;
+                               align: 1.0 1.0;
+                               rel1 { relative: 1.0 1.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                       }
+               }
+               part {
+                       name: "title_right_btn";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: 0 0;
+                               align: 1 0.5;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 1.0; to_x: "title_bg"; to_y: "top_padding"; }
+                               rel2 { relative: 0.0 0.0; to: "bottom_right_padding"; }
+                       }
+               }
+               part {
+                       name: "toolbar_bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               max: 999999 0;
+                               fixed: 0 1;
+                               align: 0.0 1.0;
+                               visible: 0;
+                               rel1 { to: "base"; }
+                               rel2 { to: "base"; }
+                               color: 0 0 0 0;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                               max: 999999 0;
+                               visible: 1;
+                       }
+                       description {
+                               state: "sip_visible" 0.0;
+                               inherit: "default" 0.0;
+                               align: 0.0 0.0;
+                               min: 1 0;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                               visible: 1;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "content_new_pushed";
+                       signal: "elm,state,new,pushed,internal";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "show_finished";
+               }
+               program {
+                       name: "content_cur_pushed";
+                       signal: "elm,state,cur,pushed,internal";
+                       source: "";
+                       action: STATE_SET "left" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "pushed_finished";
+               }
+               program {
+                       name: "content_prev_popped";
+                       signal: "elm,state,prev,popped,internal";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "show_finished";
+               }
+               program {
+                       name: "content_cur_popped";
+                       signal: "elm,state,cur,popped,internal";
+                       source: "";
+                       action: STATE_SET "right" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "popped_finished";
+               }
+               program {
+                       name: "cur_pushed";
+                       signal: "elm,state,cur,pushed";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "default", 0.0);
+                               emit("elm,state,cur,pushed,internal", "");
+                       }
+               }
+               program {
+                       name: "new_pushed";
+                       signal: "elm,state,new,pushed";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "right", 0.0);
+                               emit("elm,state,new,pushed,internal", "");
+                       }
+               }
+               program {
+                       name: "prev_popped";
+                       signal: "elm,state,prev,popped";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "left", 0.0);
+                               emit("elm,state,prev,popped,internal", "");
+                       }
+               }
+               program {
+                       name: "cur_popped";
+                       signal: "elm,state,cur,popped";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "default", 0.0);
+                               emit("elm,state,cur,popped,internal", "");
+                       }
+               }
+               program {
+                       name: "visible";
+                       signal: "elm,state,visible";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+               }
+               program {
+                       name: "title_show";
+                       signal: "elm,state,title,show";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "title_bg";
+                       transition: LINEAR 0.4;
+                       after: "show_finished";
+               }
+               program {
+                       name: "title_hide";
+                       signal: "elm,state,title,hide";
+                       source: "elm";
+                       action: STATE_SET "hide" 0.0;
+                       target: "title_bg";
+                       transition: LINEAR 0.4;
+                       after: "hide_finished";
+               }
+               program {
+                       name: "subtitle_show";
+                       signal: "elm,state,subtitle,show";
+                       source: "elm";
+                       script {
+                               set_state(PART:"elm.text.title", "subtitle_is_set", 0.0);
+                       }
+               }
+               program {
+                       name: "subtitle_hide";
+                       signal: "elm,state,subtitle,hide";
+                       source: "elm";
+                       script {
+                               set_state(PART:"elm.text.title", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "prev_btn_show";
+                       signal: "elm,state,prev_btn,show";
+                       source: "elm";
+                       script {
+                               emit("elm,state,toolbar_bg,show", "elm");
+                       }
+               }
+               program {
+                       name: "prev_btn_hide";
+                       signal: "elm,state,prev_btn,hide";
+                       source: "elm";
+                       script {
+                               emit("elm,state,toolbar_bg,hide", "elm");
+                       }
+               }
+               program {
+                       name: "sip_show";
+                       signal: "elm,state,sip,shown";
+                       source: "";
+                       script {
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                               else
+                               {
+                                       set_state(PART:"toolbar_bg", "sip_visible", 0.0);
+                                       set_state(PART:"elm.swallow.content", "sip_visible", 0.0);
+                               }
+                       }
+               }
+
+               program {
+                       name: "sip_hide";
+                       signal: "elm,state,sip,hidden";
+                       source: "";
+                       script {
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                               else
+                               {
+                                       set_state(PART:"toolbar_bg", "visible", 0.0);
+                                       set_state(PART:"elm.swallow.content", "default", 0.0);
+                               }
+                       }
+               }
+               program {
+                       name: "left_btn_show";
+                       signal: "elm,state,title_left_btn,show";
+                       source: "elm";
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) + 1);
+                               set_state(PART:"bottom_right_padding", "visible", 0.0);
+                               if (get_int(buttons_visible) >= 2)
+                                       set_state(PART:"title_btns_padding", "visible", 0.0);
+                       }
+               }
+               program {
+                       name: "left_btn_hide";
+                       signal: "elm,state,title_left_btn,hide";
+                       source: "elm";
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) - 1);
+                               set_state(PART:"title_btns_padding", "default", 0.0);
+                               if (get_int(buttons_visible) == 0)
+                                       set_state(PART:"bottom_right_padding", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "right_btn_show";
+                       signal: "elm,state,title_right_btn,show";
+                       source: "elm";
+                       action: STATE_SET "visible" 0.0;
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) + 1);
+                               set_state(PART:"bottom_right_padding", "visible", 0.0);
+                               if (get_int(buttons_visible) >= 2)
+                                       set_state(PART:"title_btns_padding", "visible", 0.0);
+                       }
+               }
+               program {
+                       name: "right_btn_hide";
+                       signal: "elm,state,title_right_btn,hide";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) - 1);
+                               set_state(PART:"title_btns_padding", "default", 0.0);
+                               if (get_int(buttons_visible) == 0)
+                                       set_state(PART:"bottom_right_padding", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "toolbar_bg_show";
+                       signal: "elm,state,toolbar_bg,show";
+                       source: "elm";
+                       script {
+                               set_state(PART:"toolbar_bg", "visible", 0.0);
+                               set_int(tbar_bg, get_int(tbar_bg) + 1);
+                       }
+               }
+               program {
+                       name: "toolbar_bg_hide";
+                       signal: "elm,state,toolbar_bg,hide";
+                       source: "elm";
+                       script {
+                               set_int(tbar_bg, get_int(tbar_bg) - 1);
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "toolbar_open";
+                       signal: "elm,state,toolbar,open";
+                       source: "";
+                       action: STATE_SET "visible" 0.0;
+                       target: "toolbar_bg";
+                       transition: LINEAR 0.2;
+               }
+               program {
+                       name: "toolbar_close";
+                       signal: "elm,state,toolbar,close";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "toolbar_bg";
+                       transition: LINEAR 0.2;
+               }
+
+               program {
+                       name: "show_finished";
+                       action: SIGNAL_EMIT "elm,action,show,finished" "";
+               }
+               program {
+                       name: "hide_finished";
+                       action: SIGNAL_EMIT "elm,action,hide,finished" "";
+               }
+
+               program {
+                       name: "pushed_finished";
+                       action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+               }
+               program {
+                       name: "popped_finished";
+                       action: SIGNAL_EMIT "elm,action,popped,finished" "";
+               }
+               program {
+                       name: "title_clicked";
+                       signal: "mouse,clicked,1";
+                       source: "click_event_area";
+                       action: SIGNAL_EMIT "elm,action,title,clicked" "";
+               }
+               program {
+                       name: "display_mode_compress";
+                       signal: "display,mode,compress";
+                       source: "";
+                       action: SIGNAL_EMIT "elm,state,toolbar,instant_close" "";
+               }
+               program {
+                       name: "display_mode_default";
+                       signal: "display,mode,default";
+                       source: "";
+                       action: SIGNAL_EMIT "elm,state,toolbar,instant_open" "";
+               }
+       }
+}
+
+group {
+       name:"elm/naviframe/item/playview/trim/default";
+       script  {
+               public tbar_bg = 0;                                     //Toolbar BG Show call count
+               public buttons_visible = 0;                     //when both buttons are visible
+               public toolbar_buttons_visible = 0;     //when both toolbar buttons are visible
+       }
+       parts {
+               part {
+                       name: "base";
+                       type: RECT;
+                       mouse_events:  0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "left" 0.0;
+                               inherit: "default" 0.0;
+                               rel1.relative: -1.0 0.0;
+                               rel2.relative: 0.0 1.0;
+                       }
+                       description {
+                               state: "right" 0.0;
+                               inherit: "default" 0.0;
+                               rel1.relative: 1.0 0.0;
+                               rel2.relative: 2.0 1.0;
+                       }
+               }
+               part {
+                       name: "title_bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 NAVIFRAME_TITLE_H_INC;
+                               align: 0.0 0.0;
+                               fixed: 0 1;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2 { relative: 1.0 0.0; to: "base"; }
+                               color: NAVIFRAME_TITLE_BG_COLOR_INC;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                               fixed: 0 1;
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2 { relative: 1.0 0.0; to: "base"; }
+                       }
+               }
+               part {
+                       name: "title_line";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 6;
+                               align: 0.0 0.0;
+                               fixed: 0 1;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 0.0; to: "title_bg"; }
+                               color: NAVIFRAME_TOP_LINE_COLOR;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                               min: 0 0;
+                       }
+               }
+               part {
+                       name: "title_clip";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                       }
+               }
+               part {
+                       name: "top_padding";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_TITLE_TOP_PADDING_INC;
+                               fixed: 0 1;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 0.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "padding_center_text1";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_PADDING_INC;
+                               visible: 0;
+                               fixed: 1 0;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 0.0 1.0; to: "title_bg"; }
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       repeat_events: 0;
+                       clip_to: "content_clip";
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 0.0;
+                               rel1.relative: 0.0 1.0;
+                               rel1.to_x: "base";
+                               rel1.to_y: "title_bg";
+                               rel2.relative: 1.0 0.0;
+                               rel2.to_x: "base";
+                               rel2.to_y: "toolbar_bg";
+                       }
+                       description {
+                               state: "sip_visible" 0.0;
+                               inherit: "default" 0.0;
+                               rel2.relative: 1.0 1.0;
+                               rel2.to: "base";
+                       }
+               }
+               part {
+                       name: "content_clip";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1.to: "elm.swallow.content";
+                               rel2.to: "elm.swallow.content";
+                       }
+               }
+               part {
+                       name: "padding_center_text2";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_PADDING2_INC;
+                               fixed: 1 0;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.0; to: "title_left_btn"; }
+                               rel2 { relative: 0.0 1.0; to: "title_left_btn"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "padding_bottom_text";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_BOTTOM_TEXT_PADDING_INC;
+                               fixed: 0 1;
+                               align: 0.0 1.0;
+                               rel1 { relative: 0.0 1.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.text.title";
+                       type: TEXT;
+                       effect: FAR_SHADOW BOTTOM;
+                       scale: 1;
+                       repeat_events: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               text {
+                                       font: VIDEO_TITLE_FONT_STYLE;
+                                       size: VIDEO_TITLE_FONT_SIZE;
+                                       min: 0 0;
+                                       max: 1 0;
+                                       align: 0.0 0.5;
+                               }
+                               color: VIDEO_TITLE_FONT_DEFAULT_COLOR;
+                               color3: 0 0 0 255;
+                               align: 0.0 0.5;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 1.0; to_x: "padding_center_text1"; to_y: "top_padding"; }
+                               rel2 { relative: 0.0 0.0; to_x: "padding_center_text2"; to_y: "padding_bottom_text"; }
+                       }
+               }
+
+               part {
+                       name: "access.title";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               rel1.to: "title_bg";
+                               rel2.to: "title_bg";
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "padding_before_text";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.0; to: "elm.text.title"; }
+                               rel2 { relative: 0.0 1.0; to: "elm.text.title"; }
+                               fixed: 1 0;
+                               min: NAVIFRAME_PADDING_INC;
+                               visible: 0;
+                       }
+               }
+
+               part {
+                       name: "click_event_area";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "title_left_btn_line_shadow";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 1 48;
+                               fixed: 1 1;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.5; to_x: "title_left_btn_line"; to_y: "title_bg"; }
+                               rel2 { relative: 0.0 0.5; to_x: "title_left_btn_line"; to_y: "title_bg"; }
+                               color: 0 0 0 81;
+                       }
+               }
+
+               part {
+                       name: "title_left_btn_line";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 2 48;
+                               fixed: 1 1;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.5; to_x: "title_left_btns_padding"; to_y: "title_bg"; }
+                               rel2 { relative: 0.0 0.5; to_x: "title_left_btns_padding"; to_y: "title_bg"; }
+                               color: 255 255 255 81;
+                       }
+               }
+
+               part {
+                       name: "title_left_btns_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_PADDING2_INC;
+                               fixed: 1 1;
+                               align: 1.0 0.5;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0; to_x: "title_left_btn"; to_y: "title_bg"; }
+                               rel2 { relative: 0.0 1.0; to_x: "title_left_btn"; to_y: "title_bg"; }
+                       }
+               }
+
+               part {
+                       name: "title_left_btn";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+                               fixed: 1 1;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.0; to: "title_btns_padding"; }
+                               rel2 { relative: 0.0 1.0; to: "title_btns_padding"; }
+                       }
+               }
+
+               part {
+                       name: "title_btns_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_PADDING2_INC;
+                               fixed: 1 1;
+                               align: 1.0 0.5;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0; to_x: "title_right_btn_line"; to_y: "title_bg"; }
+                               rel2 { relative: 0.0 1.0; to_x: "title_right_btn_line"; to_y: "title_bg"; }
+                       }
+               }
+
+               part {
+                       name: "title_right_btn_line_shadow";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 1 48;
+                               fixed: 1 1;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.5; to_x: "title_right_btn_line"; to_y: "title_bg"; }
+                               rel2 { relative: 0.0 0.5; to_x: "title_right_btn_line"; to_y: "title_bg"; }
+                               color: 0 0 0 81;
+                       }
+               }
+
+               part {
+                       name: "title_right_btn_line";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 2 48;
+                               fixed: 1 1;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.5; to_x: "title_btns_line_padding"; to_y: "title_bg"; }
+                               rel2 { relative: 0.0 0.5; to_x: "title_btns_line_padding"; to_y: "title_bg"; }
+                               color: 255 255 255 81;
+                       }
+               }
+
+               part {
+                       name: "title_btns_line_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: NAVIFRAME_PADDING2_INC;
+                               fixed: 1 1;
+                               align: 1.0 0.5;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0; to_x: "title_right_btn"; to_y: "title_bg"; }
+                               rel2 { relative: 0.0 1.0; to_x: "title_right_btn"; to_y: "title_bg"; }
+                       }
+               }
+
+               part {
+                       name: "bottom_right_padding";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 1;
+                               align: 1.0 1.0;
+                               rel1 { relative: 1.0 1.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: NAVIFRAME_PADDING2_INC;
+                       }
+               }
+
+
+               part {
+                       name: "title_right_btn";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+                               align: 1.0 0.5;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 0.5; to_x: "bottom_right_padding"; to_y: "title_bg"; }
+                               rel2 { relative: 0.0 0.5; to_x: "bottom_right_padding"; to_y: "title_bg"; }
+                       }
+               }
+
+               part {
+                       name: "toolbar_bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               max: 999999 0;
+                               fixed: 0 1;
+                               align: 0.0 1.0;
+                               visible: 0;
+                               rel1 { to: "base"; }
+                               rel2 { to: "base"; }
+                               color: NAVIFRAME_TOOLBAR_BG_COLOR_INC;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 NAVIFRAME_TOOLBAR_HEIGHT_INC;
+                               max: 999999 NAVIFRAME_TOOLBAR_HEIGHT_INC;
+                               visible: 1;
+                       }
+                       description {
+                               state: "sip_visible" 0.0;
+                               inherit: "default" 0.0;
+                               align: 0.0 0.0;
+                               min: 1 NAVIFRAME_TITLE_H_INC;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                               visible: 1;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "content_new_pushed";
+                       signal: "elm,state,new,pushed,internal";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "show_finished";
+               }
+               program {
+                       name: "content_cur_pushed";
+                       signal: "elm,state,cur,pushed,internal";
+                       source: "";
+                       action: STATE_SET "left" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "pushed_finished";
+               }
+               program {
+                       name: "content_prev_popped";
+                       signal: "elm,state,prev,popped,internal";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "show_finished";
+               }
+               program {
+                       name: "content_cur_popped";
+                       signal: "elm,state,cur,popped,internal";
+                       source: "";
+                       action: STATE_SET "right" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "popped_finished";
+               }
+               program {
+                       name: "cur_pushed";
+                       signal: "elm,state,cur,pushed";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "default", 0.0);
+                               emit("elm,state,cur,pushed,internal", "");
+                       }
+               }
+               program {
+                       name: "new_pushed";
+                       signal: "elm,state,new,pushed";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "right", 0.0);
+                               emit("elm,state,new,pushed,internal", "");
+                       }
+               }
+               program {
+                       name: "prev_popped";
+                       signal: "elm,state,prev,popped";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "left", 0.0);
+                               emit("elm,state,prev,popped,internal", "");
+                       }
+               }
+               program {
+                       name: "cur_popped";
+                       signal: "elm,state,cur,popped";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "default", 0.0);
+                               emit("elm,state,cur,popped,internal", "");
+                       }
+               }
+               program {
+                       name: "visible";
+                       signal: "elm,state,visible";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+               }
+               program {
+                       name: "title_show";
+                       signal: "elm,state,title,show";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "title_bg";
+                       target: "title_line";
+               }
+               program {
+                       name: "title_hide";
+                       signal: "elm,state,title,hide";
+                       source: "elm";
+                       action: STATE_SET "hide" 0.0;
+                       target: "title_bg";
+                       target: "title_line";
+               }
+               program {
+                       name: "subtitle_show";
+                       signal: "elm,state,subtitle,show";
+                       source: "elm";
+                       script {
+                               set_state(PART:"elm.text.title", "subtitle_is_set", 0.0);
+                       }
+               }
+               program {
+                       name: "subtitle_hide";
+                       signal: "elm,state,subtitle,hide";
+                       source: "elm";
+                       script {
+                               set_state(PART:"elm.text.title", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "prev_btn_show";
+                       signal: "elm,state,prev_btn,show";
+                       source: "elm";
+                       script {
+                               emit("elm,state,toolbar_bg,show", "elm");
+                       }
+               }
+               program {
+                       name: "prev_btn_hide";
+                       signal: "elm,state,prev_btn,hide";
+                       source: "elm";
+                       script {
+                               emit("elm,state,toolbar_bg,hide", "elm");
+                       }
+               }
+               program {
+                       name: "sip_show";
+                       signal: "elm,state,sip,shown";
+                       source: "";
+                       script {
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                               else
+                               {
+                                       set_state(PART:"toolbar_bg", "sip_visible", 0.0);
+                                       set_state(PART:"elm.swallow.content", "sip_visible", 0.0);
+                               }
+                       }
+               }
+
+               program {
+                       name: "sip_hide";
+                       signal: "elm,state,sip,hidden";
+                       source: "";
+                       script {
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                               else
+                               {
+                                       set_state(PART:"toolbar_bg", "visible", 0.0);
+                                       set_state(PART:"elm.swallow.content", "default", 0.0);
+                               }
+                       }
+               }
+               program {
+                       name: "left_btn_show";
+                       signal: "elm,state,title_left_btn,show";
+                       source: "elm";
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) + 1);
+                               set_state(PART:"bottom_right_padding", "visible", 0.0);
+                       }
+               }
+               program {
+                       name: "left_btn_hide";
+                       signal: "elm,state,title_left_btn,hide";
+                       source: "elm";
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) - 1);
+                               if (get_int(buttons_visible) == 0)
+                                       set_state(PART:"bottom_right_padding", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "right_btn_show";
+                       signal: "elm,state,title_right_btn,show";
+                       source: "elm";
+                       action: STATE_SET "visible" 0.0;
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) + 1);
+                               set_state(PART:"bottom_right_padding", "visible", 0.0);
+                       }
+               }
+               program {
+                       name: "right_btn_hide";
+                       signal: "elm,state,title_right_btn,hide";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) - 1);
+                               if (get_int(buttons_visible) == 0)
+                                       set_state(PART:"bottom_right_padding", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "toolbar_bg_show";
+                       signal: "elm,state,toolbar_bg,show";
+                       source: "elm";
+                       script {
+                               set_state(PART:"toolbar_bg", "visible", 0.0);
+                               set_int(tbar_bg, get_int(tbar_bg) + 1);
+                       }
+               }
+               program {
+                       name: "toolbar_bg_hide";
+                       signal: "elm,state,toolbar_bg,hide";
+                       source: "elm";
+                       script {
+                               set_int(tbar_bg, get_int(tbar_bg) - 1);
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "toolbar_open";
+                       signal: "elm,state,toolbar,open";
+                       source: "";
+                       action: STATE_SET "visible" 0.0;
+                       target: "toolbar_bg";
+                       transition: LINEAR 0.2;
+               }
+               program {
+                       name: "toolbar_close";
+                       signal: "elm,state,toolbar,close";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "toolbar_bg";
+                       transition: LINEAR 0.2;
+               }
+
+               program {
+                       name: "show_finished";
+                       action: SIGNAL_EMIT "elm,action,show,finished" "";
+               }
+               program {
+                       name: "hide_finished";
+                       action: SIGNAL_EMIT "elm,action,hide,finished" "";
+               }
+
+               program {
+                       name: "pushed_finished";
+                       action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+               }
+               program {
+                       name: "popped_finished";
+                       action: SIGNAL_EMIT "elm,action,popped,finished" "";
+               }
+               program {
+                       name: "title_clicked";
+                       signal: "mouse,clicked,1";
+                       source: "click_event_area";
+                       action: SIGNAL_EMIT "elm,action,title,clicked" "";
+               }
+               program {
+                       name: "display_mode_compress";
+                       signal: "display,mode,compress";
+                       source: "";
+                       action: SIGNAL_EMIT "elm,state,toolbar,instant_close" "";
+               }
+               program {
+                       name: "display_mode_default";
+                       signal: "display,mode,default";
+                       source: "";
+                       action: SIGNAL_EMIT "elm,state,toolbar,instant_open" "";
+               }
+       }
+}
+
+
+
+group {
+       name:"elm/naviframe/item/playview/chapter/default";
+       script  {
+               public tbar_bg = 0;                                     //Toolbar BG Show call count
+               public buttons_visible = 0;                     //when both buttons are visible
+               public toolbar_buttons_visible = 0;     //when both toolbar buttons are visible
+       }
+       parts {
+               part {
+                       name: "base";
+                       type: RECT;
+                       mouse_events:  0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "left" 0.0;
+                               inherit: "default" 0.0;
+                               rel1.relative: -1.0 0.0;
+                               rel2.relative: 0.0 1.0;
+                       }
+                       description {
+                               state: "right" 0.0;
+                               inherit: "default" 0.0;
+                               rel1.relative: 1.0 0.0;
+                               rel2.relative: 2.0 1.0;
+                       }
+               }
+               part {
+                       name: "title_bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               align: 0.0 0.0;
+                               fixed: 0 1;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2 { relative: 1.0 0.0; to: "base"; }
+                               color: NAVIFRAME_TITLE_BG_COLOR_INC;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                               fixed: 0 1;
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2 { relative: 1.0 0.0; to: "base"; }
+                       }
+               }
+               part {
+                       name: "title_line";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 6;
+                               align: 0.0 0.0;
+                               fixed: 0 1;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 0.0; to: "title_bg"; }
+                               color: NAVIFRAME_TOP_LINE_COLOR;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                       }
+               }
+               part {
+                       name: "title_clip";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                       }
+               }
+               part {
+                       name: "top_padding";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 0 1;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 0.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "padding_center_text1";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 0;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+                               rel2 { relative: 0.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       repeat_events: 0;
+                       clip_to: "content_clip";
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 0.0;
+                               rel1.relative: 0.0 1.0;
+                               rel1.to_x: "base";
+                               rel1.to_y: "title_bg";
+                               rel2.relative: 1.0 0.0;
+                               rel2.to_x: "base";
+                               rel2.to_y: "toolbar_bg";
+                       }
+                       description {
+                               state: "sip_visible" 0.0;
+                               inherit: "default" 0.0;
+                               rel2.relative: 1.0 1.0;
+                               rel2.to: "base";
+                       }
+               }
+               part {
+                       name: "content_clip";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1.to: "elm.swallow.content";
+                               rel2.to: "elm.swallow.content";
+                       }
+               }
+               part {
+                       name: "padding_center_text2";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 0;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.0; to: "title_btns_padding_ext"; }
+                               rel2 { relative: 0.0 1.0; to: "title_btns_padding_ext"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "padding_bottom_text";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 0 1;
+                               align: 0.0 1.0;
+                               rel1 { relative: 0.0 1.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+
+               part {
+                       name: "elm.text.title";
+                       type: TEXT;
+                       effect: FAR_SHADOW BOTTOM;
+                       scale: 1;
+                       repeat_events: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               text {
+                                       font: VIDEO_TITLE_FONT_STYLE;
+                                       size: VIDEO_TITLE_FONT_SIZE;
+                                       min: 0 0;
+                                       max: 1 0;
+                                       align: 0.5 0.5;
+                               }
+                               color: VIDEO_TITLE_FONT_DEFAULT_COLOR;
+                               color3: 0 0 0 255;
+                               align: 0.5 0.5;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 1.0; to_x: "padding_center_text1"; to_y: "top_padding"; }
+                               rel2 { relative: 0.0 0.0; to_x: "padding_center_text2"; to_y: "padding_bottom_text"; }
+                       }
+               }
+
+               part {
+                       name: "access.title";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               rel1.to: "title_bg";
+                               rel2.to: "title_bg";
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "padding_before_text";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               align: 1.0 0.5;
+                               rel1 { relative: 0.0 0.0; to: "elm.text.title"; }
+                               rel2 { relative: 0.0 1.0; to: "elm.text.title"; }
+                               fixed: 1 0;
+                               min: 0 0;
+                               visible: 0;
+                       }
+               }
+
+               part {
+                       name: "click_event_area";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "title_left_btn_ext";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: 0 0;
+                               fixed: 1 1;
+                               align: 1 0.5;
+                               rel1 { relative: 0.0 0.0; to: "title_btns_padding_ext"; }
+                               rel2 { relative: 0.0 1.0; to: "title_btns_padding_ext"; }
+                       }
+               }
+               part {
+                       name: "title_btns_padding_ext";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 1;
+                               align: 1 0.5;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0; to: "title_left_btn"; }
+                               rel2 { relative: 0.0 1.0; to: "title_left_btn"; }
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                       }
+               }
+               part {
+                       name: "title_left_btn";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: 0 0;
+                               fixed: 1 1;
+                               align: 1 0.5;
+                               rel1 { relative: 0.0 0.0; to: "title_btns_padding"; }
+                               rel2 { relative: 0.0 1.0; to: "title_btns_padding"; }
+                       }
+               }
+               part {
+                       name: "title_btns_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 1;
+                               align: 1 0.5;
+                               visible: 0;
+                               rel1 { relative: 0.0 0.0; to: "title_right_btn"; }
+                               rel2 { relative: 0.0 1.0; to: "title_right_btn"; }
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                       }
+               }
+               part {
+                       name: "bottom_right_padding";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 1;
+                               align: 1.0 1.0;
+                               rel1 { relative: 1.0 1.0; to: "title_bg"; }
+                               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+                               visible: 0;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                       }
+               }
+               part {
+                       name: "title_right_btn";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "title_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: 0 0;
+                               align: 1 0.5;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 1.0; to_x: "title_bg"; to_y: "top_padding"; }
+                               rel2 { relative: 0.0 0.0; to: "bottom_right_padding"; }
+                       }
+               }
+               part {
+                       name: "toolbar_bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               max: 999999 0;
+                               fixed: 0 1;
+                               align: 0.0 1.0;
+                               visible: 0;
+                               rel1 { to: "base"; }
+                               rel2 { to: "base"; }
+                               color: 0 0 0 255;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 98;
+                               max: 999999 98;
+                               visible: 1;
+                       }
+                       description {
+                               state: "sip_visible" 0.0;
+                               inherit: "default" 0.0;
+                               align: 0.0 0.0;
+                               min: 1 0;
+                               rel1 { to: "title_bg"; }
+                               rel2 { to: "title_bg"; }
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "prev_btn_bg";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 112 0;
+                               fixed: 1 0;
+                               align: 1.0 0.0;
+                               rel1 { relative: 1.0 0.0; to: "toolbar_bg"; }
+                               rel2.to: "toolbar_bg";
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.prev_btn";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "toolbar_clip";
+                       description {
+                               state: "default" 0.0;
+                               max: 85 98;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                               rel1.to: "prev_btn_bg";
+                               rel2.to: "prev_btn_bg";
+                       }
+               }
+               part {
+                       name: "toolbar_clip";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "toolbar_bg"; }
+                               rel2 { to: "toolbar_bg"; }
+                       }
+               }
+       }
+
+       programs {
+               program {
+                       name: "content_new_pushed";
+                       signal: "elm,state,new,pushed,internal";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "show_finished";
+               }
+               program {
+                       name: "content_cur_pushed";
+                       signal: "elm,state,cur,pushed,internal";
+                       source: "";
+                       action: STATE_SET "left" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "pushed_finished";
+               }
+               program {
+                       name: "content_prev_popped";
+                       signal: "elm,state,prev,popped,internal";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "show_finished";
+               }
+               program {
+                       name: "content_cur_popped";
+                       signal: "elm,state,cur,popped,internal";
+                       source: "";
+                       action: STATE_SET "right" 0.0;
+                       target: "base";
+                       transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+                       after: "popped_finished";
+               }
+               program {
+                       name: "cur_pushed";
+                       signal: "elm,state,cur,pushed";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "default", 0.0);
+                               emit("elm,state,cur,pushed,internal", "");
+                       }
+               }
+               program {
+                       name: "new_pushed";
+                       signal: "elm,state,new,pushed";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "right", 0.0);
+                               emit("elm,state,new,pushed,internal", "");
+                       }
+               }
+               program {
+                       name: "prev_popped";
+                       signal: "elm,state,prev,popped";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "left", 0.0);
+                               emit("elm,state,prev,popped,internal", "");
+                       }
+               }
+               program {
+                       name: "cur_popped";
+                       signal: "elm,state,cur,popped";
+                       source: "elm";
+                       script {
+                               set_state(PART:"base", "default", 0.0);
+                               emit("elm,state,cur,popped,internal", "");
+                       }
+               }
+               program {
+                       name: "visible";
+                       signal: "elm,state,visible";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "base";
+               }
+               program {
+                       name: "title_show";
+                       signal: "elm,state,title,show";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "title_bg";
+                       target: "title_line";
+                       transition: LINEAR 0.4;
+                       after: "show_finished";
+               }
+               program {
+                       name: "title_hide";
+                       signal: "elm,state,title,hide";
+                       source: "elm";
+                       action: STATE_SET "hide" 0.0;
+                       target: "title_bg";
+                       target: "title_line";
+                       transition: LINEAR 0.4;
+                       after: "hide_finished";
+               }
+               program {
+                       name: "subtitle_show";
+                       signal: "elm,state,subtitle,show";
+                       source: "elm";
+                       script {
+                               set_state(PART:"elm.text.title", "subtitle_is_set", 0.0);
+                       }
+               }
+               program {
+                       name: "subtitle_hide";
+                       signal: "elm,state,subtitle,hide";
+                       source: "elm";
+                       script {
+                               set_state(PART:"elm.text.title", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "prev_btn_show";
+                       signal: "elm,state,prev_btn,show";
+                       source: "elm";
+                       script {
+                               emit("elm,state,toolbar_bg,show", "elm");
+                       }
+               }
+               program {
+                       name: "prev_btn_hide";
+                       signal: "elm,state,prev_btn,hide";
+                       source: "elm";
+                       script {
+                               emit("elm,state,toolbar_bg,hide", "elm");
+                       }
+               }
+               program {
+                       name: "sip_show";
+                       signal: "elm,state,sip,shown";
+                       source: "";
+                       script {
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                               else
+                               {
+                                       set_state(PART:"toolbar_bg", "sip_visible", 0.0);
+                                       set_state(PART:"elm.swallow.content", "sip_visible", 0.0);
+                               }
+                       }
+               }
+
+               program {
+                       name: "sip_hide";
+                       signal: "elm,state,sip,hidden";
+                       source: "";
+                       script {
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                               else
+                               {
+                                       set_state(PART:"toolbar_bg", "visible", 0.0);
+                                       set_state(PART:"elm.swallow.content", "default", 0.0);
+                               }
+                       }
+               }
+               program {
+                       name: "left_btn_show";
+                       signal: "elm,state,title_left_btn,show";
+                       source: "elm";
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) + 1);
+                               set_state(PART:"bottom_right_padding", "visible", 0.0);
+                               if (get_int(buttons_visible) >= 2)
+                                       set_state(PART:"title_btns_padding", "visible", 0.0);
+                       }
+               }
+               program {
+                       name: "left_btn_hide";
+                       signal: "elm,state,title_left_btn,hide";
+                       source: "elm";
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) - 1);
+                               set_state(PART:"title_btns_padding", "default", 0.0);
+                               if (get_int(buttons_visible) == 0)
+                                       set_state(PART:"bottom_right_padding", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "right_btn_show";
+                       signal: "elm,state,title_right_btn,show";
+                       source: "elm";
+                       action: STATE_SET "visible" 0.0;
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) + 1);
+                               set_state(PART:"bottom_right_padding", "visible", 0.0);
+                               if (get_int(buttons_visible) >= 2)
+                                       set_state(PART:"title_btns_padding", "visible", 0.0);
+                       }
+               }
+               program {
+                       name: "right_btn_hide";
+                       signal: "elm,state,title_right_btn,hide";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       script {
+                               set_int(buttons_visible, get_int(buttons_visible) - 1);
+                               set_state(PART:"title_btns_padding", "default", 0.0);
+                               if (get_int(buttons_visible) == 0)
+                                       set_state(PART:"bottom_right_padding", "default", 0.0);
+                       }
+               }
+
+               program {
+                       name: "toolbar_bg_show";
+                       signal: "elm,state,toolbar_bg,show";
+                       source: "elm";
+                       script {
+                               set_state(PART:"toolbar_bg", "visible", 0.0);
+                               set_int(tbar_bg, get_int(tbar_bg) + 1);
+                       }
+               }
+               program {
+                       name: "toolbar_bg_hide";
+                       signal: "elm,state,toolbar_bg,hide";
+                       source: "elm";
+                       script {
+                               set_int(tbar_bg, get_int(tbar_bg) - 1);
+                               if (get_int(tbar_bg) <= 0)
+                                       set_state(PART:"toolbar_bg", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "toolbar_open";
+                       signal: "elm,state,toolbar,open";
+                       source: "";
+                       action: STATE_SET "visible" 0.0;
+                       target: "toolbar_bg";
+                       transition: LINEAR 0.2;
+               }
+               program {
+                       name: "toolbar_close";
+                       signal: "elm,state,toolbar,close";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "toolbar_bg";
+                       transition: LINEAR 0.2;
+               }
+
+               program {
+                       name: "show_finished";
+                       action: SIGNAL_EMIT "elm,action,show,finished" "";
+               }
+               program {
+                       name: "hide_finished";
+                       action: SIGNAL_EMIT "elm,action,hide,finished" "";
+               }
+
+               program {
+                       name: "pushed_finished";
+                       action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+               }
+               program {
+                       name: "popped_finished";
+                       action: SIGNAL_EMIT "elm,action,popped,finished" "";
+               }
+               program {
+                       name: "title_clicked";
+                       signal: "mouse,clicked,1";
+                       source: "click_event_area";
+                       action: SIGNAL_EMIT "elm,action,title,clicked" "";
+               }
+               program {
+                       name: "display_mode_compress";
+                       signal: "display,mode,compress";
+                       source: "";
+                       action: SIGNAL_EMIT "elm,state,toolbar,instant_close" "";
+               }
+               program {
+                       name: "display_mode_default";
+                       signal: "display,mode,default";
+                       source: "";
+                       action: SIGNAL_EMIT "elm,state,toolbar,instant_open" "";
+               }
+       }
+}
+
diff --git a/vp-main/res/edje/images/00_color_picker_palette_bg.png b/vp-main/res/edje/images/00_color_picker_palette_bg.png
new file mode 100755 (executable)
index 0000000..462be08
Binary files /dev/null and b/vp-main/res/edje/images/00_color_picker_palette_bg.png differ
diff --git a/vp-main/res/edje/images/T01_2_video_thumbnail_default.png b/vp-main/res/edje/images/T01_2_video_thumbnail_default.png
new file mode 100755 (executable)
index 0000000..4b83dc8
Binary files /dev/null and b/vp-main/res/edje/images/T01_2_video_thumbnail_default.png differ
diff --git a/vp-main/res/edje/images/T01_no_video.png b/vp-main/res/edje/images/T01_no_video.png
new file mode 100755 (executable)
index 0000000..9cb28a1
Binary files /dev/null and b/vp-main/res/edje/images/T01_no_video.png differ
diff --git a/vp-main/res/edje/images/allshare/device/120x120/U04_device_AC_Wall.png b/vp-main/res/edje/images/allshare/device/120x120/U04_device_AC_Wall.png
new file mode 100755 (executable)
index 0000000..4d55d0c
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/120x120/U04_device_AC_Wall.png differ
diff --git a/vp-main/res/edje/images/allshare/device/120x120/U04_device_BD.png b/vp-main/res/edje/images/allshare/device/120x120/U04_device_BD.png
new file mode 100755 (executable)
index 0000000..660d972
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/120x120/U04_device_BD.png differ
diff --git a/vp-main/res/edje/images/allshare/device/120x120/U04_device_Camcorder.png b/vp-main/res/edje/images/allshare/device/120x120/U04_device_Camcorder.png
new file mode 100755 (executable)
index 0000000..d6103c1
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/120x120/U04_device_Camcorder.png differ
diff --git a/vp-main/res/edje/images/allshare/device/120x120/U04_device_Camera.png b/vp-main/res/edje/images/allshare/device/120x120/U04_device_Camera.png
new file mode 100755 (executable)
index 0000000..fcbb254
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/120x120/U04_device_Camera.png differ
diff --git a/vp-main/res/edje/images/allshare/device/120x120/U04_device_Dongle.png b/vp-main/res/edje/images/allshare/device/120x120/U04_device_Dongle.png
new file mode 100755 (executable)
index 0000000..09158a1
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/120x120/U04_device_Dongle.png differ
diff --git a/vp-main/res/edje/images/allshare/device/120x120/U04_device_LFD.png b/vp-main/res/edje/images/allshare/device/120x120/U04_device_LFD.png
new file mode 100755 (executable)
index 0000000..0c1feb5
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/120x120/U04_device_LFD.png differ
diff --git a/vp-main/res/edje/images/allshare/device/120x120/U04_device_Mobile.png b/vp-main/res/edje/images/allshare/device/120x120/U04_device_Mobile.png
new file mode 100755 (executable)
index 0000000..5eaf414
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/120x120/U04_device_Mobile.png differ
diff --git a/vp-main/res/edje/images/allshare/device/120x120/U04_device_None_DNS.png b/vp-main/res/edje/images/allshare/device/120x120/U04_device_None_DNS.png
new file mode 100755 (executable)
index 0000000..62e2fa3
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/120x120/U04_device_None_DNS.png differ
diff --git a/vp-main/res/edje/images/allshare/device/120x120/U04_device_PC.png b/vp-main/res/edje/images/allshare/device/120x120/U04_device_PC.png
new file mode 100755 (executable)
index 0000000..ddda068
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/120x120/U04_device_PC.png differ
diff --git a/vp-main/res/edje/images/allshare/device/120x120/U04_device_REF.png b/vp-main/res/edje/images/allshare/device/120x120/U04_device_REF.png
new file mode 100755 (executable)
index 0000000..236881f
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/120x120/U04_device_REF.png differ
diff --git a/vp-main/res/edje/images/allshare/device/120x120/U04_device_ROBOT_VC.png b/vp-main/res/edje/images/allshare/device/120x120/U04_device_ROBOT_VC.png
new file mode 100755 (executable)
index 0000000..cd17475
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/120x120/U04_device_ROBOT_VC.png differ
diff --git a/vp-main/res/edje/images/allshare/device/120x120/U04_device_STB.png b/vp-main/res/edje/images/allshare/device/120x120/U04_device_STB.png
new file mode 100755 (executable)
index 0000000..c3b8434
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/120x120/U04_device_STB.png differ
diff --git a/vp-main/res/edje/images/allshare/device/120x120/U04_device_TV.png b/vp-main/res/edje/images/allshare/device/120x120/U04_device_TV.png
new file mode 100755 (executable)
index 0000000..8a5877a
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/120x120/U04_device_TV.png differ
diff --git a/vp-main/res/edje/images/allshare/device/120x120/U04_device_Tablet.png b/vp-main/res/edje/images/allshare/device/120x120/U04_device_Tablet.png
new file mode 100755 (executable)
index 0000000..244b3b5
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/120x120/U04_device_Tablet.png differ
diff --git a/vp-main/res/edje/images/allshare/device/120x120/U04_device_WM.png b/vp-main/res/edje/images/allshare/device/120x120/U04_device_WM.png
new file mode 100755 (executable)
index 0000000..f5f9194
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/120x120/U04_device_WM.png differ
diff --git a/vp-main/res/edje/images/allshare/device/81x81/U04_device_AC_Wall.png b/vp-main/res/edje/images/allshare/device/81x81/U04_device_AC_Wall.png
new file mode 100755 (executable)
index 0000000..74690f5
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/81x81/U04_device_AC_Wall.png differ
diff --git a/vp-main/res/edje/images/allshare/device/81x81/U04_device_BD.png b/vp-main/res/edje/images/allshare/device/81x81/U04_device_BD.png
new file mode 100755 (executable)
index 0000000..1b2989d
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/81x81/U04_device_BD.png differ
diff --git a/vp-main/res/edje/images/allshare/device/81x81/U04_device_Camcorder.png b/vp-main/res/edje/images/allshare/device/81x81/U04_device_Camcorder.png
new file mode 100755 (executable)
index 0000000..43ee93b
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/81x81/U04_device_Camcorder.png differ
diff --git a/vp-main/res/edje/images/allshare/device/81x81/U04_device_Camera.png b/vp-main/res/edje/images/allshare/device/81x81/U04_device_Camera.png
new file mode 100755 (executable)
index 0000000..35cb8f8
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/81x81/U04_device_Camera.png differ
diff --git a/vp-main/res/edje/images/allshare/device/81x81/U04_device_Dongle.png b/vp-main/res/edje/images/allshare/device/81x81/U04_device_Dongle.png
new file mode 100755 (executable)
index 0000000..9255146
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/81x81/U04_device_Dongle.png differ
diff --git a/vp-main/res/edje/images/allshare/device/81x81/U04_device_LFD.png b/vp-main/res/edje/images/allshare/device/81x81/U04_device_LFD.png
new file mode 100755 (executable)
index 0000000..d910c09
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/81x81/U04_device_LFD.png differ
diff --git a/vp-main/res/edje/images/allshare/device/81x81/U04_device_Mobile.png b/vp-main/res/edje/images/allshare/device/81x81/U04_device_Mobile.png
new file mode 100755 (executable)
index 0000000..36c0620
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/81x81/U04_device_Mobile.png differ
diff --git a/vp-main/res/edje/images/allshare/device/81x81/U04_device_None_DNS.png b/vp-main/res/edje/images/allshare/device/81x81/U04_device_None_DNS.png
new file mode 100755 (executable)
index 0000000..a468d9c
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/81x81/U04_device_None_DNS.png differ
diff --git a/vp-main/res/edje/images/allshare/device/81x81/U04_device_PC.png b/vp-main/res/edje/images/allshare/device/81x81/U04_device_PC.png
new file mode 100755 (executable)
index 0000000..1df39f3
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/81x81/U04_device_PC.png differ
diff --git a/vp-main/res/edje/images/allshare/device/81x81/U04_device_REF.png b/vp-main/res/edje/images/allshare/device/81x81/U04_device_REF.png
new file mode 100755 (executable)
index 0000000..c5ad8f5
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/81x81/U04_device_REF.png differ
diff --git a/vp-main/res/edje/images/allshare/device/81x81/U04_device_ROBOT_VC.png b/vp-main/res/edje/images/allshare/device/81x81/U04_device_ROBOT_VC.png
new file mode 100755 (executable)
index 0000000..21fefb0
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/81x81/U04_device_ROBOT_VC.png differ
diff --git a/vp-main/res/edje/images/allshare/device/81x81/U04_device_STB.png b/vp-main/res/edje/images/allshare/device/81x81/U04_device_STB.png
new file mode 100755 (executable)
index 0000000..24385f0
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/81x81/U04_device_STB.png differ
diff --git a/vp-main/res/edje/images/allshare/device/81x81/U04_device_TV.png b/vp-main/res/edje/images/allshare/device/81x81/U04_device_TV.png
new file mode 100755 (executable)
index 0000000..faffe24
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/81x81/U04_device_TV.png differ
diff --git a/vp-main/res/edje/images/allshare/device/81x81/U04_device_Tablet.png b/vp-main/res/edje/images/allshare/device/81x81/U04_device_Tablet.png
new file mode 100755 (executable)
index 0000000..0cd0b7b
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/81x81/U04_device_Tablet.png differ
diff --git a/vp-main/res/edje/images/allshare/device/81x81/U04_device_WM.png b/vp-main/res/edje/images/allshare/device/81x81/U04_device_WM.png
new file mode 100755 (executable)
index 0000000..fe23494
Binary files /dev/null and b/vp-main/res/edje/images/allshare/device/81x81/U04_device_WM.png differ
diff --git a/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_bg.png b/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_bg.png
new file mode 100755 (executable)
index 0000000..7d553c8
Binary files /dev/null and b/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_bg.png differ
diff --git a/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus.png b/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus.png
new file mode 100755 (executable)
index 0000000..98bb3c0
Binary files /dev/null and b/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus.png differ
diff --git a/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus_dim.png b/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus_dim.png
new file mode 100755 (executable)
index 0000000..93de255
Binary files /dev/null and b/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus_dim.png differ
diff --git a/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus_press.png b/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus_press.png
new file mode 100755 (executable)
index 0000000..507476d
Binary files /dev/null and b/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_minus_press.png differ
diff --git a/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute.png b/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute.png
new file mode 100755 (executable)
index 0000000..428d10a
Binary files /dev/null and b/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute.png differ
diff --git a/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute_dim.png b/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute_dim.png
new file mode 100755 (executable)
index 0000000..97e0fc1
Binary files /dev/null and b/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute_dim.png differ
diff --git a/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute_press.png b/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute_press.png
new file mode 100755 (executable)
index 0000000..dcf2447
Binary files /dev/null and b/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_mute_press.png differ
diff --git a/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus.png b/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus.png
new file mode 100755 (executable)
index 0000000..6632065
Binary files /dev/null and b/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus.png differ
diff --git a/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus_dim.png b/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus_dim.png
new file mode 100755 (executable)
index 0000000..906d101
Binary files /dev/null and b/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus_dim.png differ
diff --git a/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus_press.png b/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus_press.png
new file mode 100755 (executable)
index 0000000..0293b1e
Binary files /dev/null and b/vp-main/res/edje/images/allshare/voice/T01-2_icon_volume_control_plus_press.png differ
diff --git a/vp-main/res/edje/images/bookmark/T01_2_button_remove.png b/vp-main/res/edje/images/bookmark/T01_2_button_remove.png
new file mode 100755 (executable)
index 0000000..b60da84
Binary files /dev/null and b/vp-main/res/edje/images/bookmark/T01_2_button_remove.png differ
diff --git a/vp-main/res/edje/images/bookmark/T01_2_button_remove_press.png b/vp-main/res/edje/images/bookmark/T01_2_button_remove_press.png
new file mode 100755 (executable)
index 0000000..b39e22e
Binary files /dev/null and b/vp-main/res/edje/images/bookmark/T01_2_button_remove_press.png differ
diff --git a/vp-main/res/edje/images/bookmark/T01_2_icon_bookmark_add.png b/vp-main/res/edje/images/bookmark/T01_2_icon_bookmark_add.png
new file mode 100755 (executable)
index 0000000..4102187
Binary files /dev/null and b/vp-main/res/edje/images/bookmark/T01_2_icon_bookmark_add.png differ
diff --git a/vp-main/res/edje/images/bookmark/T01_2_icon_bookmark_add_press.png b/vp-main/res/edje/images/bookmark/T01_2_icon_bookmark_add_press.png
new file mode 100755 (executable)
index 0000000..42c0938
Binary files /dev/null and b/vp-main/res/edje/images/bookmark/T01_2_icon_bookmark_add_press.png differ
diff --git a/vp-main/res/edje/images/brightness/quick_icon_brightness_00.png b/vp-main/res/edje/images/brightness/quick_icon_brightness_00.png
new file mode 100755 (executable)
index 0000000..ef550f0
Binary files /dev/null and b/vp-main/res/edje/images/brightness/quick_icon_brightness_00.png differ
diff --git a/vp-main/res/edje/images/brightness/quick_icon_brightness_01.png b/vp-main/res/edje/images/brightness/quick_icon_brightness_01.png
new file mode 100755 (executable)
index 0000000..d6c4b37
Binary files /dev/null and b/vp-main/res/edje/images/brightness/quick_icon_brightness_01.png differ
diff --git a/vp-main/res/edje/images/brightness/quick_icon_brightness_02.png b/vp-main/res/edje/images/brightness/quick_icon_brightness_02.png
new file mode 100755 (executable)
index 0000000..5c4a0b5
Binary files /dev/null and b/vp-main/res/edje/images/brightness/quick_icon_brightness_02.png differ
diff --git a/vp-main/res/edje/images/brightness/quick_icon_brightness_03.png b/vp-main/res/edje/images/brightness/quick_icon_brightness_03.png
new file mode 100755 (executable)
index 0000000..7b7f7b8
Binary files /dev/null and b/vp-main/res/edje/images/brightness/quick_icon_brightness_03.png differ
diff --git a/vp-main/res/edje/images/brightness/quick_icon_brightness_04.png b/vp-main/res/edje/images/brightness/quick_icon_brightness_04.png
new file mode 100755 (executable)
index 0000000..36da3d8
Binary files /dev/null and b/vp-main/res/edje/images/brightness/quick_icon_brightness_04.png differ
diff --git a/vp-main/res/edje/images/brightness/quick_icon_brightness_05.png b/vp-main/res/edje/images/brightness/quick_icon_brightness_05.png
new file mode 100755 (executable)
index 0000000..a4c17bf
Binary files /dev/null and b/vp-main/res/edje/images/brightness/quick_icon_brightness_05.png differ
diff --git a/vp-main/res/edje/images/brightness/quick_icon_brightness_06.png b/vp-main/res/edje/images/brightness/quick_icon_brightness_06.png
new file mode 100755 (executable)
index 0000000..8435df0
Binary files /dev/null and b/vp-main/res/edje/images/brightness/quick_icon_brightness_06.png differ
diff --git a/vp-main/res/edje/images/brightness/quick_icon_brightness_07.png b/vp-main/res/edje/images/brightness/quick_icon_brightness_07.png
new file mode 100755 (executable)
index 0000000..74cb9bd
Binary files /dev/null and b/vp-main/res/edje/images/brightness/quick_icon_brightness_07.png differ
diff --git a/vp-main/res/edje/images/brightness/quick_icon_brightness_08.png b/vp-main/res/edje/images/brightness/quick_icon_brightness_08.png
new file mode 100755 (executable)
index 0000000..7b2e428
Binary files /dev/null and b/vp-main/res/edje/images/brightness/quick_icon_brightness_08.png differ
diff --git a/vp-main/res/edje/images/brightness/quick_icon_brightness_09.png b/vp-main/res/edje/images/brightness/quick_icon_brightness_09.png
new file mode 100755 (executable)
index 0000000..922a35b
Binary files /dev/null and b/vp-main/res/edje/images/brightness/quick_icon_brightness_09.png differ
diff --git a/vp-main/res/edje/images/brightness/quick_icon_brightness_10.png b/vp-main/res/edje/images/brightness/quick_icon_brightness_10.png
new file mode 100755 (executable)
index 0000000..2548db7
Binary files /dev/null and b/vp-main/res/edje/images/brightness/quick_icon_brightness_10.png differ
diff --git a/vp-main/res/edje/images/brightness/quick_icon_brightness_11.png b/vp-main/res/edje/images/brightness/quick_icon_brightness_11.png
new file mode 100755 (executable)
index 0000000..d8eae46
Binary files /dev/null and b/vp-main/res/edje/images/brightness/quick_icon_brightness_11.png differ
diff --git a/vp-main/res/edje/images/button/T01-2_control_circle_button_01.png b/vp-main/res/edje/images/button/T01-2_control_circle_button_01.png
new file mode 100755 (executable)
index 0000000..6db9120
Binary files /dev/null and b/vp-main/res/edje/images/button/T01-2_control_circle_button_01.png differ
diff --git a/vp-main/res/edje/images/button/T01-2_control_circle_button_01_focus.png b/vp-main/res/edje/images/button/T01-2_control_circle_button_01_focus.png
new file mode 100755 (executable)
index 0000000..6ef09c6
Binary files /dev/null and b/vp-main/res/edje/images/button/T01-2_control_circle_button_01_focus.png differ
diff --git a/vp-main/res/edje/images/button/T01-2_control_circle_button_01_press.png b/vp-main/res/edje/images/button/T01-2_control_circle_button_01_press.png
new file mode 100755 (executable)
index 0000000..91666cb
Binary files /dev/null and b/vp-main/res/edje/images/button/T01-2_control_circle_button_01_press.png differ
diff --git a/vp-main/res/edje/images/button/T01-2_control_circle_button_02.png b/vp-main/res/edje/images/button/T01-2_control_circle_button_02.png
new file mode 100755 (executable)
index 0000000..52c1349
Binary files /dev/null and b/vp-main/res/edje/images/button/T01-2_control_circle_button_02.png differ
diff --git a/vp-main/res/edje/images/button/T01-2_control_circle_button_02_focus.png b/vp-main/res/edje/images/button/T01-2_control_circle_button_02_focus.png
new file mode 100755 (executable)
index 0000000..89c4db3
Binary files /dev/null and b/vp-main/res/edje/images/button/T01-2_control_circle_button_02_focus.png differ
diff --git a/vp-main/res/edje/images/button/T01-2_control_circle_button_02_press.png b/vp-main/res/edje/images/button/T01-2_control_circle_button_02_press.png
new file mode 100755 (executable)
index 0000000..098299d
Binary files /dev/null and b/vp-main/res/edje/images/button/T01-2_control_circle_button_02_press.png differ
diff --git a/vp-main/res/edje/images/button/T01-2_control_circle_button_03.png b/vp-main/res/edje/images/button/T01-2_control_circle_button_03.png
new file mode 100755 (executable)
index 0000000..a0c4105
Binary files /dev/null and b/vp-main/res/edje/images/button/T01-2_control_circle_button_03.png differ
diff --git a/vp-main/res/edje/images/button/T01-2_control_circle_button_03_focus.png b/vp-main/res/edje/images/button/T01-2_control_circle_button_03_focus.png
new file mode 100755 (executable)
index 0000000..e131fce
Binary files /dev/null and b/vp-main/res/edje/images/button/T01-2_control_circle_button_03_focus.png differ
diff --git a/vp-main/res/edje/images/button/T01-2_control_circle_button_03_press.png b/vp-main/res/edje/images/button/T01-2_control_circle_button_03_press.png
new file mode 100755 (executable)
index 0000000..5ad0e86
Binary files /dev/null and b/vp-main/res/edje/images/button/T01-2_control_circle_button_03_press.png differ
diff --git a/vp-main/res/edje/images/button/T01-2_play_popup_icon_minus.png b/vp-main/res/edje/images/button/T01-2_play_popup_icon_minus.png
new file mode 100755 (executable)
index 0000000..eb7f6c2
Binary files /dev/null and b/vp-main/res/edje/images/button/T01-2_play_popup_icon_minus.png differ
diff --git a/vp-main/res/edje/images/button/T01-2_play_popup_icon_minus_press.png b/vp-main/res/edje/images/button/T01-2_play_popup_icon_minus_press.png
new file mode 100755 (executable)
index 0000000..099735a
Binary files /dev/null and b/vp-main/res/edje/images/button/T01-2_play_popup_icon_minus_press.png differ
diff --git a/vp-main/res/edje/images/button/T01-2_play_popup_icon_plus.png b/vp-main/res/edje/images/button/T01-2_play_popup_icon_plus.png
new file mode 100755 (executable)
index 0000000..342d9eb
Binary files /dev/null and b/vp-main/res/edje/images/button/T01-2_play_popup_icon_plus.png differ
diff --git a/vp-main/res/edje/images/button/T01-2_play_popup_icon_plus_press.png b/vp-main/res/edje/images/button/T01-2_play_popup_icon_plus_press.png
new file mode 100755 (executable)
index 0000000..db4ca27
Binary files /dev/null and b/vp-main/res/edje/images/button/T01-2_play_popup_icon_plus_press.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_Near_by_device.png b/vp-main/res/edje/images/button/T01_2_icon_Near_by_device.png
new file mode 100755 (executable)
index 0000000..6610276
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_Near_by_device.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_Near_by_device_dim.png b/vp-main/res/edje/images/button/T01_2_icon_Near_by_device_dim.png
new file mode 100755 (executable)
index 0000000..88f7ba4
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_Near_by_device_dim.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_Near_by_device_press.png b/vp-main/res/edje/images/button/T01_2_icon_Near_by_device_press.png
new file mode 100755 (executable)
index 0000000..12e1ede
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_Near_by_device_press.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_back.png b/vp-main/res/edje/images/button/T01_2_icon_back.png
new file mode 100755 (executable)
index 0000000..ba8ad4d
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_back.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_bluetooth_headset.png b/vp-main/res/edje/images/button/T01_2_icon_bluetooth_headset.png
new file mode 100755 (executable)
index 0000000..df28789
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_bluetooth_headset.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_bluetooth_headset_press.png b/vp-main/res/edje/images/button/T01_2_icon_bluetooth_headset_press.png
new file mode 100755 (executable)
index 0000000..fb92314
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_bluetooth_headset_press.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_check.png b/vp-main/res/edje/images/button/T01_2_icon_check.png
new file mode 100755 (executable)
index 0000000..7fde44c
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_check.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_check_dim.png b/vp-main/res/edje/images/button/T01_2_icon_check_dim.png
new file mode 100755 (executable)
index 0000000..56cd9d1
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_check_dim.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_check_press.png b/vp-main/res/edje/images/button/T01_2_icon_check_press.png
new file mode 100755 (executable)
index 0000000..9125e88
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_check_press.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_close.png b/vp-main/res/edje/images/button/T01_2_icon_close.png
new file mode 100755 (executable)
index 0000000..6309ae0
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_close.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_close_dim.png b/vp-main/res/edje/images/button/T01_2_icon_close_dim.png
new file mode 100755 (executable)
index 0000000..c78ced9
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_close_dim.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_close_press.png b/vp-main/res/edje/images/button/T01_2_icon_close_press.png
new file mode 100755 (executable)
index 0000000..5408b0c
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_close_press.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_lock.png b/vp-main/res/edje/images/button/T01_2_icon_lock.png
new file mode 100755 (executable)
index 0000000..ca2ae28
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_lock.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_lock_dim.png b/vp-main/res/edje/images/button/T01_2_icon_lock_dim.png
new file mode 100755 (executable)
index 0000000..0eb519f
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_lock_dim.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_lock_press.png b/vp-main/res/edje/images/button/T01_2_icon_lock_press.png
new file mode 100755 (executable)
index 0000000..ca2ae28
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_lock_press.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_more.png b/vp-main/res/edje/images/button/T01_2_icon_more.png
new file mode 100755 (executable)
index 0000000..1f58790
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_more.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_more_dim_web.png b/vp-main/res/edje/images/button/T01_2_icon_more_dim_web.png
new file mode 100755 (executable)
index 0000000..8aa7a9d
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_more_dim_web.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_more_press_web.png b/vp-main/res/edje/images/button/T01_2_icon_more_press_web.png
new file mode 100755 (executable)
index 0000000..275ec6e
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_more_press_web.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_more_web.png b/vp-main/res/edje/images/button/T01_2_icon_more_web.png
new file mode 100755 (executable)
index 0000000..ebff3db
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_more_web.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_rotate.png b/vp-main/res/edje/images/button/T01_2_icon_rotate.png
new file mode 100755 (executable)
index 0000000..a9e0cdb
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_rotate.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_rotate_dim.png b/vp-main/res/edje/images/button/T01_2_icon_rotate_dim.png
new file mode 100755 (executable)
index 0000000..c676948
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_rotate_dim.png differ
diff --git a/vp-main/res/edje/images/button/T01_2_icon_rotate_press.png b/vp-main/res/edje/images/button/T01_2_icon_rotate_press.png
new file mode 100755 (executable)
index 0000000..bd613a7
Binary files /dev/null and b/vp-main/res/edje/images/button/T01_2_icon_rotate_press.png differ
diff --git a/vp-main/res/edje/images/button/T02_icon_soundPath.png b/vp-main/res/edje/images/button/T02_icon_soundPath.png
new file mode 100755 (executable)
index 0000000..a9b7d26
Binary files /dev/null and b/vp-main/res/edje/images/button/T02_icon_soundPath.png differ
diff --git a/vp-main/res/edje/images/button/T02_icon_speaker.png b/vp-main/res/edje/images/button/T02_icon_speaker.png
new file mode 100755 (executable)
index 0000000..f56f688
Binary files /dev/null and b/vp-main/res/edje/images/button/T02_icon_speaker.png differ
diff --git a/vp-main/res/edje/images/button/T02_icon_speaker_dim.png b/vp-main/res/edje/images/button/T02_icon_speaker_dim.png
new file mode 100755 (executable)
index 0000000..39990bd
Binary files /dev/null and b/vp-main/res/edje/images/button/T02_icon_speaker_dim.png differ
diff --git a/vp-main/res/edje/images/button/T02_icon_speaker_press.png b/vp-main/res/edje/images/button/T02_icon_speaker_press.png
new file mode 100755 (executable)
index 0000000..5d391af
Binary files /dev/null and b/vp-main/res/edje/images/button/T02_icon_speaker_press.png differ
diff --git a/vp-main/res/edje/images/button/core_icon_back.png b/vp-main/res/edje/images/button/core_icon_back.png
new file mode 100755 (executable)
index 0000000..baf1df0
Binary files /dev/null and b/vp-main/res/edje/images/button/core_icon_back.png differ
diff --git a/vp-main/res/edje/images/capture/T01-2_icon_left.png b/vp-main/res/edje/images/capture/T01-2_icon_left.png
new file mode 100755 (executable)
index 0000000..6b3138f
Binary files /dev/null and b/vp-main/res/edje/images/capture/T01-2_icon_left.png differ
diff --git a/vp-main/res/edje/images/capture/T01-2_icon_left_dim.png b/vp-main/res/edje/images/capture/T01-2_icon_left_dim.png
new file mode 100755 (executable)
index 0000000..8cce261
Binary files /dev/null and b/vp-main/res/edje/images/capture/T01-2_icon_left_dim.png differ
diff --git a/vp-main/res/edje/images/capture/T01-2_icon_left_press.png b/vp-main/res/edje/images/capture/T01-2_icon_left_press.png
new file mode 100755 (executable)
index 0000000..2715a3d
Binary files /dev/null and b/vp-main/res/edje/images/capture/T01-2_icon_left_press.png differ
diff --git a/vp-main/res/edje/images/capture/T01-2_icon_right.png b/vp-main/res/edje/images/capture/T01-2_icon_right.png
new file mode 100755 (executable)
index 0000000..d0af401
Binary files /dev/null and b/vp-main/res/edje/images/capture/T01-2_icon_right.png differ
diff --git a/vp-main/res/edje/images/capture/T01-2_icon_right_dim.png b/vp-main/res/edje/images/capture/T01-2_icon_right_dim.png
new file mode 100755 (executable)
index 0000000..43acd99
Binary files /dev/null and b/vp-main/res/edje/images/capture/T01-2_icon_right_dim.png differ
diff --git a/vp-main/res/edje/images/capture/T01-2_icon_right_press.png b/vp-main/res/edje/images/capture/T01-2_icon_right_press.png
new file mode 100755 (executable)
index 0000000..b5c566f
Binary files /dev/null and b/vp-main/res/edje/images/capture/T01-2_icon_right_press.png differ
diff --git a/vp-main/res/edje/images/capture/T01_2_icon_capture.png b/vp-main/res/edje/images/capture/T01_2_icon_capture.png
new file mode 100755 (executable)
index 0000000..f54451f
Binary files /dev/null and b/vp-main/res/edje/images/capture/T01_2_icon_capture.png differ
diff --git a/vp-main/res/edje/images/capture/T01_2_icon_capture_dim.png b/vp-main/res/edje/images/capture/T01_2_icon_capture_dim.png
new file mode 100755 (executable)
index 0000000..c8d2b4f
Binary files /dev/null and b/vp-main/res/edje/images/capture/T01_2_icon_capture_dim.png differ
diff --git a/vp-main/res/edje/images/capture/T01_2_icon_capture_press.png b/vp-main/res/edje/images/capture/T01_2_icon_capture_press.png
new file mode 100755 (executable)
index 0000000..b162bd6
Binary files /dev/null and b/vp-main/res/edje/images/capture/T01_2_icon_capture_press.png differ
diff --git a/vp-main/res/edje/images/chapter/T01_2_thumbnail_shadow.png b/vp-main/res/edje/images/chapter/T01_2_thumbnail_shadow.png
new file mode 100755 (executable)
index 0000000..90d5ede
Binary files /dev/null and b/vp-main/res/edje/images/chapter/T01_2_thumbnail_shadow.png differ
diff --git a/vp-main/res/edje/images/chapter/T01_2_thumbnail_shadow_h.png b/vp-main/res/edje/images/chapter/T01_2_thumbnail_shadow_h.png
new file mode 100755 (executable)
index 0000000..5cbcd11
Binary files /dev/null and b/vp-main/res/edje/images/chapter/T01_2_thumbnail_shadow_h.png differ
diff --git a/vp-main/res/edje/images/control/T01-2_control_bg.png b/vp-main/res/edje/images/control/T01-2_control_bg.png
new file mode 100755 (executable)
index 0000000..4c7a0cf
Binary files /dev/null and b/vp-main/res/edje/images/control/T01-2_control_bg.png differ
diff --git a/vp-main/res/edje/images/control/T01-2_control_bg_h.png b/vp-main/res/edje/images/control/T01-2_control_bg_h.png
new file mode 100755 (executable)
index 0000000..6042922
Binary files /dev/null and b/vp-main/res/edje/images/control/T01-2_control_bg_h.png differ
diff --git a/vp-main/res/edje/images/control/T01-2_control_circle_icon_next.png b/vp-main/res/edje/images/control/T01-2_control_circle_icon_next.png
new file mode 100755 (executable)
index 0000000..a113871
Binary files /dev/null and b/vp-main/res/edje/images/control/T01-2_control_circle_icon_next.png differ
diff --git a/vp-main/res/edje/images/control/T01-2_control_circle_icon_pause.png b/vp-main/res/edje/images/control/T01-2_control_circle_icon_pause.png
new file mode 100755 (executable)
index 0000000..6806d10
Binary files /dev/null and b/vp-main/res/edje/images/control/T01-2_control_circle_icon_pause.png differ
diff --git a/vp-main/res/edje/images/control/T01-2_control_circle_icon_play.png b/vp-main/res/edje/images/control/T01-2_control_circle_icon_play.png
new file mode 100755 (executable)
index 0000000..68570ac
Binary files /dev/null and b/vp-main/res/edje/images/control/T01-2_control_circle_icon_play.png differ
diff --git a/vp-main/res/edje/images/control/T01-2_control_circle_icon_reverse.png b/vp-main/res/edje/images/control/T01-2_control_circle_icon_reverse.png
new file mode 100755 (executable)
index 0000000..97681f1
Binary files /dev/null and b/vp-main/res/edje/images/control/T01-2_control_circle_icon_reverse.png differ
diff --git a/vp-main/res/edje/images/control/T01-2_control_circle_icon_rewind.png b/vp-main/res/edje/images/control/T01-2_control_circle_icon_rewind.png
new file mode 100755 (executable)
index 0000000..155955e
Binary files /dev/null and b/vp-main/res/edje/images/control/T01-2_control_circle_icon_rewind.png differ
diff --git a/vp-main/res/edje/images/control/T01_2_control_circle_icon_forward.png b/vp-main/res/edje/images/control/T01_2_control_circle_icon_forward.png
new file mode 100755 (executable)
index 0000000..55de668
Binary files /dev/null and b/vp-main/res/edje/images/control/T01_2_control_circle_icon_forward.png differ
diff --git a/vp-main/res/edje/images/control/T01_2_control_circle_icon_reverse.png b/vp-main/res/edje/images/control/T01_2_control_circle_icon_reverse.png
new file mode 100755 (executable)
index 0000000..e01e0a9
Binary files /dev/null and b/vp-main/res/edje/images/control/T01_2_control_circle_icon_reverse.png differ
diff --git a/vp-main/res/edje/images/dmc/T01_2_device_connect_arrow_01.png b/vp-main/res/edje/images/dmc/T01_2_device_connect_arrow_01.png
new file mode 100755 (executable)
index 0000000..7441c0a
Binary files /dev/null and b/vp-main/res/edje/images/dmc/T01_2_device_connect_arrow_01.png differ
diff --git a/vp-main/res/edje/images/dmc/T01_2_device_connect_arrow_02.png b/vp-main/res/edje/images/dmc/T01_2_device_connect_arrow_02.png
new file mode 100755 (executable)
index 0000000..c211a0c
Binary files /dev/null and b/vp-main/res/edje/images/dmc/T01_2_device_connect_arrow_02.png differ
diff --git a/vp-main/res/edje/images/dmc/T01_2_device_connect_arrow_03.png b/vp-main/res/edje/images/dmc/T01_2_device_connect_arrow_03.png
new file mode 100755 (executable)
index 0000000..70c8356
Binary files /dev/null and b/vp-main/res/edje/images/dmc/T01_2_device_connect_arrow_03.png differ
diff --git a/vp-main/res/edje/images/dmc/T01_2_device_connect_arrow_04.png b/vp-main/res/edje/images/dmc/T01_2_device_connect_arrow_04.png
new file mode 100755 (executable)
index 0000000..da069dc
Binary files /dev/null and b/vp-main/res/edje/images/dmc/T01_2_device_connect_arrow_04.png differ
diff --git a/vp-main/res/edje/images/dmc/T01_2_image_mydevice.png b/vp-main/res/edje/images/dmc/T01_2_image_mydevice.png
new file mode 100755 (executable)
index 0000000..56c90fc
Binary files /dev/null and b/vp-main/res/edje/images/dmc/T01_2_image_mydevice.png differ
diff --git a/vp-main/res/edje/images/dmc/T01_2_image_tv.png b/vp-main/res/edje/images/dmc/T01_2_image_tv.png
new file mode 100755 (executable)
index 0000000..e0fbe2b
Binary files /dev/null and b/vp-main/res/edje/images/dmc/T01_2_image_tv.png differ
diff --git a/vp-main/res/edje/images/dmc/T02_player_all_share.png b/vp-main/res/edje/images/dmc/T02_player_all_share.png
new file mode 100755 (executable)
index 0000000..71c89c2
Binary files /dev/null and b/vp-main/res/edje/images/dmc/T02_player_all_share.png differ
diff --git a/vp-main/res/edje/images/function/T01-2_control_icon_mute.png b/vp-main/res/edje/images/function/T01-2_control_icon_mute.png
new file mode 100755 (executable)
index 0000000..63533f4
Binary files /dev/null and b/vp-main/res/edje/images/function/T01-2_control_icon_mute.png differ
diff --git a/vp-main/res/edje/images/function/T01-2_control_icon_mute_dim.png b/vp-main/res/edje/images/function/T01-2_control_icon_mute_dim.png
new file mode 100755 (executable)
index 0000000..da5474c
Binary files /dev/null and b/vp-main/res/edje/images/function/T01-2_control_icon_mute_dim.png differ
diff --git a/vp-main/res/edje/images/function/T01-2_control_icon_mute_press.png b/vp-main/res/edje/images/function/T01-2_control_icon_mute_press.png
new file mode 100755 (executable)
index 0000000..95e82ee
Binary files /dev/null and b/vp-main/res/edje/images/function/T01-2_control_icon_mute_press.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_bookmark.png b/vp-main/res/edje/images/function/T01_2_control_icon_bookmark.png
new file mode 100755 (executable)
index 0000000..c1a65f9
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_bookmark.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_bookmark_dim.png b/vp-main/res/edje/images/function/T01_2_control_icon_bookmark_dim.png
new file mode 100755 (executable)
index 0000000..98167f9
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_bookmark_dim.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_bookmark_press.png b/vp-main/res/edje/images/function/T01_2_control_icon_bookmark_press.png
new file mode 100755 (executable)
index 0000000..7a99b31
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_bookmark_press.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_detail.png b/vp-main/res/edje/images/function/T01_2_control_icon_detail.png
new file mode 100755 (executable)
index 0000000..5122ecf
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_detail.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_detail_dim.png b/vp-main/res/edje/images/function/T01_2_control_icon_detail_dim.png
new file mode 100755 (executable)
index 0000000..8a61671
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_detail_dim.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_detail_press.png b/vp-main/res/edje/images/function/T01_2_control_icon_detail_press.png
new file mode 100755 (executable)
index 0000000..095439a
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_detail_press.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_multi_window.png b/vp-main/res/edje/images/function/T01_2_control_icon_multi_window.png
new file mode 100755 (executable)
index 0000000..df95e5b
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_multi_window.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_multi_window_dim.png b/vp-main/res/edje/images/function/T01_2_control_icon_multi_window_dim.png
new file mode 100755 (executable)
index 0000000..488d04d
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_multi_window_dim.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_multi_window_press.png b/vp-main/res/edje/images/function/T01_2_control_icon_multi_window_press.png
new file mode 100755 (executable)
index 0000000..69d520e
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_multi_window_press.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_repeat_all.png b/vp-main/res/edje/images/function/T01_2_control_icon_repeat_all.png
new file mode 100755 (executable)
index 0000000..8c99880
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_repeat_all.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_repeat_all_dim.png b/vp-main/res/edje/images/function/T01_2_control_icon_repeat_all_dim.png
new file mode 100755 (executable)
index 0000000..5ba6557
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_repeat_all_dim.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_repeat_all_press.png b/vp-main/res/edje/images/function/T01_2_control_icon_repeat_all_press.png
new file mode 100755 (executable)
index 0000000..0545637
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_repeat_all_press.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_repeat_mode.png b/vp-main/res/edje/images/function/T01_2_control_icon_repeat_mode.png
new file mode 100755 (executable)
index 0000000..05b608a
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_repeat_mode.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_repeat_mode_dim.png b/vp-main/res/edje/images/function/T01_2_control_icon_repeat_mode_dim.png
new file mode 100755 (executable)
index 0000000..6bfe188
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_repeat_mode_dim.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_repeat_mode_press.png b/vp-main/res/edje/images/function/T01_2_control_icon_repeat_mode_press.png
new file mode 100755 (executable)
index 0000000..a4057f2
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_repeat_mode_press.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_repeat_once.png b/vp-main/res/edje/images/function/T01_2_control_icon_repeat_once.png
new file mode 100755 (executable)
index 0000000..1fe6626
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_repeat_once.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_repeat_once_dim.png b/vp-main/res/edje/images/function/T01_2_control_icon_repeat_once_dim.png
new file mode 100755 (executable)
index 0000000..d77a34c
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_repeat_once_dim.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_repeat_once_press.png b/vp-main/res/edje/images/function/T01_2_control_icon_repeat_once_press.png
new file mode 100755 (executable)
index 0000000..e199523
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_repeat_once_press.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_screenmode.png b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode.png
new file mode 100755 (executable)
index 0000000..5f0d011
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_screenmode02.png b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode02.png
new file mode 100755 (executable)
index 0000000..d56760c
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode02.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_screenmode02_dim.png b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode02_dim.png
new file mode 100755 (executable)
index 0000000..d98a961
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode02_dim.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_screenmode02_press.png b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode02_press.png
new file mode 100755 (executable)
index 0000000..fee5177
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode02_press.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_screenmode03.png b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode03.png
new file mode 100755 (executable)
index 0000000..fc8aade
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode03.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_screenmode03_dim.png b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode03_dim.png
new file mode 100755 (executable)
index 0000000..f4e213d
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode03_dim.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_screenmode03_press.png b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode03_press.png
new file mode 100755 (executable)
index 0000000..38a9e0d
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode03_press.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_screenmode04.png b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode04.png
new file mode 100755 (executable)
index 0000000..a2e5c80
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode04.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_screenmode04_dim.png b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode04_dim.png
new file mode 100755 (executable)
index 0000000..7915c17
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode04_dim.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_screenmode04_press.png b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode04_press.png
new file mode 100755 (executable)
index 0000000..e953141
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode04_press.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_screenmode_dim.png b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode_dim.png
new file mode 100755 (executable)
index 0000000..0e5f397
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode_dim.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_screenmode_press.png b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode_press.png
new file mode 100755 (executable)
index 0000000..b870966
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_screenmode_press.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_share.png b/vp-main/res/edje/images/function/T01_2_control_icon_share.png
new file mode 100755 (executable)
index 0000000..4fa103b
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_share.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_share_dim.png b/vp-main/res/edje/images/function/T01_2_control_icon_share_dim.png
new file mode 100755 (executable)
index 0000000..dca23cc
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_share_dim.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_share_press.png b/vp-main/res/edje/images/function/T01_2_control_icon_share_press.png
new file mode 100755 (executable)
index 0000000..32697eb
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_share_press.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_soundalive.png b/vp-main/res/edje/images/function/T01_2_control_icon_soundalive.png
new file mode 100755 (executable)
index 0000000..25f976e
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_soundalive.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_soundalive_dim.png b/vp-main/res/edje/images/function/T01_2_control_icon_soundalive_dim.png
new file mode 100755 (executable)
index 0000000..bfda60f
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_soundalive_dim.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_soundalive_press.png b/vp-main/res/edje/images/function/T01_2_control_icon_soundalive_press.png
new file mode 100755 (executable)
index 0000000..59a27ee
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_soundalive_press.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_trim.png b/vp-main/res/edje/images/function/T01_2_control_icon_trim.png
new file mode 100755 (executable)
index 0000000..98cf3e8
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_trim.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_trim_dim.png b/vp-main/res/edje/images/function/T01_2_control_icon_trim_dim.png
new file mode 100755 (executable)
index 0000000..1ddf444
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_trim_dim.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_trim_press.png b/vp-main/res/edje/images/function/T01_2_control_icon_trim_press.png
new file mode 100755 (executable)
index 0000000..7fd0240
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_trim_press.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_volume.png b/vp-main/res/edje/images/function/T01_2_control_icon_volume.png
new file mode 100755 (executable)
index 0000000..e4424a2
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_volume.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_volume_dim.png b/vp-main/res/edje/images/function/T01_2_control_icon_volume_dim.png
new file mode 100755 (executable)
index 0000000..8d525b8
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_volume_dim.png differ
diff --git a/vp-main/res/edje/images/function/T01_2_control_icon_volume_press.png b/vp-main/res/edje/images/function/T01_2_control_icon_volume_press.png
new file mode 100755 (executable)
index 0000000..26ffc61
Binary files /dev/null and b/vp-main/res/edje/images/function/T01_2_control_icon_volume_press.png differ
diff --git a/vp-main/res/edje/images/function/player_popup_view_icon_nomal.png b/vp-main/res/edje/images/function/player_popup_view_icon_nomal.png
new file mode 100755 (executable)
index 0000000..8258ad3
Binary files /dev/null and b/vp-main/res/edje/images/function/player_popup_view_icon_nomal.png differ
diff --git a/vp-main/res/edje/images/genlist/00_focus.png b/vp-main/res/edje/images/genlist/00_focus.png
new file mode 100755 (executable)
index 0000000..4f46811
Binary files /dev/null and b/vp-main/res/edje/images/genlist/00_focus.png differ
diff --git a/vp-main/res/edje/images/genlist/00_focus_dark.png b/vp-main/res/edje/images/genlist/00_focus_dark.png
new file mode 100755 (executable)
index 0000000..fed29db
Binary files /dev/null and b/vp-main/res/edje/images/genlist/00_focus_dark.png differ
diff --git a/vp-main/res/edje/images/genlist/00_list_group_bg.png b/vp-main/res/edje/images/genlist/00_list_group_bg.png
new file mode 100755 (executable)
index 0000000..612fbc5
Binary files /dev/null and b/vp-main/res/edje/images/genlist/00_list_group_bg.png differ
diff --git a/vp-main/res/edje/images/genlist/00_list_group_bg_dark.png b/vp-main/res/edje/images/genlist/00_list_group_bg_dark.png
new file mode 100755 (executable)
index 0000000..31f109b
Binary files /dev/null and b/vp-main/res/edje/images/genlist/00_list_group_bg_dark.png differ
diff --git a/vp-main/res/edje/images/genlist/00_list_group_bg_press.png b/vp-main/res/edje/images/genlist/00_list_group_bg_press.png
new file mode 100755 (executable)
index 0000000..01edbc1
Binary files /dev/null and b/vp-main/res/edje/images/genlist/00_list_group_bg_press.png differ
diff --git a/vp-main/res/edje/images/genlist/00_list_group_bg_press_dark.png b/vp-main/res/edje/images/genlist/00_list_group_bg_press_dark.png
new file mode 100755 (executable)
index 0000000..e0c84fa
Binary files /dev/null and b/vp-main/res/edje/images/genlist/00_list_group_bg_press_dark.png differ
diff --git a/vp-main/res/edje/images/genlist/00_popup_list_press.png b/vp-main/res/edje/images/genlist/00_popup_list_press.png
new file mode 100755 (executable)
index 0000000..a19964e
Binary files /dev/null and b/vp-main/res/edje/images/genlist/00_popup_list_press.png differ
diff --git a/vp-main/res/edje/images/genlist/00_popup_list_press_dark.png b/vp-main/res/edje/images/genlist/00_popup_list_press_dark.png
new file mode 100755 (executable)
index 0000000..a1ce14f
Binary files /dev/null and b/vp-main/res/edje/images/genlist/00_popup_list_press_dark.png differ
diff --git a/vp-main/res/edje/images/genlist/preview_settings_bg.png b/vp-main/res/edje/images/genlist/preview_settings_bg.png
new file mode 100755 (executable)
index 0000000..45ab09c
Binary files /dev/null and b/vp-main/res/edje/images/genlist/preview_settings_bg.png differ
diff --git a/vp-main/res/edje/images/jump/T01_2_jump_L_01.png b/vp-main/res/edje/images/jump/T01_2_jump_L_01.png
new file mode 100755 (executable)
index 0000000..d41b576
Binary files /dev/null and b/vp-main/res/edje/images/jump/T01_2_jump_L_01.png differ
diff --git a/vp-main/res/edje/images/jump/T01_2_jump_L_02.png b/vp-main/res/edje/images/jump/T01_2_jump_L_02.png
new file mode 100755 (executable)
index 0000000..52440f2
Binary files /dev/null and b/vp-main/res/edje/images/jump/T01_2_jump_L_02.png differ
diff --git a/vp-main/res/edje/images/jump/T01_2_jump_L_03.png b/vp-main/res/edje/images/jump/T01_2_jump_L_03.png
new file mode 100755 (executable)
index 0000000..16714b1
Binary files /dev/null and b/vp-main/res/edje/images/jump/T01_2_jump_L_03.png differ
diff --git a/vp-main/res/edje/images/jump/T01_2_jump_R_01.png b/vp-main/res/edje/images/jump/T01_2_jump_R_01.png
new file mode 100755 (executable)
index 0000000..ed79a92
Binary files /dev/null and b/vp-main/res/edje/images/jump/T01_2_jump_R_01.png differ
diff --git a/vp-main/res/edje/images/jump/T01_2_jump_R_02.png b/vp-main/res/edje/images/jump/T01_2_jump_R_02.png
new file mode 100755 (executable)
index 0000000..1cd5468
Binary files /dev/null and b/vp-main/res/edje/images/jump/T01_2_jump_R_02.png differ
diff --git a/vp-main/res/edje/images/jump/T01_2_jump_R_03.png b/vp-main/res/edje/images/jump/T01_2_jump_R_03.png
new file mode 100755 (executable)
index 0000000..5006e98
Binary files /dev/null and b/vp-main/res/edje/images/jump/T01_2_jump_R_03.png differ
diff --git a/vp-main/res/edje/images/lock_screen/album_frame.png b/vp-main/res/edje/images/lock_screen/album_frame.png
new file mode 100755 (executable)
index 0000000..b70b588
Binary files /dev/null and b/vp-main/res/edje/images/lock_screen/album_frame.png differ
diff --git a/vp-main/res/edje/images/lock_screen/control_circle_button_66.png b/vp-main/res/edje/images/lock_screen/control_circle_button_66.png
new file mode 100755 (executable)
index 0000000..738f601
Binary files /dev/null and b/vp-main/res/edje/images/lock_screen/control_circle_button_66.png differ
diff --git a/vp-main/res/edje/images/lock_screen/control_circle_button_66_focus.png b/vp-main/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/vp-main/res/edje/images/lock_screen/control_circle_button_66_focus.png differ
diff --git a/vp-main/res/edje/images/lock_screen/control_circle_button_66_press.png b/vp-main/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/vp-main/res/edje/images/lock_screen/control_circle_button_66_press.png differ
diff --git a/vp-main/res/edje/images/lock_screen/control_circle_button_84.png b/vp-main/res/edje/images/lock_screen/control_circle_button_84.png
new file mode 100755 (executable)
index 0000000..5be57f7
Binary files /dev/null and b/vp-main/res/edje/images/lock_screen/control_circle_button_84.png differ
diff --git a/vp-main/res/edje/images/lock_screen/control_circle_button_84_focus.png b/vp-main/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/vp-main/res/edje/images/lock_screen/control_circle_button_84_focus.png differ
diff --git a/vp-main/res/edje/images/lock_screen/control_circle_button_84_press.png b/vp-main/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/vp-main/res/edje/images/lock_screen/control_circle_button_84_press.png differ
diff --git a/vp-main/res/edje/images/lock_screen/control_circle_icon_ff.png b/vp-main/res/edje/images/lock_screen/control_circle_icon_ff.png
new file mode 100755 (executable)
index 0000000..0948ca4
Binary files /dev/null and b/vp-main/res/edje/images/lock_screen/control_circle_icon_ff.png differ
diff --git a/vp-main/res/edje/images/lock_screen/control_circle_icon_ff_dim.png b/vp-main/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/vp-main/res/edje/images/lock_screen/control_circle_icon_ff_dim.png differ
diff --git a/vp-main/res/edje/images/lock_screen/control_circle_icon_ff_press.png b/vp-main/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/vp-main/res/edje/images/lock_screen/control_circle_icon_ff_press.png differ
diff --git a/vp-main/res/edje/images/lock_screen/control_circle_icon_pause.png b/vp-main/res/edje/images/lock_screen/control_circle_icon_pause.png
new file mode 100755 (executable)
index 0000000..5bd2bb3
Binary files /dev/null and b/vp-main/res/edje/images/lock_screen/control_circle_icon_pause.png differ
diff --git a/vp-main/res/edje/images/lock_screen/control_circle_icon_pause_dim.png b/vp-main/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/vp-main/res/edje/images/lock_screen/control_circle_icon_pause_dim.png differ
diff --git a/vp-main/res/edje/images/lock_screen/control_circle_icon_pause_press.png b/vp-main/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/vp-main/res/edje/images/lock_screen/control_circle_icon_pause_press.png differ
diff --git a/vp-main/res/edje/images/lock_screen/control_circle_icon_play.png b/vp-main/res/edje/images/lock_screen/control_circle_icon_play.png
new file mode 100755 (executable)
index 0000000..c80e1de
Binary files /dev/null and b/vp-main/res/edje/images/lock_screen/control_circle_icon_play.png differ
diff --git a/vp-main/res/edje/images/lock_screen/control_circle_icon_play_dim.png b/vp-main/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/vp-main/res/edje/images/lock_screen/control_circle_icon_play_dim.png differ
diff --git a/vp-main/res/edje/images/lock_screen/control_circle_icon_play_press.png b/vp-main/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/vp-main/res/edje/images/lock_screen/control_circle_icon_play_press.png differ
diff --git a/vp-main/res/edje/images/lock_screen/control_circle_icon_rewind.png b/vp-main/res/edje/images/lock_screen/control_circle_icon_rewind.png
new file mode 100755 (executable)
index 0000000..7fe74fd
Binary files /dev/null and b/vp-main/res/edje/images/lock_screen/control_circle_icon_rewind.png differ
diff --git a/vp-main/res/edje/images/lock_screen/control_circle_icon_rewind_dim.png b/vp-main/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/vp-main/res/edje/images/lock_screen/control_circle_icon_rewind_dim.png differ
diff --git a/vp-main/res/edje/images/lock_screen/control_circle_icon_rewind_press.png b/vp-main/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/vp-main/res/edje/images/lock_screen/control_circle_icon_rewind_press.png differ
diff --git a/vp-main/res/edje/images/lock_screen/control_circle_icon_stop.png b/vp-main/res/edje/images/lock_screen/control_circle_icon_stop.png
new file mode 100755 (executable)
index 0000000..5e71172
Binary files /dev/null and b/vp-main/res/edje/images/lock_screen/control_circle_icon_stop.png differ
diff --git a/vp-main/res/edje/images/lock_screen/control_circle_icon_stop_dim.png b/vp-main/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/vp-main/res/edje/images/lock_screen/control_circle_icon_stop_dim.png differ
diff --git a/vp-main/res/edje/images/lock_screen/control_circle_icon_stop_press.png b/vp-main/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/vp-main/res/edje/images/lock_screen/control_circle_icon_stop_press.png differ
diff --git a/vp-main/res/edje/images/micro_control/T01-2_Control_detail_text_bg.png b/vp-main/res/edje/images/micro_control/T01-2_Control_detail_text_bg.png
new file mode 100755 (executable)
index 0000000..b85e609
Binary files /dev/null and b/vp-main/res/edje/images/micro_control/T01-2_Control_detail_text_bg.png differ
diff --git a/vp-main/res/edje/images/micro_control/T01_2_micro_control_up_01.png b/vp-main/res/edje/images/micro_control/T01_2_micro_control_up_01.png
new file mode 100755 (executable)
index 0000000..66b6f5a
Binary files /dev/null and b/vp-main/res/edje/images/micro_control/T01_2_micro_control_up_01.png differ
diff --git a/vp-main/res/edje/images/micro_control/T01_2_micro_control_up_02.png b/vp-main/res/edje/images/micro_control/T01_2_micro_control_up_02.png
new file mode 100755 (executable)
index 0000000..5b81ce3
Binary files /dev/null and b/vp-main/res/edje/images/micro_control/T01_2_micro_control_up_02.png differ
diff --git a/vp-main/res/edje/images/micro_control/T01_2_micro_control_up_03.png b/vp-main/res/edje/images/micro_control/T01_2_micro_control_up_03.png
new file mode 100755 (executable)
index 0000000..c0faa11
Binary files /dev/null and b/vp-main/res/edje/images/micro_control/T01_2_micro_control_up_03.png differ
diff --git a/vp-main/res/edje/images/mini_controller/A01_15_popup_No_device.png b/vp-main/res/edje/images/mini_controller/A01_15_popup_No_device.png
new file mode 100755 (executable)
index 0000000..930d2a9
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/A01_15_popup_No_device.png differ
diff --git a/vp-main/res/edje/images/mini_controller/album_frame.png b/vp-main/res/edje/images/mini_controller/album_frame.png
new file mode 100755 (executable)
index 0000000..b70b588
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/album_frame.png differ
diff --git a/vp-main/res/edje/images/mini_controller/bg_btn_player_01.png b/vp-main/res/edje/images/mini_controller/bg_btn_player_01.png
new file mode 100755 (executable)
index 0000000..6ea99a0
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/bg_btn_player_01.png differ
diff --git a/vp-main/res/edje/images/mini_controller/bg_btn_player_01_ef.png b/vp-main/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/vp-main/res/edje/images/mini_controller/bg_btn_player_01_ef.png differ
diff --git a/vp-main/res/edje/images/mini_controller/bg_btn_player_02.png b/vp-main/res/edje/images/mini_controller/bg_btn_player_02.png
new file mode 100755 (executable)
index 0000000..dee1d36
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/bg_btn_player_02.png differ
diff --git a/vp-main/res/edje/images/mini_controller/bg_btn_player_02_ef.png b/vp-main/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/vp-main/res/edje/images/mini_controller/bg_btn_player_02_ef.png differ
diff --git a/vp-main/res/edje/images/mini_controller/btn_close_dim.png b/vp-main/res/edje/images/mini_controller/btn_close_dim.png
new file mode 100755 (executable)
index 0000000..9d815ce
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/btn_close_dim.png differ
diff --git a/vp-main/res/edje/images/mini_controller/btn_close_nor.png b/vp-main/res/edje/images/mini_controller/btn_close_nor.png
new file mode 100755 (executable)
index 0000000..afb665a
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/btn_close_nor.png differ
diff --git a/vp-main/res/edje/images/mini_controller/btn_close_press.png b/vp-main/res/edje/images/mini_controller/btn_close_press.png
new file mode 100755 (executable)
index 0000000..9282d96
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/btn_close_press.png differ
diff --git a/vp-main/res/edje/images/mini_controller/btn_controller_close.png b/vp-main/res/edje/images/mini_controller/btn_controller_close.png
new file mode 100755 (executable)
index 0000000..bae96ee
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/btn_controller_close.png differ
diff --git a/vp-main/res/edje/images/mini_controller/btn_video_close_nor.png b/vp-main/res/edje/images/mini_controller/btn_video_close_nor.png
new file mode 100755 (executable)
index 0000000..2cced24
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/btn_video_close_nor.png differ
diff --git a/vp-main/res/edje/images/mini_controller/btn_video_close_press.png b/vp-main/res/edje/images/mini_controller/btn_video_close_press.png
new file mode 100755 (executable)
index 0000000..557cd76
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/btn_video_close_press.png differ
diff --git a/vp-main/res/edje/images/mini_controller/btn_video_next_nor.png b/vp-main/res/edje/images/mini_controller/btn_video_next_nor.png
new file mode 100755 (executable)
index 0000000..eff2815
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/btn_video_next_nor.png differ
diff --git a/vp-main/res/edje/images/mini_controller/btn_video_next_press.png b/vp-main/res/edje/images/mini_controller/btn_video_next_press.png
new file mode 100755 (executable)
index 0000000..c626d0b
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/btn_video_next_press.png differ
diff --git a/vp-main/res/edje/images/mini_controller/btn_video_pause_nor.png b/vp-main/res/edje/images/mini_controller/btn_video_pause_nor.png
new file mode 100755 (executable)
index 0000000..5c1b020
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/btn_video_pause_nor.png differ
diff --git a/vp-main/res/edje/images/mini_controller/btn_video_pause_press.png b/vp-main/res/edje/images/mini_controller/btn_video_pause_press.png
new file mode 100755 (executable)
index 0000000..7e4b313
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/btn_video_pause_press.png differ
diff --git a/vp-main/res/edje/images/mini_controller/btn_video_play_nor.png b/vp-main/res/edje/images/mini_controller/btn_video_play_nor.png
new file mode 100755 (executable)
index 0000000..7bff225
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/btn_video_play_nor.png differ
diff --git a/vp-main/res/edje/images/mini_controller/btn_video_play_press.png b/vp-main/res/edje/images/mini_controller/btn_video_play_press.png
new file mode 100755 (executable)
index 0000000..f58c2ff
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/btn_video_play_press.png differ
diff --git a/vp-main/res/edje/images/mini_controller/btn_video_prev_nor.png b/vp-main/res/edje/images/mini_controller/btn_video_prev_nor.png
new file mode 100755 (executable)
index 0000000..8da4589
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/btn_video_prev_nor.png differ
diff --git a/vp-main/res/edje/images/mini_controller/btn_video_prev_press.png b/vp-main/res/edje/images/mini_controller/btn_video_prev_press.png
new file mode 100755 (executable)
index 0000000..faab5f0
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/btn_video_prev_press.png differ
diff --git a/vp-main/res/edje/images/mini_controller/control_circle_icon_stop.png b/vp-main/res/edje/images/mini_controller/control_circle_icon_stop.png
new file mode 100755 (executable)
index 0000000..992538e
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/control_circle_icon_stop.png differ
diff --git a/vp-main/res/edje/images/mini_controller/icon_player_next.png b/vp-main/res/edje/images/mini_controller/icon_player_next.png
new file mode 100755 (executable)
index 0000000..dc2b4fd
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/icon_player_next.png differ
diff --git a/vp-main/res/edje/images/mini_controller/icon_player_pause.png b/vp-main/res/edje/images/mini_controller/icon_player_pause.png
new file mode 100755 (executable)
index 0000000..4b18759
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/icon_player_pause.png differ
diff --git a/vp-main/res/edje/images/mini_controller/icon_player_play.png b/vp-main/res/edje/images/mini_controller/icon_player_play.png
new file mode 100755 (executable)
index 0000000..5862a77
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/icon_player_play.png differ
diff --git a/vp-main/res/edje/images/mini_controller/icon_player_prev.png b/vp-main/res/edje/images/mini_controller/icon_player_prev.png
new file mode 100755 (executable)
index 0000000..1f0165b
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/icon_player_prev.png differ
diff --git a/vp-main/res/edje/images/mini_controller/music_btn_player_next_nor.png b/vp-main/res/edje/images/mini_controller/music_btn_player_next_nor.png
new file mode 100755 (executable)
index 0000000..f911d3a
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/music_btn_player_next_nor.png differ
diff --git a/vp-main/res/edje/images/mini_controller/music_btn_player_pause_nor.png b/vp-main/res/edje/images/mini_controller/music_btn_player_pause_nor.png
new file mode 100755 (executable)
index 0000000..392da39
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/music_btn_player_pause_nor.png differ
diff --git a/vp-main/res/edje/images/mini_controller/music_btn_player_play_nor.png b/vp-main/res/edje/images/mini_controller/music_btn_player_play_nor.png
new file mode 100755 (executable)
index 0000000..68dfaab
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/music_btn_player_play_nor.png differ
diff --git a/vp-main/res/edje/images/mini_controller/music_btn_player_prev_nor.png b/vp-main/res/edje/images/mini_controller/music_btn_player_prev_nor.png
new file mode 100755 (executable)
index 0000000..cab6d1a
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/music_btn_player_prev_nor.png differ
diff --git a/vp-main/res/edje/images/mini_controller/video_progress.png b/vp-main/res/edje/images/mini_controller/video_progress.png
new file mode 100755 (executable)
index 0000000..f3386d9
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/video_progress.png differ
diff --git a/vp-main/res/edje/images/mini_controller/video_progress_bg.png b/vp-main/res/edje/images/mini_controller/video_progress_bg.png
new file mode 100755 (executable)
index 0000000..b54c7db
Binary files /dev/null and b/vp-main/res/edje/images/mini_controller/video_progress_bg.png differ
diff --git a/vp-main/res/edje/images/more/icon_add_to_home.png b/vp-main/res/edje/images/more/icon_add_to_home.png
new file mode 100755 (executable)
index 0000000..0367025
Binary files /dev/null and b/vp-main/res/edje/images/more/icon_add_to_home.png differ
diff --git a/vp-main/res/edje/images/more/icon_chapter_preview.png b/vp-main/res/edje/images/more/icon_chapter_preview.png
new file mode 100755 (executable)
index 0000000..3d18d77
Binary files /dev/null and b/vp-main/res/edje/images/more/icon_chapter_preview.png differ
diff --git a/vp-main/res/edje/images/more/icon_detail.png b/vp-main/res/edje/images/more/icon_detail.png
new file mode 100755 (executable)
index 0000000..2bbd312
Binary files /dev/null and b/vp-main/res/edje/images/more/icon_detail.png differ
diff --git a/vp-main/res/edje/images/more/icon_download.png b/vp-main/res/edje/images/more/icon_download.png
new file mode 100755 (executable)
index 0000000..ceb91db
Binary files /dev/null and b/vp-main/res/edje/images/more/icon_download.png differ
diff --git a/vp-main/res/edje/images/more/icon_nearbydevices.png b/vp-main/res/edje/images/more/icon_nearbydevices.png
new file mode 100755 (executable)
index 0000000..1611c96
Binary files /dev/null and b/vp-main/res/edje/images/more/icon_nearbydevices.png differ
diff --git a/vp-main/res/edje/images/more/icon_setting.png b/vp-main/res/edje/images/more/icon_setting.png
new file mode 100755 (executable)
index 0000000..992a1aa
Binary files /dev/null and b/vp-main/res/edje/images/more/icon_setting.png differ
diff --git a/vp-main/res/edje/images/more/icon_share_via.png b/vp-main/res/edje/images/more/icon_share_via.png
new file mode 100755 (executable)
index 0000000..eb9bc07
Binary files /dev/null and b/vp-main/res/edje/images/more/icon_share_via.png differ
diff --git a/vp-main/res/edje/images/more/icon_trim.png b/vp-main/res/edje/images/more/icon_trim.png
new file mode 100755 (executable)
index 0000000..ffb8ae2
Binary files /dev/null and b/vp-main/res/edje/images/more/icon_trim.png differ
diff --git a/vp-main/res/edje/images/multi/Mw_title_icon_press_bg.png b/vp-main/res/edje/images/multi/Mw_title_icon_press_bg.png
new file mode 100755 (executable)
index 0000000..77c12d9
Binary files /dev/null and b/vp-main/res/edje/images/multi/Mw_title_icon_press_bg.png differ
diff --git a/vp-main/res/edje/images/multi/T01-2_multiscreen_player_bg.png b/vp-main/res/edje/images/multi/T01-2_multiscreen_player_bg.png
new file mode 100755 (executable)
index 0000000..3ff5c9f
Binary files /dev/null and b/vp-main/res/edje/images/multi/T01-2_multiscreen_player_bg.png differ
diff --git a/vp-main/res/edje/images/multi/T01_2_mw_control_bg_center.png b/vp-main/res/edje/images/multi/T01_2_mw_control_bg_center.png
new file mode 100755 (executable)
index 0000000..94a06e1
Binary files /dev/null and b/vp-main/res/edje/images/multi/T01_2_mw_control_bg_center.png differ
diff --git a/vp-main/res/edje/images/multi/T01_2_mw_control_bg_center_press.png b/vp-main/res/edje/images/multi/T01_2_mw_control_bg_center_press.png
new file mode 100755 (executable)
index 0000000..a93b093
Binary files /dev/null and b/vp-main/res/edje/images/multi/T01_2_mw_control_bg_center_press.png differ
diff --git a/vp-main/res/edje/images/multi/T01_2_mw_control_bg_left.png b/vp-main/res/edje/images/multi/T01_2_mw_control_bg_left.png
new file mode 100755 (executable)
index 0000000..cf134e4
Binary files /dev/null and b/vp-main/res/edje/images/multi/T01_2_mw_control_bg_left.png differ
diff --git a/vp-main/res/edje/images/multi/T01_2_mw_control_bg_left_press.png b/vp-main/res/edje/images/multi/T01_2_mw_control_bg_left_press.png
new file mode 100755 (executable)
index 0000000..9ca72a7
Binary files /dev/null and b/vp-main/res/edje/images/multi/T01_2_mw_control_bg_left_press.png differ
diff --git a/vp-main/res/edje/images/multi/T01_2_mw_control_bg_right.png b/vp-main/res/edje/images/multi/T01_2_mw_control_bg_right.png
new file mode 100755 (executable)
index 0000000..5ade040
Binary files /dev/null and b/vp-main/res/edje/images/multi/T01_2_mw_control_bg_right.png differ
diff --git a/vp-main/res/edje/images/multi/T01_2_mw_control_bg_right_press.png b/vp-main/res/edje/images/multi/T01_2_mw_control_bg_right_press.png
new file mode 100755 (executable)
index 0000000..baa989b
Binary files /dev/null and b/vp-main/res/edje/images/multi/T01_2_mw_control_bg_right_press.png differ
diff --git a/vp-main/res/edje/images/multi/T01_2_mw_control_icon_ff.png b/vp-main/res/edje/images/multi/T01_2_mw_control_icon_ff.png
new file mode 100755 (executable)
index 0000000..74d5486
Binary files /dev/null and b/vp-main/res/edje/images/multi/T01_2_mw_control_icon_ff.png differ
diff --git a/vp-main/res/edje/images/multi/T01_2_mw_control_icon_ff_press.png b/vp-main/res/edje/images/multi/T01_2_mw_control_icon_ff_press.png
new file mode 100755 (executable)
index 0000000..91c7cb7
Binary files /dev/null and b/vp-main/res/edje/images/multi/T01_2_mw_control_icon_ff_press.png differ
diff --git a/vp-main/res/edje/images/multi/T01_2_mw_control_icon_pause.png b/vp-main/res/edje/images/multi/T01_2_mw_control_icon_pause.png
new file mode 100755 (executable)
index 0000000..927b17a
Binary files /dev/null and b/vp-main/res/edje/images/multi/T01_2_mw_control_icon_pause.png differ
diff --git a/vp-main/res/edje/images/multi/T01_2_mw_control_icon_pause_press.png b/vp-main/res/edje/images/multi/T01_2_mw_control_icon_pause_press.png
new file mode 100755 (executable)
index 0000000..065d1d7
Binary files /dev/null and b/vp-main/res/edje/images/multi/T01_2_mw_control_icon_pause_press.png differ
diff --git a/vp-main/res/edje/images/multi/T01_2_mw_control_icon_play.png b/vp-main/res/edje/images/multi/T01_2_mw_control_icon_play.png
new file mode 100755 (executable)
index 0000000..40dfd5a
Binary files /dev/null and b/vp-main/res/edje/images/multi/T01_2_mw_control_icon_play.png differ
diff --git a/vp-main/res/edje/images/multi/T01_2_mw_control_icon_play_press.png b/vp-main/res/edje/images/multi/T01_2_mw_control_icon_play_press.png
new file mode 100755 (executable)
index 0000000..cf27bf7
Binary files /dev/null and b/vp-main/res/edje/images/multi/T01_2_mw_control_icon_play_press.png differ
diff --git a/vp-main/res/edje/images/multi/T01_2_mw_control_icon_rew.png b/vp-main/res/edje/images/multi/T01_2_mw_control_icon_rew.png
new file mode 100755 (executable)
index 0000000..ac94645
Binary files /dev/null and b/vp-main/res/edje/images/multi/T01_2_mw_control_icon_rew.png differ
diff --git a/vp-main/res/edje/images/multi/T01_2_mw_control_icon_rew_press.png b/vp-main/res/edje/images/multi/T01_2_mw_control_icon_rew_press.png
new file mode 100755 (executable)
index 0000000..f4b087f
Binary files /dev/null and b/vp-main/res/edje/images/multi/T01_2_mw_control_icon_rew_press.png differ
diff --git a/vp-main/res/edje/images/multi/mw_frame.png b/vp-main/res/edje/images/multi/mw_frame.png
new file mode 100755 (executable)
index 0000000..5c644c6
Binary files /dev/null and b/vp-main/res/edje/images/multi/mw_frame.png differ
diff --git a/vp-main/res/edje/images/multi/mw_frame_handler.png b/vp-main/res/edje/images/multi/mw_frame_handler.png
new file mode 100755 (executable)
index 0000000..f2eff75
Binary files /dev/null and b/vp-main/res/edje/images/multi/mw_frame_handler.png differ
diff --git a/vp-main/res/edje/images/multi/mw_frame_handler_press.png b/vp-main/res/edje/images/multi/mw_frame_handler_press.png
new file mode 100755 (executable)
index 0000000..415aad8
Binary files /dev/null and b/vp-main/res/edje/images/multi/mw_frame_handler_press.png differ
diff --git a/vp-main/res/edje/images/multi/mw_title_bg.#.png b/vp-main/res/edje/images/multi/mw_title_bg.#.png
new file mode 100755 (executable)
index 0000000..e8ce44b
Binary files /dev/null and b/vp-main/res/edje/images/multi/mw_title_bg.#.png differ
diff --git a/vp-main/res/edje/images/multi/mw_title_bg_ef.#.png b/vp-main/res/edje/images/multi/mw_title_bg_ef.#.png
new file mode 100755 (executable)
index 0000000..07f8f89
Binary files /dev/null and b/vp-main/res/edje/images/multi/mw_title_bg_ef.#.png differ
diff --git a/vp-main/res/edje/images/multi/mw_title_bg_focus.#.png b/vp-main/res/edje/images/multi/mw_title_bg_focus.#.png
new file mode 100755 (executable)
index 0000000..e8ce44b
Binary files /dev/null and b/vp-main/res/edje/images/multi/mw_title_bg_focus.#.png differ
diff --git a/vp-main/res/edje/images/multi/mw_title_bg_focus_ef.#.png b/vp-main/res/edje/images/multi/mw_title_bg_focus_ef.#.png
new file mode 100755 (executable)
index 0000000..9b7678e
Binary files /dev/null and b/vp-main/res/edje/images/multi/mw_title_bg_focus_ef.#.png differ
diff --git a/vp-main/res/edje/images/multi/mw_title_bg_press.png b/vp-main/res/edje/images/multi/mw_title_bg_press.png
new file mode 100755 (executable)
index 0000000..d7e7a1c
Binary files /dev/null and b/vp-main/res/edje/images/multi/mw_title_bg_press.png differ
diff --git a/vp-main/res/edje/images/multi/mw_title_divider.png b/vp-main/res/edje/images/multi/mw_title_divider.png
new file mode 100755 (executable)
index 0000000..491aeda
Binary files /dev/null and b/vp-main/res/edje/images/multi/mw_title_divider.png differ
diff --git a/vp-main/res/edje/images/multi/mw_title_focus.#.png b/vp-main/res/edje/images/multi/mw_title_focus.#.png
new file mode 100755 (executable)
index 0000000..a04f8e0
Binary files /dev/null and b/vp-main/res/edje/images/multi/mw_title_focus.#.png differ
diff --git a/vp-main/res/edje/images/multi/mw_title_focus_bg_press.#.png b/vp-main/res/edje/images/multi/mw_title_focus_bg_press.#.png
new file mode 100755 (executable)
index 0000000..53a6fb5
Binary files /dev/null and b/vp-main/res/edje/images/multi/mw_title_focus_bg_press.#.png differ
diff --git a/vp-main/res/edje/images/multi/my_title_icon_delete.png b/vp-main/res/edje/images/multi/my_title_icon_delete.png
new file mode 100755 (executable)
index 0000000..93eefd2
Binary files /dev/null and b/vp-main/res/edje/images/multi/my_title_icon_delete.png differ
diff --git a/vp-main/res/edje/images/multi/my_title_icon_delete_ef_press.png b/vp-main/res/edje/images/multi/my_title_icon_delete_ef_press.png
new file mode 100755 (executable)
index 0000000..06278ed
Binary files /dev/null and b/vp-main/res/edje/images/multi/my_title_icon_delete_ef_press.png differ
diff --git a/vp-main/res/edje/images/multi/my_title_icon_delete_press.png b/vp-main/res/edje/images/multi/my_title_icon_delete_press.png
new file mode 100755 (executable)
index 0000000..759f493
Binary files /dev/null and b/vp-main/res/edje/images/multi/my_title_icon_delete_press.png differ
diff --git a/vp-main/res/edje/images/multi/my_title_icon_maximize.png b/vp-main/res/edje/images/multi/my_title_icon_maximize.png
new file mode 100755 (executable)
index 0000000..7fce9c6
Binary files /dev/null and b/vp-main/res/edje/images/multi/my_title_icon_maximize.png differ
diff --git a/vp-main/res/edje/images/multi/my_title_icon_maximize_ef_press.png b/vp-main/res/edje/images/multi/my_title_icon_maximize_ef_press.png
new file mode 100755 (executable)
index 0000000..af41bea
Binary files /dev/null and b/vp-main/res/edje/images/multi/my_title_icon_maximize_ef_press.png differ
diff --git a/vp-main/res/edje/images/multi/my_title_icon_maximize_press.png b/vp-main/res/edje/images/multi/my_title_icon_maximize_press.png
new file mode 100755 (executable)
index 0000000..5cac9d9
Binary files /dev/null and b/vp-main/res/edje/images/multi/my_title_icon_maximize_press.png differ
diff --git a/vp-main/res/edje/images/multi/my_title_icon_mimimize.png b/vp-main/res/edje/images/multi/my_title_icon_mimimize.png
new file mode 100755 (executable)
index 0000000..c980242
Binary files /dev/null and b/vp-main/res/edje/images/multi/my_title_icon_mimimize.png differ
diff --git a/vp-main/res/edje/images/multi/my_title_icon_mimimize_ef_press.png b/vp-main/res/edje/images/multi/my_title_icon_mimimize_ef_press.png
new file mode 100755 (executable)
index 0000000..5a35ba1
Binary files /dev/null and b/vp-main/res/edje/images/multi/my_title_icon_mimimize_ef_press.png differ
diff --git a/vp-main/res/edje/images/multi/my_title_icon_mimimize_press.png b/vp-main/res/edje/images/multi/my_title_icon_mimimize_press.png
new file mode 100755 (executable)
index 0000000..2b98639
Binary files /dev/null and b/vp-main/res/edje/images/multi/my_title_icon_mimimize_press.png differ
diff --git a/vp-main/res/edje/images/nearby_device/T02_Player_Nearby_device_01.png b/vp-main/res/edje/images/nearby_device/T02_Player_Nearby_device_01.png
new file mode 100755 (executable)
index 0000000..96e22b0
Binary files /dev/null and b/vp-main/res/edje/images/nearby_device/T02_Player_Nearby_device_01.png differ
diff --git a/vp-main/res/edje/images/nearby_device/T02_Player_Nearby_device_02.png b/vp-main/res/edje/images/nearby_device/T02_Player_Nearby_device_02.png
new file mode 100755 (executable)
index 0000000..d8828b6
Binary files /dev/null and b/vp-main/res/edje/images/nearby_device/T02_Player_Nearby_device_02.png differ
diff --git a/vp-main/res/edje/images/nearby_device/U04_connecting_ani_01.png b/vp-main/res/edje/images/nearby_device/U04_connecting_ani_01.png
new file mode 100755 (executable)
index 0000000..17b5dcd
Binary files /dev/null and b/vp-main/res/edje/images/nearby_device/U04_connecting_ani_01.png differ
diff --git a/vp-main/res/edje/images/nearby_device/U04_connecting_ani_02.png b/vp-main/res/edje/images/nearby_device/U04_connecting_ani_02.png
new file mode 100755 (executable)
index 0000000..23e086a
Binary files /dev/null and b/vp-main/res/edje/images/nearby_device/U04_connecting_ani_02.png differ
diff --git a/vp-main/res/edje/images/nearby_device/U04_connecting_ani_03.png b/vp-main/res/edje/images/nearby_device/U04_connecting_ani_03.png
new file mode 100755 (executable)
index 0000000..3c20025
Binary files /dev/null and b/vp-main/res/edje/images/nearby_device/U04_connecting_ani_03.png differ
diff --git a/vp-main/res/edje/images/nearby_device/U04_connecting_ani_04.png b/vp-main/res/edje/images/nearby_device/U04_connecting_ani_04.png
new file mode 100755 (executable)
index 0000000..2d9e9b1
Binary files /dev/null and b/vp-main/res/edje/images/nearby_device/U04_connecting_ani_04.png differ
diff --git a/vp-main/res/edje/images/player_error_screen.png b/vp-main/res/edje/images/player_error_screen.png
new file mode 100755 (executable)
index 0000000..27ee84e
Binary files /dev/null and b/vp-main/res/edje/images/player_error_screen.png differ
diff --git a/vp-main/res/edje/images/popup/T01-2_volume_popup_icon_brightness.png b/vp-main/res/edje/images/popup/T01-2_volume_popup_icon_brightness.png
new file mode 100755 (executable)
index 0000000..228e3a4
Binary files /dev/null and b/vp-main/res/edje/images/popup/T01-2_volume_popup_icon_brightness.png differ
diff --git a/vp-main/res/edje/images/popup/T01-2_volume_popup_icon_volume01.png b/vp-main/res/edje/images/popup/T01-2_volume_popup_icon_volume01.png
new file mode 100755 (executable)
index 0000000..fd96325
Binary files /dev/null and b/vp-main/res/edje/images/popup/T01-2_volume_popup_icon_volume01.png differ
diff --git a/vp-main/res/edje/images/popup/T01-2_volume_popup_icon_volume02.png b/vp-main/res/edje/images/popup/T01-2_volume_popup_icon_volume02.png
new file mode 100755 (executable)
index 0000000..ee5340f
Binary files /dev/null and b/vp-main/res/edje/images/popup/T01-2_volume_popup_icon_volume02.png differ
diff --git a/vp-main/res/edje/images/popup/U05_help_popup_sbeam.png b/vp-main/res/edje/images/popup/U05_help_popup_sbeam.png
new file mode 100755 (executable)
index 0000000..aee263a
Binary files /dev/null and b/vp-main/res/edje/images/popup/U05_help_popup_sbeam.png differ
diff --git a/vp-main/res/edje/images/progressbar/T01_2_control_progress_handle.png b/vp-main/res/edje/images/progressbar/T01_2_control_progress_handle.png
new file mode 100755 (executable)
index 0000000..c4e7a4f
Binary files /dev/null and b/vp-main/res/edje/images/progressbar/T01_2_control_progress_handle.png differ
diff --git a/vp-main/res/edje/images/progressbar/T01_2_control_progress_handle_press.png b/vp-main/res/edje/images/progressbar/T01_2_control_progress_handle_press.png
new file mode 100755 (executable)
index 0000000..b1977db
Binary files /dev/null and b/vp-main/res/edje/images/progressbar/T01_2_control_progress_handle_press.png differ
diff --git a/vp-main/res/edje/images/progressbar/core_progress_bar.#.png b/vp-main/res/edje/images/progressbar/core_progress_bar.#.png
new file mode 100755 (executable)
index 0000000..ead779c
Binary files /dev/null and b/vp-main/res/edje/images/progressbar/core_progress_bar.#.png differ
diff --git a/vp-main/res/edje/images/sensor/B15_turn_over_01.png b/vp-main/res/edje/images/sensor/B15_turn_over_01.png
new file mode 100755 (executable)
index 0000000..2bc3166
Binary files /dev/null and b/vp-main/res/edje/images/sensor/B15_turn_over_01.png differ
diff --git a/vp-main/res/edje/images/sensor/B15_turn_over_02.png b/vp-main/res/edje/images/sensor/B15_turn_over_02.png
new file mode 100755 (executable)
index 0000000..d8d7c84
Binary files /dev/null and b/vp-main/res/edje/images/sensor/B15_turn_over_02.png differ
diff --git a/vp-main/res/edje/images/sensor/B15_turn_over_03.png b/vp-main/res/edje/images/sensor/B15_turn_over_03.png
new file mode 100755 (executable)
index 0000000..81481d8
Binary files /dev/null and b/vp-main/res/edje/images/sensor/B15_turn_over_03.png differ
diff --git a/vp-main/res/edje/images/sound_only.png b/vp-main/res/edje/images/sound_only.png
new file mode 100755 (executable)
index 0000000..0849699
Binary files /dev/null and b/vp-main/res/edje/images/sound_only.png differ
diff --git a/vp-main/res/edje/images/tag/T01-1_Tag_buddy_settings_bg.png b/vp-main/res/edje/images/tag/T01-1_Tag_buddy_settings_bg.png
new file mode 100755 (executable)
index 0000000..b1d05eb
Binary files /dev/null and b/vp-main/res/edje/images/tag/T01-1_Tag_buddy_settings_bg.png differ
diff --git a/vp-main/res/edje/images/tag/T01-1_logo_accuweather.png b/vp-main/res/edje/images/tag/T01-1_logo_accuweather.png
new file mode 100755 (executable)
index 0000000..4a5874c
Binary files /dev/null and b/vp-main/res/edje/images/tag/T01-1_logo_accuweather.png differ
diff --git a/vp-main/res/edje/images/tag/T01_2_icon_tag_buddy_cplogo.PNG b/vp-main/res/edje/images/tag/T01_2_icon_tag_buddy_cplogo.PNG
new file mode 100755 (executable)
index 0000000..d6905eb
Binary files /dev/null and b/vp-main/res/edje/images/tag/T01_2_icon_tag_buddy_cplogo.PNG differ
diff --git a/vp-main/res/edje/images/tag/U07_weather_logo.png b/vp-main/res/edje/images/tag/U07_weather_logo.png
new file mode 100755 (executable)
index 0000000..86ce5b5
Binary files /dev/null and b/vp-main/res/edje/images/tag/U07_weather_logo.png differ
diff --git a/vp-main/res/edje/images/trim/T01_2_trim_left.png b/vp-main/res/edje/images/trim/T01_2_trim_left.png
new file mode 100755 (executable)
index 0000000..f0d3e36
Binary files /dev/null and b/vp-main/res/edje/images/trim/T01_2_trim_left.png differ
diff --git a/vp-main/res/edje/images/trim/T01_2_trim_picker.png b/vp-main/res/edje/images/trim/T01_2_trim_picker.png
new file mode 100755 (executable)
index 0000000..153d9e2
Binary files /dev/null and b/vp-main/res/edje/images/trim/T01_2_trim_picker.png differ
diff --git a/vp-main/res/edje/images/trim/T01_2_trim_right.png b/vp-main/res/edje/images/trim/T01_2_trim_right.png
new file mode 100755 (executable)
index 0000000..a8b7935
Binary files /dev/null and b/vp-main/res/edje/images/trim/T01_2_trim_right.png differ
diff --git a/vp-main/res/edje/images/volume/T01_2_volume_popup_bg.png b/vp-main/res/edje/images/volume/T01_2_volume_popup_bg.png
new file mode 100755 (executable)
index 0000000..2069958
Binary files /dev/null and b/vp-main/res/edje/images/volume/T01_2_volume_popup_bg.png differ
diff --git a/vp-main/res/edje/images/volume/T01_2_volume_popup_progress_bar.png b/vp-main/res/edje/images/volume/T01_2_volume_popup_progress_bar.png
new file mode 100755 (executable)
index 0000000..509ecbb
Binary files /dev/null and b/vp-main/res/edje/images/volume/T01_2_volume_popup_progress_bar.png differ
diff --git a/vp-main/res/edje/images/volume/T01_2_volume_popup_progress_bg.png b/vp-main/res/edje/images/volume/T01_2_volume_popup_progress_bg.png
new file mode 100755 (executable)
index 0000000..f789938
Binary files /dev/null and b/vp-main/res/edje/images/volume/T01_2_volume_popup_progress_bg.png differ
diff --git a/vp-main/res/edje/images/volume/T01_2_volume_popup_progress_handle.png b/vp-main/res/edje/images/volume/T01_2_volume_popup_progress_handle.png
new file mode 100755 (executable)
index 0000000..68105d1
Binary files /dev/null and b/vp-main/res/edje/images/volume/T01_2_volume_popup_progress_handle.png differ
diff --git a/vp-main/res/edje/images/volume/T01_2_volume_popup_progress_handle_press.png b/vp-main/res/edje/images/volume/T01_2_volume_popup_progress_handle_press.png
new file mode 100755 (executable)
index 0000000..88eb56f
Binary files /dev/null and b/vp-main/res/edje/images/volume/T01_2_volume_popup_progress_handle_press.png differ
diff --git a/vp-main/res/edje/pv-bookmark-item.edc b/vp-main/res/edje/pv-bookmark-item.edc
new file mode 100755 (executable)
index 0000000..df279bf
--- /dev/null
@@ -0,0 +1,276 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define VP_BOOKMARK_ITEM_RECT_MIN_MAX_INC              152 132
+#define VP_BOOKMARK_ITEM_ICON_MIN_MAX_INC              146 88
+
+#define BOOKMARK_ITEM_SELECT_VI_EFFECT \
+} \
+description { state: "pressed" 0.0; \
+   inherit: "default" 0.0; \
+   map { \
+         on: 1; \
+         perspective: "persp1"; \
+         smooth: 0; \
+   } \
+} \
+description { state: "selected" 0.0; \
+   inherit: "default" 0.0; \
+   map { \
+         on: 1; \
+         perspective: "persp"; \
+         smooth: 1; \
+   }
+
+#define BOOKMARK_PROGRAM_ITEM_SELECT_VI_EFFECT( TARGET ) \
+         program { name: "vi_pressed"; \
+                action: STATE_SET "pressed" 0.0; \
+                TARGET \
+                after: "vi_zoom_in"; \
+         } \
+         program { name: "vi_zoom_in"; \
+                action: STATE_SET "selected" 0.0; \
+                TARGET \
+                transition: SIN_FAC 0.167 1.1; \
+         } \
+         program { name: "vi_zoom_out"; \
+                action: STATE_SET "pressed" 0.0; \
+                TARGET \
+                transition: SIN_FAC 0.167 1.1; \
+                after: "vi_default"; \
+         } \
+         program { name: "vi_default"; \
+                action: STATE_SET "default" 0.0; \
+                TARGET \
+         }
+
+
+collections {
+       group {
+               name: "pv.bookmark.item";
+               script {
+                  public selected = 0;
+               }
+               parts {
+                       part {
+                               name: "pv.bookmark.item.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: VP_BOOKMARK_ITEM_RECT_MIN_MAX_INC;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 0;
+                                       BOOKMARK_ITEM_SELECT_VI_EFFECT
+                               }
+                       }
+                       part { name: "persp";
+                          type: RECT;
+                          description { state: "default" 0.0;
+                                 min: 32 32;
+                                 max: 32 32;
+                                 fixed: 1 1;
+                                 align: 0.5 0.5;
+                                 color: 0 0 0 0;
+                                 visible: 1;
+                                 perspective {
+                                        zplane: -70;
+                                        focal: 1000;
+                                 }
+                          }
+                       }
+                       part { name: "persp1";
+                          type: RECT;
+                          description { state: "default" 0.0;
+                                 min: 32 32;
+                                 max: 32 32;
+                                 fixed: 1 1;
+                                 align: 0.5 0.5;
+                                 color: 0 0 0 0;
+                                 visible: 1;
+                                 perspective {
+                                        zplane: 0;
+                                        focal: 1000;
+                                 }
+                          }
+                       }
+                       part {
+                               name: "pv.bookmark.item.top.padding";
+                               scale: 1;
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 6 ;
+                                       fixed: 0 1;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: pv.bookmark.item.rect; }
+                                       rel2 { relative: 0.0 0.0; to: pv.bookmark.item.rect; }
+                               }
+                       }
+                       part {
+                               name: "pv.bookmark.item.bottom.padding";
+                               scale: 1;
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 18 ;
+                                       fixed: 0 1;
+                                       visible: 0;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: pv.bookmark.item.rect; }
+                                       rel2 { relative: 0.0 1.0; to: pv.bookmark.item.rect; }
+                               }
+                       }
+                       part {
+                               name: "pv.bookmark.item.icon";
+                               scale: 1;
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: VP_BOOKMARK_ITEM_ICON_MIN_MAX_INC;
+                                       max: VP_BOOKMARK_ITEM_ICON_MIN_MAX_INC;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_x: pv.bookmark.item.rect; to_y: pv.bookmark.item.top.padding;}
+                                       rel2 { relative: 0.0 1.0; to_x: pv.bookmark.item.rect; to_y: pv.bookmark.item.top.padding;}
+                                       color: 255 255 255 255;
+                                       BOOKMARK_ITEM_SELECT_VI_EFFECT
+                               }
+                       }
+                       part {
+                               name: "pv.bookmark.item.txt";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_x: pv.bookmark.item.rect; to_y: pv.bookmark.item.icon;}
+                                       rel2 { relative: 1.0 0.0; to_x: pv.bookmark.item.rect; to_y: pv.bookmark.item.bottom.padding;}
+                                       color: 248 246 240 255;
+                                       text {
+                                               font: "Tizen:style=Regular";
+                                               size: 24;
+                                               align: 0.5 0.0;
+                                       }
+                               }
+                       }
+                       part {
+                               name: "pv.bookmark.item.event";
+                               scale: 1;
+                               type: RECT;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.0; to: pv.bookmark.item.icon;}
+                                       rel2 { relative: 1.0 1.0; to: pv.bookmark.item.icon;}
+                                       color: 255 255 255 0;
+                               }
+                       }
+               } /* parts */
+               programs {
+                       BOOKMARK_PROGRAM_ITEM_SELECT_VI_EFFECT(
+                          target: "pv.bookmark.item.rect";
+                          target: "pv.bookmark.item.icon";
+                       )
+                       program {
+                               name: "mouse_down";
+                               signal: "mouse,down,1";
+                               source: "pv.bookmark.item.event";
+                               action: SIGNAL_EMIT "down" "*";
+                               script {
+                                  if (!get_int(selected)) {
+                                         set_int(selected, 1);
+                                         run_program(PROGRAM:"vi_pressed");
+                                  }
+                               }
+                       }
+                       program {
+                               name: "mouse_up";
+                               signal: "mouse,up,1";
+                               source: "pv.bookmark.item.event";
+                               action: SIGNAL_EMIT "up" "*";
+                               script {
+                                  if (get_int(selected)) {
+                                         set_int(selected, 0);
+                                         run_program(PROGRAM:"vi_zoom_out");
+                                  }
+                               }
+                       }
+               }
+       }       /* group */
+       group {
+               name: "pv.bookmark.item.end";
+               parts {
+                       part {
+                               name: "pv.bookmark.item.end.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               repeat_events : 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: VP_BOOKMARK_ITEM_RECT_MIN_MAX_INC;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 255 128;
+                               }
+                       }
+                       part {
+                               name: "pv.bookmark.item.del.rect";
+                               scale: 1;
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 48 48;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: pv.bookmark.item.end.bg;}
+                                       rel2 { relative: 1.0 0.0; to: pv.bookmark.item.end.bg;}
+                                       color: 255 255 255 255;
+                               }
+                       }
+                       part {
+                               name: "pv.bookmark.item.del";
+                               scale: 1;
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               repeat_events : 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 48 48;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to: pv.bookmark.item.del.rect;}
+                                       rel2 { relative: 1.0 1.0; to: pv.bookmark.item.del.rect;}
+                               }
+                       }
+               } /* parts */
+       } /* group */
+} /* collections */
diff --git a/vp-main/res/edje/pv-bookmark.edc b/vp-main/res/edje/pv-bookmark.edc
new file mode 100755 (executable)
index 0000000..5929798
--- /dev/null
@@ -0,0 +1,136 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+collections {
+       group {
+               name: "pv.bookmark";
+               parts {
+                       part {
+                               name: "pv.bookmark.rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events : 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       fixed: 0 1;
+                                       min: 0 150;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 0.0;}
+                                       color: 0 0 0 128;
+                               }
+                       }
+
+                       part {
+                               name: "pv.bookmark.top.padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_y : "pv.bookmark.rect"; }
+                                       rel2 { relative: 0.0 0.0; to_y : "pv.bookmark.rect"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.bookmark.bottom.padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       fixed: 0 1;
+                                       min: 0 2;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to_y : "pv.bookmark.rect"; }
+                                       rel2 { relative: 1.0 1.0; to_y : "pv.bookmark.rect"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "pv.bookmark.left.padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 26 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 0.0 1.0;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.bookmark.add.button";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: 44 44;
+                                       max: 44 44;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.0; to_x : "pv.bookmark.left.padding"; to_y: "pv.bookmark.rect"; }
+                                       rel2 { relative: 1.0 0.0; to_x : "pv.bookmark.left.padding"; to_y: "pv.bookmark.bottom.padding"; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.bookmark.right.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: 20 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to_x : "pv.bookmark.add.button"; }
+                                       rel2 { relative: 1.0 1.0; to_x : "pv.bookmark.add.button"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.bookmark.item.list";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to_x : "pv.bookmark.right.padding"; to_y: "pv.bookmark.top.padding"; }
+                                       rel2 { relative: 1.0 1.0; to_x : "pv.bookmark.rect"; to_y: "pv.bookmark.bottom.padding"; }
+                               }
+                       }
+               } /* parts */
+       }       /* group */
+} /* collections */
+
diff --git a/vp-main/res/edje/pv-brightness-popup.edc b/vp-main/res/edje/pv-brightness-popup.edc
new file mode 100755 (executable)
index 0000000..0e0be15
--- /dev/null
@@ -0,0 +1,338 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define FONT_BOLD_TYPE                 "Tizen:style=Bold"
+
+#define FONT_VOLUME_COLOR              255 255 255 255
+
+
+collections {
+       base_scale : 1.6;
+       group {
+               name: "pv.brightness.popup";
+               parts {
+                       part {
+                               name: "pv.brightness.popup.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               repeat_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: 58 286;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 0.0 0.5;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.bg";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: 58 286;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 0.0 0.5;}
+                                       color: 255 255 255 255;
+                                       image { normal: "volume/T01_2_volume_popup_bg.png"; border: 0 0 29 29;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.icon.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: 0 12;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.brightness.popup.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.brightness.popup.bg";}
+                                       color: 255 0 0 255;
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.icon";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: 22 22;
+                                       fixed: 1 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.5 1.0; to_x: "pv.brightness.popup.bg"; to_y: "pv.brightness.popup.icon.padding";}
+                                       rel2 { relative: 0.5 1.0; to_x: "pv.brightness.popup.bg"; to_y: "pv.brightness.popup.icon.padding";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.top.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: 0 11;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.brightness.popup.icon";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.brightness.popup.icon";}
+                                       color: 255 0 0 255;
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.bottom.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: 0 18;
+                                       fixed: 1 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.brightness.popup.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.brightness.popup.bg";}
+                                       color: 255 0 0 255;
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               effect: FAR_SHADOW BOTTOM;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: 0 23;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.brightness.popup.bottom.padding";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.brightness.popup.bottom.padding";}
+                                       color: FONT_VOLUME_COLOR;
+                                       color3: 51 57 72 255;
+                                       text {
+                                               font: FONT_BOLD_TYPE;
+                                               size: 21;
+                                               text: "3";
+                                               align: 0.5 0.5;
+                                       }
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.txt.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: 0 11;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.brightness.popup.txt";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.brightness.popup.txt";}
+                                       color: 255 0 0 255;
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.bar.bg";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 6 0;
+                                       fixed: 1 0;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 1.0; to_x : "pv.brightness.popup.bg";  to_y : "pv.brightness.popup.top.padding";}
+                                       rel2 { relative: 0.5 0.0; to_x : "pv.brightness.popup.bg";  to_y : "pv.brightness.popup.txt.padding";}
+                                       image { normal: "volume/T01_2_volume_popup_progress_bg.png"; border: 0 0 19 19;}
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.bar.bg.top.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 22;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 0.0; to : "pv.brightness.popup.bar.bg"; }
+                                       rel2 { relative: 1.0 0.0; to : "pv.brightness.popup.bar.bg"; }
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.bar.bg.bottom.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 22;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 1.0; to : "pv.brightness.popup.bar.bg"; }
+                                       rel2 { relative: 1.0 1.0; to : "pv.brightness.popup.bar.bg"; }
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.bar.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 13;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 1.0; to_x : "pv.brightness.popup.bar.bg"; to_y : "pv.brightness.popup.bar.bg.top.padding";}
+                                       rel2 { relative: 1.0 0.0; to_x : "pv.brightness.popup.bar.bg"; to_y : "pv.brightness.popup.bar.bg.bottom.padding";}
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+
+                       part {
+                               name: "pv.brightness.popup.step";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 6 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.5; to_x : "pv.brightness.popup.bar.bg"; to_y: "pv.brightness.popup.circle"; }
+                                       rel2 { relative: 1.0 1.0; to_x : "pv.brightness.popup.bar.bg"; to_y: "pv.brightness.popup.bar.bg"; offset: 0 2; }
+                                       color: 255 255 255 255;
+                                       image { normal: "volume/T01_2_volume_popup_progress_bar.png"; border: 0 0 10 10;}
+                                       color: 255 255 255 255;
+                               }
+                       }
+                       part {
+                               name: "pv.brightness.popup.confine.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.5 0.0;
+                                       min: 24 0;
+                                       rel1 { relative: 0.5 0.0;  to: "pv.brightness.popup.bar.bg"; offset: 0 -11; }
+                                       rel2 { relative: 0.5 1.0;  to: "pv.brightness.popup.bar.bg"; offset: 0 11; }
+                                       color: 255 255 255 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.brightness.popup.circle";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 24 24;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to_x: "pv.brightness.popup.bar.rect"; to_y: "pv.brightness.popup.playing"; }
+                                       rel2 { relative: 0.5 0.5; to_x: "pv.brightness.popup.bar.rect"; to_y: "pv.brightness.popup.playing"; }
+                                       color: 255 255 255 255;
+                               }
+                       }
+                       part {
+                               name: "pv.brightness.popup.playing";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 24 24;
+                                       fixed: 0 0;
+                                       align: 0.0 0.0;
+                               }
+                               dragable {
+                                       confine:  "pv.brightness.popup.confine.rect";
+                                       x: 0 0 0;
+                                       y: -1 1 0;
+                               }
+                       }
+
+
+                       part {
+                               name: "pv.brightness.popup.point";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 24 24;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to: "pv.brightness.popup.playing"; }
+                                       rel2 { relative: 0.5 0.5; to: "pv.brightness.popup.playing"; }
+                                       image { normal: "volume/T01_2_volume_popup_progress_handle.png";}
+                                       color: 255 255 255 255;
+                               }
+                       }
+               } /* parts */
+       }       /* group */
+} /* collections */
+
diff --git a/vp-main/res/edje/pv-chapter-main-new.edc b/vp-main/res/edje/pv-chapter-main-new.edc
new file mode 100755 (executable)
index 0000000..b3a918f
--- /dev/null
@@ -0,0 +1,1921 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define ITEM_LINE_WIDTH                                1
+#define ITEM_TEXT_BG_COLOR                     8 8 8 255
+#define ITEM_LINE_COLOR                                109 109 109 255
+#define ITEM_TEXT_COLOR                                212 212 212 255
+
+
+#define CHAPTER_ITEM_SELECT_VI_EFFECT \
+} \
+description { state: "pressed" 0.0; \
+   inherit: "default" 0.0; \
+   map { \
+         on: 1; \
+         perspective: "persp1"; \
+         smooth: 0; \
+   } \
+} \
+description { state: "selected" 0.0; \
+   inherit: "default" 0.0; \
+   map { \
+         on: 1; \
+         perspective: "persp"; \
+         smooth: 1; \
+   }
+
+#define CHAPTER_PROGRAM_ITEM_SELECT_VI_EFFECT( TARGET ) \
+         program { name: "vi_pressed"; \
+                action: STATE_SET "pressed" 0.0; \
+                TARGET \
+                after: "vi_zoom_in"; \
+         } \
+         program { name: "vi_zoom_in"; \
+                action: STATE_SET "selected" 0.0; \
+                TARGET \
+                transition: SIN_FAC 0.167 1.1; \
+         } \
+         program { name: "vi_zoom_out"; \
+                action: STATE_SET "pressed" 0.0; \
+                TARGET \
+                transition: SIN_FAC 0.167 1.1; \
+                after: "vi_default"; \
+         } \
+         program { name: "vi_default"; \
+                action: STATE_SET "default" 0.0; \
+                TARGET \
+         }
+
+
+collections {
+       group {
+               name: "pv.chapter.main";
+               parts {
+                       part {
+                               name: "pv.chapter.main.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 8 8 8 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.01.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.016 0.01;}
+                                       rel2 { relative: 0.246 0.33;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.01 0.016 ;}
+                                       rel2 { relative: 0.33 0.246;}
+                               }
+
+                       }
+                       part {
+                               name: "pv.chapter.main.item.02.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.262 0.01;}
+                                       rel2 { relative: 0.492 0.33;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.34 0.016;}
+                                       rel2 { relative: 0.66 0.246;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.03.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.508 0.01;}
+                                       rel2 { relative: 0.738 0.33;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.67 0.016;}
+                                       rel2 { relative: 0.99 0.246;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.04.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.754 0.01;}
+                                       rel2 { relative: 0.984 0.33;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.01 0.262;}
+                                       rel2 { relative: 0.33 0.492;}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.item.05.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.016 0.34;}
+                                       rel2 { relative: 0.246 0.66;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.34 0.262;}
+                                       rel2 { relative: 0.66 0.492;}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.item.06.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.262 0.34;}
+                                       rel2 { relative: 0.492 0.66;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.67 0.262;}
+                                       rel2 { relative: 0.99 0.492;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.07.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.508 0.34;}
+                                       rel2 { relative: 0.738 0.66;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.01 0.508;}
+                                       rel2 { relative: 0.33 0.738;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.08.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.754 0.34;}
+                                       rel2 { relative: 0.984 0.66;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.34 0.508;}
+                                       rel2 { relative: 0.66 0.738;}
+                               }
+                       }
+
+
+                       part {
+                               name: "pv.chapter.main.item.09.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.016 0.67;}
+                                       rel2 { relative: 0.246 0.99;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.67 0.508;}
+                                       rel2 { relative: 0.99 0.738;}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.item.10.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.262 0.67;}
+                                       rel2 { relative: 0.492 0.99;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.01 0.754;}
+                                       rel2 { relative: 0.33 0.984;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.11.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.508 0.67;}
+                                       rel2 { relative: 0.738 0.99;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.34 0.754;}
+                                       rel2 { relative: 0.66 0.984;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.12.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: ITEM_TEXT_BG_COLOR;
+                                       rel1 { relative: 0.754 0.67;}
+                                       rel2 { relative: 0.984 0.99;}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.67 0.754;}
+                                       rel2 { relative: 0.99 0.984;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.01";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.01.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.01.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.02";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.02.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.02.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.03";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.03.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.03.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.04";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.04.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.04.bg";}
+                               }
+                       }
+
+
+                       part {
+                               name: "pv.chapter.main.item.05";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.05.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.05.bg";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.item.06";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.06.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.06.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.07";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.07.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.07.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.08";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.08.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.08.bg";}
+                               }
+                       }
+
+
+                       part {
+                               name: "pv.chapter.main.item.09";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.09.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.09.bg";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.item.10";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.10.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.10.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.11";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.11.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.11.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.12";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.12.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.12.bg";}
+                               }
+                       }
+                       //shadow
+                       part {
+                               name: "pv.chapter.main.shadow.01";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.01.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.01.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.02";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.02.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.02.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.03";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.03.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.03.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.04";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.04.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.04.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.05";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.05.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.05.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.06";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.06.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.06.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.07";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.07.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.07.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.08";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.08.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.08.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.09";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.09.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.09.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.10";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.10.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.10.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.11";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.11.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.11.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.shadow.12";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.3; to: "pv.chapter.main.item.12.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.12.bg";}
+                                       image { normal: "chapter/T01_2_thumbnail_shadow.png";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "chapter/T01_2_thumbnail_shadow_h.png";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.01.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.01.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.01.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "01";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.02.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.02.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.02.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "02";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.03.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.03.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.03.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "03";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.04.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.04.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.04.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "04";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.05.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.05.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.05.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "05";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.06.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.06.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.06.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "06";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.07.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.07.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.07.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "07";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.08.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.08.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.08.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "08";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.09.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.09.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.09.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "09";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.10.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.10.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.10.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "10";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.11.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.11.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.11.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "11";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.12.num.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 50 50;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.chapter.main.item.12.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.12.bg";}
+                                       color: ITEM_TEXT_COLOR ;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 30;
+                                               text: "12";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.01.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.01.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.01.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.01.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.01.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.01.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.01.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.01.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.01.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.01.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.01.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.01.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.02.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.02.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.02.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.02.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.02.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.02.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.02.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.02.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.02.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.02.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.02.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.02.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.03.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.03.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.03.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.03.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.03.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.03.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.03.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.03.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.03.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.03.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.03.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.03.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.04.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.04.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.04.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.04.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.04.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.04.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.04.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.04.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.04.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.04.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.04.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.04.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.05.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.05.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.05.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.05.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.05.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.05.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.05.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.05.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.05.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.05.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.05.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.05.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.item.06.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.06.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.06.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.06.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.06.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.06.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.06.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.06.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.06.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.06.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.06.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.06.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+                       part {
+                               name: "pv.chapter.main.item.07.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.07.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.07.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.07.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.07.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.07.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.07.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.07.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.07.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.07.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.07.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.07.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.08.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.08.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.08.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.08.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.08.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.08.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.08.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.08.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.08.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.08.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.08.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.08.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.09.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.09.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.09.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.09.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.09.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.09.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.09.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.09.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.09.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.09.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.09.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.09.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.10.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.10.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.10.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.10.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.10.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.10.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.10.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.10.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.10.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.10.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.10.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.10.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.11.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.11.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.11.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.11.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.11.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.11.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.11.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.11.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.11.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.11.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.11.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.11.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.12.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.12.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.chapter.main.item.12.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.12.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: ITEM_LINE_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.chapter.main.item.12.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.12.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.12.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.12.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.chapter.main.item.12.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+
+                       part {
+                               name: "pv.chapter.main.item.12.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 ITEM_LINE_WIDTH;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.chapter.main.item.12.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.12.bg";}
+                                       color: ITEM_LINE_COLOR;
+                               }
+                       }
+               } /* parts */
+               programs {
+                       program {
+                               name: "portrait_mode";
+                               signal: "signal.pv.chapter.portrait.mode";
+                               source: "*";
+                               action: STATE_SET "portrait" 0.0;
+                               target: "pv.chapter.main.item.01.bg";
+                               target: "pv.chapter.main.item.02.bg";
+                               target: "pv.chapter.main.item.03.bg";
+                               target: "pv.chapter.main.item.04.bg";
+                               target: "pv.chapter.main.item.05.bg";
+                               target: "pv.chapter.main.item.06.bg";
+                               target: "pv.chapter.main.item.07.bg";
+                               target: "pv.chapter.main.item.08.bg";
+                               target: "pv.chapter.main.item.09.bg";
+                               target: "pv.chapter.main.item.10.bg";
+                               target: "pv.chapter.main.item.11.bg";
+                               target: "pv.chapter.main.item.12.bg";
+                               target: "pv.chapter.main.shadow.01";
+                               target: "pv.chapter.main.shadow.02";
+                               target: "pv.chapter.main.shadow.03";
+                               target: "pv.chapter.main.shadow.04";
+                               target: "pv.chapter.main.shadow.05";
+                               target: "pv.chapter.main.shadow.06";
+                               target: "pv.chapter.main.shadow.07";
+                               target: "pv.chapter.main.shadow.08";
+                               target: "pv.chapter.main.shadow.09";
+                               target: "pv.chapter.main.shadow.10";
+                               target: "pv.chapter.main.shadow.11";
+                               target: "pv.chapter.main.shadow.12";
+                       }
+
+                       program {
+                               name: "landscape_mode";
+                               signal: "signal.pv.chapter.landscape.mode";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.chapter.main.item.01.bg";
+                               target: "pv.chapter.main.item.02.bg";
+                               target: "pv.chapter.main.item.03.bg";
+                               target: "pv.chapter.main.item.04.bg";
+                               target: "pv.chapter.main.item.05.bg";
+                               target: "pv.chapter.main.item.06.bg";
+                               target: "pv.chapter.main.item.07.bg";
+                               target: "pv.chapter.main.item.08.bg";
+                               target: "pv.chapter.main.item.09.bg";
+                               target: "pv.chapter.main.item.10.bg";
+                               target: "pv.chapter.main.item.11.bg";
+                               target: "pv.chapter.main.item.12.bg";
+                               target: "pv.chapter.main.shadow.01";
+                               target: "pv.chapter.main.shadow.02";
+                               target: "pv.chapter.main.shadow.03";
+                               target: "pv.chapter.main.shadow.04";
+                               target: "pv.chapter.main.shadow.05";
+                               target: "pv.chapter.main.shadow.06";
+                               target: "pv.chapter.main.shadow.07";
+                               target: "pv.chapter.main.shadow.08";
+                               target: "pv.chapter.main.shadow.09";
+                               target: "pv.chapter.main.shadow.10";
+                               target: "pv.chapter.main.shadow.11";
+                               target: "pv.chapter.main.shadow.12";
+                       }
+               }
+       } /* group */
+
+       group {
+               name: "pv.chapter.main.item";
+               script {
+                  public selected = 0;
+               }
+               parts {
+                       part {
+                               name: "pv.chapter.main.item.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       color: 0 0 0 0;
+                                       CHAPTER_ITEM_SELECT_VI_EFFECT
+                               }
+                       }
+                       part { name: "persp";
+                          type: RECT;
+                          description { state: "default" 0.0;
+                                 min: 32 32;
+                                 max: 32 32;
+                                 fixed: 1 1;
+                                 align: 0.5 0.5;
+                                 color: 0 0 0 0;
+                                 visible: 1;
+                                 perspective {
+                                        zplane: -70;
+                                        focal: 1000;
+                                 }
+                          }
+                       }
+                       part { name: "persp1";
+                          type: RECT;
+                          description { state: "default" 0.0;
+                                 min: 32 32;
+                                 max: 32 32;
+                                 fixed: 1 1;
+                                 align: 0.5 0.5;
+                                 color: 0 0 0 0;
+                                 visible: 1;
+                                 perspective {
+                                        zplane: 0;
+                                        focal: 1000;
+                                 }
+                          }
+                       }
+                       part {
+                               name: "pv.chapter.main.item.image";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       align: 0.5 0.5;
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.chapter.main.item.bg"; }
+                                       rel2 { relative: 1.0 1.0; to: "pv.chapter.main.item.bg"; }
+                                       CHAPTER_ITEM_SELECT_VI_EFFECT
+                               }
+                       }
+               }
+               programs {
+                       CHAPTER_PROGRAM_ITEM_SELECT_VI_EFFECT(
+                          target: "pv.chapter.main.item.bg";
+                          target: "pv.chapter.main.item.image";
+                       )
+                       program {
+                               name: "mouse_down";
+                               signal: "mouse,down,1";
+                               source: "pv.chapter.main.item.bg";
+                               action: SIGNAL_EMIT "down" "*";
+                               script {
+                                  if (!get_int(selected)) {
+                                         set_int(selected, 1);
+                                         run_program(PROGRAM:"vi_pressed");
+                                  }
+                               }
+                       }
+                       program {
+                               name: "mouse_up";
+                               signal: "mouse,up,1";
+                               source: "pv.chapter.main.item.bg";
+                               action: SIGNAL_EMIT "up" "*";
+                               script {
+                                  if (get_int(selected)) {
+                                         set_int(selected, 0);
+                                         run_program(PROGRAM:"vi_zoom_out");
+                                  }
+                               }
+                       }
+               }
+       }
+} /* collections */
+
diff --git a/vp-main/res/edje/pv-colorselector.edc b/vp-main/res/edje/pv-colorselector.edc
new file mode 100755 (executable)
index 0000000..8a3d489
--- /dev/null
@@ -0,0 +1,203 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+collections {
+       group {
+        name: "colorpalette/rect";
+                parts{
+                        part {
+                                name: "bg";
+                                type: RECT;
+                                scale: 1;
+                                description {
+                                        state: "default" 0.0;
+                                        visible: 0;
+                                        min: 0 233;
+                                        max: -1 233;
+                                }
+                        }
+                        part {
+                                name: "top_padding";
+                                type: SPACER;
+                                scale: 1;
+                                description {
+                                        state: "default" 0.0;
+                                        min: 0 33;
+                                        fixed: 0 1;
+                                        rel1.to: "bg";
+                                        rel2 {
+                                                relative: 1.0 0.0;
+                                                to: "bg";
+                                        }
+                                        align: 0.0 0.0;
+                                }
+                        }
+                        part {
+                                name: "rect";
+                                type: SWALLOW;
+                                scale: 1;
+                                description {
+                                        state: "default" 0.0;
+                                        min: 0 168;
+                                        fixed: 0 1;
+                                        rel1 {
+                                                relative: 0.2 1.0;
+                                                to_x: "bg";
+                                                to_y: "top_padding";
+                                        }
+                                        rel2 {
+                                                relative: 0.8 1.0;
+                                                to_x: "bg";
+                                                to_y: "top_padding";
+                                        }
+                                        align: 0.0 0.0;
+                                }
+                        }
+                        part {
+                                name: "bottom_padding";
+                                type: SPACER;
+                                scale: 1;
+                                description {
+                                        state: "default" 0.0;
+                                        min: 0 33;
+                                        fixed: 0 1;
+                                        rel1 {
+                                                relative: 0.0 1.0;
+                                                to_x: "bg";
+                                                to_y: "rect";
+                                        }
+                                        rel2 {
+                                                to_x: "bg";
+                                                to_y: "rect";
+                                        }
+                                        align: 0.0 0.0;
+                                }
+                        }
+                }//end parts
+        } //end group
+
+        group {
+                name: "colorpalette";
+                        parts{
+                                part {
+                                        name: "bg";
+                                        type: SPACER;
+                                        scale: 1;
+                                        description {
+                                                state: "default" 0.0;
+                                                min: 0 274;
+                                                max: -1 274;
+                                        }
+                                        description {
+                                                state: "landscape" 0.0;
+                                                inherit: "default" 0.0;
+                                                min: 0 162;
+                                                max: -1 162;
+                                        }
+                                }
+                                part {
+                                        name: "top_left_padding";
+                                        type: SPACER;
+                                        scale: 1;
+                                        description {
+                                                state: "default" 0.0;
+                                                min: 8 32;
+                                                fixed: 1 1;
+                                                rel1.to: "bg";
+                                                rel2 {
+                                                        to: "bg";
+                                                        relative: 0.0 0.0;
+                                                }
+                                                align: 0.0 0.0;
+                                        }
+                                }
+                                part {
+                                        name: "colorpalette";
+                                        type: SWALLOW;
+                                        scale: 1;
+                                        description {
+                                                state: "default" 0.0;
+                                                fixed: 0 1;
+                                                rel1 {
+                                                        relative: 1.0 1.0;
+                                                        to: "top_left_padding";
+                                                }
+                                                align: 0.0 0.0;
+                                        }
+                                }
+                                part {
+                                        name: "bottom_padding";
+                                        type: SPACER;
+                                        scale: 1;
+                                        description {
+                                                state: "default" 0.0;
+                                                min: 0 44;
+                                                fixed: 0 1;
+                                                rel1 {
+                                                        relative: 0.0 1.0;
+                                                        to_x: "bg";
+                                                        to_y: "colorpalette";
+                                                }
+                                                rel2 {
+                                                        to_x: "bg";
+                                                        to_y: "colorpalette";
+                                                }
+                                                align: 1.0 1.0;
+                                        }
+                                }
+                        }//end parts
+                        programs {
+                                program {
+                                        name: "landscape";
+                                        signal: "landscape";
+                                        source: "";
+                                        action: STATE_SET "landscape" 0.0;
+                                        target: "bg";
+                                }
+                                program {
+                                        name: "portrait";
+                                        signal: "portrait";
+                                        source: "";
+                                        action: STATE_SET "default" 0.0;
+                                        target: "bg";
+                                }
+                        }
+        } //end group
+
+        group {
+                name: "item/colorpalette";
+                images {
+                        image: "00_color_picker_palette_bg.png" COMP;
+                }
+                parts {
+                        part {
+                                name: "color_rect";
+                                type: IMAGE;
+                                scale: 1;
+                                description{
+                                        state: "default" 0.0;
+                                        image.normal: "00_color_picker_palette_bg.png";
+                                        image.border: 13 13 13 13;
+                                        image.border_scale: 1;
+                                }
+                        }
+                }
+        }
+
+} /* collections */
+
diff --git a/vp-main/res/edje/pv-custom-winset.edc b/vp-main/res/edje/pv-custom-winset.edc
new file mode 100755 (executable)
index 0000000..e0022c3
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2020 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 "custom/pv-custom-define.edc"
+#include "custom/pv-custom-image.edc"
+externals {
+          external: "elm";
+          external: "feedback";
+       }
+collections {
+       plugins {
+       plugin {
+               name: "touch_sound_plugin";
+               source: "feedback";
+               param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+               }
+       }
+       #include "custom/pv-custom-layout.edc"
+       #include "custom/pv-custom-naviframe.edc"
+       #include "custom/pv-custom-button.edc"
+       #include "custom/pv-custom-gengrid-item.edc"
+       #include "custom/pv-custom-genlist-item.edc"
+       #include "custom/pv-custom-colorselector.edc"
+}
diff --git a/vp-main/res/edje/pv-gesture.edc b/vp-main/res/edje/pv-gesture.edc
new file mode 100755 (executable)
index 0000000..a425bda
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+collections {
+       group {
+               name: "pv.gesture";
+               parts {
+                       part {
+                               name: "pv.gesture.bg";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: 0 0 0 0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+       }
+}
+
diff --git a/vp-main/res/edje/pv-image.edc b/vp-main/res/edje/pv-image.edc
new file mode 100755 (executable)
index 0000000..0a774b5
--- /dev/null
@@ -0,0 +1,138 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+images
+{
+       /* main */
+       image: "T01_2_video_thumbnail_default.png" COMP;
+       image: "T01_no_video.png" COMP;
+
+       /* multi window */
+       image: "multi/mw_frame.png" COMP;
+       image: "multi/mw_title_bg.#.png" COMP;
+       image: "multi/mw_title_bg_ef.#.png" COMP;
+       image: "multi/mw_title_bg_focus.#.png" COMP;
+       image: "multi/mw_title_bg_focus_ef.#.png" COMP;
+       image: "multi/mw_title_bg_press.png" COMP;
+       image: "multi/mw_title_focus.#.png" COMP;
+       image: "multi/mw_title_focus_bg_press.#.png" COMP;
+       image: "multi/mw_title_divider.png" COMP;
+       image: "multi/Mw_title_icon_press_bg.png" COMP;
+       image: "multi/my_title_icon_delete.png" COMP;
+       image: "multi/my_title_icon_delete_press.png" COMP;
+       image: "multi/my_title_icon_delete_ef_press.png" COMP;
+       image: "multi/my_title_icon_maximize.png" COMP;
+       image: "multi/my_title_icon_maximize_press.png" COMP;
+       image: "multi/my_title_icon_maximize_ef_press.png" COMP;
+       image: "multi/my_title_icon_mimimize.png" COMP;
+       image: "multi/my_title_icon_mimimize_press.png" COMP;
+       image: "multi/my_title_icon_mimimize_ef_press.png" COMP;
+
+       /* genlist */
+       image: "genlist/preview_settings_bg.png" COMP;
+
+       /* main controller */
+       image: "control/T01-2_control_bg.png" COMP;
+
+       /* normal progressbar */
+       image: "progressbar/T01_2_control_progress_handle.png" COMP;
+       image: "progressbar/T01_2_control_progress_handle_press.png" COMP;
+       image: "progressbar/core_progress_bar.#.png" COMP;
+
+       /* volume */
+    image: "volume/T01_2_volume_popup_bg.png" COMP;
+    image: "volume/T01_2_volume_popup_progress_bar.png" COMP;
+    image: "volume/T01_2_volume_popup_progress_bg.png" COMP;
+    image: "volume/T01_2_volume_popup_progress_handle.png" COMP;
+    image: "volume/T01_2_volume_popup_progress_handle_press.png" COMP;
+
+       /* popup */
+       image: "popup/T01-2_volume_popup_icon_brightness.png" COMP;
+       image: "popup/T01-2_volume_popup_icon_volume01.png" COMP;
+       image: "popup/T01-2_volume_popup_icon_volume02.png" COMP;
+       image: "popup/U05_help_popup_sbeam.png" COMP;
+
+
+       /* dmc */
+       image: "dmc/T01_2_device_connect_arrow_01.png" COMP;
+       image: "dmc/T01_2_device_connect_arrow_02.png" COMP;
+       image: "dmc/T01_2_device_connect_arrow_03.png" COMP;
+       image: "dmc/T01_2_device_connect_arrow_04.png" COMP;
+       image: "dmc/T01_2_image_mydevice.png" COMP;
+       image: "dmc/T01_2_image_tv.png" COMP;
+       image: "dmc/T02_player_all_share.png" COMP;
+
+       /* trim */
+       image: "trim/T01_2_trim_left.png" COMP;
+       image: "trim/T01_2_trim_right.png" COMP;
+       image: "trim/T01_2_trim_picker.png" COMP;
+
+       /* tag */
+       image: "tag/T01-1_logo_accuweather.png" COMP;
+       image: "tag/U07_weather_logo.png" COMP;
+
+       /* nearby device */
+       image: "nearby_device/U04_connecting_ani_01.png" COMP;
+       image: "nearby_device/U04_connecting_ani_02.png" COMP;
+       image: "nearby_device/U04_connecting_ani_03.png" COMP;
+       image: "nearby_device/U04_connecting_ani_04.png" COMP;
+
+       /* chapter */
+       image: "chapter/T01_2_thumbnail_shadow.png" COMP;
+       image: "chapter/T01_2_thumbnail_shadow_h.png" COMP;
+
+       /* allshare voice control*/
+       image: "allshare/voice/T01-2_icon_volume_control_minus.png" COMP;
+       image: "allshare/voice/T01-2_icon_volume_control_minus_dim.png" COMP;
+       image: "allshare/voice/T01-2_icon_volume_control_minus_press.png" COMP;
+       image: "allshare/voice/T01-2_icon_volume_control_mute.png" COMP;
+       image: "allshare/voice/T01-2_icon_volume_control_mute_dim.png" COMP;
+       image: "allshare/voice/T01-2_icon_volume_control_mute_press.png" COMP;
+       image: "allshare/voice/T01-2_icon_volume_control_plus.png" COMP;
+       image: "allshare/voice/T01-2_icon_volume_control_plus_dim.png" COMP;
+       image: "allshare/voice/T01-2_icon_volume_control_plus_press.png" COMP;
+       image: "allshare/voice/T01-2_icon_volume_control_bg.png" COMP;
+
+       /*minicontroller*/
+       image: "mini_controller/btn_video_prev_nor.png" COMP;
+       image: "mini_controller/btn_music_prev_press.png" COMP;
+       image: "mini_controller/btn_music_play_nor.png" COMP;
+       image: "mini_controller/btn_music_play_press.png" COMP;
+       image: "mini_controller/btn_music_pause_nor.png" COMP;
+       image: "mini_controller/btn_music_next_nor.png" COMP;
+       image: "mini_controller/btn_music_next_press.png" COMP;
+       image: "mini_controller/btn_close_nor.png" COMP;
+       image: "mini_controller/btn_close_press.png" COMP;
+       image: "mini_controller/music_progress_bg.png" COMP;
+       image: "mini_controller/music_progress.png" COMP;
+
+       /* micro controller */
+       image: "micro_control/T01_2_micro_control_down_01.png" COMP;
+       image: "micro_control/T01_2_micro_control_down_02.png" COMP;
+       image: "micro_control/T01_2_micro_control_down_03.png" COMP;
+       image: "micro_control/T01_2_micro_control_up_01.png" COMP;
+       image: "micro_control/T01_2_micro_control_up_02.png" COMP;
+       image: "micro_control/T01_2_micro_control_up_03.png" COMP;
+
+       /* jump */
+       image: "jump/T01_2_jump_L_01.png" COMP;
+       image: "jump/T01_2_jump_L_02.png" COMP;
+       image: "jump/T01_2_jump_L_03.png" COMP;
+       image: "jump/T01_2_jump_R_01.png" COMP;
+       image: "jump/T01_2_jump_R_02.png" COMP;
+       image: "jump/T01_2_jump_R_03.png" COMP;
+}
+
diff --git a/vp-main/res/edje/pv-lockscreenmini.edc b/vp-main/res/edje/pv-lockscreenmini.edc
new file mode 100755 (executable)
index 0000000..3e9c7d0
--- /dev/null
@@ -0,0 +1,1064 @@
+/*
+ * Copyright (c) 2020 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_STOP_BTN "lock_screen/control_circle_icon_stop.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 40;
+                               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 45;}
+                          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");
+                  }
+               }
+       }
+
+}
+
+group {
+       name: "video-lockscreenmini-live-streaming";
+       images {
+               image: MC_LOCKSCREEN_PLAY COMP;
+               image: MC_MUSIC_STOP_BTN COMP;
+               image: MC_LOCKSCREEN_PLAY_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 40;
+                               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 45;}
+                          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: "left_side_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: "left_side_area"; }
+                               rel2 { relative: 1.0 1.0; to: "left_side_area"; }
+                               min: LOCKSCREEN_BUTTON_SIZE_MIN_MAX;
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                       }
+               }
+
+               MC_LOCKSCREEN_PART_AREA_FROM_LEFT("left_area_padding", "left_area", LOCKSCREEN_INTERVAL, 134)
+
+               MC_LOCKSCREEN_PART_AREA_FROM_LEFT("play_pause_btn_area", "left_area_padding", 126, 134)
+
+               MC_LOCKSCREEN_PART_BUTTON("play_btn", "play_pause_btn_area", MC_MUSIC_STOP_BTN, MC_MUSIC_STOP_BTN, 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)
+       }
+
+       programs {
+               MC_LOCKSCREEN_BUTTON_PROGRAM("play_btn")
+               MC_LOCKSCREEN_BUTTON_VISIVBLE_PROGRAM("play_btn")
+               MC_LOCKSCREEN_BUTTON_PROGRAM("pause_btn")
+               MC_LOCKSCREEN_BUTTON_VISIVBLE_PROGRAM("pause_btn")
+
+               program { name: "set_pause_icon";
+                  signal: "set_pause";
+                  source: "*";
+                  script{
+                               emit("hide_play_btn", "edje");
+                               emit("show_pause_btn", "edje");
+                  }
+               }
+               program { name: "set_play_icon";
+                  signal: "set_play";
+                  source: "*";
+                  script{
+                               emit("show_play_btn", "edje");
+                               emit("hide_pause_btn", "edje");
+                  }
+               }
+       }
+
+}
+
+} // collection
+
diff --git a/vp-main/res/edje/pv-macro.edc b/vp-main/res/edje/pv-macro.edc
new file mode 100755 (executable)
index 0000000..cee0730
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+
+
diff --git a/vp-main/res/edje/pv-minicontroller.edc b/vp-main/res/edje/pv-minicontroller.edc
new file mode 100755 (executable)
index 0000000..2c064ff
--- /dev/null
@@ -0,0 +1,2140 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#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 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 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_STOP_BTN                  "mini_controller/control_circle_icon_stop.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_PLAY_PRESSED                            "mini_controller/btn_video_play_press.png"
+#define MC_IMG_PAUSE_NORMAL                            "mini_controller/btn_video_pause_nor.png"
+#define MC_IMG_PAUSE_PRESSED                   "mini_controller/btn_video_pause_press.png"
+#define MC_IMG_FF_NORMAL                               "mini_controller/btn_video_next_nor.png"
+#define MC_IMG_FF_PRESSED                              "mini_controller/btn_video_next_press.png"
+#define MC_IMG_CLOSE_NORMAL                            "mini_controller/btn_close_nor.png"
+#define MC_IMG_CLOSE_PRESSED                   "mini_controller/btn_close_press.png"
+#define MC_IMG_PROGRESS_BG                             "mini_controller/video_progress_bg.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; \
+       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_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; \
+       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; \
+               image.normal: __pressed; \
+       } \
+} \
+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_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"; \
+                       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_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_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_PROGRAM_BTN_ACTION(__btn, __down_emission, __down_src, __up_emission, __up_src, __clicked_emission, __clicked_src) \
+program { \
+       name: __btn"_after_down"; \
+       signal: "mouse,down,1"; \
+       source: __btn; \
+       script { \
+               set_state(PART:__btn"_bg", "pressed", 0.0); \
+               emit(__down_emission, __down_src); \
+       } \
+} \
+program { \
+       source: __btn; \
+       signal: "mouse,down,1"; \
+       action: PLAY_SAMPLE "button-pressed" 1.0; \
+       after:  __btn"_after_down"; \
+       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_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 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_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";
+                       type : RECT;
+                       scale : 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min : 0 MINI_H_PORT;
+                               fixed: 1 1;
+                               rel1{ relative : 0 0;}
+                               rel2{ relative : 1 1;}
+                               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";
+                               }
+                       }
+               }
+
+               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 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: 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: 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 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 15;
+                               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: "right_area";
+                       type: SPACER;
+                       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;
+                       }
+               }
+
+               part { name: "elm.text";                // title
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                          rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "padding.top"; offset: 38 0;}
+                          rel2 { relative: 0.83 1.0; to_x: "right_area"; to_y: "padding.top";}
+                          min: 143 17;
+                          fixed: 1 1;
+                          align: 0.5 0.0;
+                       }
+               }
+
+               part { name: "close_btn_area";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 1.0; to_x: "padding.right"; to_y: "elm.text";offset: -25 1;}
+                               rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "elm.text"; offset: -25 1;}
+                               min: BUTTON_CLOSE_SIZE_MAX;
+                max: BUTTON_CLOSE_SIZE_MAX;
+                               color: 255 0 0 0;
+                               fixed: 1 1;
+                       }
+               }
+               MC_IMAGE_PART("close_btn","close_btn_area",MC_MUSIC_CLOSE_BTN,61,185,204,255,61,185,204,255,BUTTON_CLOSE_SIZE_MAX)
+                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;
+                               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;
+                       }
+               }
+
+               part { name: "button_area";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0 1; to: "mid_padding";}
+                               rel2 { relative: 1 0; to_x: "elm.text"; to_y: "padding.bottom"; }
+                                visible: 1;
+                       }
+               }
+
+               part { name: "rew_btn_area";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 0.5; to: "button_area"; offset: 10 0;}
+                               rel2 { relative: 0.0 0.5; to: "button_area"; offset: 10 -16;}
+                               min: BUTTON_SIZE_MIN_MAX;
+                               fixed: 1 1;
+                               align: 0.0 0.5;
+                               visible: 0;
+                       }
+               }
+
+               MC_IMAGE_PART("rew_btn_bg","rew_btn_area",MC_MUSIC_SMALL_BTN_BG,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
+               MC_IMAGE_PART("rew_btn_ef","rew_btn_area",MC_MUSIC_SMALL_BTN_EF,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
+               MC_IMAGE_PART("rew_btn","rew_btn_area",MC_MUSIC_PREV_BTN,61,185,204,255,34,104,115,255,FF_BTN_SIZE_MIN_MAX)
+               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");
+
+               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_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_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,down,1";
+                  source: "albumart_image";
+                       script{
+                          emit("albumart_clicked", "edje");
+                  }
+               }
+
+               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: "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);
+                  }
+               }
+
+               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: "close_btn_touch_area";
+                       script{
+                          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: 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{
+                               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{
+                               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";
+                }
+*/
+       }
+
+}
+
+group {
+       name: "video-minicontroller-live-streaming";
+       images {
+               image: MC_MUSIC_LAGRE_BTN_EF COMP;
+               image: MC_MUSIC_LAGRE_BTN_BG COMP;
+               image: MC_MUSIC_PLAY_BTN COMP;
+               image: MC_MUSIC_STOP_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_ALBUM_FRAME       COMP;
+       }
+       parts {
+               part{ name: "bg";
+                       type : RECT;
+                       scale : 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min : 0 MINI_H_PORT;
+                               fixed: 1 1;
+                               rel1{ relative : 0 0;}
+                               rel2{ relative : 1 1;}
+                               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";
+                               }
+                       }
+               }
+
+               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 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: 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: 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 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 15;
+                               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: "right_area";
+                       type: SPACER;
+                       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;
+                       }
+               }
+
+               part { name: "elm.text";                // title
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                          rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "padding.top"; offset: 38 0;}
+                          rel2 { relative: 0.83 1.0; to_x: "right_area"; to_y: "padding.top";}
+                          min: 143 17;
+                          fixed: 1 1;
+                          align: 0.5 0.0;
+                       }
+               }
+
+               part { name: "close_btn_area";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 1.0; to_x: "padding.right"; to_y: "elm.text";offset: -25 1;}
+                               rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "elm.text"; offset: -25 1;}
+                               min: BUTTON_CLOSE_SIZE_MAX;
+                max: BUTTON_CLOSE_SIZE_MAX;
+                               color: 255 0 0 0;
+                               fixed: 1 1;
+                       }
+               }
+               MC_IMAGE_PART("close_btn","close_btn_area",MC_MUSIC_CLOSE_BTN,61,185,204,255,61,185,204,255,BUTTON_CLOSE_SIZE_MAX)
+                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;
+                               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;
+                       }
+               }
+
+               part { name: "button_area";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0 1; to: "mid_padding";}
+                               rel2 { relative: 1 0; to_x: "elm.text"; to_y: "padding.bottom"; }
+                                visible: 1;
+                       }
+               }
+
+               part { name: "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_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_STOP_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");
+       }
+
+       programs {
+               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,down,1";
+                  source: "albumart_image";
+                       script{
+                          emit("albumart_clicked", "edje");
+                  }
+               }
+
+               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: "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: "close_area_btn_clicked";
+                  signal: "mouse,clicked,1";
+                  source: "close_btn_touch_area";
+                       script{
+                          emit("close_btn_clicked", "edje");
+                  }
+               }
+
+               program { name: "set_pause_icon";
+                  signal: "set_pause";
+                  source: "*";
+                  script{
+                               set_state(PART:"play_btn", "hide", 0.0);
+                               set_state(PART:"pause_btn", "default",0.0);
+                               set_state(PART:"play_btn_ef", "focus", 0.0);
+                  }
+               }
+               program { name: "set_play_icon";
+                  signal: "set_play";
+                  source: "*";
+                  script{
+                               set_state(PART:"play_btn", "default", 0.0);
+                               set_state(PART:"pause_btn", "hide",0.0);
+                               set_state(PART:"play_btn_ef", "default", 0.0);
+                  }
+               }
+       }
+}
+
+group {
+       name: "video-minicontroller-ld";
+       images {
+               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";
+                       type : RECT;
+                       scale : 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min : 0 MINI_H;
+                               fixed: 1 1;
+                               rel1{ relative : 0 0;}
+                               rel2{ relative : 1 1;}
+                               color: MC_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 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: 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: 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 BOTTOM_PADDING;
+                               fixed: 0 1;
+                               align: 0 1;
+                       }
+               }
+
+               part { name: "padding_for_albumart.top";
+                       type: SPACER;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel2 { relative: 1.0 0.0; }
+                               min: 0 7;
+                               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 7;
+                               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: "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: 1;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                          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.5 0.0;
+                       }
+               }
+
+               part { name: "mid_padding";
+                       type: RECT;
+                       mouse_events: 0;
+                       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;
+                       }
+               }
+
+               part { name: "close_btn_area";
+                       type: SPACER;
+                       scale: 1;
+                       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;
+                       }
+               }
+               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: 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: RECT;
+                       scale: 1;
+                       mouse_events: 1;
+                       description { state: "default" 0.0;
+                               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_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");
+
+
+
+               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_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);
+                  }
+               }
+
+               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: "albumart_cb";
+                  signal: "mouse,down,1";
+                  source: "albumart_image";
+                       script{
+                          emit("albumart_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: 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{
+                               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{
+                               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";
+                }
+*/
+       }
+}
+
+group {
+       name: "video-minicontroller-live-streaming-ld";
+       images {
+               image: MC_MUSIC_LAGRE_BTN_EF COMP;
+               image: MC_MUSIC_LAGRE_BTN_BG COMP;
+               image: MC_MUSIC_PLAY_BTN COMP;
+               image: MC_MUSIC_STOP_BTN COMP;
+               image: MC_MUSIC_SMALL_BTN_EF COMP;
+               image: MC_MUSIC_SMALL_BTN_BG COMP;
+               image: MC_MUSIC_CLOSE_BTN  COMP;
+       }
+       parts {
+               part{ name: "bg";
+                       type : RECT;
+                       scale : 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min : 0 MINI_H;
+                               fixed: 1 1;
+                               rel1{ relative : 0 0;}
+                               rel2{ relative : 1 1;}
+                               color: MC_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 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: 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: 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 BOTTOM_PADDING;
+                               fixed: 0 1;
+                               align: 0 1;
+                       }
+               }
+
+               part { name: "padding_for_albumart.top";
+                       type: SPACER;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel2 { relative: 1.0 0.0; }
+                               min: 0 7;
+                               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 7;
+                               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: "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: 1;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                          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.5 0.0;
+                       }
+               }
+
+               part { name: "mid_padding";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description
+                       {
+                               state: "default" 0.0;
+                               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;
+                       }
+               }
+
+               part { name: "close_btn_area";
+                       type: SPACER;
+                       scale: 1;
+                       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;
+                       }
+               }
+               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: 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: "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_STOP_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");
+       }
+
+       programs {
+
+               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: "albumart_cb";
+                  signal: "mouse,down,1";
+                  source: "albumart_image";
+                       script{
+                          emit("albumart_clicked", "edje");
+                  }
+               }
+
+               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{
+                               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{
+                               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);
+                  }
+               }
+       }
+}
+
+} // collection
diff --git a/vp-main/res/edje/pv-multi-main.edc b/vp-main/res/edje/pv-multi-main.edc
new file mode 100755 (executable)
index 0000000..6b46902
--- /dev/null
@@ -0,0 +1,1036 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define FONT_REGULAR_TYPE              "Tizen:style=Regular"
+
+#define FONT_COLOR                             255 255 255 255
+
+collections {
+       group {
+               name: "pv.multi.main";
+
+               parts {
+                       part {
+                               name: "pv.multi.bg";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       fixed: 1 1;
+                                       min: 3+60+342+3 3+60+342+3;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 255;
+                               }
+                       }
+                       part {
+                               name: "pv.multi.rect.left.padding";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       fixed: 1 0;
+                                       min: 3 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.multi.bg"; }
+                                       rel2 { relative: 0.0 1.0; to: "pv.multi.bg"; }
+                                       color: 255 0 0 255;
+                               }
+                       }
+                       part {
+                               name: "pv.multi.rect.right.padding";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       fixed: 1 0;
+                                       min: 3 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.multi.bg"; }
+                                       rel2 { relative: 1.0 1.0; to: "pv.multi.bg"; }
+                                       color: 255 0 0 255;
+                               }
+                       }
+                       part {
+                               name: "pv.multi.rect.top.padding";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       fixed: 0 1;
+                                       min: 0 3;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.multi.bg"; }
+                                       rel2 { relative: 1.0 0.0; to: "pv.multi.bg"; }
+                                       color: 255 0 0 255;
+                               }
+                       }
+                       part {
+                               name: "pv.multi.rect.bottom.padding";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       fixed: 0 1;
+                                       min: 0 3;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.multi.bg"; }
+                                       rel2 { relative: 1.0 1.0; to: "pv.multi.bg"; }
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.frame";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.0; to: "pv.multi.bg"; }
+                                       rel2 { relative: 1.0 1.0; to: "pv.multi.bg"; }
+                                       image { normal: "multi/mw_frame.png"; border: 73 73 73 73;}
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.frame.title";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 60;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.multi.rect"; }
+                                       rel2 { relative: 1.0 0.0; to: "pv.multi.rect"; }
+                                       image { normal: "multi/mw_title_bg_focus.#.png"; }
+                                       color: 21 108 148 255;
+                               }
+                               description {
+                                       state: "focus_out" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "multi/mw_title_bg.#.png"; }
+                                       color: 21 108 148 255;
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "multi/mw_title_focus_bg_press.#.png"; }
+                                       color: 17 89 122 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.frame.title.ef";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 60;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.multi.rect"; }
+                                       rel2 { relative: 1.0 0.0; to: "pv.multi.rect"; }
+                                       image { normal: "multi/mw_title_bg_focus_ef.#.png"; }
+                               }
+                               description {
+                                       state: "focus_out" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "multi/mw_title_bg_ef.#.png"; }
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "multi/mw_title_focus.#.png"; }
+                                       color: 36 186 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 1.0; to_x : "pv.multi.rect.left.padding"; to_y : "pv.multi.rect.top.padding"; }
+                                       rel2 { relative: 0.0 0.0; to_x : "pv.multi.rect.right.padding"; to_y : "pv.multi.rect.bottom.padding"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "pv.multi.image.buffer";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 1.0; to_x : "pv.multi.rect.left.padding"; to_y: "pv.multi.frame.title"; }
+                                       rel2 { relative: 0.0 0.0; to_x : "pv.multi.rect.right.padding"; to_y : "pv.multi.rect.bottom.padding"; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.videosink";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 1.0; to_x : "pv.multi.rect.left.padding"; to_y: "pv.multi.frame.title"; }
+                                       rel2 { relative: 0.0 0.0; to_x : "pv.multi.rect.right.padding"; to_y : "pv.multi.rect.bottom.padding"; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.close.icon.bg";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 94 58;
+                                       max: 94 58;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to_x: "pv.multi.rect"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 1.0 0.0; to_x: "pv.multi.rect"; to_y : "pv.multi.frame.title";}
+                                       image { normal: "multi/Mw_title_icon_press_bg.png"; }
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.close.icon";
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 54 54;
+                                       max: 54 54;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.multi.close.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 1.0 1.0; to_x: "pv.multi.close.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       image { normal: "multi/my_title_icon_delete.png"; }
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image { normal: "multi/my_title_icon_delete_press.png"; }
+                                       color: 21 108 148 77;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.close.icon.ef";
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 54 54;
+                                       max: 54 54;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.multi.close.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 1.0 1.0; to_x: "pv.multi.close.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       image { normal: "multi/my_title_icon_delete_ef_press.png"; }
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.close";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 94 60;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 1.0 0.5; to_x: "pv.multi.rect"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 1.0 0.5; to_x: "pv.multi.rect"; to_y : "pv.multi.frame.title";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.close.line";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 2 42;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x: "pv.multi.close"; to_y: "pv.multi.frame.title"; }
+                                       rel2 { relative: 0.0 0.5; to_x: "pv.multi.close"; to_y: "pv.multi.frame.title"; }
+                                       image { normal: "multi/mw_title_divider.png"; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.full.size.icon.bg";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 94 58;
+                                       max: 94 58;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.multi.close.line"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 0.0 0.0; to_x: "pv.multi.close.line"; to_y : "pv.multi.frame.title";}
+                                       image { normal: "multi/Mw_title_icon_press_bg.png"; }
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.full.size.icon";
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 54 54;
+                                       max: 54 54;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.multi.full.size.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 1.0 1.0; to_x: "pv.multi.full.size.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       image { normal: "multi/my_title_icon_maximize.png"; }
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image { normal: "multi/my_title_icon_maximize_press.png"; }
+                                       color: 21 108 148 77;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.full.size.icon.ef";
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 54 54;
+                                       max: 54 54;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.multi.full.size.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 1.0 1.0; to_x: "pv.multi.full.size.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       image { normal: "multi/my_title_icon_maximize_ef_press.png"; }
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.full.size";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 94 60;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x: "pv.multi.close.line"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 0.0 0.5; to_x: "pv.multi.close.line"; to_y : "pv.multi.frame.title";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.full.size.line";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 2 42;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x: "pv.multi.full.size"; to_y: "pv.multi.frame.title"; }
+                                       rel2 { relative: 0.0 0.5; to_x: "pv.multi.full.size"; to_y: "pv.multi.frame.title"; }
+                                       image { normal: "multi/mw_title_divider.png"; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.minimize.icon.bg";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 94 58;
+                                       max: 94 58;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.multi.full.size.line"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 0.0 0.0; to_x: "pv.multi.full.size.line"; to_y : "pv.multi.frame.title";}
+                                       image { normal: "multi/Mw_title_icon_press_bg.png"; }
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.minimize.icon";
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 54 54;
+                                       max: 54 54;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.multi.minimize.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 1.0 1.0; to_x: "pv.multi.minimize.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       image { normal: "multi/my_title_icon_mimimize.png"; }
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image { normal: "multi/my_title_icon_mimimize_press.png"; }
+                                       color: 21 108 148 77;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.minimize.icon.ef";
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 54 54;
+                                       max: 54 54;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.multi.minimize.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 1.0 1.0; to_x: "pv.multi.minimize.icon.bg"; to_y : "pv.multi.frame.title";}
+                                       image { normal: "multi/my_title_icon_mimimize_ef_press.png"; }
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.minimize";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 94 60;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x: "pv.multi.full.size.line"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 0.0 0.5; to_x: "pv.multi.full.size.line"; to_y : "pv.multi.frame.title";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.title.txt.left.padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 0;
+                                       fixed: 0 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.multi.rect";}
+                                       rel2 { relative: 0.0 1.0; to_x: "pv.multi.rect";}
+                                       color: 0 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.title.txt.right.padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 3 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.multi.minimize";}
+                                       rel2 { relative: 0.0 1.0; to_x: "pv.multi.minimize";}
+                                       color: 0 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.title.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 60;
+                                       fixed: 0 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.5; to_x : "pv.multi.title.txt.left.padding"; to_y : "pv.multi.frame.title";}
+                                       rel2 { relative: 0.0 0.5; to_x : "pv.multi.title.txt.right.padding"; to_y : "pv.multi.frame.title";}
+                                       color: FONT_COLOR;
+                                       text {
+                                               font: FONT_REGULAR_TYPE;
+                                               size: 40;
+                                               text: "";
+                                               align: 0.0 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.event";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.multi.videosink";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.multi.videosink";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.main.subtitle";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.multi.rect";  }
+                                       rel2 { relative: 1.0 0.0; to_x: "pv.multi.rect";  to_y : "pv.multi.control.rect"; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.control.bottom.padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 1.0;
+                                       min: 0 16;
+                                       fixed: 0 1;
+                                       rel1 { relative: 0.0 1.0; to: "pv.multi.rect";  }
+                                       rel2 { relative: 1.0 1.0; to: "pv.multi.rect";  }
+                                       color: 255 0 0 0;
+                               }
+                       }
+
+
+                       part {
+                               name: "pv.multi.control.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 312 68;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.5 0.0; to_y : pv.multi.control.bottom.padding;}
+                                       rel2 { relative: 0.5 0.0; to_y : pv.multi.control.bottom.padding;}
+                                       color: 128 128 128 128;
+                               }
+
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 312 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.control.rew";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 104 68;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to : "pv.multi.control.rect";}
+                                       rel2 { relative: 0.0 1.0; to : "pv.multi.control.rect";}
+                                       color: 255 0 0 255;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "pv.multi.control.play";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 104 68;
+                                       fixed: 1 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.5 0.0; to : "pv.multi.control.rect";}
+                                       rel2 { relative: 0.5 1.0; to : "pv.multi.control.rect";}
+                                       color: 0 255 0 255;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.control.play.focus";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to : "pv.multi.control.play";}
+                                       rel2 { relative: 1.0 1.0; to : "pv.multi.control.play";}
+                                       color: 0 255 0 255;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+
+                       part {
+                               name: "pv.multi.control.ff";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 104 68;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to : "pv.multi.control.rect";}
+                                       rel2 { relative: 1.0 1.0; to : "pv.multi.control.rect";}
+                                       color: 255 0 0 255;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+/*
+                       part {
+                               name: "pv.multi.control.rew.line";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       max: 2 42;
+                                       min: 2 42;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.5; to_x : "pv.multi.control.rew"; to_y : "pv.multi.control.rect";}
+                                       rel2 { relative: 1.0 0.5; to_x : "pv.multi.control.rew"; to_y : "pv.multi.control.rect";}
+                                       color: 0 0 0 255;
+                               }
+
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.control.ff.line";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       max: 2 42;
+                                       min: 2 42;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x : "pv.multi.control.ff"; to_y : "pv.multi.control.rect";}
+                                       rel2 { relative: 0.0 0.5; to_x : "pv.multi.control.ff"; to_y : "pv.multi.control.rect";}
+                                       color: 0 0 0 255;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+*/
+                       part {
+                               name: "pv.multi.main.loading";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.2; to: "pv.multi.rect"; }
+                                       rel2 { relative: 1.0 1.0; to: "pv.multi.rect"; }
+                               }
+                       }
+                       part {
+                               name: "pv.multi.resize.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 36 36;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to: "pv.multi.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.multi.bg";}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "pv.multi.resize";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 36 36;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 0.0; to: "pv.multi.resize.rect";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.multi.resize.rect";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.nocontents";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       fixed: 1 1;
+                                       min: 176 174;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to: "pv.multi.rect"; }
+                                       rel2 { relative: 0.5 0.5; to: "pv.multi.rect"; }
+                                       image { normal: "T01_no_video.png";}
+                                       color: 255 255 255 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "pv.multi.nocontents.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 40;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 1.0; to_y : pv.multi.nocontents;}
+                                       rel2 { relative: 1.0 1.0; to_y : pv.multi.nocontents;}
+                                       color: FONT_COLOR;
+                                       text {
+                                               font: FONT_REGULAR_TYPE;
+                                               size: 40;
+                                               text: "No Videos";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "pv.multi.main.speed.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 160 40;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.5 0.0; to_y : "pv.multi.control.rect"; }
+                                       rel2 { relative: 0.5 0.0; to_y : "pv.multi.control.rect"; }
+                                       color:  0 0 0 102;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.main.speed.txt";
+                               type: TEXT;
+                               effect: OUTLINE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to : "pv.multi.main.speed.rect";}
+                                       rel2 { relative: 1.0 1.0; to : "pv.multi.main.speed.rect";}
+                                       color: FONT_COLOR;
+                                       text {
+                                               font: FONT_REGULAR_TYPE;
+                                               size: 32;
+                                               text: "";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+               } /* parts */
+               programs {
+                       program {
+                               signal: "signal.pv.multi.show.control";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.control.rect", "default", 0.0);
+                                       set_state(PART:"pv.multi.control.play", "default", 0.0);
+                                       set_state(PART:"pv.multi.control.play.focus", "default", 0.0);
+                                       set_state(PART:"pv.multi.control.rew", "default", 0.0);
+                                       set_state(PART:"pv.multi.control.ff", "default", 0.0);
+                                       //set_state(PART:"pv.multi.control.rew.line", "default", 0.0);
+                                       //set_state(PART:"pv.multi.control.ff.line", "default", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.multi.hide.control";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.control.rect", "hide", 0.0);
+                                       set_state(PART:"pv.multi.control.play", "hide", 0.0);
+                                       set_state(PART:"pv.multi.control.play.focus", "hide", 0.0);
+                                       set_state(PART:"pv.multi.control.rew", "hide", 0.0);
+                                       set_state(PART:"pv.multi.control.ff", "hide", 0.0);
+                                       //set_state(PART:"pv.multi.control.rew.line", "hide", 0.0);
+                                       //set_state(PART:"pv.multi.control.ff.line", "hide", 0.0);
+                               }
+                       }
+
+                       program {
+                               signal: "signal.pv.multi.show.nocontents";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.nocontents", "show", 0.0);
+                                       set_state(PART:"pv.multi.nocontents.txt", "show", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.multi.hide.nocontents";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.nocontents", "default", 0.0);
+                                       set_state(PART:"pv.multi.nocontents.txt", "default", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.multi.focus.in.control";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.frame.title", "default", 0.0);
+                                       set_state(PART:"pv.multi.frame.title.ef", "default", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.multi.focus.out.control";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.frame.title", "focus_out", 0.0);
+                                       set_state(PART:"pv.multi.frame.title.ef", "focus_out", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.multi.close.pressed";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.close.icon.bg", "pressed", 0.0);
+                                       set_state(PART:"pv.multi.close.icon.ef", "pressed", 0.0);
+                                       set_state(PART:"pv.multi.frame.title", "pressed", 0.0);
+                                       set_state(PART:"pv.multi.frame.title.ef", "pressed", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.multi.close.released";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.close.icon.bg", "default", 0.0);
+                                       set_state(PART:"pv.multi.close.icon.ef", "pressed", 0.0);
+                                       set_state(PART:"pv.multi.frame.title", "default", 0.0);
+                                       set_state(PART:"pv.multi.frame.title.ef", "default", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.multi.fullsize.pressed";
+                               source: "*";
+                               script {
+                               set_state(PART:"pv.multi.full.size.icon.bg", "pressed", 0.0);
+                               set_state(PART:"pv.multi.full.size.icon.ef", "pressed", 0.0);
+                               set_state(PART:"pv.multi.frame.title", "pressed", 0.0);
+                               set_state(PART:"pv.multi.frame.title.ef", "pressed", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.multi.fullsize.released";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.full.size.icon.bg", "default", 0.0);
+                                       set_state(PART:"pv.multi.full.size.icon.ef", "default", 0.0);
+                                       set_state(PART:"pv.multi.frame.title", "default", 0.0);
+                                       set_state(PART:"pv.multi.frame.title.ef", "default", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.multi.minimize.pressed";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.minimize.icon.bg", "pressed", 0.0);
+                                       set_state(PART:"pv.multi.minimize.icon.ef", "pressed", 0.0);
+                                       set_state(PART:"pv.multi.frame.title", "pressed", 0.0);
+                                       set_state(PART:"pv.multi.frame.title.ef", "pressed", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.multi.minimize.released";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.multi.minimize.icon.bg", "default", 0.0);
+                                       set_state(PART:"pv.multi.minimize.icon.ef", "default", 0.0);
+                                       set_state(PART:"pv.multi.frame.title", "default", 0.0);
+                                       set_state(PART:"pv.multi.frame.title.ef", "default", 0.0);
+                               }
+                       }
+                       program {
+                               name: "speed_on";
+                               signal: "signal.pv.multi.main.speed.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.multi.main.speed.rect";
+                               target: "pv.multi.main.speed.txt";
+                       }
+
+                       program {
+                               name: "speed_off";
+                               signal: "signal.pv.multi.main.speed.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.multi.main.speed.rect";
+                               target: "pv.multi.main.speed.txt";
+                       }
+               } /* programs */
+       }       /* group */
+} /* collections */
+
diff --git a/vp-main/res/edje/pv-normal-control.edc b/vp-main/res/edje/pv-normal-control.edc
new file mode 100755 (executable)
index 0000000..83d93c2
--- /dev/null
@@ -0,0 +1,559 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define PV_NORMAL_CONTROL_BG           "control/T01-2_control_bg.png"
+#define PV_NORMAL_CONTROL_LANDSCAPE_BG         "control/T01-2_control_bg_h.png"
+
+externals {
+          external: "elm";
+          external: "feedback";
+       }
+
+collections {
+
+#define PV_PART_DESCRIPTION_HIDE \
+                       description { \
+                               state: "hide" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 0; \
+                       } \
+
+#define PV_PART_DESCRIPTION_SHOW \
+                       description { \
+                               state: "show" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 1; \
+                       } \
+
+       plugins {
+               plugin {
+                       name: "touch_sound_plugin";
+                       source: "feedback";
+                       param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+                       }
+               }
+
+       group {
+               name: "pv.normal.control";
+               images {
+                       image: PV_NORMAL_CONTROL_BG COMP;
+                       image: PV_NORMAL_CONTROL_LANDSCAPE_BG COMP;
+               }
+
+               parts {
+                       part {
+                               name: "pv.normal.control.bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.control.bottom.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 12;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to_y : "pv.normal.control.bg"; }
+                                       rel2 { relative: 1.0 1.0; to_y : "pv.normal.control.bg"; }
+                                       color: 0 255 0 50;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 6;
+                               }
+                       }
+                       part {
+                               name: "pv.normal.control.bg.rect";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to: "pv.normal.control.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.normal.control.bg";}
+                                       color: 255 255 255 255;
+                               }
+                       }
+                       part {
+                               name: "pv.normal.control.function.top";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 0;
+                                       max: -1 0;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;  to_y: "pv.normal.control.bg";}
+                                       rel2 { relative: 1.0 0.0;  to_y: "pv.normal.control.bg";}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "pv.normal.control.function";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 14;
+                                       max: -1 14;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_y: "pv.normal.control.function.top"; }
+                                       rel2 { relative: 1.0 1.0; to_y: "pv.normal.control.function.top"; }
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 14;
+                                       max: -1 14;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.5;  to_x:  "pv.normal.control.toolbar.volume"; to_y: "pv.normal.control.toolbar.rect";}
+                                       rel2 { relative: 0.0 0.5;  to_x:  "pv.normal.control.toolbar.screensize"; to_y: "pv.normal.control.toolbar.rect";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.control.progress";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 46;//(26+11+12+34);
+                                       max: -1 46;//(26+11+12+34);
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_y: "pv.normal.control.function";}
+                                       rel2 { relative: 1.0 1.0; to_y: "pv.normal.control.function";}
+                               }
+
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 46;
+                                       rel1 { relative: 0.0 0.0; to_y: "pv.normal.control.bg.rect";}
+                                       rel2 { relative: 1.0 0.0; to_y: "pv.normal.control.bg.rect";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.control.toolbar.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 70;//(12+70+26+11+12+(34/2));
+                                       max: -1 70;//(12+70+26+11+12+(34/2));
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_y: "pv.normal.control.bg";}
+                                       rel2 { relative: 1.0 0.0; to_y: "pv.normal.control.bg";}
+                                       color: 255 0 0 125;
+                               }
+                       }
+                       part {
+                               name: "pv.normal.control.toolbar.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 80;
+                                       max: -1 80;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.6; to_y: "pv.normal.control.toolbar.top";}
+                                       rel2 { relative: 1.0 0.6; to_y: "pv.normal.control.toolbar.top";}
+                                       color: 255 0 0 255;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       visible: 0;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_y: "pv.normal.control.toolbar.top";}
+                                       rel2 { relative: 1.0 1.0; to_y: "pv.normal.control.toolbar.top";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.control.toolbar.left.padding";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 30 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.normal.control.toolbar.rect";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.normal.control.toolbar.rect";}
+                                       color: 0 0 0 0;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 30 0;
+                               }
+                       }
+                       part {
+                               name: "pv.normal.control.toolbar.right.padding";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 30 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.normal.control.toolbar.rect";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.normal.control.toolbar.rect";}
+                                       color: 0 0 0 0;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 30 0;
+                               }
+                       }
+                       part {
+                               name: "pv.normal.control.toolbar.volume";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 46 46;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.5; to_x: "pv.normal.control.toolbar.left.padding"; to_y: "pv.normal.control.toolbar.rect"; }
+                                       rel2 { relative: 1.0 0.5; to_x: "pv.normal.control.toolbar.left.padding"; to_y: "pv.normal.control.toolbar.rect"; }
+                                       color: 255 255 255 255;
+                               }
+                               PV_PART_DESCRIPTION_HIDE
+                               PV_PART_DESCRIPTION_SHOW
+                       }
+
+                       part {
+                               name: "pv.normal.control.toolbar.screensize";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 60 60;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.05 0.45; to_x: "pv.normal.control.bg"; to_y: "pv.normal.control.toolbar.rect"; offset: +18 0;}
+                                       rel2 { relative: 0.05 0.45; to_x: "pv.normal.control.bg"; to_y: "pv.normal.control.toolbar.rect"; offset: +78 0;}
+                                       color: 255 255 255 255;
+                               }
+                               PV_PART_DESCRIPTION_HIDE
+                               PV_PART_DESCRIPTION_SHOW
+                       }
+
+                       part {
+                               name: "pv.normal.control.toolbar.popupPlayer";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 60 60;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.95 0.55; to_x: "pv.normal.control.bg"; to_y: "pv.normal.control.toolbar.rect"; offset: -18 0;}
+                                       rel2 { relative: 0.95 0.55; to_x: "pv.normal.control.bg"; to_y: "pv.normal.control.toolbar.rect"; offset: -78 0;}
+                                       color: 255 255 255 255;
+                               }
+                               PV_PART_DESCRIPTION_HIDE
+                               PV_PART_DESCRIPTION_SHOW
+                       }
+
+                       part {
+                               name: "pv.normal.control.play";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 80 80;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.0; to_y: "pv.normal.control.toolbar.rect";}
+                                       rel2 { relative: 0.5 1.0; to_y: "pv.normal.control.toolbar.rect";}
+                                       color: 255 255 255 255;
+                               }
+                               PV_PART_DESCRIPTION_HIDE
+                               PV_PART_DESCRIPTION_SHOW
+                       }
+
+                       part {
+                               name: "pv.normal.control.play.focus";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.0; to : "pv.normal.control.play";}
+                                       rel2 { relative: 1.0 1.0; to : "pv.normal.control.play";}
+                                       color: 255 255 255 255;
+                               }
+                               PV_PART_DESCRIPTION_HIDE
+                               PV_PART_DESCRIPTION_SHOW
+                       }
+
+                       part {
+                               name: "pv.normal.control.play.left.padding";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 16 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.normal.control.play"; to_y: "pv.normal.control.toolbar.rect";}
+                                       rel2 { relative: 0.0 1.0; to_x: "pv.normal.control.play"; to_y: "pv.normal.control.toolbar.rect";}
+                                       color: 255 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.control.play.right.padding";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 16 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.0; to_x: "pv.normal.control.play"; to_y: "pv.normal.control.toolbar.rect";}
+                                       rel2 { relative: 1.0 1.0; to_x: "pv.normal.control.play"; to_y: "pv.normal.control.toolbar.rect";}
+                                       color: 255 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.control.rew";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 110 110;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x: "pv.normal.control.play.left.padding"; to_y: "pv.normal.control.toolbar.rect";}
+                                       rel2 { relative: 0.0 0.5; to_x: "pv.normal.control.play.left.padding"; to_y: "pv.normal.control.toolbar.rect";}
+                                       color: 255 255 255 255;
+                               }
+                               PV_PART_DESCRIPTION_HIDE
+                               PV_PART_DESCRIPTION_SHOW
+                       }
+
+                       part {
+                               name: "pv.normal.control.ff";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 110 110;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.5; to_x: "pv.normal.control.play.right.padding"; to_y: "pv.normal.control.toolbar.rect";}
+                                       rel2 { relative: 1.0 0.5; to_x: "pv.normal.control.play.right.padding"; to_y: "pv.normal.control.toolbar.rect";}
+                                       color: 255 255 255 255;
+                               }
+                               PV_PART_DESCRIPTION_HIDE
+                               PV_PART_DESCRIPTION_SHOW
+                       }
+
+                       part {
+                               name: "pv.normal.control.bookmark";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 (10+88+32+18);
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 0.0; to_y: "pv.normal.control.bg";}
+                                       rel2 { relative: 1.0 0.0; to_y: "pv.normal.control.bg";}
+                               }
+                       }
+
+               } /* parts */
+
+               programs {
+                       program {
+                               name: "portrait_mode";
+                               signal: "signal.pv.normal.control.portrait.mode";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.control.toolbar.left.padding";
+                               target: "pv.normal.control.toolbar.right.padding";
+                               target: "pv.normal.control.bottom.padding";
+                               target: "pv.normal.control.progress";
+                               target: "pv.normal.control.function.top";
+                               target: "pv.normal.control.function";
+                               target: "pv.normal.control.toolbar.rect";
+                       }
+
+                       program {
+                               name: "landscape_mode";
+                               signal: "signal.pv.normal.control.landscape.mode";
+                               source: "*";
+                               action: STATE_SET "landscape" 0.0;
+                               target: "pv.normal.control.toolbar.left.padding";
+                               target: "pv.normal.control.toolbar.right.padding";
+                               target: "pv.normal.control.bottom.padding";
+                               target: "pv.normal.control.progress";
+                               target: "pv.normal.control.function.top";
+                               target: "pv.normal.control.function";
+                               target: "pv.normal.control.toolbar.rect";
+                       }
+
+                       program {
+                               name: "hide_volume_screensize";
+                               signal: "signal.pv.normal.control.hide.v.s";
+                               source: "*";
+                               action: STATE_SET "hide" 0.0;
+                               target: "pv.normal.control.toolbar.volume";
+                               target: "pv.normal.control.toolbar.screensize";
+                       }
+
+                       program {
+                               name: "hide_volume_screensize_ff_rev";
+                               signal: "signal.pv.normal.control.hide.v.s.f.r";
+                               source: "*";
+                               action: STATE_SET "hide" 0.0;
+                               target: "pv.normal.control.toolbar.volume";
+                               target: "pv.normal.control.toolbar.screensize";
+                               target: "pv.normal.control.rew";
+                               target: "pv.normal.control.ff";
+                       }
+
+                       program {
+                               name: "hide_all_button";
+                               signal: "signal.pv.normal.control.hide.v.s.f.r.p";
+                               source: "*";
+                               action: STATE_SET "hide" 0.0;
+                               target: "pv.normal.control.toolbar.volume";
+                               target: "pv.normal.control.toolbar.screensize";
+                               target: "pv.normal.control.rew";
+                               target: "pv.normal.control.ff";
+                               target: "pv.normal.control.play";
+                       }
+
+                       program {
+                               name: "show_play_button";
+                               signal: "signal.pv.normal.control.show.p";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.control.play";
+                       }
+
+                       program {
+                               name: "show_volume_screensize_ff_rev";
+                               signal: "signal.pv.normal.control.show.r.f.p";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.control.rew";
+                               target: "pv.normal.control.ff";
+                               target: "pv.normal.control.play";
+                       }
+
+                       program {
+                               name: "show_all_button";
+                               signal: "signal.pv.normal.control.show.v.s.f.r.p";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.control.toolbar.volume";
+                               target: "pv.normal.control.toolbar.screensize";
+                               target: "pv.normal.control.rew";
+                               target: "pv.normal.control.ff";
+                               target: "pv.normal.control.play";
+                       }
+                       program{
+                               name: "touch_snd";
+                               signal: "mouse,clicked,1";
+                               source: "pv.normal.control.ff";
+                               action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+                       program{
+                               name: "touch_snd1";
+                               signal: "mouse,clicked,1";
+                               source: "pv.normal.control.rew";
+                               action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+                       program{
+                               name: "touch_snd2";
+                               signal: "mouse,clicked,1";
+                               source: "pv.normal.control.toolbar.screensize";
+                               action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+                       program{
+                               name: "touch_snd3";
+                               signal: "mouse,clicked,1";
+                               source: "pv.normal.control.play";
+                               action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+               } /* programs */
+       }       /* group */
+} /* collections */
diff --git a/vp-main/res/edje/pv-normal-function.edc b/vp-main/res/edje/pv-normal-function.edc
new file mode 100755 (executable)
index 0000000..9aea3a8
--- /dev/null
@@ -0,0 +1,218 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+#define FUNCTION_BUTTON_MIN_MAX_VALUE          70 70
+
+collections {
+
+#define PV_PART_DESCRIPTION_HIDE \
+                               description { \
+                                       state: "hide" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       visible: 0; \
+                               } \
+
+#define PV_PART_DESCRIPTION_SHOW \
+                               description { \
+                                       state: "show" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       visible: 1; \
+                               } \
+
+       group {
+               name: "pv.normal.function";
+               parts {
+                       part {
+                               name: "pv.normal.function.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 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;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.function.left.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 26 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.normal.function.bg";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.normal.function.bg";}
+                                       color: 0 255 0 255;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 42 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.function.right.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 26 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.normal.function.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.normal.function.bg";}
+                                       color: 0 255 0 255;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 42 0;
+                               }
+                       }
+                       part {
+                               name: "pv.normal.function.center.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 42 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.normal.function.button.3";}
+                                       rel2 { relative: 0.0 1.0; to_x: "pv.normal.function.button.3";}
+                                       color: 0 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.function.button.1";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: FUNCTION_BUTTON_MIN_MAX_VALUE;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.5; to_x: "pv.normal.function.left.padding"; to_y: "pv.normal.function.bg";}
+                                       rel2 { relative: 1.0 0.5; to_x: "pv.normal.function.left.padding"; to_y: "pv.normal.function.bg";}
+                                       color: 0 0 255 255;
+                               }
+                               PV_PART_DESCRIPTION_HIDE
+                               PV_PART_DESCRIPTION_SHOW
+                       }
+
+                       part {
+                               name: "pv.normal.function.button.2";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: FUNCTION_BUTTON_MIN_MAX_VALUE;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to: "pv.normal.function.bg";}
+                                       rel2 { relative: 0.5 0.5; to: "pv.normal.function.bg";}
+                                       color: 0 0 255 255;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to: "pv.normal.function.center.padding";}
+                                       rel2 { relative: 0.0 0.5; to: "pv.normal.function.center.padding";}
+                               }
+                               PV_PART_DESCRIPTION_HIDE
+                               PV_PART_DESCRIPTION_SHOW
+                       }
+
+                       part {
+                               name: "pv.normal.function.button.3";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: FUNCTION_BUTTON_MIN_MAX_VALUE;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x: "pv.normal.function.right.padding"; to_y: "pv.normal.function.bg";}
+                                       rel2 { relative: 0.0 0.5; to_x: "pv.normal.function.right.padding"; to_y: "pv.normal.function.bg";}
+                                       color: 0 0 255 255;
+                               }
+                               PV_PART_DESCRIPTION_HIDE
+                               PV_PART_DESCRIPTION_SHOW
+                       }
+               } /* parts */
+
+               programs {
+                       program {
+                               name: "portrait_mode";
+                               signal: "signal.pv.normal.function.portrait.mode";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.function.right.padding";
+                               target: "pv.normal.function.left.padding";
+                               target: "pv.normal.function.button.2";
+                       }
+
+                       program {
+                               name: "landscape_mode";
+                               signal: "signal.pv.normal.function.landscape.mode";
+                               source: "*";
+                               action: STATE_SET "landscape" 0.0;
+                               target: "pv.normal.function.right.padding";
+                               target: "pv.normal.function.left.padding";
+                               target: "pv.normal.function.button.2";
+                       }
+
+                       program {
+                               name: "hide_button.1.3";
+                               signal: "signal.pv.normal.function.hide.1.3";
+                               source: "*";
+                               action: STATE_SET "hide" 0.0;
+                               target: "pv.normal.function.button.1";
+                               target: "pv.normal.function.button.3";
+                       }
+
+                       program {
+                               name: "show_button.1.3";
+                               signal: "signal.pv.normal.function.show.1.3";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.function.button.1";
+                               target: "pv.normal.function.button.3";
+                       }
+
+               } /* programs */
+       } /* group */
+} /* collections */
diff --git a/vp-main/res/edje/pv-normal-main.edc b/vp-main/res/edje/pv-normal-main.edc
new file mode 100755 (executable)
index 0000000..1c219c0
--- /dev/null
@@ -0,0 +1,1737 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define FONT_BOLD_TYPE                 "Tizen:style=Bold"
+#define FONT_COLOR                             255 255 255 255
+
+#define MICRO_CONTROL_IMG_UP_1         "micro_control/T01_2_micro_control_up_01.png"
+#define MICRO_CONTROL_IMG_UP_2         "micro_control/T01_2_micro_control_up_02.png"
+#define MICRO_CONTROL_IMG_UP_3         "micro_control/T01_2_micro_control_up_03.png"
+#define MICRO_CONTROL_IMG_BG           "micro_control/T01-2_Control_detail_text_bg.png"
+#define JUMP_IMG_L_1                   "jump/T01_2_jump_L_01.png"
+#define JUMP_IMG_L_2                   "jump/T01_2_jump_L_02.png"
+#define JUMP_IMG_L_3                   "jump/T01_2_jump_L_03.png"
+#define JUMP_IMG_R_1                   "jump/T01_2_jump_R_01.png"
+#define JUMP_IMG_R_2                   "jump/T01_2_jump_R_02.png"
+#define JUMP_IMG_R_3                   "jump/T01_2_jump_R_03.png"
+#define LOCK_SCREEN_ICON_SIZE          46
+
+#define SUBTITLE_K_FEATURE
+
+externals {
+          external: "elm";
+          external: "feedback";
+       }
+
+collections {
+       plugins {
+               plugin {
+                       name: "touch_sound_plugin";
+                       source: "feedback";
+                       param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+                       }
+               }
+       group {
+               name: "pv.normal.main";
+
+               parts {
+                       part {
+                               name: "pv.normal.main.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 8 8 8 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.no.contents.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 8 8 8 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.lockscreen.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 20 14 ;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 0.0; offset: -24 -10;}
+                                       rel2 { relative: 1.0 0.0; offset: -24 -10;}
+                                       color:  255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.image.buffer.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       fixed: 0 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 0;
+                               }
+                               description {
+                                       state: "portrait.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       fixed: 0 1;
+                                       //min: 0 800;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                               description {
+                                       state: "landscape.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       fixed: 0 1;
+                                       //min: 0 480;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+                       // _NATIVE_BUFFER_SYNC
+                       part {
+                               name: "pv.normal.videosink";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to: "pv.normal.main.image.buffer.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.normal.main.image.buffer.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.image.buffer";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to: "pv.normal.main.image.buffer.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.normal.main.image.buffer.bg";}
+                               }
+                       }
+                       part {
+                               name: "pv.normal.main.no.contents";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 270 214;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.0; to_y: "pv.normal.main.no.contents.bottom";}
+                                       rel2 { relative: 0.5 0.0; to_y: "pv.normal.main.no.contents.bottom";}
+                                       image { normal: "dmc/T02_player_all_share.png"; }
+                                       color:  255 255 255 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.no.contents.bottom";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.5 0.5;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 0.5; }
+                                       rel2 { relative: 1.0 0.5; }
+                               }
+                               description {
+                                       state: "portrait.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 640;
+                                       align: 0.5 1.0;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                               description {
+                                       state: "landscape.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 360;
+                                       align: 0.5 1.0;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.lockscreen.text.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 16 56 ;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to_x: "pv.normal.main.lockscreen";}
+                                       rel2 { relative: 0.0 0.0;}
+                                       color:  255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.lockscreen.text";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 56;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 1.0; to_x: "pv.normal.main.lockscreen.text.rect"; to_y: "pv.normal.main.lockscreen.padding"; }
+                                       rel2 { relative: 1.0 0.0; }
+                                       color: 255 255 255 255;
+                                       text {
+                                               font: FONT_BOLD_TYPE;
+                                               size: 32;
+                                               text: "Press hold key to unlock";
+                                               align: 0.0 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.allshare.dmc";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 414;
+                                       fixed: 0 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 0.0 0.4; }
+                                       rel2 { relative: 1.0 0.4; }
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+
+                       part {
+                               name: "pv.normal.top.control";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 0;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 0.0; }
+                                       color: 0 0 0 0;
+                               }
+                               description {
+                                       state: "portrait.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 113;
+                               }
+                               description {
+                                       state: "landscape.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 113;
+                               }
+                       }
+
+                       part {
+                               name: "pv.allshare.voice.control";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 0;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                       }
+                                       rel2 {
+                                               relative: 1.0 0.0;
+                                       }
+                               }
+
+                               description {
+                                       state: "show" 0.0;
+                                       visible: 1;
+                                       min: 0 63;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                       }
+                                       rel2 {
+                                               relative: 1.0 0.0;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.zoom.guide.top";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 1280-144-210;    // total height - zoom guide height - top margin height(portrait)
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       color: 0 255 0 255;
+                               }
+                               description {
+                                       state: "portrait.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 1280-144-210;    // total height - zoom guide height - top margin height(portrait)
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                               description {
+                                       state: "landscape.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 720-144-104;     // total height - zoom guide height - top margin height(landscape)
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.zoom.guide.left";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 16 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 0.0 1.0; }
+                                       color: 0 0 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.zoom.guide.rect";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 256 144;
+                                       fixed: 1 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 1.0 0.0; to_x: "pv.normal.main.zoom.guide.left"; to_y: "pv.normal.main.zoom.guide.top"; }
+                                       rel2 { relative: 1.0 0.0; to_x: "pv.normal.main.zoom.guide.left"; to_y: "pv.normal.main.zoom.guide.top"; }
+                               }
+                       }
+
+#ifndef SUBTITLE_K_FEATURE
+                       part {
+                               name: "pv.normal.main.subtitle.top";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 0;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                               description {
+                                       state: "portrait.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 290;
+                               }
+                               description {
+                                       state: "landscape.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 190;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.subtitle.bottom";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_y : "pv.normal.main.subtitle.top";  }
+                                       rel2 { relative: 1.0 0.0; to_y : "pv.normal.main.subtitle.top"; }
+                                       color: 0 255 0 128;
+                               }
+                               description {
+                                       state: "bookmark.on" 0.0;
+                                       inherit: "default" 0.0;
+                                       align: 0.0 1.0;
+                                       fixed: 0 1;
+                                       min: 0 146;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.subtitle";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 0.0; to_y : "pv.normal.main.subtitle.bottom"; }
+                               }
+                       }
+#endif
+                       part {
+                               name: "pv.normal.main.control";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 0;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                               description {
+                                       state: "portrait.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 110;
+                               }
+                               description {
+                                       state: "landscape.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 100;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.lockscreen";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: LOCK_SCREEN_ICON_SIZE LOCK_SCREEN_ICON_SIZE;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.normal.main.lockscreen.padding"; }
+                                       rel2 { relative: 0.0 1.0; to: "pv.normal.main.lockscreen.padding"; }
+                                       color: 255 0 0 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.rotate.icon";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 60 60;
+                                       fixed: 1 1;
+                                       align: 0.0 1.0;
+                                       visible: 0;
+                                       rel1 { relative: 0.0 -0.02; to_y : "pv.normal.main.control";}
+                                       rel2 { relative: 0.1 -0.02; to_y : "pv.normal.main.control";}
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.volume.icon";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 60 60;
+                                       fixed: 1 1;
+                                       align: 0.0 1.0;
+                                       visible: 0;
+                                       rel1 { relative: 1.0 -0.02; to_y : "pv.normal.main.control"; offset: -134 0;}
+                                       rel2 { relative: 1.0 -0.02; to_y : "pv.normal.main.control"; offset: -194 0;}
+                               }
+                               description {
+                                       state: "portrait.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "landscape.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.speed.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 80;
+                                       fixed: 1 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 0.0; to_y : "pv.normal.main.control"; }
+                                       rel2 { relative: 1.0 0.0; to_y : "pv.normal.main.control"; }
+                                       color:  0 0 0 102;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.speed.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to : "pv.normal.main.speed.rect";}
+                                       rel2 { relative: 1.0 1.0; to : "pv.normal.main.speed.rect";}
+                                       color: FONT_COLOR;
+                                       text {
+                                               font: FONT_BOLD_TYPE;
+                                               size: 48;
+                                               text: "";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.playingspeed.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               repeat_events : 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 100 25;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.4 0.0; to_y : "pv.normal.main.control"; offset : 0 -20; }
+                                       rel2 { relative: 0.6 0.0; to_y : "pv.normal.main.control"; offset : 0 -20; }
+                                       color:  0 0 0 102;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.playingspeed.txt";
+                               type: TEXT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to : "pv.normal.main.playingspeed.rect";}
+                                       rel2 { relative: 1.0 1.0; to : "pv.normal.main.playingspeed.rect";}
+                                       color: FONT_COLOR;
+                                       text {
+                                               font: FONT_BOLD_TYPE;
+                                               size: 24;
+                                               text: "";
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.screenshot.portrait.bottom";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 200;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.screenshot.landscape.bottom";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 100;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.screenshot.portrait.line";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 0;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.5 0.0; to_y: "pv.normal.main.screenshot.portrait.bottom";}
+                                       rel2 { relative: 0.5 0.0; to_y: "pv.normal.main.screenshot.portrait.bottom";}
+                                       color: 255 255 255 255;
+
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       min: 324 244;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.screenshot.portrait.rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 0;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to: "pv.normal.main.screenshot.portrait.line";}
+                                       rel2 { relative: 0.5 0.5; to: "pv.normal.main.screenshot.portrait.line";}
+                                       color: 0 0 0 255;
+
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       min: 320 240;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.screenshot.landscape.line";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 0;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.7 0.0; to_y: "pv.normal.main.screenshot.landscape.bottom";}
+                                       rel2 { relative: 0.7 0.0; to_y: "pv.normal.main.screenshot.landscape.bottom";}
+                                       color: 255 255 255 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       min: 324 244;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.screenshot.landscape.rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 0;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to: "pv.normal.main.screenshot.landscape.line";}
+                                       rel2 { relative: 0.5 0.5; to: "pv.normal.main.screenshot.landscape.line";}
+                                       color: 0 0 0 255;
+                               }
+
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       min: 320 240;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.screenshot.portrait";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 320 240;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.normal.main.screenshot.portrait.rect";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.normal.main.screenshot.portrait.rect";}
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.screenshot.landscape";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 320 240;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.normal.main.screenshot.landscape.rect";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.normal.main.screenshot.landscape.rect";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.error.image";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 130 130;
+                                       max: 130 130;
+                                       visible: 1;
+                                       fixed: 1 1;
+                                       color: 255 255 255 255;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to_y: "pv.normal.main.bg"; }
+                                       rel2 { relative: 1.0 0.0; to_y: "pv.normal.main.control"; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.loading.top";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 0;
+                                       fixed: 0 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.5; }
+                                       rel2 { relative: 1.0 0.5; }
+                               }
+                               description {
+                                       state: "portrait.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 400;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+
+                               }
+                               description {
+                                       state: "landscape.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 240;
+                                       fixed: 0 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.loading.bottom";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_y : "pv.normal.main.loading.top";  }
+                                       rel2 { relative: 1.0 0.0; to_y : "pv.normal.main.loading.top"; }
+                                       color: 0 255 0 128;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.loading";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 0.0; to_y : "pv.normal.main.loading.bottom"; }
+                                       rel2 { relative: 1.0 0.0; to_y : "pv.normal.main.loading.bottom"; }
+                               }
+                       }
+
+                       /*subtitle area*/
+                       part {
+                               name: "pv.normal.main.subtitle";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.5 1.0;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.1 0.0; }
+                                       rel2 { relative: 0.9 0.0; to_y: "pv.normal.main.control";}
+                               }
+                               description {
+                                       state: "portrait.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.1 0.0; }
+                                       rel2 { relative: 0.9 0.0; to_y: "pv.normal.main.volume.icon";}
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "landscape.show" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 0.1 0.0; }
+                                       rel2 { relative: 0.9 0.0; to_y: "pv.normal.main.volume.icon";}
+                                       visible: 1;
+                               }
+                       }
+               } /* parts */
+
+               programs {
+                       program {
+                               name: "video_off";
+                               signal: "signal.pv.normal.main.video.off";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.main.bg";
+                       }
+                       program {
+                               name: "video_on";
+                               signal: "signal.pv.normal.main.video.on";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.bg";
+                       }
+
+                       program {
+                               name: "control_portait_show";
+                               signal: "signal.pv.normal.main.portrait.show";
+                               source: "*";
+                               action: STATE_SET "portrait.show" 0.0;
+                               target: "pv.normal.main.control";
+                               target: "pv.normal.top.control";
+#ifndef SUBTITLE_K_FEATURE
+                               target: "pv.normal.main.subtitle.top";
+#endif
+                               transition: LINEAR 0.2;
+                               after: "control_show_finished";
+                       }
+
+                       program {
+                               name: "control_landscape_show";
+                               signal: "signal.pv.normal.main.landscape.show";
+                               source: "*";
+                               action: STATE_SET "landscape.show" 0.0;
+                               target: "pv.normal.main.control";
+                               target: "pv.normal.top.control";
+#ifdef SUBTITLE_K_FEATURE
+                               target: "pv.normal.main.subtitle";
+#endif
+                               transition: LINEAR 0.2;
+                               after: "control_show_finished";
+                       }
+
+                       program {
+                               name: "no_effect_portait_show";
+                               signal: "signal.pv.normal.main.no.effect.portrait.show";
+                               source: "*";
+                               action: STATE_SET "portrait.show" 0.0;
+                               target: "pv.normal.main.loading.top";
+                               target: "pv.normal.main.zoom.guide.top";
+                               target: "pv.normal.main.no.contents.bottom";
+                               target: "pv.normal.main.image.buffer.bg";
+                       }
+
+                       program {
+                               name: "no_effect_landscape_show";
+                               signal: "signal.pv.normal.main.no.effect.landscape.show";
+                               source: "*";
+                               action: STATE_SET "landscape.show" 0.0;
+                               target: "pv.normal.main.loading.top";
+                               target: "pv.normal.main.zoom.guide.top";
+                               target: "pv.normal.main.no.contents.bottom";
+                               target: "pv.normal.main.image.buffer.bg";
+                       }
+
+                       program {
+                               name: "no_effect_control_hide";
+                               signal : "signal.pv.normal.main.no.effect.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.control";
+                               target: "pv.normal.top.control";
+                               target: "pv.normal.main.image.buffer";
+                               transition: LINEAR 0.0;
+                               after: "control_hide_finished";
+                       }
+
+                       program {
+                               name: "control_hide";
+                               signal: "signal.pv.normal.main.control.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.control";
+                               target: "pv.normal.top.control";
+                               transition: LINEAR 0.2;
+                               after: "control_hide_finished";
+                       }
+#ifdef SUBTITLE_K_FEATURE
+                       program {
+                               name: "subtitle_portrait_show";
+                               signal: "signal.pv.normal.main.portrait.subtitle";
+                               source: "*";
+                               action: STATE_SET "portrait.show" 0.0;
+                               target: "pv.normal.main.subtitle";
+                       }
+                       program {
+                               name: "subtitle_landscape_show";
+                               signal: "signal.pv.subtitle.main.landscape.show";
+                               source: "*";
+                               action: STATE_SET "landscape.show" 0.0;
+                               target: "pv.normal.main.subtitle";
+                       }
+                       program {
+                               name: "subtitle_normal_hide";
+                               signal: "signal.pv.normal.main.subtitle.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.subtitle";
+                       }
+#endif
+                       program {
+                               name: "voice_control_show";
+                               signal: "signal.pv.allshare.voice.control.show";
+                               source: "pv.allshare.voice.control";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.allshare.voice.control";
+                               transition: LINEAR 0.6;
+                       }
+
+                       program {
+                               name: "voice_control_hide";
+                               signal: "signal.pv.allshare.voice.control.hide";
+                               source: "pv.allshare.voice.control";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.allshare.voice.control";
+                               transition: LINEAR 0.6;
+                       }
+
+                       program {
+                               name: "no_effect_voice_control_hide";
+                               signal: "signal.pv.allshare.noeffect.voice.control.hide";
+                               source: "pv.allshare.voice.control";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.allshare.voice.control";
+                               transition: LINEAR 0.0;
+                       }
+                       program {
+                               name: "rotate_icon_show";
+                               signal: "signal.pv.normal.main.rotate.icon.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.main.rotate.icon";
+                       }
+                       program {
+                               name: "volume_icon_show";
+                               signal: "signal.pv.normal.main.volume.icon.portrait.show";
+                               source: "*";
+                               action: STATE_SET "portrait.show" 0.0;
+                               target: "pv.normal.main.volume.icon";
+                               //target: "pv.normal.main.subtitle";
+                       }
+                       program {
+                               name: "volume_icon_show_landscape";
+                               signal: "signal.pv.normal.main.volume.icon.landscape.show";
+                               source: "*";
+                               action: STATE_SET "landscape.show" 0.0;
+                               target: "pv.normal.main.volume.icon";
+                               //target: "pv.normal.main.subtitle";
+                       }
+                       program {
+                               name: "rotate_icon_hide";
+                               signal: "signal.pv.normal.main.rotate.icon.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.rotate.icon";
+                       }
+                       program {
+                               name: "volume_icon_hide";
+                               signal: "signal.pv.normal.main.volume.icon.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.volume.icon";
+                               //target: "pv.normal.main.subtitle";
+                       }
+                       program{
+                               name: "touch_snd";
+                               signal: "mouse,clicked,1";
+                               source: "pv.normal.main.rotate.icon";
+                               action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+                       program{
+                               name: "touch_snd1";
+                               signal: "mouse,clicked,1";
+                               source: "pv.normal.main.volume.icon";
+                               action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+                       program{
+                               name: "touch_snd2";
+                               signal: "mouse,clicked,1";
+                               source: "pv.normal.main.lockscreen";
+                               action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+                       program {
+                               name: "speed_on";
+                               signal: "signal.pv.normal.main.speed.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.main.speed.rect";
+                               target: "pv.normal.main.speed.txt";
+                       }
+
+                       program {
+                               name: "speed_off";
+                               signal: "signal.pv.normal.main.speed.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.speed.rect";
+                               target: "pv.normal.main.speed.txt";
+                       }
+
+                       program {
+                               name: "speed_changed";
+                               signal: "signal.pv.normal.main.playingspeed.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.main.playingspeed.rect";
+                               target: "pv.normal.main.playingspeed.txt";
+                       }
+
+                       program {
+                               name: "speed_normal";
+                               signal: "signal.pv.normal.main.playingspeed.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.playingspeed.rect";
+                               target: "pv.normal.main.playingspeed.txt";
+                       }
+                       program {
+                               name:   "clicked_event";
+                               signal: "mouse,clicked,1";
+                               source: "pv.normal.main.playingspeed.rect";
+                               source: "pv.normal.main.playingspeed.txt";
+                               action: SIGNAL_EMIT "elm,action,click" "";
+                       }
+
+                       program {
+                               name: "screen_portrait_on";
+                               signal: "signal.pv.normal.main.screenshot.portrait.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.main.screenshot.portrait.line";
+                               target: "pv.normal.main.screenshot.portrait.rect";
+                       }
+
+                       program {
+                               name: "screen_landscape_on";
+                               signal: "signal.pv.normal.main.screenshot.landscape.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.main.screenshot.landscape.line";
+                               target: "pv.normal.main.screenshot.landscape.rect";
+                       }
+
+                       program {
+                               name: "screen_mode_off";
+                               signal: "signal.pv.normal.main.screenshot.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.screenshot.landscape.line";
+                               target: "pv.normal.main.screenshot.landscape.rect";
+                               target: "pv.normal.main.screenshot.portrait.line";
+                               target: "pv.normal.main.screenshot.portrait.rect";
+                       }
+#ifndef SUBTITLE_K_FEATURE
+                       program {
+                               name: "bookmark_on";
+                               signal: "signal.pv.normal.main.bookmark.on";
+                               source: "*";
+                               action: STATE_SET "bookmark.on" 0.0;
+                               target: "pv.normal.main.subtitle.bottom";
+                       }
+
+                       program {
+                               name: "bookmark_off";
+                               signal: "signal.pv.normal.main.bookmark.off";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.subtitle.bottom";
+                       }
+#endif
+                       program {
+                               name: "control_show_finished";
+                               action: SIGNAL_EMIT "signal.pv.normal.main.control.show.finish" "*";
+                       }
+
+                       program {
+                               name: "control_hide_finished";
+                               action: SIGNAL_EMIT "signal.pv.normal.main.control.hide.finish" "*";
+                       }
+
+                       program {
+                               signal: "signal.pv.normal.lockscreen.show";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.normal.main.lockscreen", "show", 0.0);
+                                       set_state(PART:"pv.normal.main.lockscreen.text", "show", 0.0);
+
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.normal.lockscreen.hide";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.normal.main.lockscreen", "default", 0.0);
+                                       set_state(PART:"pv.normal.main.lockscreen.text", "default", 0.0);
+                               }
+                       }
+
+                       program {
+                               signal: "signal.pv.normal.no.contents.show";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.normal.main.no.contents", "show", 0.0);
+                                       set_state(PART:"pv.normal.main.no.contents.rect", "show", 0.0);
+                               }
+                       }
+                       program {
+                               signal: "signal.pv.normal.no.contents.hide";
+                               source: "*";
+                               script {
+                                       set_state(PART:"pv.normal.main.no.contents", "default", 0.0);
+                                       set_state(PART:"pv.normal.main.no.contents.rect", "default", 0.0);
+                               }
+                       }
+               } /* programs */
+
+       }       /* group */
+
+       group {
+               name: "pv.normal.main.microseek.text";
+               images {
+                       image: MICRO_CONTROL_IMG_BG COMP;
+               }
+               parts {
+                       part {
+                               name: "pv.normal.main.microseek.text.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 1 46;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 255 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.microseek.speed.text.bg";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.normal.main.microseek.text.bg"; to_y: "pv.normal.main.microseek.speed.text.left.padding";}
+                                       rel2 { relative: 1.0 1.0; to_x: "pv.normal.main.microseek.text.bg"; to_y: "pv.normal.main.microseek.speed.text.left.padding";}
+                                       image { normal: MICRO_CONTROL_IMG_BG; border: 9 9 0 0; }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.microseek.speed.text.left.padding";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 16 46;
+                                       align: 0.0 0.0;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 0.0; to : "pv.normal.main.microseek.text.bg";}
+                                       rel2 { relative: 0.0 46/(46+6+70); to : "pv.normal.main.microseek.text.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.microseek.speed.text";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 { relative: 1.0 0.0; to : "pv.normal.main.microseek.speed.text.left.padding";}
+                                       rel2 { relative: 0.0 1.0; to : "pv.normal.main.microseek.speed.text.right.padding";}
+                                       color: 255 255 255 255;
+                                       text {
+                                               min: 1 0;
+                                               size: 32;
+                                               text: "";
+                                       }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+
+                       part {
+                               name: "pv.normal.main.microseek.speed.text.right.padding";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 16 46;
+                                       align: 1.0 0.0;
+                                       fixed: 1 1;
+                                       rel1 { relative: 1.0 0.0; to : "pv.normal.main.microseek.text.bg";}
+                                       rel2 { relative: 1.0 46/(46+6+70); to : "pv.normal.main.microseek.text.bg";}
+                               }
+                       }
+               }       /* parts */
+               programs {
+                       program {
+                               name: "microseek_text_show";
+                               signal: "signal.pv.normal.main.microseek.text.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.main.microseek.speed.text";
+                               target: "pv.normal.main.microseek.speed.text.bg";
+                       }
+                       program {
+                               name: "microseek_text_hide";
+                               signal: "signal.pv.normal.main.microseek.text.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.microseek.speed.text";
+                               target: "pv.normal.main.microseek.speed.text.bg";
+                       }
+               }       /* programs */
+       }       /* group */
+
+       group {
+               name: "pv.normal.main.microseek.image";
+               images {
+                       image: MICRO_CONTROL_IMG_UP_1 COMP;
+                       image: MICRO_CONTROL_IMG_UP_2 COMP;
+                       image: MICRO_CONTROL_IMG_UP_3 COMP;
+               }
+               parts {
+                       part {
+                               name: "pv.normal.main.microseek.image.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 46 70;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 255 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.microseek.image.1";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 46 24;
+                                       max: 46 24;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to : "pv.normal.main.microseek.image.bg";}
+                                       rel2 { relative: 1.0 0.0; to : "pv.normal.main.microseek.image.bg";}
+                                       image.normal: MICRO_CONTROL_IMG_UP_1;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.microseek.image.2";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 46 24;
+                                       max: 46 24;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_x : "pv.normal.main.microseek.image.bg"; to_y : "pv.normal.main.microseek.image.1"; offset: 0 -1;}
+                                       rel2 { relative: 1.0 1.0; to_x : "pv.normal.main.microseek.image.bg"; to_y : "pv.normal.main.microseek.image.1"; offset: 0 -1;}
+                                       image.normal: MICRO_CONTROL_IMG_UP_2;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.microseek.image.3";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 46 24;
+                                       max: 46 24;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_x : "pv.normal.main.microseek.image.bg"; to_y : "pv.normal.main.microseek.image.2"; offset: 0 -1;}
+                                       rel2 { relative: 1.0 1.0; to_x : "pv.normal.main.microseek.image.bg"; to_y : "pv.normal.main.microseek.image.2"; offset: 0 -1;}
+                                       image.normal: MICRO_CONTROL_IMG_UP_3;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+               }       /* parts */
+               programs {
+                       program {
+                               name: "microseek_image_show";
+                               signal: "signal.pv.normal.main.microseek.image.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.normal.main.microseek.image.1";
+                               target: "pv.normal.main.microseek.image.2";
+                               target: "pv.normal.main.microseek.image.3";
+                       }
+                       program {
+                               name: "microseek_image_hide";
+                               signal: "signal.pv.normal.main.microseek.image.hide";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.normal.main.microseek.image.1";
+                               target: "pv.normal.main.microseek.image.2";
+                               target: "pv.normal.main.microseek.image.3";
+                       }
+               }       /* programs */
+       }       /* group */
+
+#ifdef FLICK_JUMP
+       group {
+               name: "pv.normal.main.flickjump.seek";
+               images {
+                       image: JUMP_IMG_L_1 COMP;
+                       image: JUMP_IMG_L_2 COMP;
+                       image: JUMP_IMG_L_3 COMP;
+                       image: JUMP_IMG_R_1 COMP;
+                       image: JUMP_IMG_R_2 COMP;
+                       image: JUMP_IMG_R_3 COMP;
+               }
+               parts {
+                       part {
+                               name: "pv.normal.main.flickjump.seek.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 80 60;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 255 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.main.flickjump.seek.img";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 0.0; to : "pv.normal.main.flickjump.seek.bg"; }
+                                       rel2 { relative: 1.0 1.0; to : "pv.normal.main.flickjump.seek.bg"; }
+                                       image.normal: JUMP_IMG_L_3;
+                               }
+                               description {
+                                       state: "ff_default" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                                       image.normal: JUMP_IMG_L_3;
+                               }
+                               description {
+                                       state: "rew_default" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                                       image.normal: JUMP_IMG_R_3;
+                               }
+                               description {
+                                       state: "ff.jump3" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image.normal: JUMP_IMG_L_3;
+                               }
+                               description {
+                                       state: "ff.jump2" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image.normal: JUMP_IMG_L_2;
+                               }
+                               description {
+                                       state: "ff.jump1" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image.normal: JUMP_IMG_L_1;
+                               }
+                               description {
+                                       state: "rew.jump3" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image.normal: JUMP_IMG_R_3;
+                               }
+                               description {
+                                       state: "rew.jump3" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image.normal: JUMP_IMG_R_3;
+                               }
+                               description {
+                                       state: "rew.jump2" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image.normal: JUMP_IMG_R_2;
+                               }
+                               description {
+                                       state: "rew.jump1" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image.normal: JUMP_IMG_R_1;
+                               }
+                       }
+                       part {
+                               name: "pv.normal.main.flickjump.seek.rewtext";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 88 34;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 ((60-34)/2)/60; to_x : "pv.normal.main.flickjump.seek.img"; to_y : "pv.normal.main.flickjump.seek.bg";}
+                                       rel2 { relative: 0.0 (60-((60-34)/2))/60; to_x : "pv.normal.main.flickjump.seek.img"; to_y : "pv.normal.main.flickjump.seek.bg";}
+                                       color: 255 255 255 255;
+                                       text {
+                                               min: 1 0;
+                                               size: 32;
+                                               text: "";
+                                       }
+                               }
+                               description {
+                                       state: "rew_default" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "pv.normal.main.flickjump.seek.fftext";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 88 34;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 ((60-34)/2)/60; to_x : "pv.normal.main.flickjump.seek.img"; to_y : "pv.normal.main.flickjump.seek.bg";}
+                                       rel2 { relative: 1.0 (60-((60-34)/2))/60; to_x : "pv.normal.main.flickjump.seek.img"; to_y : "pv.normal.main.flickjump.seek.bg";}
+                                       color: 255 255 255 255;
+                                       text {
+                                               min: 1 0;
+                                               size: 32;
+                                               text: "5 sec";
+                                       }
+                               }
+                               description {
+                                       state: "ff_default" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+               }       /* parts */
+               programs {
+                       program {
+                               name: "jump.ff.step3";
+                               signal: "signal.jump.ff.step3";
+                               source: "*";
+                               action: STATE_SET "ff.jump3" 0.0;
+                               target: "pv.normal.main.flickjump.seek.img";
+                               transition: LINEAR 0.2;
+                               after: "jump.ff.step2";
+                       }
+                       program {
+                               name: "jump.ff.step2";
+                               signal: "signal.jump.ff.step2";
+                               source: "*";
+                               action: STATE_SET "ff.jump2" 0.0;
+                               target: "pv.normal.main.flickjump.seek.img";
+                               transition: LINEAR 0.2;
+                               after: "jump.ff.step1";
+                       }
+                       program {
+                               name: "jump.ff.step1";
+                               signal: "signal.jump.ff.step1";
+                               source: "*";
+                               action: STATE_SET "ff.jump1" 0.0;
+                               target: "pv.normal.main.flickjump.seek.img";
+                               transition: LINEAR 0.2;
+                               after: "jump.ff.end";
+                       }
+                       program {
+                               name: "jump.ff.end";
+                               signal: "signal.jump.ff.end";
+                               source: "*";
+                               action: STATE_SET "ff_default" 0.0;
+                               target: "pv.normal.main.flickjump.seek.img";
+                               script{
+                                       emit("ff_animation_done", "edje");
+                               }
+                       }
+                       program {
+                               name: "pv.normal.main.flickjump.ff";
+                               signal: "signal.pv.normal.main.flickjump.ff";
+                               source: "*";
+                               action: STATE_SET "ff_default" 0.0;
+                               target: "pv.normal.main.flickjump.seek.img";
+                               target: "pv.normal.main.flickjump.seek.fftext";
+                               after: "jump.ff.step3";
+                       }
+
+                       program {
+                               name: "jump.rew.step3";
+                               signal: "signal.jump.rew.step3";
+                               source: "*";
+                               action: STATE_SET "rew.jump3" 0.0;
+                               target: "pv.normal.main.flickjump.seek.img";
+                               transition: LINEAR 0.2;
+                               after: "jump.rew.step2";
+                       }
+                       program {
+                               name: "jump.rew.step2";
+                               signal: "signal.jump.rew.step2";
+                               source: "*";
+                               action: STATE_SET "rew.jump2" 0.0;
+                               target: "pv.normal.main.flickjump.seek.img";
+                               transition: LINEAR 0.2;
+                               after: "jump.rew.step1";
+                       }
+                       program {
+                               name: "jump.rew.step1";
+                               signal: "signal.jump.rew.step1";
+                               source: "*";
+                               action: STATE_SET "rew.jump1" 0.0;
+                               target: "pv.normal.main.flickjump.seek.img";
+                               transition: LINEAR 0.2;
+                               after: "jump.rew.end";
+                       }
+                       program {
+                               name: "jump.rew.end";
+                               signal: "signal.jump.rew.end";
+                               source: "*";
+                               action: STATE_SET "rew_default" 0.0;
+                               target: "pv.normal.main.flickjump.seek.img";
+                               script{
+                                       emit("rew_animation_done", "edje");
+                               }
+                       }
+                       program {
+                               name: "pv.normal.main.flickjump.rew";
+                               signal: "signal.pv.normal.main.flickjump.rew";
+                               source: "*";
+                               action: STATE_SET "rew_default" 0.0;
+                               target: "pv.normal.main.flickjump.seek.img";
+                               target: "pv.normal.main.flickjump.seek.rewtext";
+                               after: "jump.rew.step3";
+                       }
+               }       /* programs */
+       }       /* group */
+#endif
+
+} /* collections */
+
diff --git a/vp-main/res/edje/pv-normal-top-control.edc b/vp-main/res/edje/pv-normal-top-control.edc
new file mode 100755 (executable)
index 0000000..1d71349
--- /dev/null
@@ -0,0 +1,135 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+collections {
+       group {
+               name: "pv.normal.top";
+
+               parts {
+                       part {
+                               name: "pv.normal.top.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.top.capture";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 63 63;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.5 1.0; to_y: "pv.normal.top.bg";}
+                                       rel2 { relative: 0.5 1.0; to_y: "pv.normal.top.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.top.capture.right.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 30 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to_x : "pv.normal.top.capture";}
+                                       rel2 { relative: 1.0 1.0; to_x : "pv.normal.top.capture";}
+                                       color: 0 255 0 255;
+                               }
+                       }
+                       part {
+                               name: "pv.normal.top.capture.left.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 30 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_x : "pv.normal.top.capture";}
+                                       rel2 { relative: 0.0 1.0; to_x : "pv.normal.top.capture";}
+                                       color: 0 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.top.capture.rew";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 63 63;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x : "pv.normal.top.capture.left.padding"; to_y: "pv.normal.top.capture"; }
+                                       rel2 { relative: 0.0 0.5; to_x : "pv.normal.top.capture.left.padding"; to_y: "pv.normal.top.capture"; }
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.top.capture.ff";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 63 63;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.5; to_x : "pv.normal.top.capture.right.padding"; to_y: "pv.normal.top.capture"; }
+                                       rel2 { relative: 1.0 0.5; to_x : "pv.normal.top.capture.right.padding"; to_y: "pv.normal.top.capture"; }
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.normal.top.rotate.right.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 26 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to_y: "pv.normal.top.bg";}
+                                       rel2 { relative: 1.0 1.0; to_y: "pv.normal.top.bg";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+               } /* parts */
+       } /* group */
+} /* collections */
diff --git a/vp-main/res/edje/pv-popup.edc b/vp-main/res/edje/pv-popup.edc
new file mode 100755 (executable)
index 0000000..39a2cc1
--- /dev/null
@@ -0,0 +1,390 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define PV_POPUP_PROGRESSVIEW_CONTENT_MIN                              0 93
+#define PV_POPUP_PROGRESSVIEW_WIDTH_HEIGHT_MIN                         0 163
+#define PV_POPUP_PROGRESSVIEW_TEXT_LEFT_RIGHT_MAX              120 60
+
+#define PV_POPUP_ENTRY_CONTENT_MIN                                             0 100
+
+#define PV_POPUP_CAPTION_WIDTH_HEIGHT_MIN                              614 135
+#define PV_POPUP_CAPTION_WIN_WIDTH_HEIGHT_MIN                  514 95
+#define PV_POPUP_BG_WIDTH_HEIGHT_MIN                                   270 60
+#define PV_POPUP_LANDSCAPE_BG_WIDTH_HEIGHT_MIN                         760 60
+#define PV_POPUP_LINE_WIDTH_HEIGHT_MIN                                         0 1
+#define PV_POPUP_TITLE_WIDTH_HEIGHT_MIN                                        0 72
+#define PV_GENLIST_LIST_LINE1_POPUP_COLOR              211 209 203 255
+
+#define POPUP_BASE_DEFAULT_TEXT_FONT_SIZE_INC  20
+collections {
+       group {
+               name: "pv.popup.progress";
+               parts {
+                       part {
+                               name:"bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: PV_POPUP_PROGRESSVIEW_WIDTH_HEIGHT_MIN;
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pad_l";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 20 0;
+                                       max: 20 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "bg";}
+                                       rel2 { relative: 0.0 1.0; to: "bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pad_r";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 20 0;
+                                       max: 20 0;
+                                       fixed: 1 0;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 0.0; to: "bg";}
+                                       rel2 { relative: 1.0 1.0; to: "bg";}
+                               }
+                       }
+
+                       part {
+                               name: "elm.swallow.content";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: PV_POPUP_PROGRESSVIEW_CONTENT_MIN;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 1.0 0.0; to_x: "pad_l"; to_y: "bg"; }
+                                       rel2 { relative: 0.0 0.0; to_x: "pad_r"; to_y: "bg"; }
+                               }
+                       }
+
+                       part {
+                               name: "elm.text.right";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: PV_POPUP_PROGRESSVIEW_TEXT_LEFT_RIGHT_MAX;
+                                       fixed: 1 1;
+                                       color: 0 0 0 255;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 1.0;  to_x: "pad_r"; to_y: "elm.swallow.content"; }
+                                       rel2 { relative: 0.0 1.0;  to_x: "pad_r"; to_y: "elm.swallow.content"; }
+                                       text {
+                                               font: "Tizen:style=Medium";
+                                               size: 36;
+                                               min: 0 0;
+                                               align: 1.0 0.0;
+                                       }
+
+                               }
+                       }
+
+               }
+       } /* group */
+
+       group {
+               name: "pv.popup.entry";
+               parts {
+                       part {
+                               name:"bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: PV_POPUP_PROGRESSVIEW_WIDTH_HEIGHT_MIN;
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pad_l";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 26 0;
+                                       max: 32 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "bg";}
+                                       rel2 { relative: 0.0 1.0; to: "bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pad_r";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 26 0;
+                                       max: 26 0;
+                                       fixed: 1 0;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 0.0; to: "bg";}
+                                       rel2 { relative: 1.0 1.0; to: "bg";}
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.content";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: PV_POPUP_PROGRESSVIEW_CONTENT_MIN;
+                                       fixed: 0 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.5; to_x: "pad_l"; to_y: "bg"; }
+                                       rel2 { relative: 0.0 0.5; to_x: "pad_r"; to_y: "bg"; }
+                               }
+                       }
+
+               }
+       } /* group */
+
+       group {
+               name: "pv.popup.caption";
+               parts {
+                       part {
+                               name:"bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: PV_POPUP_BG_WIDTH_HEIGHT_MIN;
+                                       color: 0 0 0 0;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       min: PV_POPUP_LANDSCAPE_BG_WIDTH_HEIGHT_MIN;
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "elm.caption.preview.bg";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.5;
+                                       //rel1 { relative: 1.0 0.0; to_x: "pad_l"; to_y: "bg"; }
+                                       //rel2 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "bg"; }
+                                       rel1 { relative: 0.0 0.0; to: "bg";}
+                                       rel2 { relative: 0.85 1.0; to: "bg";}
+                                       image { normal: "genlist/preview_settings_bg.png";}
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.content";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.5;
+                                       //rel1 { relative: 1.0 0.0; to_x: "pad_l"; to_y: "bg"; }
+                                       //rel2 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "bg"; }
+                                       rel1 { relative: 0.0 0.0; to: "elm.caption.preview.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "elm.caption.preview.bg";}
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+                       }
+               } /* parts*/
+       }
+       group
+       {
+               name: "navi_texts";
+               styles {
+                       style { name: "navi_title_style";
+                               base: "font=Tizen:style=Regular font_size=15 align=center color=#FFFFFF  wrap=mixed ellipsis=1.0";
+                               tag:  "br" "\n";
+                               tag:  "tab" "\t";
+                       }
+               }
+               parts{
+                       part{
+                               name: "navi_bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       color: 115 167 191 255;
+                               rel1 {
+                                               relative: 0.0 0.0;
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                       }
+                               }
+                       }
+                       part { name: "navi_text";
+                               type: TEXTBLOCK;
+                               mouse_events: 1;
+                               scale:1;
+                               description { state: "default" 0.0;
+                                       text {
+                                               style: "navi_title_style";
+                                               align: 0.5 0.5;
+                                       }
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                       }
+                                       align: 0.5 0.5;
+                               }
+                       }
+               } /* parts */
+               programs
+          {
+           program
+          {
+                name: "state_changer";
+                               signal: "mouse,down,1";
+                               source: "navi_text";
+                               action: SIGNAL_EMIT "elm,action,click1" "navi_text";
+                       }
+       } /* programs */
+       }
+       group {
+               name: "pv.popup.title";
+               styles {
+                       style { name: "popup_title_style";
+                               base: "font=Tizen:style=Regular align=center font_size="POPUP_BASE_DEFAULT_TEXT_FONT_SIZE_INC" color=#FFFFFF  wrap=mixed ellipsis=1.0";
+                               tag:  "br" "\n";
+                               tag:  "tab" "\t";
+                       }
+               }
+
+               parts {
+                       part {
+                               name:"elm.bg.title";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 50;
+                                       max:440 50;
+                                       color: 61 185 204 255;
+                               }
+                       }
+                       part {
+                               name: "pad_l";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 8 0;
+                                       max: 8 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "elm.bg.title";}
+                                       rel2 { relative: 0.0 1.0; to: "elm.bg.title";}
+                               }
+                       }
+
+                       part {
+                               name: "pad_r";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 8 0;
+                                       max: 8 0;
+                                       fixed: 1 0;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 0.0; to: "elm.bg.title";}
+                                       rel2 { relative: 1.0 1.0; to: "elm.bg.title";}
+                               }
+                       }
+
+                       part { name: "elm.swallow.title.left.icon";
+                               type: SWALLOW;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       rel1 { relative: 0 0; to: "elm.bg.title";}
+                                       rel2 { relative: 0.25 1; to: "elm.bg.title";}
+                                       min: 30 0;
+                                       fixed: 1 0;
+                                       align: 0.5 0.5;
+                               }
+                       }
+
+                       part { name: "elm.swallow.title.right.icon";
+                               type: SWALLOW;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       rel1 { relative: 0.75 0; to: "elm.bg.title";}
+                                       rel2 { relative: 1 1; to: "elm.bg.title";}
+                                       min: 30 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.5;
+                               }
+                       }
+
+                       part { name: "elm.text.title";
+                               type: TEXTBLOCK;
+                               scale:1;
+                               description { state: "default" 0.0;
+                                       fixed: 1 1;
+                                       text {
+                                               style: "popup_title_style";
+                                               size: POPUP_BASE_DEFAULT_TEXT_FONT_SIZE_INC;
+                                               align: 0.5 0.5;
+                                       }
+                                       rel1 {
+                                               relative: 1.0 0.0;
+                                               to_x: "elm.swallow.title.left.icon";
+                                               to_y: "elm.bg.title";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               to_x: "elm.swallow.title.right.icon";
+                                               to_y: "elm.bg.title";
+                                       }
+                                       align: 0.5 0.5;
+                               }
+                       }
+               } /* parts*/
+       }
+} /* collections */
diff --git a/vp-main/res/edje/pv-progressbar.edc b/vp-main/res/edje/pv-progressbar.edc
new file mode 100755 (executable)
index 0000000..e98fd54
--- /dev/null
@@ -0,0 +1,495 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define FONT_BOLD_TYPE                 "Tizen:style=Bold"
+#define FONT_MEDIUM_TYPE                       "Tizen:style=Medium"
+#define FONT_REGULAR_TYPE              "Tizen:style=Regular"
+#define FONT_ROMAN_TYPE                        "Tizen:style=Roman"
+#define FONT_LIGHT_TYPE                        "Tizen:style=Light"
+
+/*     chageable GUI
+#define FONT_START_COLOR               0 159 255 255
+#define FONT_END_COLOR                 248 246 240 255
+*/
+
+#define PLAYER_PROGRESSBAR_H   4
+#define PLAYER_CIRCLE_W 26
+#define PLAYER_CIRCLE_H 26
+#define PLAYER_CIRCLE_PRESS_W 26
+#define PLAYER_CIRCLE_PRESS_H 26
+
+#define IMG_PLAYER_PROGRESSBAR_BG "progressbar/core_progress_bar.#.png"
+#define IMG_PLAYER_PROGRESSBAR_HANDLE "progressbar/T01_2_control_progress_handle.png"
+#define IMG_PLAYER_PROGRESSBAR_HANDLE_PRESS "progressbar/T01_2_control_progress_handle_press.png"
+
+collections {
+       group {
+               name: "pv.progress";
+
+               parts {
+                       part {
+                               name: "pv.progress.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               scale: 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;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.playing.txt.left.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 12 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_y : "pv.progress.bg";}
+                                       rel2 { relative: 0.0 1.0; to_y : "pv.progress.bg";}
+                                       color: 255 0 0 255;
+                               }
+
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 12 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.playing.txt.landscape.right.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 12 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to_x : "pv.progress.playing.txt"; to_y : "pv.progress.bg";}
+                                       rel2 { relative: 1.0 1.0; to_x : "pv.progress.playing.txt"; to_y : "pv.progress.bg";}
+                                       color: 0 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.duration.txt.right.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 12 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to_y : "pv.progress.bg";}
+                                       rel2 { relative: 1.0 1.0; to_y : "pv.progress.bg";}
+                                       color: 255 0 0 255;
+                               }
+
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 12 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.duration.txt.landscape.left.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 12 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_x : "pv.progress.duration.txt"; to_y : "pv.progress.bg";}
+                                       rel2 { relative: 0.0 1.0; to_x : "pv.progress.duration.txt"; to_y : "pv.progress.bg";}
+                                       color: 0 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.bottom.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 8;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_x : "pv.progress.bg";}
+                                       rel2 { relative: 1.0 1.0; to_x : "pv.progress.bg";}
+                                       color: 255 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.playing.txt";
+                               type: TEXT;
+                               mouse_events: 1;
+                               scale: 1;
+                               effect: FAR_SHADOW BOTTOM;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 90 16;
+                                       fixed: 1 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 1.0 1.0; offset: 0 -40; to_x : "pv.progress.playing.txt.left.padding"; to_y : "pv.progress.bottom.padding";}
+                                       rel2 { relative: 1.0 1.0; offset: 0 -40; to_x : "pv.progress.playing.txt.left.padding"; to_y : "pv.progress.bottom.padding";}
+                                       color: 5 131 198 255;
+                                       text {
+                                               size: 12;
+                                               text: "00:00:00";
+                                               align: 0.0 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.5; offset: 0 40; to_x : "pv.progress.playing.txt.left.padding"; to_y : "pv.progress.bg";}
+                                       rel2 { relative: 1.0 0.5; offset: 0 40; to_x : "pv.progress.playing.txt.left.padding"; to_y : "pv.progress.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.duration.txt";
+                               type: TEXT;
+                               mouse_events: 1;
+                               scale: 1;
+                               effect: FAR_SHADOW BOTTOM;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 90 16;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 0.0 1.0; offset: 0 -40; to_x : "pv.progress.duration.txt.right.padding"; to_y : "pv.progress.bottom.padding";}
+                                       rel2 { relative: 0.0 1.0; offset: 0 -40; to_x : "pv.progress.duration.txt.right.padding"; to_y : "pv.progress.bottom.padding";}
+                                       color: 179 179 179 255;
+                                       text {
+                                               size: 12;
+                                               text: "--:--:--";
+                                               align: 1.0 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; offset: 0 40; to_x : "pv.progress.duration.txt.right.padding"; to_y : "pv.progress.bg";}
+                                       rel2 { relative: 0.0 0.5; offset: 0 40; to_x : "pv.progress.duration.txt.right.padding"; to_y : "pv.progress.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.bar.bg";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 PLAYER_PROGRESSBAR_H;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.02 0.0; to_x : "pv.progress.playing.txt";  to_y : "pv.progress.bg";}
+                                       rel2 { relative: 0.98 0.0; to_x : "pv.progress.duration.txt";  to_y : "pv.progress.bg";}
+                                       image { normal: IMG_PLAYER_PROGRESSBAR_BG;}
+                                       color: 179 179 179 255;
+                               }
+
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.02 0.5; to_x : "pv.progress.playing.txt"; to_y : "pv.progress.bg";}
+                                       rel2 { relative: 0.98 0.5; to_x : "pv.progress.duration.txt"; to_y : "pv.progress.bg";}
+                               }
+                       }
+                       part {
+                               name: "pv.progress.step";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 PLAYER_PROGRESSBAR_H;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.progress.bar.bg"; offset : -2 -1; }
+                                       rel2 { relative: 0.5 1.0; to_x: "pv.progress.circle"; to_y: "pv.progress.bar.bg"; }
+                                       image { normal: IMG_PLAYER_PROGRESSBAR_BG;}
+                                       color: 0 166 191 255;
+                               }
+
+                               description {
+                                       state: "progress_opacity_60" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+
+                       }
+                       part {
+                               name: "pv.progress.confine.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.0;  to: "pv.progress.bar.bg"; }
+                                       rel2 { relative: 1.0 1.0;  to: "pv.progress.bar.bg"; }
+                                       color: 255 255 255 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.circle";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 14 11;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to_x: "pv.progress.playing"; to_y: "pv.progress.bar.bg";  }
+                                       rel2 { relative: 0.5 0.5; to_x: "pv.progress.playing"; to_y: "pv.progress.bar.bg"; }
+                                       color: 255 255 255 255;
+                               }
+                       }
+                       part {
+                               name: "pv.progress.playing";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 6;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.progress.bar.bg"; }
+                                       rel2 { relative: 0.0 0.0; to: "pv.progress.bar.bg"; }
+                               }
+                               dragable {
+                                       confine:  "pv.progress.confine.rect";
+                                       x: 1 1 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.buffering.step";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 2;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.progress.bar.bg"; }
+                                       rel2 { relative: 0.5 1.0; to_x: "pv.progress.buffering.circle"; to_y: "pv.progress.bar.bg"; }
+                                       color: 102 102 102 77;// current opacity 30% .128 128 128 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.buffering.circle";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 14 11;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to_x: "pv.progress.buffering"; to_y: "pv.progress.bar.bg";  }
+                                       rel2 { relative: 0.5 0.5; to_x: "pv.progress.buffering"; to_y: "pv.progress.bar.bg"; }
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.buffering.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.0;  to: "pv.progress.bar.bg"; }
+                                       rel2 { relative: 1.0 1.0;  to: "pv.progress.bar.bg"; }
+                                       color: 255 255 255 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.buffering";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 11;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.progress.bar.bg"; }
+                                       rel2 { relative: 0.0 0.0; to: "pv.progress.bar.bg"; }
+                               }
+                               dragable {
+                                       confine:  "pv.progress.buffering.rect";
+                                       x: 1 1 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.progress.point";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: PLAYER_CIRCLE_W PLAYER_CIRCLE_H;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to_x: "pv.progress.circle"; to_y: "pv.progress.bar.bg"; }
+                                       rel2 { relative: 0.5 0.5; to_x: "pv.progress.circle"; to_y: "pv.progress.bar.bg"; }
+                                       image { normal: IMG_PLAYER_PROGRESSBAR_HANDLE;}
+                                       color: 0 166 191 255;
+                               }
+                       }
+                       part {
+                               name: "pv.progress.press.point";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: PLAYER_CIRCLE_PRESS_W PLAYER_CIRCLE_PRESS_H;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to_x: "pv.progress.circle"; to_y: "pv.progress.bar.bg"; }
+                                       rel2 { relative: 0.5 0.5; to_x: "pv.progress.circle"; to_y: "pv.progress.bar.bg"; }
+                                       image { normal: IMG_PLAYER_PROGRESSBAR_HANDLE_PRESS;}
+                                       color: 0 166 191 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible : 1;
+                               }
+                       }
+                       part {
+                               name: "pv.progress.point.focus";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 31 31;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 0.0; to: "pv.progress.point"; }
+                                       rel2 { relative: 1.0 1.0; to: "pv.progress.point"; }
+                                       color: 255 255 255 0;
+                               }
+                       }
+               } /* parts */
+
+               programs {
+                       program {
+                               name: "portrait_mode";
+                               signal: "signal.pv.normal.progress.portrait.mode";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.progress.playing.txt.left.padding";
+                               target: "pv.progress.duration.txt.right.padding";
+                               target: "pv.progress.playing.txt";
+                               target: "pv.progress.duration.txt";
+                               target: "pv.progress.bar.bg";
+                       }
+
+                       program {
+                               name: "landscape_mode";
+                               signal: "signal.pv.normal.progress.landscape.mode";
+                               source: "*";
+                               action: STATE_SET "landscape" 0.0;
+                               target: "pv.progress.playing.txt.left.padding";
+                               target: "pv.progress.duration.txt.right.padding";
+                               target: "pv.progress.playing.txt";
+                               target: "pv.progress.duration.txt";
+                               target: "pv.progress.bar.bg";
+                       }
+
+                       program {
+                               name: "progress_opacity_default";
+                               signal: "signal.pv.normal.progress.opacity_default";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.progress.step";
+                       }
+
+                       program {
+                               name: "progress_opacity_60";
+                               signal: "signal.pv.normal.progress.opacity_60";
+                               source: "*";
+                               action: STATE_SET "progress_opacity_60" 0.0;
+                               target: "pv.progress.step";
+                       }
+
+                       program {
+                               name: "pv.progress.click.anim";
+                               signal: "signal.pv.normal.progress.click";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.progress.press.point";
+                       }
+                       program {
+                               name: "pv.progress.unclick.anim";
+                               signal: "signal.pv.normal.progress.unclick";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.progress.press.point";
+                       }
+               } /* programs */
+       }       /* group */
+} /* collections */
+
+
diff --git a/vp-main/res/edje/pv-resource.edc b/vp-main/res/edje/pv-resource.edc
new file mode 100755 (executable)
index 0000000..8d0fea8
--- /dev/null
@@ -0,0 +1,447 @@
+/*
+ * Copyright (c) 2020 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 "pv-macro.edc"
+
+#define VP_PLAY_MULTI_VIEW_CLOSE                       "multi/my_title_icon_delete.png"
+#define VP_PLAY_MULTI_VIEW_FULLSIZE                    "multi/my_title_icon_maximize.png"
+#define VP_PLAY_MULTI_VIEW_RESIZE                      "multi/mw_frame_handler.png"
+#define VP_PLAY_MULTI_VIEW_RESIZE_PRESS                "multi/mw_frame_handler_press.png"
+#define VP_PLAY_MULTI_VIEW_MINSIZE                     "multi/my_title_icon_mimimize.png"
+
+#define VP_PLAY_MULTI_VIEW_FF                          "multi/T01_2_mw_control_icon_ff.png"
+#define VP_PLAY_MULTI_VIEW_FF_PRESS                    "multi/T01_2_mw_control_icon_ff_press.png"
+#define VP_PLAY_MULTI_VIEW_REW                         "multi/T01_2_mw_control_icon_rew.png"
+#define VP_PLAY_MULTI_VIEW_REW_PRESS           "multi/T01_2_mw_control_icon_rew_press.png"
+#define VP_PLAY_MULTI_VIEW_PLAY                                "multi/T01_2_mw_control_icon_play.png"
+#define VP_PLAY_MULTI_VIEW_PLAY_PRESS          "multi/T01_2_mw_control_icon_play_press.png"
+#define VP_PLAY_MULTI_VIEW_PAUSE                               "multi/T01_2_mw_control_icon_pause.png"
+#define VP_PLAY_MULTI_VIEW_PAUSE_PRESS         "multi/T01_2_mw_control_icon_pause_press.png"
+
+#define VP_PLAY_NORMAL_RES_CONTROL_BG          "control/T01-2_control_bg.png"
+#define VP_PLAY_NORMAL_RES_RESUME                      "control/T01-2_control_circle_icon_play.png"
+#define VP_PLAY_NORMAL_RES_PAUSE                       "control/T01-2_control_circle_icon_pause.png"
+#define VP_PLAY_NORMAL_RES_PREV                                "control/T01-2_control_circle_icon_rewind.png"
+#define VP_PLAY_NORMAL_RES_NEXT                                "control/T01-2_control_circle_icon_next.png"
+
+#define VP_PLAY_NORMAL_RES_VOLUME                                      "function/T01_2_control_icon_volume.png"
+#define VP_PLAY_NORMAL_RES_VOLUME_PRESS                        "function/T01_2_control_icon_volume_press.png"
+#define VP_PLAY_NORMAL_RES_VOLUME_DIM                          "function/T01_2_control_icon_volume_dim.png"
+
+#define VP_PLAY_NORMAL_RES_MUTE                                                "function/T01-2_control_icon_mute.png"
+#define VP_PLAY_NORMAL_RES_MUTE_PRESS                          "function/T01-2_control_icon_mute_press.png"
+#define VP_PLAY_NORMAL_RES_MUTE_DIM                                    "function/T01-2_control_icon_mute_dim.png"
+
+
+#define VP_PLAY_NORMAL_RES_BOOKMARK                            "function/T01_2_control_icon_bookmark.png"
+#define VP_PLAY_NORMAL_RES_BOOKMARK_PRESS                      "function/T01_2_control_icon_bookmark_press.png"
+#define VP_PLAY_NORMAL_RES_BOOKMARK_DIM                        "function/T01_2_control_icon_bookmark_dim.png"
+
+#define VP_PLAY_NORMAL_RES_POPUP_PLAYER        "function/player_popup_view_icon_nomal.png"
+
+#define VP_PLAY_NORMAL_RES_SCREEN_1_MODE                       "function/T01_2_control_icon_screenmode03.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_1_MODE_PRESS "function/T01_2_control_icon_screenmode03_press.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_1_MODE_DIM           "function/T01_2_control_icon_screenmode03_dim.png"
+
+#define VP_PLAY_NORMAL_RES_SCREEN_2_MODE                       "function/T01_2_control_icon_screenmode02.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_2_MODE_PRESS "function/T01_2_control_icon_screenmode02_press.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_2_MODE_DIM           "function/T01_2_control_icon_screenmode02_dim.png"
+
+#define VP_PLAY_NORMAL_RES_SCREEN_3_MODE                       "function/T01_2_control_icon_screenmode.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_3_MODE_PRESS "function/T01_2_control_icon_screenmode_press.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_3_MODE_DIM           "function/T01_2_control_icon_screenmode_dim.png"
+
+#define VP_PLAY_NORMAL_RES_SCREEN_4_MODE                       "function/T01_2_control_icon_screenmode04.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_4_MODE_PRESS "function/T01_2_control_icon_screenmode04_press.png"
+#define VP_PLAY_NORMAL_RES_SCREEN_4_MODE_DIM           "function/T01_2_control_icon_screenmode04_dim.png"
+
+#define VP_PLAY_NORMAL_RES_MULTI_MODE                          "function/T01_2_control_icon_multi_window.png"
+#define VP_PLAY_NORMAL_RES_MULTI_MODE_PRESS            "function/T01_2_control_icon_multi_window_press.png"
+#define VP_PLAY_NORMAL_RES_MULTI_MODE_DIM                      "function/T01_2_control_icon_multi_window_dim.png"
+
+#define VP_PLAY_NORMAL_RES_SHARE                                       "function/T01_2_control_icon_share.png"
+#define VP_PLAY_NORMAL_RES_SHARE_PRESS                         "function/T01_2_control_icon_share_press.png"
+#define VP_PLAY_NORMAL_RES_SHARE_DIM                           "function/T01_2_control_icon_share_dim.png"
+
+#define VP_PLAY_NORMAL_RES_SOUND_ALIVE                         "function/T01_2_control_icon_soundalive.png"
+#define VP_PLAY_NORMAL_RES_SOUND_ALIVE_PRESS           "function/T01_2_control_icon_soundalive_press.png"
+#define VP_PLAY_NORMAL_RES_SOUND_ALIVE_DIM                     "function/T01_2_control_icon_soundalive_dim.png"
+
+#define VP_PLAY_NORMAL_RES_REPEAT_OFF                          "function/T01_2_control_icon_repeat_mode.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_OFF_PRESS                    "function/T01_2_control_icon_repeat_mode_press.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_OFF_DIM                      "function/T01_2_control_icon_repeat_mode_dim.png"
+
+#define VP_PLAY_NORMAL_RES_REPEAT_ONE                          "function/T01_2_control_icon_repeat_once.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_ONE_PRESS            "function/T01_2_control_icon_repeat_once_press.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_ONE_DIM                      "function/T01_2_control_icon_repeat_once_dim.png"
+
+#define VP_PLAY_NORMAL_RES_REPEAT_ALL                          "function/T01_2_control_icon_repeat_all.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_ALL_PRESS                    "function/T01_2_control_icon_repeat_all_press.png"
+#define VP_PLAY_NORMAL_RES_REPEAT_ALL_DIM                      "function/T01_2_control_icon_repeat_all_dim.png"
+
+#define VP_PLAY_NORMAL_RES_TRIM                                                "function/T01_2_control_icon_trim.png"
+#define VP_PLAY_NORMAL_RES_TRIM_PRESS                          "function/T01_2_control_icon_trim_press.png"
+#define VP_PLAY_NORMAL_RES_TRIM_DIM                                    "function/T01_2_control_icon_trim_dim.png"
+
+#define VP_PLAY_NORMAL_RES_ROTATE                                      "button/T01_2_icon_rotate.png"
+#define VP_PLAY_NORMAL_RES_ROTATE_PRESS                        "button/T01_2_icon_rotate_press.png"
+#define VP_PLAY_NORMAL_RES_ROTATE_DIM                          "button/T01_2_icon_rotate_dim.png"
+
+#define VP_PLAY_NAVIFRAME_RES_ALLSHARE                         "button/T01_2_icon_Near_by_device.png"
+#define VP_PLAY_NAVIFRAME_RES_ALLSHARE_PRESS           "button/T01_2_icon_Near_by_device_press.png"
+#define VP_PLAY_NAVIFRAME_RES_ALLSHARE_DIM            "button/T01_2_icon_Near_by_device_dim.png"
+
+#define VP_PLAY_NAVIFRAME_RES_SAVE                                     "button/T01_2_icon_check.png"
+#define VP_PLAY_NAVIFRAME_RES_SAVE_PRESS                       "button/T01_2_icon_check_press.png"
+#define VP_PLAY_NAVIFRAME_RES_SAVE_DIM                         "button/T01_2_icon_check_dim.png"
+
+#define VP_PLAY_NAVIFRAME_RES_BACK                                     "button/T01_2_icon_close.png"
+#define VP_PLAY_NAVIFRAME_RES_BACK_PRESS                       "button/T01_2_icon_close_press.png"
+#define VP_PLAY_NAVIFRAME_RES_BACK_DIM                         "button/T01_2_icon_close_dim.png"
+
+
+#define VP_PLAY_BOOKMARK_RES_ADD                       "bookmark/T01_2_icon_bookmark_add.png"
+#define VP_PLAY_BOOKMARK_RES_ADD_PRESS "bookmark/T01_2_icon_bookmark_add_press.png"
+#define VP_PLAY_BOOKMARK_RES_DEL                       "bookmark/T01_2_button_remove.png"
+#define VP_PLAY_BOOKMARK_RES_DEL_PRESS         "bookmark/T01_2_button_remove_press.png"
+
+#define VP_PLAY_TRIM_RES_REW                           "control/T01_2_control_circle_icon_reverse.png"
+#define VP_PLAY_TRIM_RES_FF                                    "control/T01_2_control_circle_icon_forward.png"
+
+#define VP_PLAY_SENSOR_RES_TRUN_OVER_01        "sensor/B15_turn_over_01.png"
+#define VP_PLAY_SENSOR_RES_TRUN_OVER_02        "sensor/B15_turn_over_02.png"
+#define VP_PLAY_SENSOR_RES_TRUN_OVER_03        "sensor/B15_turn_over_03.png"
+
+#define VP_PLAY_ALLSHARE_MY_DEVICE                     "nearby_device/T02_Player_Nearby_device_01.png"
+#define VP_PLAY_ALLSHARE_TV_DEVICE                     "nearby_device/T02_Player_Nearby_device_02.png"
+
+#define VP_PLAY_ALLSHARE_DEVICE_TV_POPUP                               "allshare/device/120x120/U04_device_TV.png"
+#define VP_PLAY_ALLSHARE_DEVICE_BD_POPUP                               "allshare/device/120x120/U04_device_BD.png"
+#define VP_PLAY_ALLSHARE_DEVICE_LFD_POPUP                              "allshare/device/120x120/U04_device_LFD.png"
+#define VP_PLAY_ALLSHARE_DEVICE_STB_POPUP                              "allshare/device/120x120/U04_device_STB.png"
+#define VP_PLAY_ALLSHARE_DEVICE_MOBILE_POPUP                   "allshare/device/120x120/U04_device_Mobile.png"
+#define VP_PLAY_ALLSHARE_DEVICE_TABLET_POPUP                   "allshare/device/120x120/U04_device_Tablet.png"
+#define VP_PLAY_ALLSHARE_DEVICE_DONGLE_POPUP                   "allshare/device/120x120/U04_device_Dongle.png"
+#define VP_PLAY_ALLSHARE_DEVICE_CAMERA_POPUP                   "allshare/device/120x120/U04_device_Camera.png"
+#define VP_PLAY_ALLSHARE_DEVICE_CAMCORDER_POPUP                "allshare/device/120x120/U04_device_Camcorder.png"
+#define VP_PLAY_ALLSHARE_DEVICE_REF_POPUP                              "allshare/device/120x120/U04_device_REF.png"
+#define VP_PLAY_ALLSHARE_DEVICE_AC_WALL_POPUP                  "allshare/device/120x120/U04_device_AC_Wall.png"
+#define VP_PLAY_ALLSHARE_DEVICE_WM_POPUP                               "allshare/device/120x120/U04_device_WM.png"
+#define VP_PLAY_ALLSHARE_DEVICE_ROBOT_TV_POPUP                 "allshare/device/120x120/U04_device_ROBOT_VC.png"
+#define VP_PLAY_ALLSHARE_DEVICE_PC_POPUP                               "allshare/device/120x120/U04_device_PC.png"
+#define VP_PLAY_ALLSHARE_DEVICE_UNKNOWN_POPUP                  "allshare/device/120x120/U04_device_None_DNS.png"
+
+#define VP_PLAY_ALLSHARE_DEVICE_TV_ITEM                                        "allshare/device/81x81/U04_device_TV.png"
+#define VP_PLAY_ALLSHARE_DEVICE_BD_ITEM                                        "allshare/device/81x81/U04_device_BD.png"
+#define VP_PLAY_ALLSHARE_DEVICE_LFD_ITEM                                       "allshare/device/81x81/U04_device_LFD.png"
+#define VP_PLAY_ALLSHARE_DEVICE_STB_ITEM                               "allshare/device/81x81/U04_device_STB.png"
+#define VP_PLAY_ALLSHARE_DEVICE_MOBILE_ITEM                            "allshare/device/81x81/U04_device_Mobile.png"
+#define VP_PLAY_ALLSHARE_DEVICE_TABLET_ITEM                            "allshare/device/81x81/U04_device_Tablet.png"
+#define VP_PLAY_ALLSHARE_DEVICE_DONGLE_ITEM                            "allshare/device/81x81/U04_device_Dongle.png"
+#define VP_PLAY_ALLSHARE_DEVICE_CAMERA_ITEM                            "allshare/device/81x81/U04_device_Camera.png"
+#define VP_PLAY_ALLSHARE_DEVICE_CAMCORDER_ITEM                 "allshare/device/81x81/U04_device_Camcorder.png"
+#define VP_PLAY_ALLSHARE_DEVICE_REF_ITEM                                       "allshare/device/81x81/U04_device_REF.png"
+#define VP_PLAY_ALLSHARE_DEVICE_AC_WALL_ITEM                   "allshare/device/81x81/U04_device_AC_Wall.png"
+#define VP_PLAY_ALLSHARE_DEVICE_WM_ITEM                                        "allshare/device/81x81/U04_device_WM.png"
+#define VP_PLAY_ALLSHARE_DEVICE_ROBOT_TV_ITEM                  "allshare/device/81x81/U04_device_ROBOT_VC.png"
+#define VP_PLAY_ALLSHARE_DEVICE_PC_ITEM                                        "allshare/device/81x81/U04_device_PC.png"
+#define VP_PLAY_ALLSHARE_DEVICE_UNKNOWN_ITEM                   "allshare/device/81x81/U04_device_None_DNS.png"
+
+#define VP_PLAY_CTX_ADD_TO_HOME                                                "more/icon_add_to_home.png"
+#define VP_PLAY_CTX_CHAPTER_PREVIEW                                            "more/icon_chapter_preview.png"
+#define VP_PLAY_CTX_DETAIL                                                             "more/icon_detail.png"
+#define VP_PLAY_CTX_DOWNLOAD                                                   "more/icon_download.png"
+#define VP_PLAY_CTX_SETTING                                                            "more/icon_setting.png"
+#define VP_PLAY_CTX_SHARE_VIA                                                  "more/icon_share_via.png"
+#define VP_PLAY_CTX_TRIM                                                                       "more/icon_trim.png"
+#define VP_PLAY_CTX_CONNECTION_INFO                                            "more/icon_nearbydevices.png"
+
+#define VP_PLAY_NORMAL_RES_CAPTURE                                             "capture/T01_2_icon_capture.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_PRESS                               "capture/T01_2_icon_capture_press.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_DIM                                 "capture/T01_2_icon_capture_dim.png"
+
+#define VP_PLAY_NORMAL_RES_CAPTURE_REW                                 "capture/T01-2_icon_left.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_REW_PRESS                   "capture/T01-2_icon_left_press.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_REW_DIM                             "capture/T01-2_icon_left_dim.png"
+
+#define VP_PLAY_NORMAL_RES_CAPTURE_FF                                  "capture/T01-2_icon_right.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_FF_PRESS                    "capture/T01-2_icon_right_press.png"
+#define VP_PLAY_NORMAL_RES_CAPTURE_FF_DIM                              "capture/T01-2_icon_right_dim.png"
+
+#define VP_PLAY_RES_BUTTON_ADD                                                 "button/T01-2_play_popup_icon_plus.png"
+#define VP_PLAY_RES_BUTTON_ADD_PRESS                                   "button/T01-2_play_popup_icon_plus_press.png"
+
+#define VP_PLAY_RES_BUTTON_DEL                                                 "button/T01-2_play_popup_icon_minus.png"
+#define VP_PLAY_RES_BUTTON_DEL_PRESS                                   "button/T01-2_play_popup_icon_minus_press.png"
+
+#define VP_PLAY_TAG_BUDDY_DEAFULT                                              "tag/T01-1_Tag_buddy_settings_bg.png"
+#define VP_PLAY_TAG_BUDDY_LOGO                                                 "tag/T01_2_icon_tag_buddy_cplogo.PNG"
+#define VP_PLAY_TAG_BUDDY_LOGO_JP                                              "tag/U07_weather_logo.png"
+
+
+#define VP_PLAY_NORMAL_RES_LOCK                                                        "button/T01_2_icon_lock.png"
+#define VP_PLAY_NORMAL_RES_LOCK_PRESS                                  "button/T01_2_icon_lock_press.png"
+
+#define VP_PLAY_NORMAL_RES_BLUETOOTH_HEADSET                   "button/T01_2_icon_bluetooth_headset.png"
+#define VP_PLAY_NORMAL_RES_EARPHONE                                            "button/T02_icon_soundPath.png"
+#define VP_PLAY_NORMAL_RES_SPEAKER                                             "button/T02_icon_speaker.png"
+#define VP_PLAY_NORMAL_RES_DMC_ICON                                            "mini_controller/A01_15_popup_No_device.png"
+#define VP_PLAY_NORMAL_RES_AUDIO_ONLY                                  "sound_only.png"
+#define VP_PLAY_NORMAL_RES_ERROR_IMAGE                                 "player_error_screen.png"
+
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_00               "brightness/quick_icon_brightness_00.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_01               "brightness/quick_icon_brightness_01.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_02               "brightness/quick_icon_brightness_02.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_03               "brightness/quick_icon_brightness_03.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_04               "brightness/quick_icon_brightness_04.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_05               "brightness/quick_icon_brightness_05.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_06               "brightness/quick_icon_brightness_06.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_07               "brightness/quick_icon_brightness_07.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_08               "brightness/quick_icon_brightness_08.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_09               "brightness/quick_icon_brightness_09.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_10               "brightness/quick_icon_brightness_10.png"
+#define VP_PLAY_BRIGHTNESS_POPUP_ICON_11               "brightness/quick_icon_brightness_11.png"
+
+#define RESOURCE_IMAGE_LOSSY( FILE_NAME ) \
+group { \
+       name: FILE_NAME; \
+       images.image: FILE_NAME LOSSY 85; \
+       parts { \
+               part { \
+                       name: "image"; \
+                       description { \
+                       state: "default" 0.0; \
+                       image.normal: FILE_NAME; \
+                       aspect: 1 1; \
+                       aspect_preference: BOTH; \
+                       } \
+               } \
+       } \
+}
+
+#define RESOURCE_IMAGE_COMP( FILE_NAME ) \
+       group { \
+               name: FILE_NAME; \
+               images.image: FILE_NAME COMP; \
+               parts { \
+                       part { name: "image"; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       image.normal: FILE_NAME; \
+                                       aspect_preference: VERTICAL; \
+                               } \
+                       } \
+               } \
+       }
+
+
+collections {
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_CLOSE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_FULLSIZE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_RESIZE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_RESIZE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_MINSIZE);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_FF);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_FF_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_REW);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_REW_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_PLAY);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_PLAY_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_PAUSE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_MULTI_VIEW_PAUSE_PRESS);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NAVIFRAME_RES_ALLSHARE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NAVIFRAME_RES_ALLSHARE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NAVIFRAME_RES_ALLSHARE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NAVIFRAME_RES_SAVE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NAVIFRAME_RES_SAVE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NAVIFRAME_RES_SAVE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NAVIFRAME_RES_BACK);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NAVIFRAME_RES_BACK_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NAVIFRAME_RES_BACK_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_RESUME);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_PAUSE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_PREV);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_NEXT);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_VOLUME);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_VOLUME_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_VOLUME_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_MUTE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_MUTE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_MUTE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_BOOKMARK);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_BOOKMARK_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_BOOKMARK_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_POPUP_PLAYER);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_1_MODE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_1_MODE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_1_MODE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_2_MODE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_2_MODE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_2_MODE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_3_MODE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_3_MODE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_3_MODE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_4_MODE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_4_MODE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SCREEN_4_MODE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_MULTI_MODE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_MULTI_MODE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_MULTI_MODE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SHARE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SHARE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SHARE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SOUND_ALIVE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SOUND_ALIVE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_SOUND_ALIVE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_REPEAT_OFF);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_REPEAT_OFF_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_REPEAT_OFF_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_REPEAT_ONE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_REPEAT_ONE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_REPEAT_ONE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_REPEAT_ALL);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_REPEAT_ALL_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_REPEAT_ALL_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_TRIM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_TRIM_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_TRIM_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_ROTATE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_ROTATE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_ROTATE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BOOKMARK_RES_ADD);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BOOKMARK_RES_ADD_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BOOKMARK_RES_DEL);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BOOKMARK_RES_DEL_PRESS);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_TRIM_RES_REW);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_TRIM_RES_FF);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_SENSOR_RES_TRUN_OVER_01);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_SENSOR_RES_TRUN_OVER_02);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_SENSOR_RES_TRUN_OVER_03);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_MY_DEVICE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_TV_DEVICE);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_CTX_ADD_TO_HOME);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_CTX_CHAPTER_PREVIEW);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_CTX_DETAIL);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_CTX_DOWNLOAD);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_CTX_SETTING);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_CTX_SHARE_VIA);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_CTX_TRIM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_CTX_CONNECTION_INFO);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_TV_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_BD_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_LFD_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_STB_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_MOBILE_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_TABLET_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_DONGLE_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_CAMERA_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_CAMCORDER_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_REF_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_AC_WALL_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_WM_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_ROBOT_TV_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_PC_POPUP);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_UNKNOWN_POPUP);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_TV_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_BD_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_LFD_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_STB_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_MOBILE_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_TABLET_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_DONGLE_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_CAMERA_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_CAMCORDER_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_REF_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_AC_WALL_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_WM_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_ROBOT_TV_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_PC_ITEM);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_ALLSHARE_DEVICE_UNKNOWN_ITEM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_CAPTURE);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_CAPTURE_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_CAPTURE_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_CAPTURE_REW);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_CAPTURE_REW_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_CAPTURE_REW_DIM);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_CAPTURE_FF);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_CAPTURE_FF_PRESS);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_NORMAL_RES_CAPTURE_FF_DIM);
+
+       RESOURCE_IMAGE_COMP(VP_PLAY_NORMAL_RES_AUDIO_ONLY);
+       RESOURCE_IMAGE_COMP(VP_PLAY_NORMAL_RES_ERROR_IMAGE);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_RES_BUTTON_ADD);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_RES_BUTTON_ADD_PRESS);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_RES_BUTTON_DEL);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_RES_BUTTON_DEL_PRESS);
+
+       RESOURCE_IMAGE_COMP(VP_PLAY_TAG_BUDDY_DEAFULT);
+
+       RESOURCE_IMAGE_COMP(VP_PLAY_NORMAL_RES_LOCK);
+       RESOURCE_IMAGE_COMP(VP_PLAY_NORMAL_RES_LOCK_PRESS);
+       RESOURCE_IMAGE_COMP(VP_PLAY_NORMAL_RES_BLUETOOTH_HEADSET);
+       RESOURCE_IMAGE_COMP(VP_PLAY_NORMAL_RES_EARPHONE);
+       RESOURCE_IMAGE_COMP(VP_PLAY_NORMAL_RES_SPEAKER);
+       RESOURCE_IMAGE_COMP(VP_PLAY_TAG_BUDDY_LOGO);
+       RESOURCE_IMAGE_COMP(VP_PLAY_TAG_BUDDY_LOGO_JP);
+       RESOURCE_IMAGE_COMP(VP_PLAY_NORMAL_RES_DMC_ICON);
+
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_00);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_01);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_02);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_03);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_04);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_05);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_06);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_07);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_08);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_09);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_10);
+       RESOURCE_IMAGE_LOSSY(VP_PLAY_BRIGHTNESS_POPUP_ICON_11);
+}
+
diff --git a/vp-main/res/edje/pv-sensor-popup.edc b/vp-main/res/edje/pv-sensor-popup.edc
new file mode 100755 (executable)
index 0000000..eb6d258
--- /dev/null
@@ -0,0 +1,190 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+collections {
+       group {
+               name: "pv.sensor.popup";
+
+               parts {
+                       part {
+                               name: "pad_t";
+                               type: SPACER;
+                               scale : 1;
+                               mouse_events: 0;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.0;
+                                       min: 0 0;
+                                       fixed: 0 1;
+                                       rel1 { relative: 1.0 0.0;to_x: "pad_l"; }
+                                       rel2 { relative: 0.0 0.0;to_x: "pad_r"; }
+                               }
+                       }
+                       part {
+                               name: "pad_l";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min : 0 0;
+                                       fixed: 1 0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 0.0 1.0; }
+                                       align: 0.0 0.0;
+                               }
+                       }
+                       part {
+                               name: "pad_r";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min : 0 0;
+                                       fixed: 1 0;
+                                       rel1 { relative: 1.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       align: 1.0 0.0;
+                               }
+                       }
+                       part {
+                               name:"elm.swallow.content";
+                               type: SWALLOW;
+                               scale : 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 648 0;
+                                       align: 0.5 0.5;
+                                       fixed: 1 0;
+                                       rel1 { relative: 0.5 1.0; to: "pad_t"; }
+                                       rel2 { relative: 0.5 0.0; to: "pad_b"; }
+                               }
+                       }
+                       part {
+                               name: "pad_b";
+                               type: SPACER;
+                               scale : 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.5;
+                                       min: 0 48;
+                                       fixed: 0 1;
+                                       rel1 { relative: 1.0 1.0; to_x: "pad_l"; }
+                                       rel2 { relative: 0.0 1.0; to_x: "pad_r"; }
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.end";
+                               type: SWALLOW;
+                               scale : 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.5;
+                                       min: 48 48;
+                                       max: 48 48;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.18 0.0; to: "pad_b"; }
+                                       rel2 { relative: 1.0 1.0; to: "pad_b"; }
+                               }
+                       }
+                       part {
+                               name: "pad_after_check";
+                               type : RECT;
+                               scale : 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       min: 16 48;
+                                       fixed: 1 1;
+                                       visible: 0;
+                                       rel1 { relative: 1.0 0.0;to: "elm.swallow.end"; }
+                                       rel2 { relative: 1.0 1.0;to: "elm.swallow.end"; }
+                               }
+                       }
+                       part {
+                               name: "elm.text";
+                               type: TEXT;
+                               scale : 1;
+                               description {
+                                       state: "default" 0.0;
+                                       text {
+                                               font: "Tizen:style=Medium";
+                                               size: 42;
+                                               min: 0 0;
+                                               align: 0.0 0.5;
+                                       }
+                                       color: 0 0 0 255;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.0; to_x: "pad_after_check"; to_y: "elm.swallow.end"; }
+                                       rel2 { relative: 1.0 1.0; to_y: "elm.swallow.end"; }
+                               }
+                        }
+               } /* parts */
+       } /* group */
+       group {
+               name: "pv.sensor.popup.image";
+               inherit: "pv.sensor.popup";
+
+               parts {
+                       part{
+                               name:"elm.swallow.content";
+                               type: SWALLOW;
+                               scale : 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 648 0;
+                                       align: 0.5 0.5;
+                                       fixed: 1 0;
+                                       rel1 { relative: 0.5 1.0; to: "pad_t"; }
+                                       rel2 { relative: 0.5 0.0; to: "elm.swallow.icon.bg"; }
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.icon.bg";
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 1.0;
+                                       fixed: 1 1;
+                                       visible: 0;
+                                       min: 580 390;
+                                       rel1 { relative: 0.5 0.0; to: "pad_b"; }
+                                       rel2 { relative: 0.5 0.0; to: "pad_b"; }
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.icon";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.5;
+                                       fixed: 0 1;
+                                       min: 580 390;
+                                       rel1 { relative: 0.0 0.5; to: "elm.swallow.icon.bg"; }
+                                       rel2 { relative: 1.0 0.5; to: "elm.swallow.icon.bg"; }
+                               }
+                       }
+               } /* parts */
+       } /* group */
+} /* collections */
+
diff --git a/vp-main/res/edje/pv-speed-popup.edc b/vp-main/res/edje/pv-speed-popup.edc
new file mode 100755 (executable)
index 0000000..ebce651
--- /dev/null
@@ -0,0 +1,204 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+
+
+#define SPEED_POPUP_WIDTH_HEIGHT_MIN           0 100
+#define SPEED_POPUP_CONTENT_MIN                                0 50
+#define SPEED_POPUP_BUTTON_MIN                         40 40
+externals {
+          external: "elm";
+          external: "feedback";
+       }
+collections {
+       plugins {
+       plugin {
+               name: "touch_sound_plugin";
+               source: "feedback";
+               param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+               }
+       }
+       group {
+               name: "pv.play.speed.popup";
+               parts {
+                       part {
+                               name:"bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: SPEED_POPUP_WIDTH_HEIGHT_MIN;
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pad_l";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 10 0;
+                                       max: 10 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "bg";}
+                                       rel2 { relative: 0.0 1.0; to: "bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pad_r";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 10 0;
+                                       max: 10 0;
+                                       fixed: 1 0;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 0.0; to: "bg";}
+                                       rel2 { relative: 1.0 1.0; to: "bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pad_t";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 10;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "bg";}
+                                       rel2 { relative: 0.0 0.0; to: "bg";}
+                               }
+                       }
+
+                       part {
+                               name: "elm.text.title";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 54;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 1.0; to_y: "pad_t";}
+                                       rel2 { relative: 1.0 1.0; to_y: "pad_t";}
+                                       color: 0 0 0 255;
+                                       text {
+                                               font: "Tizen:style=Bold";
+                                               size: 25;
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "elm.swallow.icon.1";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: SPEED_POPUP_BUTTON_MIN;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 0.2; to_x: "pad_l"; to_y: "elm.text.title"; }
+                                       rel2 { relative: 1.0 0.2; to_x: "pad_l"; to_y: "elm.text.title"; }
+                               }
+                       }
+
+                       part {
+                               name: "elm.swallow.icon.left";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 6 0;
+                                       max: 6 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 1.0; to_x: "elm.swallow.icon.1"; to_y: "elm.text.title"; }
+                                       rel2 { relative: 1.0 1.0; to_x: "elm.swallow.icon.1"; to_y: "elm.text.title"; }
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.icon.right";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 6 0;
+                                       max: 6 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 1.0; to_x: "elm.swallow.icon.2"; to_y: "elm.text.title"; }
+                                       rel2 { relative: 0.0 1.0; to_x: "elm.swallow.icon.2"; to_y: "elm.text.title"; }
+                               }
+                       }
+
+                       part {
+                               name: "elm.swallow.icon.2";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: SPEED_POPUP_BUTTON_MIN;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 0.2; to_x: "pad_r"; to_y: "elm.text.title"; }
+                                       rel2 { relative: 0.0 0.2; to_x: "pad_r"; to_y: "elm.text.title"; }
+                               }
+                       }
+
+                       part {
+                               name: "elm.swallow.content";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: SPEED_POPUP_CONTENT_MIN;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 1.0 1.0; to_x: "pad_l"; to_y: "elm.swallow.icon.1"; }
+                                       rel2 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "elm.swallow.icon.1"; }
+                               }
+                       }
+               } /* parts */
+               programs {
+                       program{
+                       name: "touch_snd";
+                       source: "elm.swallow.icon.1";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+                       program{
+                       name: "touch_snd2";
+                       source: "elm.swallow.icon.2";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+               } /* programs*/
+       } /* group */
+} /* collections */
diff --git a/vp-main/res/edje/pv-subtitle-color-popup.edc b/vp-main/res/edje/pv-subtitle-color-popup.edc
new file mode 100755 (executable)
index 0000000..ae177c3
--- /dev/null
@@ -0,0 +1,326 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+#define SUBTITLE_TEXT_OFFSET   20
+collections {
+       group {
+           name: "pv.subtitle-color-popup";
+           styles {
+                       style { name: "caption_style";
+                               base: "font=Tizen:style=Regular align=center font_size=16 color=#FFFFFF";
+                               tag:  "br" "\n";
+                               tag:  "tab" "\t";
+                       }
+               }
+           parts{
+                   part {
+                           name: "pv.subtitle-color-popup.main.bg";
+                           type: SPACER;
+                           scale: 1;
+                           description {
+                                   state: "default" 0.0;
+                                                               min: 0 160;
+                                                               rel1 { relative: 0.0 0.0; }
+                                                               rel2 { relative: 1.0 1.0; }
+                           }
+                   }
+                   part {
+                           name: "pv.subtitle-color-popup.title";
+                           type: SPACER;
+                           scale: 1;
+                           description {
+                                   state: "default" 0.0;
+                                   min: 0 10;
+                                   fixed: 0 1;
+                                   rel1 { relative: 0.0 0.0; to: "pv.subtitle-color-popup.main.bg"; }
+                                   rel2 { relative: 1.0 0.0; to: "pv.subtitle-color-popup.main.bg"; }
+                                   align: 0.0 0.0;
+                           }
+                   }
+                               part { name: "pv.subtitle-color-group.text.bg";
+                                               type: RECT;
+                                               scale: 1;
+                                               description {
+                                                               state: "default" 0.0;
+                                                               min: 0 60;
+                                                               fixed: 0 1;
+                                                               rel1 { relative: 0.0 1.0; offset: 0 0; to: "pv.subtitle-color-popup.title"; }
+                                                               rel2 { relative: 1.0 1.0; offset: 0 0; to: "pv.subtitle-color-popup.title"; }
+                                                               align: 0.0 0.0;
+                                                               color: 243 243 243 255;
+                                               }
+                               }
+                               part {
+                                               name: "pv.subtitle-color-popup.subject";
+                                               type: TEXTBLOCK;
+                                               scale: 1;
+                                               description {
+                                                               state: "default" 0.0;
+                                                               min: 0 60;
+                                                               fixed: 0 1;
+                                                               rel1 { relative: 0.0 0.0; offset: SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-group.text.bg";}
+                                                               rel2 { relative: 1.0 1.0; offset: SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-group.text.bg";}
+                                                               align: 0.0 0.0;
+                                                               text {
+                                                                       style: "caption_style";
+                                                                       align: 0.5 0.5;
+                                                                       min: 0 1;
+                                                                       size: 16;
+                                                               }
+                                                               color: 255 255 255 255;
+                                               }
+                               }
+                               /*part {
+                                               name: "pv.subtitle-color-popup.divideline";
+                                               type: RECT;
+                                               scale: 1;
+                                               description {
+                                                               state: "default" 0.0;
+                                                               min: 0 3;
+                                                               fixed: 0 1;
+                                                               rel1 { relative: 0.0 1.0; offset: -SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.subject";}
+                                                               rel2 { relative: 1.0 1.0; offset: -SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.subject";}
+                                                               align: 0.0 0.0;
+                                                               color: 217 217 217 255;
+                                               }
+                               }*/
+                               part {
+                                               name: "pv.subtitle-color-popup.colorpalette.top";
+                                               type: SPACER;
+                                               scale: 1;
+                                               description {
+                                                               state: "default" 0.0;
+                                                               min: 0 10;
+                                                               fixed: 0 1;
+                                                               rel1 { relative: 0.0 1.0; to: "pv.subtitle-color-popup.subject";}
+                                                               rel2 { relative: 1.0 1.0; to: "pv.subtitle-color-popup.subject";}
+                                                               align: 0.0 0.0;
+                                               }
+                               }
+
+                   part {
+                           name: "pv.subtitle-color-popup.colorpalette.swallow";
+                           type: SWALLOW;
+                           scale: 1;
+                           description {
+                                   state: "default" 0.0;
+                                   rel1 { relative: 0.0 1.0; to: "pv.subtitle-color-popup.colorpalette.top"; }
+                                   rel2 { relative: 1.0 1.0; to: "pv.subtitle-color-popup.colorpalette.top"; }
+                                   align: 0.0 0.0;
+                           }
+                   }
+                               /*part {
+                                               name: "pv.subtitle-color-popup.opacity.text";
+                                               type: TEXT;
+                                               scale: 1;
+                                               description {
+                                                               state: "default" 0.0;
+                                                               min: 0 50;
+                                                               fixed: 0 1;
+                                                               rel1 { relative: 0.0 1.0; offset: SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.colorpalette.swallow";}
+                                                               rel2 { relative: 1.0 1.0; offset: SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.colorpalette.swallow";}
+                                                               align: 0.0 0.0;
+                                                               text {
+                                                                       align: 0.0 1.0;
+                                                                       min: 0 1;
+                                                                       size: 27;
+                                                               }
+                                                               color: 21 108 148 255;
+                                               }
+                               }
+                               part {
+                                               name: "pv.subtitle-color-popup.opacity.divideline";
+                                               type: RECT;
+                                               scale: 1;
+                                               description {
+                                                               state: "default" 0.0;
+                                                               min: 0 3;
+                                                               fixed: 0 1;
+                                                               rel1 { relative: 0.0 1.0; offset: -SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.opacity.text";}
+                                                               rel2 { relative: 1.0 1.0; offset: -SUBTITLE_TEXT_OFFSET 0; to: "pv.subtitle-color-popup.opacity.text";}
+                                                               align: 0.0 0.0;
+                                                               color: 217 217 217 255;
+                                               }
+                               }
+                               part {
+                                               name: "pv.subtitle-color-popup.opacity.percent";
+                                               type: TEXT;
+                                               scale: 1;
+                                               description {
+                                                               state: "default" 0.0;
+                                                               min: 0 100;
+                                                               fixed: 0 1;
+                                                               rel1 { relative: 0.0 1.0; to: "pv.subtitle-color-popup.opacity.divideline";}
+                                                               rel2 { relative: 1.0 1.0; to: "pv.subtitle-color-popup.opacity.divideline";}
+                                                               align: 0.0 0.0;
+                                                               text {
+                                                                       align: 0.5 1.0;
+                                                                       min: 0 1;
+                                                                       size: 27;
+                                                               }
+                                                               color: 21 108 148 255;
+                                               }
+                               }
+
+                               part {
+                                       name: "pad_l";
+                                       type: SPACER;
+                                       scale: 1;
+                                       description {
+                                               state: "default" 0.0;
+                                               min: 24 0;
+                                               max: 24 0;
+                                               fixed: 1 0;
+                                               align: 0.0 0.0;
+                                               rel1 { relative: 0.0 0.0; to: "pv.subtitle-color-popup.main.bg";}
+                                               rel2 { relative: 0.0 1.0; to: "pv.subtitle-color-popup.main.bg";}
+                                       }
+                               }
+                               part {
+                                       name: "pad_r";
+                                       type: SPACER;
+                                       scale: 1;
+                                       description {
+                                               state: "default" 0.0;
+                                               min: 24 0;
+                                               max: 24 0;
+                                               fixed: 1 0;
+                                               align: 1.0 1.0;
+                                               rel1 { relative: 1.0 0.0; to: "pv.subtitle-color-popup.main.bg";}
+                                               rel2 { relative: 1.0 1.0; to: "pv.subtitle-color-popup.main.bg";}
+                                       }
+                               }
+
+                               part {
+                                       name: "elm.swallow.icon.1";
+                                       type: SWALLOW;
+                                       scale: 1;
+                                       description {
+                                               state: "default" 0.0;
+                                               min: 63 78;
+                                               fixed: 1 1;
+                                               align: 0.0 0.0;
+                                               rel1 { relative: 1.0 1.0; to_x: "pad_l"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+                                               rel2 { relative: 1.0 1.0; to_x: "pad_l"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+                                       }
+                               }
+                               part {
+                                       name: "elm.swallow.icon.left";
+                                       type: RECT;
+                                       scale: 1;
+                                       description {
+                                               state: "default" 0.0;
+                                               visible: 0;
+                                               min: 6 0;
+                                               max: 6 0;
+                                               fixed: 1 0;
+                                               align: 0.0 0.5;
+                                               rel1 { relative: 1.0 1.0; to_x: "elm.swallow.icon.1"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+                                               rel2 { relative: 1.0 1.0; to_x: "elm.swallow.icon.1"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+                                       }
+                               }
+                               part {
+                                       name: "elm.swallow.icon.right";
+                                       type: RECT;
+                                       scale: 1;
+                                       description {
+                                               state: "default" 0.0;
+                                               visible: 0;
+                                               min: 6 0;
+                                               max: 6 0;
+                                               fixed: 1 0;
+                                               align: 1.0 0.5;
+                                               rel1 { relative: 0.0 1.0; to_x: "elm.swallow.icon.2"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+                                               rel2 { relative: 0.0 1.0; to_x: "elm.swallow.icon.2"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+                                       }
+                               }
+                               part {
+                                       name: "elm.swallow.icon.2";
+                                       type: SWALLOW;
+                                       scale: 1;
+                                       description {
+                                               state: "default" 0.0;
+                                               min: 63 78;
+                                               fixed: 1 1;
+                                               align: 1.0 0.0;
+                                               rel1 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+                                               rel2 { relative: 0.0 1.0; to_x: "pad_r"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+                                       }
+                               }
+                               part {
+                                       name: "elm.swallow.content";
+                                       type: SWALLOW;
+                                       scale: 1;
+                                       description {
+                                               state: "default" 0.0;
+                                               min: 0 78;
+                                               fixed: 0 1;
+                                               align: 0.5 0.0;
+                                               rel1 { relative: 1.0 1.0; to_x: "elm.swallow.icon.left"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+                                               rel2 { relative: 0.0 1.0; to_x: "elm.swallow.icon.right"; to_y: "pv.subtitle-color-popup.opacity.percent"; }
+                                       }
+                               }*/
+
+                   /*part {
+                           name: "colorpalette_bottom_padding";
+                           type: SPACER;
+                           scale: 1;
+                           description {
+                                   state: "default" 0.0;
+                                   min: 0 12;
+                                   fixed: 0 1;
+                                   rel1 {
+                                           relative: 0.0 1.0;
+                                           to_y: "colorpalette";
+                                           to_x: "bg";
+                                   }
+                                   rel2 {
+                                           to_x: "bg";
+                                           to_y: "colorpalette";
+                                   }
+                                   align: 0.0 0.0;
+                           }
+                   }*/
+
+           }//end parts
+       } //end group
+       group { name: "pv.subtitle.scroller.layout";
+          parts {
+             part { name: "elm.swallow.content";
+                type: SWALLOW;
+                scale: 1;
+                description { state: "default" 0.0;
+                   fixed: 1 0;
+                   min: 0 160;
+                }
+             }
+          }
+       }
+       group { name: "pv.subtitle.scroller.layout.landscape";
+          parts {
+             part { name: "elm.swallow.content";
+                type: SWALLOW;
+                scale: 1;
+                description { state: "default" 0.0;
+                   fixed: 1 0;
+                   min: 0 160;
+                }
+             }
+          }
+       }
+}
+
diff --git a/vp-main/res/edje/pv-subtitle.edc b/vp-main/res/edje/pv-subtitle.edc
new file mode 100755 (executable)
index 0000000..4b31adc
--- /dev/null
@@ -0,0 +1,296 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define FONT_COLOR                             255 255 255 255
+#define _SCREEN_SIZE_PROTRAIT_                 480 750
+#define _SCREEN_SIZE_LANDSCAPE_                        800 430
+#define SUBTITLE_K_FEATURE
+
+collections {
+       base_scale: 1.8;
+       styles {
+               style {
+                       name: "textblock_style_small";
+                       base: "font=Tizen:style=Roman font_size=28 color=#fff align=center wrap=word";
+                       tag:  "br" "\n";
+                       tag:  "ps" "ps";
+                       tag:  "hilight" "+ font=Tizen:style=Roman";
+                       tag:  "b" "+ font=Tizen:style=Roman";
+                       tag:  "tab" "\t";
+               }
+               style {
+                       name: "textblock_style_medium";
+                       base: "font=Tizen:style=Roman font_size=42 color=#fff align=center wrap=word";
+                       tag:  "br" "\n";
+                       tag:  "ps" "ps";
+                       tag:  "hilight" "+ font=Tizen:style=Roman";
+                       tag:  "b" "+ font=Tizen:style=Roman";
+                       tag:  "tab" "\t";
+               }
+
+               style {
+                       name: "textblock_style_large";
+                       base: "font=Tizen:style=Roman font_size=54 color=#fff align=center wrap=word";
+                       tag:  "br" "\n";
+                       tag:  "ps" "ps";
+                       tag:  "hilight" "+ font=Tizen:style=Roman";
+                       tag:  "b" "+ font=Tizen:style=Roman";
+                       tag:  "tab" "\t";
+               }
+               style {
+                       name: "textblock_style_default";
+                       base: "font=Tizen:style=Roman align=center wrap=word";
+                       tag:  "br" "\n";
+                       tag:  "ps" "ps";
+                       tag:  "hilight" "+ font=Tizen:style=Roman";
+                       tag:  "b" "+ font=Tizen:style=Roman";
+                       tag:  "tab" "\t";
+               }
+       }
+       group {
+               name: "pv.subtitle";
+
+               parts {
+                       part {
+                               name: "pv.subtitle.main.bg";
+                               type: SPACER;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+#ifdef SUBTITLE_K_FEATURE
+                                       min: _SCREEN_SIZE_PROTRAIT_;
+                                       max: _SCREEN_SIZE_PROTRAIT_;
+                               }
+                               description {
+                                       state: "landscape.show" 0.0;
+                                       min: _SCREEN_SIZE_LANDSCAPE_;
+                                       max: _SCREEN_SIZE_LANDSCAPE_;
+#endif
+                               }
+                       }
+
+                       part {
+                               name: "pv.subtitle.main.bottom.padding";
+                               type: SPACER;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 25;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.subtitle.main.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.subtitle.main.bg";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.subtitle.grep.box";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 0.0; offset:0 5; to: "pv.subtitle.main.bg";}
+                                       rel2 { relative: 1.0 0.0; offset:0 5; to: "pv.subtitle.main.bg";}
+                                       min: 720 50;
+                                       max: 720 50;
+                                       color: 0 0 0 0;
+                               }
+                               description {
+                                       state: "grep.box.show" 0.0;
+                                       inherit: "default";
+                                       color: 80 80 150 150;
+                               }
+                       }
+
+                       part {
+                               name: "pv.subtitle.caption.window";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 0.0; offset:0 5 ;to: "pv.subtitle.main.bg";}
+                                       rel2 { relative: 1.0 0.0; offset:0 5 ;to: "pv.subtitle.main.bg";}
+                                       min: 720 50;
+                                       max: 720 50;
+                                       color: 0 0 0 0;
+                               }
+                               description {
+                                       state: "caption.window.show" 0.0;
+                                       inherit: "default";
+                                       align: 0.0 0.0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.subtitle.swallow.txt";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       visible: 1;
+                                       state: "default" 0.0;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 0.0; offset:0 20;to: "pv.subtitle.main.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.subtitle.main.bottom.padding";}
+                               }
+                       }
+
+#ifdef SUBTITLE_K_FEATURE
+                       programs {
+                               program {
+                                       name: "subtitle_landscape_show";
+                                       signal: "signal.pv.subtitle.main.landscape.show";
+                                       source: "*";
+                                       action: STATE_SET "landscape.show" 0.0;
+                                       target: "pv.subtitle.main.bg";
+                               }
+                               program {
+                                       name: "subtitle_portrait_show";
+                                       signal: "signal.pv.subtitle.main.portrait.show";
+                                       source: "*";
+                                       action: STATE_SET "default" 0.0;
+                                       target: "pv.subtitle.main.bg";
+                               }
+                               program {
+                                       name: "subtitle_grep_box_show";
+                                       signal: "signal.pv.subtitle.grep.box.show";
+                                       source: "*";
+                                       action: STATE_SET "grep.box.show" 0.0;
+                                       target: "pv.subtitle.grep.box";
+                               }
+                               program {
+                                       name: "subtitle_grep_box_hide";
+                                       signal: "signal.pv.subtitle.grep.box.hide";
+                                       source: "*";
+                                       action: STATE_SET "default" 0.0;
+                                       target: "pv.subtitle.grep.box";
+                               }
+                               program {
+                                       name: "subtitle_caption_window_hide";
+                                       signal: "signal.pv.subtitle.caption.window.hide";
+                                       source: "*";
+                                       action: STATE_SET "default" 0.0;
+                                       target: "pv.subtitle.caption.window";
+                               }
+                       }/* programs */
+                       script {
+                               public message(Msg_Type:type, id, ...) {
+                                       if ((type == MSG_INT_SET) && (id == 1)) {
+                                               new w = getarg(2);
+                                               new h = getarg(3);
+
+                                               custom_state(PART:"pv.subtitle.grep.box", "grep.box.show", 0.0);
+                                               set_state_val(PART:"pv.subtitle.grep.box", STATE_MIN, w, h);
+                                               set_state_val(PART:"pv.subtitle.grep.box", STATE_MAX, w, h);
+                                               set_state(PART:"pv.subtitle.grep.box", "custom", 0.0);
+                                       }
+                                       else if ((type == MSG_INT_SET) && (id == 2)) {
+                                               new w = getarg(2);
+                                               new h = getarg(3);
+
+                                               custom_state(PART:"pv.subtitle.caption.window", "caption.window.show", 0.0);
+                                               set_state_val(PART:"pv.subtitle.caption.window", STATE_MIN, w, h);
+                                               set_state_val(PART:"pv.subtitle.caption.window", STATE_MAX, w, h);
+                                               set_state(PART:"pv.subtitle.caption.window", "custom", 0.0);
+                                       }
+                                       else if ((type == MSG_INT_SET) && (id == 3)) {
+                                               new r = getarg(2);
+                                               new g = getarg(3);
+                                               new b = getarg(4);
+                                               new a = getarg(5);
+
+                                               custom_state(PART:"pv.subtitle.caption.window", "caption.window.show", 0.0);
+                                               set_state_val(PART:"pv.subtitle.caption.window", STATE_COLOR, r, g, b, a);
+                                               set_state(PART:"pv.subtitle.caption.window", "custom", 0.0);
+                                       }
+                                       else if ((type == MSG_INT_SET) && (id == 4)) {
+                                               new left = getarg(2);
+                                               new top = getarg(3);
+
+                                               custom_state(PART:"pv.subtitle.caption.window", "caption.window.show", 0.0);
+                                               set_state_val(PART:"pv.subtitle.caption.window",  STATE_REL1_OFFSET, left, top);
+                                               set_state(PART:"pv.subtitle.caption.window", "custom", 0.0);
+                                       }
+                               }
+                       }/* script */
+#endif
+               } /* parts */
+       }       /* group */
+
+       group {
+               name: "pv.multi-subtitle";
+
+               parts {
+                       part {
+                               name: "pv.multi.subtitle.main.bg";
+                               type: SPACER;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.multi.subtitle.main.bottom.padding";
+                               type: SPACER;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 25;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 1.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+                       part {
+                               name: "pv.multi.subtitle.label.txt";
+                               type: TEXTBLOCK;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               multiline: 1;
+                               description {
+                                       visible: 1;
+                                       state: "default" 0.0;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 0.0; to_y: "pv.multi.subtitle.main.bottom.padding";}
+                                       text {
+                                               style: "textblock_style_default";
+                                               align: 0.5 1.0;
+                                       }
+                               }
+                       }
+               } /* parts */
+       }       /* group */
+} /* collections */
+
diff --git a/vp-main/res/edje/pv-tag-buddy.edc b/vp-main/res/edje/pv-tag-buddy.edc
new file mode 100755 (executable)
index 0000000..49a7a5d
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+collections {
+       group {
+               name: "pv.tag.buddy";
+               parts {
+                       part {
+                               name: "pv.tag.buddy.bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: 248 246 239 255;//8 8 8 255
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+                       part {
+                               name: "pv.tag.buddy.preview";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 328;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 {relative: 0.0 0.0;}
+                                       rel2 {relative: 1.0 0.0;}
+                               }
+                       }
+                       part {
+                               name: "pv.tag.buddy.list";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 {relative: 0.0 1.0; to : "pv.tag.buddy.preview";}
+                                       rel2 {relative: 1.0 1.0;}
+                               }
+                       }
+               }
+       }
+}
diff --git a/vp-main/res/edje/pv-tag-preview.edc b/vp-main/res/edje/pv-tag-preview.edc
new file mode 100755 (executable)
index 0000000..62b4e28
--- /dev/null
@@ -0,0 +1,217 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+collections {
+       group {
+               name: "pv.tag.preview";
+               parts {
+                       part {
+                               name: "pv.tag.preview.bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: 125 125 125 255;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.tag.preview.image";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.tag.preview.accuweather.rect";
+                               type: RECT;
+                               scale:1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 200 36;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 0.0 0.0;}
+                                       color: 0 255 0 255;
+                               }
+                               description {
+                                       state: "weather_jp" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 160 60;
+                               }
+                       }
+                       part {
+                               name: "pv.tag.preview.accuweather";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 200 36;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 0.0 0.0;}
+                                       image { normal: "tag/T01-1_logo_accuweather.png"; }
+                               }
+                               description {
+                                       state: "weather_jp" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 160 60;
+                                       image { normal: "tag/U07_weather_logo.png"; }
+                               }
+                       }
+                       part {
+                               name: "pv.tag.preview.table.top";
+                               type: RECT;
+                               scale:1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 20;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.tag.preview.accuweather";}
+                                       rel2 { relative: 0.0 1.0; to: "pv.tag.preview.accuweather";}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "pv.tag.preview.table.shadow";
+                               type: SWALLOW;
+                               scale:1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.tag.preview.table"; offset: 0 2;}//2pix offset
+                                       rel2 { relative: 1.0 1.0; to: "pv.tag.preview.table"; offset: 0 2;}
+                               }
+                       }
+                       part {
+                               name: "pv.tag.preview.table";
+                               type: SWALLOW;
+                               scale:1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 0.0 1.0; to_y: "pv.tag.preview.table.top";}
+                                       rel2 { relative: 1.0 0.0; to_y: "pv.tag.preview.time";}
+                               }
+                       }
+                       part {
+                               name: "pv.tag.preview.time.shadow";
+                               type: SWALLOW;
+                               scale:1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.tag.preview.time"; offset: 0 2;}//2pix offset
+                                       rel2 { relative: 1.0 0.0; to: "pv.tag.preview.time"; offset: 0 0;}
+                               }
+                       }
+                       part {
+                               name: "pv.tag.preview.time";
+                               type: SWALLOW;
+                               scale:1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 20;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+               } /* parts */
+               programs {
+                       program {
+                               name: "www.accuweather.com";
+                               signal: "signal.pv.tag.accuweather";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.tag.preview.accuweather";
+                               target: "pv.tag.preview.accuweather.rect";
+                       }
+                       program {
+                               name: "weathernews.jp";
+                               signal: "signal.pv.tag.weathernews";
+                               source: "*";
+                               action: STATE_SET "weather_jp" 0.0;
+                               target: "pv.tag.preview.accuweather";
+                               target: "pv.tag.preview.accuweather.rect";
+                       }
+               } /* programs */
+       } /* group */
+       group {
+               name: "pv.tag.buddy.normal";
+               parts {
+                       part {
+                               name: "pv.tag.preview.bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       color: 125 125 125 255;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+                       part {
+                               name: "pv.tag.preview.table.shadow";
+                               type: SWALLOW;
+                               scale:1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.tag.preview.table"; offset: 0 2;}//2pix offset
+                                       rel2 { relative: 1.0 0.0; to: "pv.tag.preview.table"; offset: 0 0;}
+                               }
+                       }
+                       part {
+                               name: "pv.tag.preview.table";
+                               type: SWALLOW;
+                               scale:1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.tag.preview.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.tag.preview.bg";}
+                               }
+                       }
+               } /* parts */
+       } /* group */
+} /* collections */
+
diff --git a/vp-main/res/edje/pv-trim-control.edc b/vp-main/res/edje/pv-trim-control.edc
new file mode 100755 (executable)
index 0000000..2c763c6
--- /dev/null
@@ -0,0 +1,747 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+#ifndef _TRIME_VIEW_NEW_FEATURE
+#define _TRIME_VIEW_NEW_FEATURE
+#endif
+
+#define FONT_LIGHT_TYPE                        "Tizen:style=Light"
+#define FONT_COLOR                             248 246 239 128
+#define TRIM_CONTROL_TOP_PADDING               9
+#define TRIM_CONTROL_BOTTOM_PADDING            4
+#define TRIM_CONTROL_GENGRID_HEIGHT            100
+#define TRIM_CONTROL_PICKER_HEIGHT             147
+#define TRIM_CONTROL_PICKER_WIDTH              37
+#define TRIM_CONTROL_LEFT_HEIGHT               118
+#define TRIM_CONTROL_LEFT_WIDTH                30
+
+#ifdef _TRIME_VIEW_NEW_FEATURE
+#define TRIM_CONTROL_INTERVAL          8
+#endif
+
+collections {
+       group {
+               name: "pv.trim.control";
+
+               parts {
+                       part {
+                               name: "pv.trim.control.bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.top.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 TRIM_CONTROL_TOP_PADDING;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_y : "pv.trim.control.bg"; }
+                                       rel2 { relative: 1.0 0.0; to_y : "pv.trim.control.bg"; }
+                                       color: 0 0 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.bottom.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 TRIM_CONTROL_BOTTOM_PADDING;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to_y : "pv.trim.control.bg"; }
+                                       rel2 { relative: 1.0 1.0; to_y : "pv.trim.control.bg"; }
+                                       color: 0 255 0 50;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.bg.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.0; to: "pv.trim.control.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.trim.control.bg";}
+                                       color: 45 45 45 255;
+                               }
+                       }
+#ifdef _TRIME_VIEW_NEW_FEATURE
+                       part {
+                               name: "pv.trim.control.progress.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 118;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 0.0; to_y: "pv.trim.control.bottom.padding";}
+                                       rel2 { relative: 1.0 0.0; to_y: "pv.trim.control.bottom.padding";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+#else
+                       part {
+                               name: "pv.trim.control.progress.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 118;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_y: "pv.trim.control.bg";}
+                                       rel2 { relative: 1.0 0.0; to_y: "pv.trim.control.bg";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+#endif
+
+/*
+                       part {
+                               name: "pv.trim.control.progress.rect.playing.left";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 12 124;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_y: "pv.trim.control.top.padding";}
+                                       rel2 { relative: 0.0 1.0; to_y: "pv.trim.control.top.padding";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.progress.rect.playing.right";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 12 124;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 1.0; to_y: "pv.trim.control.top.padding";}
+                                       rel2 { relative: 1.0 1.0; to_y: "pv.trim.control.top.padding";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+*/
+#ifdef _TRIME_VIEW_NEW_FEATURE
+                       part {
+                               name: "pv.trim.control.gengrid.rect";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 TRIM_CONTROL_GENGRID_HEIGHT;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 1.0; to_y: "pv.trim.start.txt"; offset: 0 TRIM_CONTROL_INTERVAL;}
+                                       rel2 { relative: 1.0 1.0; to_y: "pv.trim.start.txt"; offset: 0 TRIM_CONTROL_INTERVAL;}
+                               }
+                       }
+#else
+                       part {
+                               name: "pv.trim.control.gengrid.rect";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 TRIM_CONTROL_GENGRID_HEIGHT;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 1.0; to_y: "pv.trim.control.top.padding"; }
+                                       rel2 { relative: 1.0 1.0; to_y: "pv.trim.control.top.padding"; }
+                               }
+                       }
+#endif
+                       part {
+                               name: "pv.trim.control.txt.left.padding";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 26 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_y: "pv.trim.control.progress.rect";}
+                                       rel2 { relative: 0.0 1.0; to_y: "pv.trim.control.progress.rect";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.txt.right.padding";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 26 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to_y: "pv.trim.control.progress.rect";}
+                                       rel2 { relative: 1.0 1.0; to_y: "pv.trim.control.progress.rect";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+#ifdef _TRIME_VIEW_NEW_FEATURE
+                       part {
+                               name: "pv.trim.start.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 127 30;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 1.0; to_x : "pv.trim.control.txt.left.padding"; to_y : "pv.trim.control.top.padding";}
+                                       rel2 { relative: 1.0 1.0; to_x : "pv.trim.control.txt.left.padding"; to_y : "pv.trim.control.top.padding";}
+                                       color: FONT_COLOR;
+                                       text {
+                                               font: FONT_LIGHT_TYPE;
+                                               size: 28;
+                                               text: "00:00:00";
+                                               align: 0.0 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.total.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 127 30;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_x : "pv.trim.control.txt.right.padding"; to_y : "pv.trim.control.top.padding";}
+                                       rel2 { relative: 0.0 1.0; to_x : "pv.trim.control.txt.right.padding"; to_y : "pv.trim.control.top.padding";}
+                                       color: FONT_COLOR;
+                                       text {
+                                               font: FONT_LIGHT_TYPE;
+                                               size: 28;
+                                               text: "00:00:00";
+                                               align: 1.0 0.5;
+                                       }
+                               }
+                       }
+#else
+                       part {
+                               name: "pv.trim.start.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 127 30;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 1.0; to_x : "pv.trim.control.txt.left.padding"; to_y : "pv.trim.control.gengrid.rect"; offset: 0 17;}
+                                       rel2 { relative: 1.0 1.0; to_x : "pv.trim.control.txt.left.padding"; to_y : "pv.trim.control.gengrid.rect";     offset: 0 17;}
+                                       color: FONT_COLOR;
+                                       text {
+                                               font: FONT_LIGHT_TYPE;
+                                               size: 28;
+                                               text: "00:00:00";
+                                               align: 0.0 0.5;
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.total.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 127 30;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to_x : "pv.trim.control.txt.right.padding"; to_y : "pv.trim.control.gengrid.rect"; offset: 0 17;}
+                                       rel2 { relative: 0.0 1.0; to_x : "pv.trim.control.txt.right.padding"; to_y : "pv.trim.control.gengrid.rect"; offset: 0 17;}
+                                       color: FONT_COLOR;
+                                       text {
+                                               font: FONT_LIGHT_TYPE;
+                                               size: 28;
+                                               text: "00:00:00";
+                                               align: 1.0 0.5;
+                                       }
+                               }
+                       }
+#endif
+                       part {
+                               name: "pv.trim.control.confine.rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 TRIM_CONTROL_PICKER_HEIGHT;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.trim.control.progress.rect"; offset: 0 -14.5;}
+                                       rel2 { relative: 1.0 0.0; to: "pv.trim.control.progress.rect"; offset: 0 -14.5;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.confine.rect.picker";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: TRIM_CONTROL_PICKER_WIDTH TRIM_CONTROL_PICKER_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.trim.control.playing"; to_y: "pv.trim.control.confine.rect";}
+                                       rel2 { relative: 0.0 1.0; to_x: "pv.trim.control.playing"; to_y: "pv.trim.control.confine.rect";}
+                                       image { normal: "trim/T01_2_trim_picker.png"; }
+                               }
+                       #ifdef _TRIME_VIEW_NEW_FEATURE
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       #endif
+                       }
+
+                       part { name: "pv.trim.control.playing";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       //31 mean it is convenient to move played bar
+                                       min: TRIM_CONTROL_PICKER_WIDTH TRIM_CONTROL_PICKER_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       color: 0 0 0 0;
+                               }
+                               dragable {
+                                       confine:  "pv.trim.control.confine.rect";
+                                       x: 1 1 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.start.rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_y : pv.trim.control.progress.rect;}
+                                       rel2 { relative: 0.0 1.0; to_y : pv.trim.control.progress.rect;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.end.rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to_y : pv.trim.control.progress.rect;}
+                                       rel2 { relative: 1.0 1.0; to_y : pv.trim.control.progress.rect;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part { name: "pv.trim.control.confine.rect.start";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: TRIM_CONTROL_LEFT_WIDTH TRIM_CONTROL_LEFT_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x: pv.trim.control.start.rect; to_y: pv.trim.control.progress.rect; }
+                                       rel2 { relative: 1.0 0.5; to_x: pv.trim.control.end.rect; to_y: pv.trim.control.progress.rect; }
+                                       color: 255 255 255 0;
+                               }
+                       }
+
+                       part { name: "pv.trim.control.confine.rect.end";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: TRIM_CONTROL_LEFT_WIDTH TRIM_CONTROL_LEFT_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x: pv.trim.control.start.rect; to_y: pv.trim.control.progress.rect; }
+                                       rel2 { relative: 1.0 0.5; to_x: pv.trim.control.end.rect; to_y: pv.trim.control.progress.rect; }
+                                       color: 255 255 255 0;
+                               }
+                       }
+
+                       part { name: "pv.trim.control.confine.rect.start.bg";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 100;
+                                       fixed: 0 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_y: pv.trim.control.progress.rect; }
+                                       rel2 { relative: 0.5 0.5; to_x: pv.trim.control.confine.start.img; to_y: pv.trim.control.progress.rect; }
+                                       color: 0 0 0 153;
+                               }
+                       }
+
+                       part { name: "pv.trim.control.confine.rect.end.bg";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 100;
+                                       fixed: 0 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 0.5 0.5; to_x: pv.trim.control.confine.end.img; to_y: pv.trim.control.progress.rect; }
+                                       rel2 { relative: 1.0 0.5; to_y: pv.trim.control.progress.rect; }
+                                       color: 0 0 0 153;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.confine.start.img";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: TRIM_CONTROL_LEFT_WIDTH TRIM_CONTROL_LEFT_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       image { normal: "trim/T01_2_trim_left.png";}
+                                       rel1 { relative: 0.0 0.5; to: pv.trim.control.confine.start; }
+                                       rel2 { relative: 0.0 0.5; to: pv.trim.control.confine.start; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.confine.end.img";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: TRIM_CONTROL_LEFT_WIDTH TRIM_CONTROL_LEFT_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       image { normal: "trim/T01_2_trim_right.png";}
+                                       rel1 { relative: 1.0 0.5; to: pv.trim.control.confine.end; }
+                                       rel2 { relative: 1.0 0.5; to: pv.trim.control.confine.end; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.confine.start";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: TRIM_CONTROL_LEFT_WIDTH TRIM_CONTROL_LEFT_HEIGHT;//48
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       color: 0 0 0 0;
+                               }
+                               dragable {
+                                       confine:  "pv.trim.control.confine.rect.start";
+                                       x: 1 1 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.confine.end";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: TRIM_CONTROL_LEFT_WIDTH TRIM_CONTROL_LEFT_HEIGHT;//48
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       color: 0 0 0 0;
+                               }
+                               dragable {
+                                       confine:  "pv.trim.control.confine.rect.end";
+                                       x: 1 1 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.toolbar.save.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 112 111;
+                                       fixed: 1 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to_y : "pv.trim.control.bg"; }
+                                       rel2 { relative: 0.0 1.0; to_y : "pv.trim.control.bg"; }
+                                       color: 0 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.toolbar.save";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 86 98;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.5; to: "pv.trim.control.toolbar.save.rect";}
+                                       rel2 { relative: 1.0 0.5; to: "pv.trim.control.toolbar.save.rect";}
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.toolbar.back.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 112 111;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to_y : "pv.trim.control.bg"; }
+                                       rel2 { relative: 1.0 1.0; to_y : "pv.trim.control.bg"; }
+                                       color: 0 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.toolbar.back";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 86 98;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.5; to: "pv.trim.control.toolbar.back.rect";}
+                                       rel2 { relative: 1.0 0.5; to: "pv.trim.control.toolbar.back.rect";}
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+#ifndef _TRIME_VIEW_NEW_FEATURE
+                       part {
+                               name: "pv.trim.control.toolbar.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 0 132;
+                                       fixed: 0 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 0.0 0.0; to_x : "pv.trim.control.bg"; to_y : "pv.trim.control.bottom.padding"; }
+                                       rel2 { relative: 1.0 0.0; to_x : "pv.trim.control.bg"; to_y : "pv.trim.control.bottom.padding";}
+                                       color: 0 255 255 255;
+                               }
+                       }
+
+
+                       part {
+                               name: "pv.trim.control.play";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 132 132;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.0; to_y: "pv.trim.control.toolbar.rect";}
+                                       rel2 { relative: 0.5 1.0; to_y: "pv.trim.control.toolbar.rect";}
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.play.left.padding";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 27 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.trim.control.play"; to_y: "pv.trim.control.toolbar.rect";}
+                                       rel2 { relative: 0.0 1.0; to_x: "pv.trim.control.play"; to_y: "pv.trim.control.toolbar.rect";}
+                                       color: 255 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.play.right.padding";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 27 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.0; to_x: "pv.trim.control.play"; to_y: "pv.trim.control.toolbar.rect";}
+                                       rel2 { relative: 1.0 1.0; to_x: "pv.trim.control.play"; to_y: "pv.trim.control.toolbar.rect";}
+                                       color: 255 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.rew";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 108 108;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.5; to_x: "pv.trim.control.play.left.padding"; to_y: "pv.trim.control.toolbar.rect";}
+                                       rel2 { relative: 0.0 0.5; to_x: "pv.trim.control.play.left.padding"; to_y: "pv.trim.control.toolbar.rect";}
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.control.ff";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 108 108;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.5; to_x: "pv.trim.control.play.right.padding"; to_y: "pv.trim.control.toolbar.rect";}
+                                       rel2 { relative: 1.0 0.5; to_x: "pv.trim.control.play.right.padding"; to_y: "pv.trim.control.toolbar.rect";}
+                                       color: 255 255 255 255;
+                               }
+                       }
+#endif
+               } /* parts */
+#ifdef _TRIME_VIEW_NEW_FEATURE
+               programs {
+                       program {
+                               name: "hide_control_playing";
+                               signal: "signal.pv.trim.control.hide.playing";
+                               source: "*";
+                               action: STATE_SET "hide" 0.0;
+                               target: "pv.trim.control.confine.rect.picker";
+                       }
+                       program {
+                               name: "show_control_playing";
+                               signal: "signal.pv.trim.control.show.playing";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.trim.control.confine.rect.picker";
+                       }
+               }/* programs */
+#endif
+       }       /* group */
+} /* collections */
diff --git a/vp-main/res/edje/pv-trim-item.edc b/vp-main/res/edje/pv-trim-item.edc
new file mode 100755 (executable)
index 0000000..f29fca4
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define VP_TRIM_ITEM_RECT_MIN_MAX_INC          100 100
+
+collections {
+       group {
+               name: "pv.trim.item";
+               parts {
+                       part {
+                               name: "pv.trim.item.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: VP_TRIM_ITEM_RECT_MIN_MAX_INC;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "pv.trim.item.icon";
+                               scale: 1;
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: VP_TRIM_ITEM_RECT_MIN_MAX_INC;
+                                       max: VP_TRIM_ITEM_RECT_MIN_MAX_INC;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: pv.trim.item.rect;}
+                                       rel2 { relative: 1.0 1.0; to: pv.trim.item.rect;}
+                                       color: 255 255 255 255;
+                               }
+                       }
+               } /* parts */
+       }       /* group */
+} /* collections */
\ No newline at end of file
diff --git a/vp-main/res/edje/pv-trim-main.edc b/vp-main/res/edje/pv-trim-main.edc
new file mode 100755 (executable)
index 0000000..e36f7c4
--- /dev/null
@@ -0,0 +1,152 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+#ifndef _TRIME_VIEW_NEW_FEATURE
+#define _TRIME_VIEW_NEW_FEATURE
+#endif
+collections {
+       group {
+               name: "pv.trim.main";
+
+               parts {
+                       part {
+                               name: "pv.trim.main.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 255 255 255 0;
+                               }
+                       }
+#ifndef _TRIME_VIEW_NEW_FEATURE
+                       part {
+                               name: "pv.trim.top.control";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 68;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 0.0; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.main.control";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 292;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                       }
+#else
+                       part {
+                               name: "pv.trim.top.control";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 68;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 0.0; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.main.control";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 160;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                       }
+#endif
+#ifdef _TRIME_VIEW_NEW_FEATURE
+                       part {
+                               name: "pv.trim.main.loading";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 1.0; to: "pv.trim.top.control";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.trim.main.control";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.main.button";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 108 108;
+                                       max: 108 108;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 1.0; to: "pv.trim.top.control";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.trim.main.control";}
+                               }
+                       }
+#else
+                       part {
+                               name: "pv.trim.main.loading";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+#endif
+               } /* parts */
+       }       /* group */
+} /* collections */
diff --git a/vp-main/res/edje/pv-trim-top-control.edc b/vp-main/res/edje/pv-trim-top-control.edc
new file mode 100755 (executable)
index 0000000..f1e7e6a
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+
+collections {
+       group {
+               name: "pv.trim.top";
+
+               parts {
+                       part {
+                               name: "pv.trim.top.bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.top.right.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 26 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 255 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.trim.top.rotate";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 68 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to_x: "pv.trim.top.right.padding"; to_y: "pv.trim.top.bg";}
+                                       rel2 { relative: 0.0 1.0; to_x: "pv.trim.top.right.padding"; to_y: "pv.trim.top.bg";}
+                                       color: 255 0 0 255;
+                               }
+                       }
+               } /* parts */
+       } /* group */
+} /* collections */
\ No newline at end of file
diff --git a/vp-main/res/edje/pv-volume-popup.edc b/vp-main/res/edje/pv-volume-popup.edc
new file mode 100755 (executable)
index 0000000..3935957
--- /dev/null
@@ -0,0 +1,310 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define FONT_BOLD_TYPE                 "Tizen:style=Bold"
+
+#define FONT_VOLUME_COLOR              255 255 255 255
+#define VOLUME_POPUP_BUTTON_HEIGHT             24
+#define VOLUME_POPUP_BUTTON_WIDTH              24
+
+collections {
+       base_scale : 1.6;
+       group {
+               name: "pv.volume.popup";
+               parts {
+                       part {
+                               name: "pv.volume.popup.rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               repeat_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: 58 286;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.5 0.5;}
+                                       rel2 { relative: 0.5 0.5;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.popup.bg";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: 58 286;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.5 0.5;}
+                                       rel2 { relative: 0.5 0.5;}
+                                       color: 255 255 255 255;
+                                       image { normal: "volume/T01_2_volume_popup_bg.png"; border: 0 0 15 15;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.popup.icon.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: 0 12;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.volume.popup.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.volume.popup.bg";}
+                                       color: 255 0 0 255;
+
+                               }
+                       }
+                       part {
+                               name: "pv.volume.popup.icon";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: 22 22;
+                                       fixed: 1 1;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.5 1.0; to_x: "pv.volume.popup.bg"; to_y: "pv.volume.popup.icon.padding";}
+                                       rel2 { relative: 0.5 1.0; to_x: "pv.volume.popup.bg"; to_y: "pv.volume.popup.icon.padding";}
+                                       color: 255 255 255 255;
+                                       image { normal: "popup/T01-2_volume_popup_icon_volume01.png"; }
+                               }
+                               description {
+                                       state: "mute" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: "popup/T01-2_volume_popup_icon_volume02.png"; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.popup.top.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: 0 11;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.volume.popup.icon";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.volume.popup.icon";}
+                                       color: 255 0 0 255;
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.popup.bottom.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: 0 18;
+                                       fixed: 1 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.volume.popup.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.volume.popup.bg";}
+                                       color: 255 0 0 255;
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.popup.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               effect: FAR_SHADOW BOTTOM;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: 0 23;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.volume.popup.bottom.padding";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.volume.popup.bottom.padding";}
+                                       color: FONT_VOLUME_COLOR;
+                                       color3: 51 57 72 255;
+                                       text {
+                                               font: FONT_BOLD_TYPE;
+                                               size: 21;
+                                               text: "3";
+                                               align: 0.5 0.5;
+                                       }
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.popup.txt.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: 0 11;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.volume.popup.txt";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.volume.popup.txt";}
+                                       color: 255 0 0 255;
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.popup.bar.bg";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 6 0;
+                                       fixed: 1 0;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.5 1.0; to_x : "pv.volume.popup.bg";  to_y : "pv.volume.popup.top.padding";}
+                                       rel2 { relative: 0.5 0.0; to_x : "pv.volume.popup.bg";  to_y : "pv.volume.popup.txt.padding";}
+                                       image { normal: "volume/T01_2_volume_popup_progress_bg.png"; border: 0 0 10 10;}
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.popup.step";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 6 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.5; to_x : "pv.volume.popup.bar.bg"; to_y: "pv.volume.popup.point";}
+                                       rel2 { relative: 1.0 1.0; to : "pv.volume.popup.bar.bg";offset: 0 2;}
+                                       color: 255 255 255 255;
+                                       image { normal: "volume/T01_2_volume_popup_progress_bar.png"; border: 0 0 10 10;}
+                               }
+                       }
+
+                       part { name: "pv.volume.popup.dragable";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description{ state: "default" 0.0;
+                                       rel1 { relative: 0.5 0.0; to: "pv.volume.popup.bar.bg";offset: 0 -11; }
+                                       rel2 { relative: 0.5 1.0; to: "pv.volume.popup.bar.bg";offset: 0 11;}
+                                       min: VOLUME_POPUP_BUTTON_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.5 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part { name: "pv.volume.popup.playing";
+                               type: RECT;
+                               scale: 1;
+                               repeat_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       min: VOLUME_POPUP_BUTTON_WIDTH VOLUME_POPUP_BUTTON_HEIGHT;
+                                       max: VOLUME_POPUP_BUTTON_WIDTH VOLUME_POPUP_BUTTON_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0 0;
+                                       color: 0 0 0 0;
+                               }
+
+                               dragable {
+                                       x: 0 0 0;
+                                       y: -1 1 0;
+                                       confine: "pv.volume.popup.dragable";
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.popup.point";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: VOLUME_POPUP_BUTTON_WIDTH VOLUME_POPUP_BUTTON_HEIGHT;
+                                       max: VOLUME_POPUP_BUTTON_WIDTH VOLUME_POPUP_BUTTON_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to: "pv.volume.popup.playing";}
+                                       rel2 { relative: 0.5 0.5; to: "pv.volume.popup.playing";}
+                                       image { normal: "volume/T01_2_volume_popup_progress_handle.png";}
+                                       color: 255 255 255 255;
+                               }
+                               description {
+                                       state: "press" 0.0;
+                                       inherit: "default";
+                                       image { normal: "volume/T01_2_volume_popup_progress_handle_press.png";}
+                               }
+                       }
+               } /* parts */
+
+               programs {
+                       program { name: "set_mute";
+                               signal: "set,mute";
+                               source: "volume.popup.icon";
+                               action: STATE_SET "mute" 0.0;
+                               target: "pv.volume.popup.icon";
+                       }
+                       program { name: "set_volume";
+                               signal: "set,volume";
+                               source: "volume.popup.icon";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.volume.popup.icon";
+                       }
+                       program {
+                               name: "pv.volume.down";
+                               source: "pv.volume.popup.point";
+                               signal: "mouse,down,1";
+                               action: STATE_SET "press" 0.0;
+                               target: "pv.volume.popup.point";
+                       }
+                       program {
+                               name: "pv.volume.up";
+                               source: "pv.volume.popup.point";
+                               signal: "mouse,up,1";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.volume.popup.point";
+                       }
+               } /* programs */
+       }       /* group */
+} /* collections */
+
diff --git a/vp-main/res/edje/pv-volume.edc b/vp-main/res/edje/pv-volume.edc
new file mode 100755 (executable)
index 0000000..9d9be06
--- /dev/null
@@ -0,0 +1,321 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+#define FONT_BOLD_TYPE                 "Tizen:style=Bold"
+
+#define FONT_VOLUME_COLOR              255 255 255 255
+
+#define VOLUME_WIDGET_WIDTH                    72
+#define VOLUME_WIDGET_PORTRAIT_HEIGHT          486
+#define VOLUME_WIDGET_LANDSCAPE_HEIGHT         264
+
+#define VOLUME_BUTTON_HEIGHT           40
+#define VOLUME_BUTTON_WIDTH                    25
+#define VOLUME_PROGRESS_WIDTH          15
+
+externals {
+          external: "elm";
+          external: "feedback";
+       }
+
+collections {
+       base_scale : 2.6;
+       plugins {
+               plugin {
+                       name: "touch_sound_plugin";
+                       source: "feedback";
+                       param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+                       }
+               }
+       group {
+               name: "pv.volume";
+               parts {
+                       part {
+                               name: "pv.volume.bg";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               repeat_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: VOLUME_WIDGET_WIDTH VOLUME_WIDGET_PORTRAIT_HEIGHT;
+                                       max: VOLUME_WIDGET_WIDTH VOLUME_WIDGET_PORTRAIT_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0.2 0.0;
+                                       rel1 { relative: 0.5 0.5;}
+                                       rel2 { relative: 0.5 0.5;}
+                                       image { normal: "volume/T01_2_volume_popup_bg.png"; border: 0 0 15 15; }
+                               }
+
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: VOLUME_WIDGET_WIDTH VOLUME_WIDGET_LANDSCAPE_HEIGHT;
+                                       max: VOLUME_WIDGET_WIDTH VOLUME_WIDGET_LANDSCAPE_HEIGHT;
+                                       image { normal: "volume/T01_2_volume_popup_bg.png"; border: 0 0 15 15; }
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.top.padding";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 32;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.volume.bg";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.volume.bg";}
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 16;
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.bottom.padding";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 21;
+                                       fixed: 1 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.volume.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "pv.volume.bg";}
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 12;
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.txt";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               effect: FAR_SHADOW BOTTOM;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min: 0 16;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.volume.bottom.padding";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.volume.bottom.padding";}
+                                       text {
+                                               size: 38;
+                                       }
+
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.txt.padding";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min: 0 21;
+                                       fixed: 1 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.volume.txt";}
+                                       rel2 { relative: 1.0 0.0; to: "pv.volume.txt";}
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 20;
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.touch.area";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.volume.bar.bg"; offset: -10 0; }
+                                       rel2 { relative: 1.0 1.0; to: "pv.volume.bar.bg"; offset: 10 0; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.bar.bg";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: VOLUME_PROGRESS_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.5 1.0; to_x : "pv.volume.bg";  to_y : "pv.volume.top.padding";}
+                                       rel2 { relative: 0.5 0.0; to_x : "pv.volume.bg";  to_y : "pv.volume.txt.padding";}
+                                       image { normal: "volume/T01_2_volume_popup_progress_bg.png"; border: 0 0 5 5;}
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.step";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: VOLUME_PROGRESS_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.5; to_x : "pv.volume.bar.bg"; to_y: "pv.volume.point"; }
+                                       rel2 { relative: 1.0 1.0; to : "pv.volume.bar.bg"; offset: 0 1;}
+                                       image { normal: "volume/T01_2_volume_popup_progress_bar.png"; border: 0 0 5 5;}
+                               }
+                       }
+
+                       part { name: "pv.volume.dragable";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description{ state: "default" 0.0;
+                                       rel1 { relative: 0.5 0.0; to: "pv.volume.bar.bg"; offset: 0 -7; }
+                                       rel2 { relative: 0.5 1.0; to: "pv.volume.bar.bg"; offset: 0 7;}
+                                       min: VOLUME_BUTTON_WIDTH 0;
+                                       fixed: 1 0;
+                                       align: 0.5 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part { name: "pv.volume.playing";
+                               type: RECT;
+                               scale: 1;
+                               repeat_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       min: VOLUME_BUTTON_WIDTH VOLUME_BUTTON_HEIGHT;
+                                       max: VOLUME_BUTTON_WIDTH VOLUME_BUTTON_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0 0;
+                                       color: 0 0 0 0;
+                               }
+
+                               dragable {
+                                       x: 0 0 0;
+                                       y: -1 1 0;
+                                       confine: "pv.volume.dragable";
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.point";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: VOLUME_BUTTON_WIDTH VOLUME_BUTTON_HEIGHT;
+                                       max: VOLUME_BUTTON_WIDTH VOLUME_BUTTON_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.5 0.5; to: "pv.volume.playing";}
+                                       rel2 { relative: 0.5 0.5; to: "pv.volume.playing";}
+                                       image { normal: "volume/T01_2_volume_popup_progress_handle.png";}
+                                       color: 255 255 255 255;
+                               }
+                               description {
+                                       state: "press" 0.0;
+                                       inherit: "default";
+                                       image { normal: "volume/T01_2_volume_popup_progress_handle_press.png";}
+                               }
+                       }
+
+                       part {
+                               name: "pv.volume.point.focus";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: VOLUME_BUTTON_WIDTH VOLUME_BUTTON_HEIGHT;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 0.0; to: "pv.volume.point"; }
+                                       rel2 { relative: 1.0 1.0; to: "pv.volume.point"; }
+                                       color: 255 255 255 0;
+                               }
+                       }
+               } /* parts */
+
+               programs {
+                       program {
+                               name: "portrait_mode";
+                               signal: "signal.pv.volume.portrait.mode";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.volume.bg";
+                               target: "pv.volume.top.padding";
+                               target: "pv.volume.bottom.padding";
+                               target: "pv.volume.txt.padding";
+                       }
+
+                       program {
+                               name: "landscape_mode";
+                               signal: "signal.pv.volume.landscape.mode";
+                               source: "*";
+                               action: STATE_SET "landscape" 0.0;
+                               target: "pv.volume.bg";
+                               target: "pv.volume.top.padding";
+                               target: "pv.volume.bottom.padding";
+                               target: "pv.volume.txt.padding";
+                       }
+                       program {
+                               name: "pv.volume.down";
+                               source: "pv.volume.point";
+                               signal: "mouse,down,1";
+                               action: STATE_SET "press" 0.0;
+                               target: "pv.volume.point";
+                       }
+                       program {
+                               name: "pv.volume.up";
+                               source: "pv.volume.point";
+                               signal: "mouse,up,1";
+                               action: STATE_SET "default" 0.0;
+                               target: "pv.volume.point";
+                       }
+                       program{
+                               name: "touch_snd";
+                               signal: "mouse,clicked,1";
+                               source: "pv.volume.touch.area";
+                               action: RUN_PLUGIN "touch_sound_plugin";
+                       }
+               } /* programs */
+       }       /* group */
+} /* collections */
+
diff --git a/vp-main/res/edje/pv-zoom-guide.edc b/vp-main/res/edje/pv-zoom-guide.edc
new file mode 100755 (executable)
index 0000000..22f3111
--- /dev/null
@@ -0,0 +1,325 @@
+/*
+ * Copyright (c) 2020 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 "pv-image.edc"
+
+collections {
+       group {
+               name: "pv.zoom.guide";
+               parts {
+                       part {
+                               name: "pv.zoom.guide.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               repeat_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "pv.zoom.guide.left.shadow";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min : 1 0;
+                                       fixed : 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "pv.zoom.guide.left"; }
+                                       rel2 { relative: 1.0 1.0; to: "pv.zoom.guide.left"; }
+                                       color: 0 0 0 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "pv.zoom.guide.right.shadow";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min : 1 0;
+                                       fixed : 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.zoom.guide.right"; }
+                                       rel2 { relative: 0.0 1.0; to: "pv.zoom.guide.right"; }
+                                       color: 0 0 0 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "pv.zoom.guide.top.shadow";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min : 0 1;
+                                       fixed : 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 1.0; to: "pv.zoom.guide.top"; }
+                                       rel2 { relative: 1.0 1.0; to: "pv.zoom.guide.top"; }
+                                       color: 0 0 0 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "pv.zoom.guide.bottom.shadow";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min : 0 1;
+                                       fixed : 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 0.0; to: "pv.zoom.guide.bottom"; }
+                                       rel2 { relative: 1.0 0.0; to: "pv.zoom.guide.bottom"; }
+                                       color: 0 0 0 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "pv.zoom.guide.left";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min : 2 0;
+                                       fixed : 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 0.0 1.0;}
+                                       color: 255 255 255 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "pv.zoom.guide.right";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min : 2 0;
+                                       fixed : 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 255 255 255 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "pv.zoom.guide.top";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min : 0 2;
+                                       fixed : 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 0.0;}
+                                       color: 255 255 255 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "pv.zoom.guide.bottom";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       min : 0 2;
+                                       fixed : 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 255 255 255 255;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+               } /* parts */
+               programs {
+                       program {
+                               name: "zoom_guide_show";
+                               signal: "signal.pv.zoom.guide.show";
+                               source: "*";
+                               action: STATE_SET "show" 0.0;
+                               target: "pv.zoom.guide.left.shadow";
+                               target: "pv.zoom.guide.right.shadow";
+                               target: "pv.zoom.guide.top.shadow";
+                               target: "pv.zoom.guide.bottom.shadow";
+                               target: "pv.zoom.guide.left";
+                               target: "pv.zoom.guide.right";
+                               target: "pv.zoom.guide.top";
+                               target: "pv.zoom.guide.bottom";
+                       }
+                       program {
+                               name: "zoom_guide_hide";
+                               signal: "signal.pv.zoom.guide.hide";
+                               source: "*";
+                               action: STATE_SET "hide" 0.0;
+                               target: "pv.zoom.guide.left.shadow";
+                               target: "pv.zoom.guide.right.shadow";
+                               target: "pv.zoom.guide.top.shadow";
+                               target: "pv.zoom.guide.bottom.shadow";
+                               target: "pv.zoom.guide.left";
+                               target: "pv.zoom.guide.right";
+                               target: "pv.zoom.guide.top";
+                               target: "pv.zoom.guide.bottom";
+
+                       }
+               } /* programs */
+       }       /* group */
+       group {
+               name: "pv.zoom.guide.item";
+               parts {
+                       part {
+                               name: "pv.zoom.guide.item.bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "pv.zoom.guide.item.left";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min : 2 0;
+                                       fixed : 1 0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 0.0 1.0;}
+                                       color: 255 0 0 255;
+                               }
+                       }
+                       part {
+                               name: "pv.zoom.guide.item.right";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min : 2 0;
+                                       fixed : 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 255 0 0 255;
+                               }
+                       }
+                       part {
+                               name: "pv.zoom.guide.item.top";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min : 0 2;
+                                       fixed : 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 0.0;}
+                                       color: 255 0 0 255;
+                               }
+                       }
+
+                       part {
+                               name: "pv.zoom.guide.item.bottom";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible : 1;
+                                       min : 0 2;
+                                       fixed : 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 255 0 0 255;
+                               }
+                       }
+               } /* parts */
+       }       /* group */
+
+} /* collections */
+
diff --git a/vp-main/res/po/CMakeLists.txt b/vp-main/res/po/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..d6894bc
--- /dev/null
@@ -0,0 +1,27 @@
+# for i18n
+
+SET(POFILES ar.po az.po bg.po ca.po cs.po da.po de.po el_GR.po en_PH.po en.po en_US.po es_ES.po es_US.po et.po eu.po fi.po fr_CA.po fr.po ga.po gl.po
+hi.po hr.po hu.po hy.po is.po it_IT.po ja_JP.po ka.po kk.po ko_KR.po lt.po lv.po mk.po nb.po nl.po pl.po pt_BR.po pt_PT.po ro.po
+ru_RU.po sk.po sl.po sr.po sv.po tr_TR.po uk.po uz.po zh_CN.po zh_HK.po zh_TW.po)
+
+SET(MSGFMT "/usr/bin/msgfmt")
+
+FOREACH(pofile ${POFILES})
+       SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
+
+       GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+       GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+
+       SET(vp_moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+       ADD_CUSTOM_COMMAND(
+                       OUTPUT ${vp_moFile}
+                       COMMAND ${MSGFMT} -o ${vp_moFile} ${absPofile}
+                       DEPENDS ${absPofile}
+       )
+       INSTALL(FILES ${vp_moFile}
+                       DESTINATION ${VP_LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
+       SET(vp_moFiles ${vp_moFiles} ${vp_moFile})
+ENDFOREACH(pofile)
+
+MESSAGE(".mo files: ${vp_moFiles}")
+ADD_CUSTOM_TARGET(vp_po ALL DEPENDS ${vp_moFiles})
diff --git a/vp-main/res/po/ar.po b/vp-main/res/po/ar.po
new file mode 100755 (executable)
index 0000000..1b15b8a
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "السطوع"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "الموسيقى"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "الأصوات"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "ب."
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "ج.ب"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "ك.ب"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "الموقع"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "م.ب"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "غير معروف"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "موافق"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "آخر تعديل"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "مشاركة"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "لا يمكن تشغيل الفيديو"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "حدث خطأ في العناوين الفرعية."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "الملف تالف أو ربما تمت إزالة بطاقة SD."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "التفاصيل"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "العنوان"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "سيتم حذف هذا الفيديو."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "الضبط"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "يتعذر تشغيل الفيديو"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "محاذاة"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "حجم الخط"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "ضبط التكرار"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "العناوين الفرعية (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "وسط"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "كبير"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "إلى اليسار"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "متوسطة"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "إلى اليمين"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "صغير"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "التالي"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "السابق"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "لا يمكن مشاركة ملفات DRM"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "تنسيق"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "يتعذر تشغيل الصوت أثناء المكالمة."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "الرسالة"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "نقل الملفات"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "بريد إلكتروني"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "خط الطول"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "المدى"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "تفعيل الحركة"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "البحث بسرعة %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "‏‫التخزين الخارجي"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "درجة الصوت"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "تنسيق فيديو غير معتمد."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "نوع ملف غير مدعوم."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "تنسيق صوتي غير مدعم."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "يتعذر استخدام وظيفتي التقديم السريع والإرجاع‬ عندما تكون الأجهزة القريبة مفعلة."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "يتعذر الالتقاط."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "تدوير"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "اضغط على المفتاح الخلفي مرة أخرى للعودة إلى الشاشة السابقة."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "لا يوجد ذاكرة كافية. امسح بعض العناصر."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "قائمة الإشارات المرجعية ممتلئة. احذف بعض الإشارات المرجعية."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "أصفر"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "القناة الافتراضية ٧,۱"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "العناوين الفرعية (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "نمط الإعادة"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "بدون تكرار"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "أحمر أرجواني"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "أخضر"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "لون الخط"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "أزرق سماوي"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "ضبط مخصص"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "الفيديو الحالي (مرة)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "معلومات الاتصال"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "تغيير المشغل"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "التقاط"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "تحديد الجهاز"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "الأجهزة المتاحة"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "السماعة"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "أبيض"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "أحمر"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s من الثواني"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "سرعة العرض"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d ثانية"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "غير مفعل"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "لا يوجد عنوان"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "جهازي"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "الخط الافتراضي"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "جاز هادئ"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "شوكو كوكي"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "أزرق"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "أسود"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "التفعيل"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "هل تريد إغلاق التطبيق؟"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "إلغاء"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "بعد إيقاف الكل"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "تكرار الحالية"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "تكرار الكل"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "الدقة"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "توجد %s مؤثرات صوتية غير مدعومة بواسطة مكبر الصوت."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "اقلب الهاتف‬ لكتم المكالمات الواردة وتنبيهات الرسائل والتنبيهات."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "بطاقة SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "هذا الملف يعتمد بيانات الصوت فقط. تشغيل الصوت الآن."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "هذا الملف يعتمد بيانات الفيديو فقط. تشغيل الفيديو الآن."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "وحدة التخزين الخاصة"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "سماعات رأس"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "مكبر الصوت"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "إيقاف مؤقت"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "تنزيل"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "تحديد الترجمات (التسميات التوضيحية)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "معاينة الترجمات (التسميات التوضيحية)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "فشل التوصيل."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "وضع التكرار"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "نوع ملف غير مدعوم."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "عادي"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "الصوت"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "الأفلام"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "المقطع الصوتي"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "تخزين مؤقت..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "تنسيق الملف"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "اللغة"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "لا توجد لقطات فيديو"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "الحجم"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "تم"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "تحديث"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "التاريخ"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "جار التحميل..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "العناوين الفرعية (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "حذف"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "إضافة إلى الشاشة الرئيسية"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "الاسم"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "يتعذر عرض الفيديو."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "ما من ترجمة متوفرة"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "تشغيل"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "إغلاق"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "الموقع الالكتروني غير صالح."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "خطأ"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "وحدة تخزين الجهاز"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "مشغل فيديو"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "مشاركة عبر"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "حدث خطأ في الشبكة. حاول مرة أخرى."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "يدعم تنسيق الملف هذا بيانات الصوت فقط. جارٍ تشغيل الصوت."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "فقط بيانات الفيديو المدعومة من تنسيق الملف هذا. يتم الآن تشغيل الفيديو."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "وسط"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "مفعل"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "الضبط"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "مقاطع فيديو"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "مشاركة"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "التفاصيل"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "مسح"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "يتمّ الآن تخزين مؤقت - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "ما من حد"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d من الثواني"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "تحديد جهاز صوت"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "حذف"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "إلغاء"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "حدث خطأ غير معروف أو قد يكون الملف تالفاً."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "إن نوع الملف هذا غير مدعوم."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "تم"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "ملء الشاشة"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "إبقاء النسبة"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "إلغاء"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "موقع التخزين"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "العناوين الفرعية (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "مساحة التخزين الشخصية"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "ستكون التسميات التوضيحية على هذا الشكل"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "هذا الملف غير موجود."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "إلغاء تفعيل تشغيل الصوت فقط"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "تفعيل تشغيل الصوت فقط"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "اضغط على مفتاح الشاشة الرئيسية أو مفتاح التشغيل أثناء التشغيل لتشغيل الصوت فقط."
+
diff --git a/vp-main/res/po/az.po b/vp-main/res/po/az.po
new file mode 100755 (executable)
index 0000000..66c5619
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Parlaqlıq"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musiqi"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Səslər"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "QB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Yeri"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Naməlum"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Son dəyişmə"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Paylaş"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Videonu göstərmək olmur"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Altyazılarda xəta baş verdi."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Fayl korlanmış və ya SD kart çıxarılmışdır."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Təfsilatlar"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Başlıq"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Bu video silinəcək."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Parametrlər"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videonu göstərmək mümkün deyil"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Nizamlama"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Şriftin ölçüsü"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Parametri təkrarla"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Yarım başlıqlar (bağlı)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Mərkəz"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Böyük"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Sol"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Orta"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Sağ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Kiçik"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Növbəti"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Əvvəlki"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM faylları paylaşıla bilmir."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Zəng zamanı videonu göstərmək mümkün deyildir."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mesaj"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Faylın köçürülməsi"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Epoçt"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Uzunluq"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "En"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Hrkti aktv et"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "%sx sürətdə təmizləmə."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Xarici yaddaş"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Həcm"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Video formatı dəstəklənmir."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Dəstəklənməyən fayl tipi."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Dəstəkləməyən audio format."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Yaxınlıqdakı cihazlar aktiv olduqda geri və irəli sarma mümkün deyil."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Çəkmək mümkün deyil."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Döndər"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Əvvəlki ekrana qayıtmaq üçün geri düyməsini yenidən basın."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Yaddaş kifayət etmir. Xahiş olunur bəzi elementləri silin"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Əlfəcin siyahısı doludur. Əlfəcinlərdən bəzilərini sil."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Sarı"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtual 7.1 kanal"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Yarım başlıqlar (bağlı)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Təkrarlama rejimi"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Təkrarlamadan"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Al-qırmızı"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Yaşıl"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Şriftin rəngi"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Mavi"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Fərdi"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Cari video(bir dəfə)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Bağlantı məlumatı"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Pleyeri dəyiş"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Çək"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Cihazı seç"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Mümkün cihazlar"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Dinamik"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Ağ"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Qırmızı"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s saniyə"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Göstərilmə sürəti"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d saniyə"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Söndür"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Başlıq yoxdur"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Mənim qurğum"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Susmaya görə şrift"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Mavi"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Qara"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivləşdirmə"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Proqram bağlansın?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Ləğv et"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Bitəndə dayandır"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "İndikini təkrarla"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Hamısını təkrarla"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rezolyusiya"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s səs effektləri səsucaldan ilə dəstəklənmir."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Daxil olan zəngləri, mesaj xəbərdarlıqlarını və zəngli saaxtı səssiz etmək üçün telefonu çevirin."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD kartı"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Bu fayl yalnız audio məlumatı dəstəkləyir. İndi səsləndirilən audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Bu fayl yalnız video məlumatı dəstəkləyir. İndi görüntülənən video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Şəxsi yaddaş"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Qulaqlıqlar"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Dinamik"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Fasilə"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Yükləyin"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Altyazıları seç (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Altyazılara bax (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Əlaqə mümkün olmadı."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Təkrarlama rejimi"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Dəstəklənməyən fayl tipi."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Səs"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmlər"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Audio trek"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Buferləmə..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Faylın formatı"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Dil"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Video yoxdur"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Ölçü"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Tamam"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Yenilə"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Tarix"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Yüklənir..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Yarım başlıqlar(CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Sil"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Ana ekrana əlavə et"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ad"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Videonu işlətmək mümkün deyil."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Alt-yazılar mümkündür"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Səsləndir"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Bağla"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Yanlış URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Səhv"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Cihazın yaddaşı"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video pleyer"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Paylaş"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Şəbəkə xətası baş verdi. Yenidən cəhd edin."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Bu fayl formatı yalnız audio məlumatı dəstəkləyir. İndi səsləndirilən audio."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Bu fayl yalnız video məlumatını dəstəkləyir. İndi görüntülənən video."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Mərkəz"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Qoş"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Parametrlər"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videolar"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Paylaş"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Təfsilatlar"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Sil"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Buferləmə - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Yoxdur"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d san"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Audio cihazı seç"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Sil"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Ləğv et"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Naməlum xəta baş verdi və ya fayl korlanmış ola bilər."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Bu fayl növü dəstəklənmir."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "HAZIR"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Dolu"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Nisb saxla"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "LƏĞV ET"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Yaddaş yeri"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Altyazılar (BB)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Şəxsi yaddaş"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Böyük hərflərin təsvir olunma forması"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Bu fayl movcud deyil."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Ylnz audio səs q-akt et"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Yalnız audio səs aktv"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Yalnız audio səslənməsi üçün Əsas ekran və ya Enerji düyməsinə vurun."
+
diff --git a/vp-main/res/po/bg.po b/vp-main/res/po/bg.po
new file mode 100755 (executable)
index 0000000..f4fb566
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Яркост"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Музика"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Гласове"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Позиция"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Няма информация"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Последна промяна"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Споделяне"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Не може да се изпълни видео"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Възникна грешка със субтитрите."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Файлът е повреден или SD картата е премахната."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Детайли"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Заглавие"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Този видеоклип ще бъде изтрит."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Не може да се възпр. видео"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Подравняване"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Р-р шрифт"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Настройка за повторение"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитри (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Център"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Голям"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Отляво"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Средно"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Отдясно"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Малък"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Следващ"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Предиш."
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM файловете не могат да се споделят."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Формат"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Не може да се възпроизвежда видео по време на разговор."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Съобщ-ие"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Прехвърляне на файл"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Имейл"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Геогр. дължина"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Геогр. ширина"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Актив. движ."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Търкане със скорост %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Външна памет за съхр."
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Сила звук"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Неподдържан формат на видео."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Неподдържан тип файл."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Неподдържан аудио формат."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Не може да се използва бързо превъртане напред и назад, когато близките устройства са активирани."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Невъзможно заснемане."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Завъртане"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Натиснете отново клавиша Назад, за да се върнете към предишния екран."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Няма достатъчно памет. Изтрийте някои елементи"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Списък маркери пълен. Изтрий някои маркери."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Жълто"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Виртуален 7.1 кан"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитри (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Режим на повтаряне"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Без повтаряне"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Магента"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Зелено"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Цвят на шрифта"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Циан"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "По избор"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Текущ клип (веднъж)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Инфо за връзка"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Смяна на плейъра"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Снимка"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Избор на устройство"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Достъпни устройства"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Високог."
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Бял"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Червено"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s секунди"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Скорост на възпроизвеждане"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d сек."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Изключено"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Няма заглавие"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Моето устройство"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Шрифт по подразбиране"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Син"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Черно"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Активиране"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Затваряне на приложението?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Отказ"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Спри след всички"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Повтаряне на текущо"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Повторение на всички"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Разделителна способност"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s звукови ефекта не се поддържат от високоговорителя."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Завъртете телефона, за да заглушите входящите повиквания, предупрежденията за съобщения и алармите."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD карта"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Само аудио данни, поддържани от този файл. В момента се възпроизвежда аудио."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Само видео данни, поддържани от този файл. В момента се възпроизвежда видео."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Лично място за съхранение"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Слушалки"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Високогов."
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Пауза"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Изтегли"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Избор на субтитри (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Преглед на субтитрите (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Неуспешно свързване."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Режим на повтаряне"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Неподдържан тип файл."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Нормален"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Глас"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Филми"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Аудио запис"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Буфериране..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Формат на файла"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Език"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Няма видео"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Размер"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Готово"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Обновяване"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Дата"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Зареждане..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Субтитри (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Изтриване"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Добавяне към началния екран"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Име"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Невъзможно възпроизвеждане на видеоклип."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Няма налични субтитри"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Изпълняване"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Затвори"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Невалиден URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Грешка"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Памет на устройството"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Видео плейър"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Споделяне с"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Възникна мрежова грешка. Опитайте отново."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Само аудиоданни, поддържани от този файлов формат. В момента се възпроизвежда аудио."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Само видео данни, поддържани от този файлов формат. В момента се възпроизвежда видео."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Център"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Включено"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Видео клипове"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Сподели"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Детайли"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Изтриване"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Буфериране - %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Няма"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d сек"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Избор на аудиоустройство"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Изтриване"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Отказ"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Възникна непозната грешка или файлът може да е повреден."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Файловият тип не се поддържа."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ГОТОВО"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Пълен"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Зап.съотн."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ОТКАЗ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Място за съхранение"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Субтитри (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Лично място за съхранение"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Надписите ще изглеждат така"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Файлът не съществува."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Изкл. Възпр. само аудио"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Вкл. Възпр. само аудио"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Натиснете клавиша за начало или клавиша за захранване по време на възпроизвеждане, за да пуснете само аудио."
+
diff --git a/vp-main/res/po/ca.po b/vp-main/res/po/ca.po
new file mode 100755 (executable)
index 0000000..e730071
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Brillantor"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Música"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Veus"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Ubicació"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Desconegut"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Acceptar"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Última modificació"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Compartir"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "No es pot reproduir vídeo"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "S'ha produït un error amb els subtítols."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "El fitxer està malmès o s'ha tret la targeta SD."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalls"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Títol"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "S'esborrarà aquest vídeo"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ajustaments"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "No es pot reproduir el vídeo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alineació"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Mida font"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repetir ajustament"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítols"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centre"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Gran"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Esquerra"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Mitjana"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Dreta"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Petita"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Següent"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Anterior"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Els fitxers DRM no es poden compartir."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "No es pot reproduir un vídeo durant una trucada"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Missatge"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Transfer fitxers"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Correu elec"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitud"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Habilitar mov"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Desplaçament a una velocitat de %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Emmagatzematge extern"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volum"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Format de vídeo no compatible"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "No s'admet el tipus de fitxer"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Format d'àudio no compatible"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "No es pot utilitzar avançament ràpid i rebobinar quan s'han habilitat dispositius propers"
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "No es pot capturar"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Girar"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Torni a prémer la tecla de retorn per a tornar a la pàgina anterior"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "No hi ha prou memòria. Esborrar-ne alguns elements."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Llista de preferits plena. Esborrar alguns preferits."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Groc"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "7.1 canals virtuals"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítols"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Mode repetició"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "No repetir"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Verd"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Color de font"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cian"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Personalitzar"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Víd actual (un cop)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Info de connexió"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Canviar reprod"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Captura"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Seleccionar dispositiu"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dispositius dispon"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Altaveu"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Blanc"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Vermell"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s segons"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Velocitat de reproducció"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d s"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Desactivat"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Sense títol"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "El meu dispositiu"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Font predeterminada"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blau"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Negre"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activació"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Tancar aplicació?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Cancel·lar"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Aturar després tot"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir tot"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolució"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Els efectes de so de %s no són compatibles amb l'altaveu"
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Giri el telèfon per silenciar trucades d'entrada, avisos de missatges i alarmes"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Targ SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Aquest fitxer només admet dades d'àudio. Ara està reproduint àudio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Aquest fitxer només admet dades de vídeo. Ara està reproduint vídeo."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Emmagatzematge privat"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Auriculars"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Altaveu"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pausa"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Descarregar"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Selec subtítols (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Previsualitzar subtítols (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Error de connexió"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Mode Repetició"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "No s'admet el tipus de fitxer"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Veu"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Pel·lícules"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Pista d'àudio"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Em mem int..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Format del fitxer"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Idioma"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Cap vídeo"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Mida"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Fet"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Actualitzar"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Carregant..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtítols (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Esborrar"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Afegir a pantalla d'inici"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nom"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "No es pot reproduir el vídeo"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "No hi ha subtítols disponibles"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Reproduir"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Tancar"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL no vàlida"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Error"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Emmagatzematge de dispositiu"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Reproductor de vídeo"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Compartir mitjançant"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "S'ha produït un error de xarxa. Torni a intentar-ho."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Aquest format de fitxer només admet dades d'àudio. Ara està reproduint àudio."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Aquest format de fitxer només admet dades de vídeo. Ara està reproduint vídeo."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centre"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Activat"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Ajustaments"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Vídeos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Compart"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detalls"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Esborrar"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Emmagatzemant a memòria interna: %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Cap"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Seleccionar dispositiu d'àudio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Esborrar"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "S'ha produït un error desconegut o el fitxer pot estar malmès."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "El tipus de fitxer no és compatible."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "REALITZAT"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Ple"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Manten rel"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL·LAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Ubicació d'emmagatzematge"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtítols (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Emmagatzematge personal"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Les anotacions es veuran així"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Aquest fitxer no existeix"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Deshab Repr només àudio"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Habil Repr només àudio"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Premi la tecla Inici o la tecla Alimentació durant la reproducció per reproduir només àudio."
+
diff --git a/vp-main/res/po/cs.po b/vp-main/res/po/cs.po
new file mode 100755 (executable)
index 0000000..b107b83
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Jas"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Hudba"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Hlasy"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Místo"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Neznámé"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Naposledy změněno"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Sdílet"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Video nelze přehrát"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "V titulcích došlo k chybě."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Soubor je poškozený nebo byla odebrána SD karta."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Podrobnosti"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Název"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Videoklip bude odstraněn."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Nastavení"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Video nelze přehrát"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Zarovnání"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Velikost písma"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Nastavení opakování"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titulky (skryté)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Na střed"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Velké"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Doleva"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Střední"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Doprava"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Malé"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Další"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Předchozí"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Soubory chráněné DRM nelze sdílet."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formát"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Během hovoru nelze přehrát videoklip."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Zpráva"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Přenos souborů"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Zeměpisná délka"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Zeměpisná šířka"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Zapnout pohyb"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Tažení %snásobnou rychlostí."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Externí úložiště"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Hlasitost"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Nepodporovaný formát videa."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepodporovaný typ souboru."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Nepodporovaný zvukový formát."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Když jsou zapnutá nedaleká zařízení, není možné použít rychlý posun dopředu a dozadu."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Vyfotografování se nezdařilo."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Otočit"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Dalším stisknutím tlačítka Zpět se vrátíte na předchozí obrazovku."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Nedostatek paměti. Odstraňte některé položky"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Seznam záložek je plný Odstraňte některé záložky."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Žlutá"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtuální 7.1 kan."
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titulky (skryté)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Režim opakování"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Neopakovat"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Purpurová"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Zelená"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Barva písma"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Azurová"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Vlastní"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Akt. video (jednou)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Info o připojení"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Změnit přehrávač"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Zachytit"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Vybrat zařízení"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dostupná zařízení"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Reprod."
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Bílá"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Červená"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s s"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Rychlost přehrávání"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d s"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Vypnuto"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Žádný název"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Toto zařízení"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Výchozí písmo"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Modrá"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Černá"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivace"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Ukončit aplikaci?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Zruš."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Zast. po přeh. všech"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Opakovat aktuální"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Opakovat vše"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rozlišení"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Reproduktor nepodporuje zvukové efekty %s."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Obrácením telefonu ztlumíte příchozí hovory, upozornění na zprávy a upozornění."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD karta"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Tento soubor podporuje pouze zvuková data. Nyní se přehrává zvuk."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Tento soubor podporuje pouze obrazová data. Nyní se přehrává video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Soukromé úložiště"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Sluchátka"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Reproduktor"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pauza"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Stáhnout"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Vyberte titulky (skryté)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Náhled titulků (skryté)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Připojení se nezdařilo."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Režim opakování"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepodporovaný typ souboru."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normální"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Mluvené slovo"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmy"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Zvuková stopa"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Uk. do pam..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Formát souboru"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Jazyk"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Žádné videoklipy"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Velikost"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Hot."
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Aktualizovat"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Načítání..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Titulky (skryté)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Odstranit"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Přidat na dom. obrazovku"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Jméno"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Nelze přehrát video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Žádné titulky nejsou k dispozici"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Přehrát"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Zavřít"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Neplatná adresa URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Chyba"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Paměť zařízení"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Videopřehrávač"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Sdílet přes"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Došlo k chybě sítě. Opakujte akci."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Tento formát souboru podporuje pouze zvuková data. Nyní se přehrává zvuk."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Tento formát souborů podporuje pouze video data. Nyní se přehrává video."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Střed"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Zapnuto"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Nastavení"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videoklipy"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Sdílet"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Podrobnosti"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Odstranit"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Ukládání do paměti – %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Žádné"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Vyberte zvukové zařízení"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Odstranit"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Storno"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Došlo k neznámé chybě nebo je soubor poškozený."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Typ souboru není podporován."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "HOTOVO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Celá ob."
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Zach. pom."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ZRUŠIT"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Místo uložení"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Titulky (skryté)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Osobní úložiště"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Titulky budou vypadat takto."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Soubor neexistuje."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Vyp. Přehrát pouze zvuk"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Zap. Přehr. pouze zvuk"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Stisknutím tlačítka Domů nebo vypínače během přehrávání přehrajete pouze zvuk."
+
diff --git a/vp-main/res/po/da.po b/vp-main/res/po/da.po
new file mode 100755 (executable)
index 0000000..056e91f
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Lysstyrke"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musik"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Stemmer"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Placering"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Ukendt"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Sidst ændret"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Del"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Kan ikke afspille video"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Der opstod en fejl med underteksterne."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Filen er ødelagt, eller SD-kortet er blevet fjernet."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detaljer"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titel"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Denne video vil blive slettet."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Indstillinger"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Kan ej afspille video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Justering"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Skriftstørrelse"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Gentag indstilling"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Undertekster (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centrer"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Stor"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Venstre"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Mellem"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Højre"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Lille"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Næste"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Forrige"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM-filer kan ikke deles."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Kan ikke afspille videoen under samtale."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Besked"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Filoverførsel"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Længdegrad"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Breddegrad"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Akt. bevæg."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Annullerer med en hastighed på %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Eksternt lager"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Lydstyrke"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Ikke-understøttet videoformat."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Filtype understøttes ikke."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Ikke-understøttet lydformat."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Kan ikke bruge hurtig spoling frem og tilbage, når enheder i nærheden er aktiveret."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Kan ikke optage."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rotér"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Tryk på tilbagetasten igen for at vende tilbage til den forrige skærm."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Der er ikke tilstrækkelig hukommelse. Slet nogle elementer."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Bogmærkelisten er fuld. Slet nogle bogmærker."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Gul"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtuel 7.1-kan."
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Undertekster (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Gentagelsestilstand"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Gentag ikke"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Pink"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Grøn"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Skriftfarve"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cyan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Brugerdefineret"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Akt. video (én gang)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Forbindelsesopl."
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Skift afspiller"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Tag billede"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Vælg enhed"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Tilgængelige enheder"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Højttaler"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Hvid"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rød"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s sekunder"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Afspilningshastighed"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sek."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Fra"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Ingen titel"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Min enhed"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Standardskrifttype"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blå"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Sort"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivering"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Luk program?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Afbr."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop efter alle"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Gentag aktuel"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Gentag alle"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Opløsning"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s lydeffekter understøttes ikke af højttaler."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Sæt telefonens indgående opkald, beskedvarsler og alarmer på lydløs."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-kort"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Kun lyddata understøttes af denne fil. Spiller lyd nu."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Kun videodata understøttes af denne fil. Spiller video nu."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privat lager"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Høretelefoner"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Højttaler"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pause"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Vælg undertekster (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Vis eks. på undertekster (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Forbindelsen\nmislykkedes."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Gentagelsestilstand"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Filtype understøttes ikke."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Stemme"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Film"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Lydspor"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Gemmer..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Filformat"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Sprog"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Ingen videoer"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Størrelse"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Udført"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Opdatér"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dato"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Indlæser..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Undertekster (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Slet"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Føj til startskærm"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Navn"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Kan ikke afspille videoklip."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Der findes ingen undertekster"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Afspil"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Luk"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Ugyldig URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Fejl"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Enhedslager"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Del via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Der opstod en netværksfejl. Prøv igen."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Dette filformat understøtter kun lyddata. Spiller lyd nu."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Kun videodata understøttes af dette filformat. Afspiller video nu."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Midt"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Til"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Indstillinger"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Video"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Del"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detaljer"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Slet"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Gemmer - %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Ingen"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sek."
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Vælg lydenhed"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Slet"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Annullér"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Der opstod en ukendt fejl, eller filen kan være beskadiget."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Denne filtype understøttes ikke."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "UDFØRT"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Fuld"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Bev. forh."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULLER"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Lagerplacering"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Undertekster (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Personligt lager"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Undertekster kommer til at se sådan ud."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Fil findes ikke."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Deak. Afspil kun lyd"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Akt. Afspil kun lyd"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Tryk på starttasten eller tænd/sluk-tasten for kun at afspille lyd."
+
diff --git a/vp-main/res/po/de.po b/vp-main/res/po/de.po
new file mode 100755 (executable)
index 0000000..eb09382
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Helligkeit"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musik"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Stimmen"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Standort"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Unbekannt"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Letzte Änderung"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Senden"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Keine Video-Wiedergabe möglich"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Bei den Untertiteln ist ein Fehler aufgetreten."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Die Datei ist beschädigt, oder die SD-Karte wurde entfernt."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titel"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Dieses Video wird gelöscht."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Einstellungen"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videowiedergabe nicht möglich."
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Ausrichtung"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Schriftgröße"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Einstellung wiederholen"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Untertitel (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Mitte"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Groß"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Links"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Mittel"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Rechts"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Klein"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Weiter"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Zurück"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM-Dateien können nicht freigegeben werden."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Video kann während eines Anrufs nicht wiedergegeben werden"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Nachr."
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Dateiübertragung"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-Mail"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Länge"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Breite"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Aktivieren"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Scrubbing mit %s-facher Geschwindigkeit."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Externer Speicher"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Lautstärke"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Nicht unterstütztes Videoformat"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nicht unterstützter Dateityp"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Nicht unterstütztes Audioformat"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Der Vor- und Rücklauf kann nicht verwendet werden, wenn „Geräte in der Nähe“ (DLNA) eingeschaltet ist."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Aufnahme nicht möglich."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Ausrichten"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Drücken Sie die Zurück-Taste erneut, um zum vorherigen Bildschirm zurückzukehren."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Nicht genügend Speicher. Löschen Sie einige Elemente"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Favoritenliste voll. Löschen Sie einige Favoriten"
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Gelb"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "7.1 Kanäle virtuell"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Untertitel (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Wiederholungsmodus"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Keine Wiederholung"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Grün"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Schriftfarbe"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Zyan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Benutzerdefiniert"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Akt. Video (einmal)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Verbindungs-Info"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Player wechseln"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Aufnahme"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Gerät auswählen"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Verfügbare Geräte"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Lautspr."
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Weiß"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rot"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s Sekunden"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Wiedergabegeschwindigkeit"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d Sek."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Aus"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Kein Titel"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Mein Gerät"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Standardschriftart"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool Jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Schoko-Cookie"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blau"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Schwarz"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivierung"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Anwendung schließen?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Abbr."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Nach allen anh."
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Aktuelles wiederh."
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Alle wiederholen"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Auflösung"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s Soundeffekte werden vom Lautsprecher nicht unterstützt."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Telefon zum Stummschalten von eingehenden Anrufen, Nachrichtensignalen und Alarmen umdrehen."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-Karte"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Für diese Datei werden nur Audiodaten unterstützt. Audio wird jetzt wiedergegeben."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Für diese Datei werden nur Videodaten unterstützt. Video wird jetzt wiedergegeben."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privater Speicher"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Kopfhörer"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Lautspr."
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pause"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Herunterladen"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Untertitel auswählen (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Untertitel-Vorschau (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Verbindung fehlgeschlagen"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Wiederholungsmodus"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nicht unterstützter Dateityp"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Sprache"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filme"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Audiotitel"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Puffern..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Dateiformat"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Sprache"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Keine Videos"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Größe"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Fertig"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Aktu."
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Lädt..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Untertitel (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Löschen"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Zum Startbildschirm hzfg."
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Name"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Video kann nicht wiedergegeben werden"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Keine Untertitel verfügbar"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Starten"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Schließen"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Ungültige URL"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Fehler"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Gerätespeicher"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video-Player"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Senden via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ein Netzwerkfehler ist aufgetreten. Versuchen Sie es erneut."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Von diesem Dateiformat werden nur Audiodaten unterstützt. Audio wird jetzt wiedergegeben."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Dieses Dateiformat unterstützt nur Videodaten. Video wird jetzt abgespielt."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Mitte"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Ein"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Einstellungen"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Senden"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Löschen"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Puffern – %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Keine"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Audiogeräteauswahl"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Löschen"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Abbruch"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Unbekannter Fehler aufgetreten oder Datei beschädigt."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Dieser Dateityp wird nicht unterstützt."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "FERTIG"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Voll"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Form. behalt."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ABBRECHEN"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Speicherort"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Untertitel (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Persönlicher Speicher"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "So sehen Untertitel aus."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Datei nicht vorhanden"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Nur Audiowdg. deaktivieren"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Nur Audiowdg. aktivieren"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Während der Wiedergabe die Home- oder die Ein-/Aus-Taste drücken, um nur Audio wiederzugeben."
+
diff --git a/vp-main/res/po/el_GR.po b/vp-main/res/po/el_GR.po
new file mode 100755 (executable)
index 0000000..3e3c7df
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Φωτεινότητα"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Μουσική"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Φωνές"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Τοποθεσία"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Άγνωστο"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Τελευταία τροποποίηση"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Κοινή χρήση"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Αδύνατη η αναπαραγωγή βίντεο"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Παρουσιάστηκε σφάλμα με τους υπότιτλους."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Το αρχείο είναι κατεστραμμένο ή έχει αφαιρεθεί η κάρτα SD."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Λεπτομέρειες"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Τίτλος"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Το βίντεο θα διαγραφεί."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ρυθμίσεις"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Αδύν. η αναπαρ. του βίντεο"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Στοίχιση"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Μέγ. γραμματοσειράς"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Επανάληψη ρύθμισης"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Υπότιτλοι (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Σεντρ"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Μεγάλο"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Αριστερό"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Μεσαίο"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Δεξιά"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Μικρό"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Επόμενο"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Προηγούμενο"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Δεν είναι δυνατή η κοινή χρήση αρχείων DRM."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Μορφή"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Δεν είναι δυνατή η αναπαραγωγή βίντεο κατά την κλήση."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Μήνυμα"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Μεταφορά αρχείου"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Γεωγραφικό μήκος"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Γεωγραφικό πλάτος"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Ενερ. κίνησης"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Ταχύτητα ρυθμού ολίσθησης %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Εξωτ. χώρος αποθήκ."
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Ένταση"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Μη υποστηριζόμενη μορφή βίντεο."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Μη υποστηριζόμενος τύπος αρχείου."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Μη υποστηριζόμενη μορφή ήχου."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Δεν είναι δυνατή η χρήση της γρήγορης προώθησης και επαναφοράς, όταν είναι ενεργοποιημένες κοντινές συσκευές."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Δεν είναι δυνατή η λήψη."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Περιστροφή"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Πατήστε το πλήκτρο επιστροφής ξανά για να επιστρέψετε στην προηγούμενη οθόνη."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Δεν υπάρχει αρκετή μνήμη. Διαγράψτε ορισμένα στοιχεία"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Η λίστα σελιδοδεικτών είναι πλήρης. Θέλετε να διαγράψετε μερικούς σελιδοδείκτες."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Κίτρινο"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Εικονικό κανάλι 7.1"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Υπότιτλοι (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Λειτουργία επανάληψης"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Χωρίς επανάληψη"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Ματζέντα"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Πράσινο"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Χρώμα γραμματοσειράς"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Γαλάζιο"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Προσαρ."
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Τρεχ.βίντ.(μία φορά)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Πληροφορίες σύνδεσης"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Αλλαγή player"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Λήψη"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Επιλογή συσκευής"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Διαθέσιμες συσκευές"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Ηχείο"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Λευκό"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Κόκκινο"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s δευτερόλεπτα"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Ταχύτητα αναπαραγωγής"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d δευτ."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Ανενεργό"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Χωρίς τίτλο"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Η συσκευή μου"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Προεπιλεγμένη γραμματοσειρά"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Μπλε"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Mαύρο"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Ενεργοποίηση"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Τερματισμός εφαρμογής;"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Άκυρο"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Όλα και μετά διακοπή"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Επανάληψη τρέχοντος"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Επανάληψη όλων"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Ανάλυση"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Τα εφέ ήχου %s δεν υποστηρίζονται από το ηχείο."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Για την πραγματοποίηση σίγασης των εισερχόμενων κλήσεων, των ειδοποιήσεων μηνυμάτων και των αφυπνίσεων, γυρίστε ανάποδα το τηλέφωνο."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Κάρτα SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Υποστηρίζονται μόνο δεδομένα ήχου από αυτό το αρχείο. Γίνεται αναπαραγωγή του ήχου."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Υποστηρίζονται μόνο δεδομένα βίντεο από αυτό το αρχείο. Γίνεται αναπαραγωγή του βίντεο."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Απόρρητος χώρος αποθήκευσης"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Ακουστικά"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Ηχείο"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Παύση"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Λήψη"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Επιλογή υπότιτλων (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Προεπισκόπηση υποτίτλων (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Αποτυχία σύνδεσης. Επανάληψη;"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Λειτ. επανάληψης"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Μη υποστηριζόμενος τύπος αρχείου."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Κανονικό"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Φωνή"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Ταινίες"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Ηχητικό κομμάτι"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Buffering..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Μορφή αρχείου"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Γλώσσα"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Δεν βρέθηκαν βίντεο"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Μέγεθος"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Τέλος"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Ανανέωση"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Ημερομηνία"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Φόρτωση..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Υπότιτλοι (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Διαγραφή"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Προσθήκη στην αρχική οθόνη"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Όνομα"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Δεν είναι δυνατή η αναπαραγωγή βίντεο."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Δεν υπάρχουν διαθέσιμοι υπότιτλοι"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Αναπαραγωγή"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Κλείσιμο"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Άκυρο URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Σφάλμα"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Χώρος αποθήκευσης συσκευής"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Αναπαραγ. Βίντεο"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Κοινή χρήση μέσω"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Προέκυψε σφάλμα δικτύου. Δοκιμάστε ξανά."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Υποστηρίζονται μόνο δεδομένα ήχου από αυτήν τη μορφή αρχείου. Γίνεται αναπαραγωγή του ήχου."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Υποστηρίζονται μόνο δεδομένα βίντεο από αυτήν τη μορφή αρχείου. Γίνεται αναπαραγωγή του βίντεο."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Κέντρο"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Ενεργό"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Ρυθμίσεις"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Βίντεο"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Κοιν.χρ"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Λεπτομέρειες"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Διαγραφή"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Προσωρινή αποθήκευση - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Κανένα"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d δευτ."
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Επιλογή συσκευής ήχου"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Διαγραφή"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Ακύρωση"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Προέκυψε άγνωστο σφάλμα ή το αρχείο μπορεί να είναι κατεστραμμένο."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Αυτός ο τύπος αρχείου δεν υποστηρίζεται."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ΤΕΛΟΣ"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Πλήρες"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Διατ.αναλ."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ΑΚΥΡΟ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Θέση αποθήκευσης"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Υπότιτλοι (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Προσωπικός χώρος αποθήκευσης"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Οι λεζάντες θα έχουν την εξής μορφή"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Δεν υπάρχει αρχείο."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Απεν.«Μόνο αναπ. ήχου»"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Ενερ.«Μόνο αναπ. ήχου»"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Πιέστε το κεντρικό πλήκτρο ή το πλήκτρο ενεργοποίησης κατά τη διάρκεια της αναπαραγωγής για να ακούτε μόνο τον ήχο."
+
diff --git a/vp-main/res/po/en.po b/vp-main/res/po/en.po
new file mode 100755 (executable)
index 0000000..624d60d
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Brightness"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Music"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voices"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Last modified"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Share"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Cannot play video"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "An error occurred with the subtitles."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "The file is corrupted or the SD card has been removed."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Title"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "This video will be deleted."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Unable to play video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alignment"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Font size"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repeat setting"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centre"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Large"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Left"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medium"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Right"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Small"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Next"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Previous"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM files cannot be shared."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Unable to play video during call."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Message"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "File transfer"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Enable motion"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Scrubbing at %sx speed."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "External storage"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volume"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Unsupported video format."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Unsupported file type."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Unsupported audio format."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Unable to use fast forward and rewind when nearby devices are enabled."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Unable to capture."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rotate"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Press the back key again to return to previous screen."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Not enough memory. Delete some items."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Bookmark list full. Delete some bookmarks."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Yellow"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtual 7.1 ch"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Repeat mode"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "No repeat"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Green"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Font colour"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cyan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Custom"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Current video (once)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Connection info"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Change player"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Capture"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Select device"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Available devices"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Speaker"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "White"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Red"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s seconds"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "Pop"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Play speed"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d secs"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "No title"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "My device"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Default font"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool Jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco Cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blue"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Black"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activation"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Close application?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Cancel"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop after all"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repeat current"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repeat all"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolution"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s sound effects not supported by speaker."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Turn phone over to mute incoming calls, message alerts, and alarms."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD card"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Only audio data supported by this file. Now playing audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Only video data supported by this file. Now playing video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Private storage"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Headphones"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Speaker"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pause"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Select subtitles (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Preview subtitles (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Connection failed."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Repeat mode"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Unsupported file type."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voice"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Movies"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Audio track"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Buffering..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "File format"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Language"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "No videos"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Size"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Done"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Refresh"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Date"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Loading..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Delete"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Add to home screen"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Name"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Unable to play video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "No subtitles available"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Play"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Close"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Invalid URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Error"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Device storage"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video Player"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Share via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "A network error has occurred. Try again."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Only audio data supported by this file format. Now playing audio."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Only video data supported by this file format. Now playing video."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centre"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "On"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Share"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Buffering - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "None"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d secs"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Select audio device"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "An unknown error has occurred or the file may be corrupt."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "This file type is not supported."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "DONE"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Full"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Keep ratio"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Storage location"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Personal storage"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Captions will look like this."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "This file does not exist."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Disable Play audio only"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Enable Play audio only"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Press the Home key or the Power key during playback to play audio only."
+
diff --git a/vp-main/res/po/en_PH.po b/vp-main/res/po/en_PH.po
new file mode 100755 (executable)
index 0000000..1983217
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Brightness"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Music"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voices"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Last modified"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Share"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Cannot play video"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "An error occurred with the subtitles."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "The file is corrupted or the SD card has been removed."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Title"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "This video will be deleted."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Unable to play video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alignment"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Font size"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repeat setting"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Center"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Large"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Left"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medium"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Right"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Small"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Next"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Previous"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM files cannot be shared."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Unable to play video during call."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Message"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "File transfer"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Enable motion"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Scrubbing at %sx speed."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "External storage"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volume"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Unsupported video format."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Unsupported file type."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Unsupported audio format."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Unable to use fast forward and rewind when nearby devices are enabled."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Unable to capture."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rotate"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Press the back key again to return to previous screen."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Not enough memory. Delete some items"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Bookmark list full. Delete some bookmarks"
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Yellow"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtual 7.1 ch"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Repeat mode"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "No repeat"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Green"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Font color"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cyan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Custom"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Current video (once)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Connection info"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Change player"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Capture"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Select device"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Available devices"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Speaker"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "White"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Red"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s seconds"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Play speed"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d secs"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "No title"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "My device"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Default font"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool Jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blue"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Black"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activation"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Close application?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Cancel"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop after all"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repeat current"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repeat all"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolution"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s sound effects not supported by speaker."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Turn phone over to mute incoming calls, message alerts, and alarms."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD card"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Only audio data supported by this file. Now playing audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Only video data supported by this file. Now playing video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Private storage"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Headphones"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Speaker"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pause"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Select subtitles (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Preview subtitles (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Connection failed."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Repeat mode"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Unsupported file type."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voice"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Movies"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Audio track"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Buffering..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "File format"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Language"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "No videos"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Size"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Done"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Refresh"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Date"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Loading..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Delete"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Add to home screen"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Name"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Unable to play video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "No subtitles available"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Play"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Close"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Invalid URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Error"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Device storage"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video Player"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Share via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "A network error has occurred. Try again."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Only audio data supported by this file format. Now playing audio."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Only video data supported by this file format. Now playing video."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Center"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "On"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Share"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Buffering - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "None"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d secs"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Select audio device"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "An unknown error has occurred or the file may be corrupt."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "This file type is not supported."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "DONE"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Full"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Keep ratio"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Storage location"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Personal storage"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Captions will look like this"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "This file does not exist."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Disable Play audio only"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Enable Play audio only"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Press the Home key or the Power key during playback to play audio only."
+
diff --git a/vp-main/res/po/en_US.po b/vp-main/res/po/en_US.po
new file mode 100755 (executable)
index 0000000..06aec16
--- /dev/null
@@ -0,0 +1,517 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Brightness"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Music"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voices"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Last modified"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Share"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Cannot play video"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "An error occurred with the subtitles."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "The file is corrupted or the SD card has been removed."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Title"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "This video will be deleted."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Unable to play video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alignment"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Font size"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repeat setting"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Center"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Large"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Left"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medium"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Right"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Small"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Next"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Previous"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM files cannot be shared."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Unable to play video during call."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Message"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "File transfer"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Turn on motion"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Scrubbing at %sx speed."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "External storage"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volume"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Unsupported video format."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Unsupported file type."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Unsupported audio format."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Unable to use fast forward and rewind when nearby devices are turned on."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Unable to capture."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rotate"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Press the back key again to return to previous screen."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Not enough memory. Delete some items."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Bookmark list full. Delete some bookmarks."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Yellow"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtual 7.1 ch"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Repeat mode"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "No repeat"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Green"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Font color"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cyan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Custom"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Current video (once)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Connection info"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Change player"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Capture"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Select device"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Available devices"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Speaker"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "White"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Red"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s seconds"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Play speed"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sec"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "No title"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "My device"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Default font"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool Jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blue"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Black"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activation"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Close application?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Cancel"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop after all"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repeat current"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repeat all"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolution"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s sound effects not supported by speaker."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Turn phone over to mute incoming calls, message alerts, and alarms."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD card"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Only audio data supported by this file. Now playing audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Only video data supported by this file. Now playing video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Private storage"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Headphones"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Speaker"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pause"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Download"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Select subtitles (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Preview subtitles (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Connection failed."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Repeat mode"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Unsupported file type."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voice"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Movies"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Audio track"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Buffering..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "File format"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Language"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "No videos"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Size"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Done"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Refresh"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Date"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Loading..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Delete"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Add to Home screen"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Name"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Unable to play video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "No subtitles available"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Play"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Close"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Invalid Web address."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Error"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Device storage"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video Player"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Share via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "A network error has occurred. Try again."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Only audio data supported by this file format. Now playing audio."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Only video data supported by this file format. Now playing video."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Center"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "On"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Share"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Details"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Buffering - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "None"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sec"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Select audio device"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "An unknown error has occurred or the file may be corrupt."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "This file type is not supported."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "DONE"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Full"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Keep ratio"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Storage location"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtitles (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Personal storage"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Captions will look like this."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "This file does not exist."
+
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Turn off Play audio only"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Turn on Play audio only"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Press the Home key or the Power key during playback to play audio only."
+
diff --git a/vp-main/res/po/es_ES.po b/vp-main/res/po/es_ES.po
new file mode 100755 (executable)
index 0000000..c9b45d6
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Brillo"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Música"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voces"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Ubicación"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Desconocido"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Aceptar"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Modificado por última vez"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Compartir"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "No es posible reproducir vídeo"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Se ha producido un error con los subtítulos."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "El archivo está dañado o se ha retirado la tarjeta SD."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalles"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Título"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Se eliminará este vídeo"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ajustes"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "No se puede reproducir vídeo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alineación"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tamaño de fuente"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repetir ajuste"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centro"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Izquierda"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medio"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Derecha"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pequeño"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Siguiente"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Anterior"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Los archivos DRM no se pueden compartir."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formato"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "No se puede reproducir vídeo durante la llamada"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mensaje"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Transfer archivos"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Correo elect"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitud"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Activar mov"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Depurando a velocidad %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Almacenamiento externo"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volumen"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Formato de vídeo no admitido"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo de archivo no admitido"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Formato de audio no compatible"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "No se puede usar rebobinado y avance rápido cuando se han habilitado los dispositivos cercanos"
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "No se puede capturar"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rotar"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Vuelva a pulsar la tecla Atrás para volver a la pantalla anterior"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "No hay memoria suficiente. Elimine algunos elementos."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Lista de favoritos llena. Elimine algunos favoritos."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Amarillo"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "7.1 canales virtuales"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Modo Repetición"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "No repetir"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Verde"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Color de fuente"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cian"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Personalizar"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Víd actual (una vez)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Info de conexión"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Cambiar reproductor"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Capturar"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Seleccione dispositivo"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Disposit dispon"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Altavoz"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Blanco"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Romero"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rojo"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s segundos"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Velocidad de reproducción"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d seg"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Desactivado"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Sin título"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Mi dispositivo"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Fuente predeterminada"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Azul"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Negro"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activación"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "¿Cerrar aplicación?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Detener después todo"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir todo"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolución"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Efectos de sonido de %s no admitidos por el altavoz"
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Dé la vuelta al teléfono para silenciar las llamadas entrantes, las alertas de mensajes y las alarmas"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Tarjeta SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Este archivo solo admite datos de audio. Ahora se reproduce audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Este archivo solo admite datos de vídeo. Ahora se reproduce vídeo."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Almacenamiento privado"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Auriculares"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Altavoz"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pausa"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Descargar"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Selecc subtítulos (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Previsualizar subtítulos (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Error de conexión"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Modo Repetición"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo de archivo no admitido"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voz"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Películas"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Pista de audio"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Alm. búfer..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Formato de archivo"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Idioma"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Sin vídeos"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Tamaño"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Hecho"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Actualizar"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Fecha"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Cargando..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Añadir a pantalla de inicio"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nombre"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "No se puede reproducir vídeo"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "No hay subtítulos disponibles"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Reproducir"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Cerrar"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL no válida"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Error"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Almacenamiento del dispositivo"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Compartir"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Se ha producido un error de red. Vuelva a intentarlo."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Este formato de archivo solo admite datos de audio. Ahora se reproduce audio."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Este formato de archivo solo admite datos de vídeo. Se está reproduciendo vídeo."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centro"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Activado"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Ajustes"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Vídeos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Compartir"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detalles"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Almacenando en búfer: %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Ninguna"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Seleccionar dispositivo de audio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Se ha producido un error desconocido o es posible que el archivo esté dañado."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Este tipo de archivo no es compatible."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "HECHO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Completa"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Proporción"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Ubicación almacenamiento"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Almacenamiento personal"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Los subtítulos se verán así"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "El archivo no existe"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Desact Repr solo audio"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Activ Repr solo audio"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Pulse el botón Inicio o el botón Encendido durante la reproducción para reproducir solo audio."
+
diff --git a/vp-main/res/po/es_US.po b/vp-main/res/po/es_US.po
new file mode 100755 (executable)
index 0000000..613641b
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Brillo"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Música"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voz"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Ubicación"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Desconocido"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Aceptar"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Modificado por última vez"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Compartir"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "No es posible reproducir video"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Ocurrió un error con los subtítulos."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "El archivo está dañado o se retiró la tarjeta de memoria."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalles"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Título"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Este video se eliminará."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ajustes"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "No se puede reproducir video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alineación"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tamaño de fuente"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repetir configuración"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Central"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Izquierda"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medio"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Derecha"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pequeño"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Siguiente"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Anterior"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "No es posible compartir archivos DRM."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formato"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "No es posible reproducir video durante la llamada."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mensaje"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Transfer. de archivo"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Correo"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitud"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Activar mov."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Depurando a %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Almacenamiento externo"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volumen"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Formato de video no admitido."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo de archivo no admitido."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Formato de audio no compatible."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "No es posible usar avanzar rápido y retroceder cuando dispositivos cercanos está activado."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "No es posible capturar."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rotar"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Presione la tecla Atrás nuevamente para regresar a la pantalla anterior."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Memoria insuficiente. Elimine algunos elementos"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Lista de Favoritos llena. Elimine algunos."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Amarillo"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtual 7.1 ch"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Modo de repetición"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "No repetir"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Verde"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Color de fuente"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cian"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Personalizado"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Video act. (una vez)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Inform. de conexión"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Cambiar reproductor"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Capturar"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Seleccionar dispositivo"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dispositivos disponibles"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Altavoz"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Blanco"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Romero"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rojo"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s segundos"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Velocidad de reproducción"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d seg."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Desactivado"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Sin título"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Mi dispositivo"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Fuente predeterminada"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool Jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Galleta de chocolate"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Azul"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Negro"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activación"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "¿Cerrar aplicación?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Detener desp. todo"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir todo"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolución"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Los efectos de sonido %s no son admitidos por el altavoz."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Gire el dispositivo para desactivar el sonido de las llamadas entrantes y las alarmas."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Tarjeta de memoria"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Este archivo sólo admite datos de audio. Ahora se reproduce audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Este archivo sólo admite datos de video. Ahora se reproduce video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Almacenamiento privado"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Auricular"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Altavoz"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pausar"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Descargar"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Selecc. subtítulos (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Vista prev. de subtítulos (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Error de conexión."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Modo repetir"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo de archivo no admitido."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voz"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Películas"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Pista de audio"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Guardando..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Formato del archivo"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Idioma"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Sin videos"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Tamaño"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Aceptar"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Actualizar"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Fecha"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Cargando..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Añadir a pantalla de inicio"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nombre"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "No es posible reproducir el video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "No hay subtítulos disponibles"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Reproducir"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Cerrar"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL no válida."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Error"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Almacenamiento del dispositivo"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Compartir vía"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Se produjo un error de red. Inténtelo de nuevo."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Este formato de archivo sólo admite datos de audio. Ahora se reproduce audio."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Este formato de archivo solo admite datos de video. Ahora se reproduce video."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centro"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Activado"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Ajustes"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Compartir"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detalles"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Guardando: %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Ninguno"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Seleccionar dispositivo de audio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Se produjo un error desconocido o el archivo puede estar dañado."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Este tipo de archivo no es compatible."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "REALIZADO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Completa"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Proporción"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Ubicación de almacenam."
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Almacenamiento personal"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Los subtítulos se verán así"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "El archivo no existe."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Desactivar solo audio"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Activar solo audio"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Presione la tecla Inicio o la tecla Encendido durante la reproducción para reproducir solo el audio."
+
diff --git a/vp-main/res/po/et.po b/vp-main/res/po/et.po
new file mode 100755 (executable)
index 0000000..c9aa29f
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Heledus"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Muusika"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Hääled"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Asukoht"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Tundmatu"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Viimati muudetud"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Jaga"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Videot ei saa esitada"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Subtiitritega ilmnes tõrge."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Fail on rikutud või SD-kaart on eemaldatud."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Üksikasjad"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Pealkiri"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "See video kustutatakse."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Seaded"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videot ei saa esitada"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Joondamine"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Fondi suurus"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Korduse seadistus"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtiitrid (peittiitrid)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Keskel"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Suur"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Vasakul"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Keskmine"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Paremal"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Väike"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Järgmine"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Eelmine"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM-faile ei saa jagada."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Vorminda"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Kõne ajal ei saa videot esitada."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Sõnum"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Failiedastus"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-kiri"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Pikkuskraad"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Laiuskraad"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Luba liik."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Kaapimine %sx kiirusel."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Välismälu"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Helitugevus"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Mittetoetatud videovorming."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Toetuseta failitüüp."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Mittetoetatud helivorming."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Kui lähedalolevad seadmed aktiveeritakse, ei saa te kasutada edasi- ja tagasikerimist."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Jäädvustamine nurjus."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Pööra"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Eelmisele kuvale naasmiseks vajutage uuesti tagasiliikumise klahvi."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Mälu pole piisavalt. Kustutage mõned üksused"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Järjehoidjate loend on täis.\nKustutage mõned järjehoidjad."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Kollane"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtuaal. kanal 7.1"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtiitrid (peittiitrid)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Kordusrežiim"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Ei korda"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Roheline"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Fondi värv"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Tsüaan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Kohandatud"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Praegune video (1x)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Ühenduse teave"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Vaheta mängijat"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Jäädvusta"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Vali seade"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Saadaolevad seadmed"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Val.hääl."
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Valge"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Punane"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s sekundit"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Esituskiirus"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sek"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Väljas"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Pealkirjata"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Minu seade"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Vaikefont"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Sinine"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Must"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktiveerimine"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Kas sulgeda rakendus?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Tühis."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Lõpeta pärast kõiki"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Korda praegust"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Korda kõik"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Eraldusvõime"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Valjuhääldi ei toeta rakenduse %s heliefekte."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Saabuvate konede, sonumi marguannete ja teiste marguannete vaigistamiseks keerake telefon umber."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-kaart"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "See fail toetab ainult heliandmeid. Nüüd esitatakse heli."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "See fail toetab ainult videoandmeid. Nüüd esitatakse videot."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privaatne mälu"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Kõrvaklapid"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Kõlar"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Paus"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Laadi alla"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Vali subt. (peittiitrid)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Eelvaate subt. (peittiitrid)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Ühendamine nurjus."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Kordusrežiim"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Toetuseta failitüüp."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Tavaline"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Hääl"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmid"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Helipala"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Puhverdamine"
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Failivorming"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Keel"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Videoid pole"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Suurus"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Valmis"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Värskenda"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Kuupäev"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Laadimine..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subt. (peittiitrid)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Kustuta"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Lisa avaekraanile"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nimi"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Videot ei saa esitada."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Subtiitrid pole saadaval"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Esita"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Sulge"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Vigane URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Tõrge"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Seadme mälu"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Videomängija"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Jaga:"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ilmnes võrgutõrge. Proovige uuesti."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "See failvorming toetab ainult heliandmeid. Nüüd esitatakse heli."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "See failvorming toetab ainult videoandmeid. Nüüd esitatakse videot."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Keskele"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Sees"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Seaded"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videod"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Jaga"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Üksikasjad"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Kustuta"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Puhverdamine – %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Puudub"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sek"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Heliseadme valimine"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Kustuta"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Tühista"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Ilmnes tundmatu tõrge või fail on rikutud."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Seda failitüüpi ei toetata."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "VALMIS"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Täisekr."
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Hoia kuva."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "TÜHISTA"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Salvestamise asukoht"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtiitrid (peittiitrid)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Isiklik mälu"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Pealdised näevad välja nii"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Seda faili pole olemas."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Desakt. Esita ain. heli"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Akt. Esita ainult heli"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Vajutage taasesituse ajal avaekraani klahvi või toitenuppu, et esitada ainult heli."
+
diff --git a/vp-main/res/po/eu.po b/vp-main/res/po/eu.po
new file mode 100755 (executable)
index 0000000..38b8634
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Argitasuna"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musika"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Ahotsak"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Kokalekua"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Ezezaguna"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Ados"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Azken aldaketa"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Partekatu"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Ezin da bideoa erreproduzitu"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Errore bat gertatu da azpitituluekin."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Fitxategia hondatuta dago edo SD txartela kendu egin da."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Xehetasunak"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Izenburua"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Bideo hau ezabatuko da"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ezarpenak"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Ezin da bideoa erreproduzitu"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Lerrokatzea"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Letraren neurria"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Errepikatu ezarpena"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Azpitituluak (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Erdikoa"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Handia"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Ezkerra"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Ertaina"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Eskuinekoa"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Txikia"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Hurrengoa"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Aurrekoa"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Ezin dira DRM fitxategiak partekatu"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formateatu"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Ezin da bideoa erreproduzitu deia egiten ari den bitartean"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mezua"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Fitx. transferentzia"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Helb. elek."
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitudea"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitudea"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Gaitu mugim."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "%sx-ko abiaduran aurreratzea"
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Kanpo memoria"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Bolumena"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Bideoaren formatua ez dago onartuta"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Fitxategi mota ez bateragarria"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Audioaren formatua ez dago onartuta"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Ezin dira aurreratzeko eta atzeratzeko aukerak erabili gertuko gailuak gaitzen direnean"
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Ezin da irudia hartu"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Biratu"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Aurreko pantailara itzultzeko, sakatu berriro atzera-tekla"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Ez dago memoria nahikoa. Elementu batzuk ezabatu."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Laster-marka zerrenda beteta dago.Laster-marka batzuk ezabatu."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Horia"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "7.1 kate birtuala"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Azpitituluak (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Errepikapen modua"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Ez errepikatu"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Berdea"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Letra kolorea"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Zian"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Pertsonalizatua"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Bideo hau (behin)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Konexio informazioa"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Aldatu erreproduktorea"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Kapturatu"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Aukeratu gailua"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Gailu eskuragarriak"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Bozgor."
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Zuria"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Gorria"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s segundo"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Erreprodukzioaren abiadura"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d seg"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Desaktibatuta"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Izenbururik ez"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Nire gailua"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Lehenetsitako letra mota"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Urdina"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Beltza"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktibazioa"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Aplikazioa itxi?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Ezez."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Eten denen ondoren"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Errepikatu hau"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Errepikatu dena"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Bereizmena"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Bozgorailuak ez ditu %s soinu efektu onartzen"
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Itzuli telefonoa sarrera deiak, mezu alertak eta alarmak isilarazteko"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD txar."
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Fitxategi honek audio datuak baino ez ditu onartzen. Audioa erreproduzitzen."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Fitxategi honek bideo datuak baino ez ditu onartzen. Bideoa erreproduzitzen."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Biltegi pribatua"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Aurikularrak"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Bozgorailua"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Eten"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Deskargatu"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Hautatu azpitituluak (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Aurreikusi azpitituluak (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Konektatzerakoan errorea"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Errepikatze modua"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Fitxategi mota ez bateragarria"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Arrunta"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Ahotsa"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmak"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Audio pista"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Bufferreratzen..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Fitxategiaren formatua"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Hizkuntza"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Bideorik ez"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Tamaina"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Egina"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Eguneratu"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Kargatzen..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Azpidatziak (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Ezabatu"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Gehitu hasierako pantailara"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Izena"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Ezin da bideoa erreproduzitu"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Ez dago azpidatzirik erabilgarri"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Erreproduzitu"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Itxi"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL baliogabea"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Errorea"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Gailu biltegia"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Bideo Jogailua"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Partekatu honen bidez"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Sare errorea gertatu da. Saiatu berriz."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Fitxategi formatu honek onartzen dituen audio datuak soilik. Orain audioa erreproduzitzen."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Fitxategi formatu honek bideo datuak baino ez ditu onartzen. Bideoa erreproduzitzen."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Erdia"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Aktibatuta"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Ezarpenak"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Bideoak"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Partek."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Xehetasunak"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Ezabatu"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Bufferreratzen - %%d"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Batere ez"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Hautatu audio gailua"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Ezabatu"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Ezeztatu"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Errore ezezaguna gertatu da edo baliteke fitxategia hondatuta egotea."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Fitxategi mota hau ez da onartzen."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "EGINA"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Osoa"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Mantendu ratioa"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "UTZI"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Biltegiratze kokapena"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Azpitituluak (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Biltegi pertsonala"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Kapturak itxura hau izango du"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Fitxategia ez dago"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Desgaitu Errepr. audioa soilik"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Gaitu Errepr. audioa soilik"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Erreproduzitu bitartean, sakatu Tekla nagusia edo Pizteko tekla audioa soilik erreproduzitzeko."
+
diff --git a/vp-main/res/po/fi.po b/vp-main/res/po/fi.po
new file mode 100755 (executable)
index 0000000..cddb148
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Kirkkaus"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musiikki"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Äänet"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "t"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Gt"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kt"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Sijainti"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "Mt"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Tuntematon"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Muutettu viimeksi"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Jaa"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Videota ei voi toistaa"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Tekstityksessä tapahtui virhe."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Tiedosto on vioittunut tai SD-kortti on poistettu."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Lisätiedot"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Otsikko"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Tämä video poistetaan."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Asetukset"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videota ei voi toistaa"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Kohdistus"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Fonttikoko"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Toistoasetus"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Tekstitys (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Keskelle"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Suuri"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Vasemmalle"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Keskisuuri"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Oikealle"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pieni"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Seuraava"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Edellinen"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM-tiedostoja ei voi jakaa."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Muoto"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Puhelun aikana ei voi toistaa videota."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Viesti"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Tiedostonsiirto"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Sähköposti"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Pituusaste"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Leveysaste"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Käytä liikettä"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Hangataan %s-kertaisella nopeudella."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Ulk. tallennuslaite"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Äänenvoimakkuus"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Videomuotoa ei tueta."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tiedostotyyppiä ei tueta."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Äänimuotoa ei tueta."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Pikakelausta eteen- ja taaksepäin ei voi käyttää, kun lähellä olevat laitteet ovat käytössä."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Ei voi tehdä ruudunkaappausta."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Kierrä"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Palaa edelliseen näyttöön painamalla paluunäppäintä uudelleen."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Muisti ei riitä. Poista joitain kohteita."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Kirjanmerkkiluettelo täynnä. Poista kirjanmerkkejä."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Keltainen"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtuaalinen 7.1-kanava"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Tekstitys (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Toistotila"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Ei toistoa"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Vihreä"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Kirjasimen väri"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Syaani"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Mukautettu"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Nyk. video (kerran)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Yhteystiedot"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Vaihda soitinta"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Tallenna"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Valitse laite"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Käyt. olevat laitt."
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Kaiutin"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Valkoinen"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Punainen"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s sekuntia"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Toistonopeus"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d s"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Pois"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Otsikko puuttuu"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Oma laite"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Oletusfontti"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Sininen"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Musta"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivointi"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Suljetaanko sovellus?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Per."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Pysäytä kaikk. jälk."
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Toista nykyinen"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Toista kaikki"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Tarkkuus"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Kaiutin ei tue äänitehosteita %s."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Mykistä saapuvat puhelut, viestihälytykset ja herätykset kääntämällä puhelin ylösalaisin."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-kort."
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Tiedosto tukee vain äänitietoja. Toistetaan ääntä."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Tiedosto tukee vain videotietoja. Toistetaan videota."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Yksityinen tallennustila"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Kuulokkeet"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Kaiutin"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Tauko"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Lataa"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Valitse tekstitys (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Esikatsele tekstitys (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Yhdistäminen epäonnistui."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Toistotila"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tiedostotyyppiä ei tueta."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normaali"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Ääni"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Elokuvat"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Ääniraita"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Puskuroi..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Tiedostomuoto"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Kieli"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Ei videoita"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Koko"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Valmis"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Päivitä"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Päivämäärä"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Ladataan..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Tekstitys (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Poista"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Lisää alkunäyttöön"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nimi"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Videota ei voi toistaa."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Tekstityksiä ei ole käytettävissä"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Toista"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Sulje"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Virheellinen URL-osoite"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Virhe"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Laitteen muisti"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Videosoitin"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Jakotapa"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Verkkovirhe. Yritä uudelleen."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Tämä tiedostomuoto tukee vain äänitietoja. Toistetaan ääntä."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Tämä tiedostomuoto tukee vain videotietoja. Toistetaan videota."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Keskelle"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Päälle"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Asetukset"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videot"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Jaa"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Lisätiedot"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Poista"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Puskuroidaan - %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Ei mitään"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Valitse äänilaite"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Poista"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Peruuta"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Tuntematon virhe tai tiedosto on ehkä vioittunut."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Tätä tiedostotyyppiä ei tueta."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "VALMIS"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Koko n."
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Säilytä suhde"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "PERUUTA"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Tallennuspaikka"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Tekstitys (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Henkilökohtainen tallennustila"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Kuvatekstit näyttävät tältä."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Tiedostoa ei ole."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Poista Toista vain ääntä k."
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Ota Toista vain ääntä k."
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Toista vain ääntä painamalla koti- tai virtanäppäintä toiston aikana."
+
diff --git a/vp-main/res/po/fr.po b/vp-main/res/po/fr.po
new file mode 100755 (executable)
index 0000000..3d76d99
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Luminosité"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musique"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voix"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "o"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Go"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "Ko"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Localisation"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "Mo"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Inconnu"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Dernière modification"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Partager"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Lecture vidéo impossible"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Une erreur s'est produite avec les sous-titres."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Le fichier est corrompu ou la carte SD a été retirée."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Détails"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titre"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Cette vidéo va être supprimée."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Paramètres"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Impossible de lire la vidéo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alignement"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Taille de police"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Répéter le paramètre"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Sous-titres (codés)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centre"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grand"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Gauche"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Moyen"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Droit"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Petit"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Suivant"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Précédent"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Impossible de partager les fichiers DRM."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Impossible de lire la vidéo pendant un appel."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Message"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Transfert fichiers"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Act. mouvement"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Recherche à la vitesse %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Stockage externe"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volume"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Format vidéo non pris en charge"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Type de fichier non pris en charge"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Format audio non pris en charge"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Impossible d'utiliser les fonctions d'avance et de retour rapides lorsque la fonction AllShare est activée."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Capture impossible"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Pivoter"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Appuyez de nouveau sur la touche Retour pour revenir à l'écran précédent."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Mémoire insuffisante. Supprimez certains éléments."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Liste de favoris saturée. Supprimer des favoris."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Jaune"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Canal 7.1 virtuel"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Sous-titres (codés)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Mode répétition"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Mode répétition désactivé"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Vert"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Couleur de la police"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cyan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Personnalisé"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Vidéo act. (1 fois)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Infos connexion"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Modifier le lecteur"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Capturer"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Sélectionner appareil"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Périph. disponibles"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "HP"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Blanc"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rouge"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s secondes"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Vitesse de lecture"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sec"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Désactivé"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Sans titre"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Mon appareil"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Police par défaut"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Bleu"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Noir"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activation"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Fermer l'application ?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Annul."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Arrêter après tout"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Répéter élém. actuel"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Tout répéter"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Résolution"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Les effets sonores %s ne sont pas pris en charge par le haut-parleur."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Retournez le téléphone pour couper la sonnerie des appels entrants, des alertes de message et des alarmes."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Carte SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Seules les données audio sont prises en charge par ce fichier. Audio en cours de lecture."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Seules les données vidéo sont prises en charge par ce fichier. Vidéo en cours de lecture."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Stockage privé"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Écouteurs"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Haut-parleur"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pause"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Télécharger"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Sélectionner sous-titres"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Aperçu des sous-titres"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Échec de connexion au réseau."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Mode répéter"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Type de fichier non pris en charge"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Standard"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voix"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Vidéos"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Piste audio"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Tampon..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Format de fichier"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Langue"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Aucune vidéo"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Taille"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Rafraîchir"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Date"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Chargement..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Sous-titres (codés)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Ajouter à l'écran d'accueil"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nom"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Impossible de lire la vidéo."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Aucun sous-titre disponible"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Lire"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Fermer"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL non valide"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Erreur"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Espace sur l'appareil"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Lecteur vidéo"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Partager via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Une erreur réseau s'est produite. Réessayez."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Seules les données audio sont prises en charge par ce format de fichier. Audio en cours de lecture."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Seules les données vidéo sont prises en charge par ce format de fichier. Vidéo en cours de lecture."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centrer"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Activé"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Paramètres"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Vidéos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Partage"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Détails"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Mise en mémoire tampon - %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Aucune"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Sélectionner un appareil audio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Annuler"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Une erreur inconnue est survenue ou le fichier est peut-être corrompu."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Ce type de fichier n'est pas pris en charge."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "OK"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Pl. écr."
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Conserver"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULER"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Emplacement de stockage"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Sous-titres (codés)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Stockage personnel"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Aspect des sous-titres"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Fichier inexistant"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Désactiver Mode Audio"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Activer Mode Audio"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Appuyez sur la touche Accueil ou la touche Marche pendant la lecture pour lire les données audio uniquement."
+
diff --git a/vp-main/res/po/fr_CA.po b/vp-main/res/po/fr_CA.po
new file mode 100755 (executable)
index 0000000..84b2251
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Luminosité"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musique"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voix"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "O"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Go"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "Ko"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Localisation"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "Mo"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Inconnu"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Dernière modification"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Partager"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Lecture vidéo impossible"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Une erreur s'est produite avec les sous-titres."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Le fichier est corrompu ou la carte SD a été retirée."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Détails"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titre"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Cette vidéo va être supprimée."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Réglages"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Impossible de lire la vidéo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alignement"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Taille de police"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Répéter le paramètre"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Sous-titres"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centre"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grand"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Gauche"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Moyen"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Droit"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Petit"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Suivant"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Précédent"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Impossible de partager les fichiers GDN."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Impossible de jouer la vidéo pendant un appel."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Message"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Transfert fichiers"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Courriel"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Act mouvement"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Recherche à la vitesse %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Stockage externe"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volume"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Format vidéo non pris en charge."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Type de fichier non pris en charge."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Format audio non pris en charge."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Impossible d'utiliser les fonctions d'avance et de retour rapides lorsque des appareils à proximité sont activés."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Capture impossible."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Pivoter"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Appuyez de nouveau sur la touche retour pour revenir à l'écran précédent."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Mémoire insuffisante. Supprimez certains éléments"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Liste de signets saturée. Supprimer des signets."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Jaune"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Chaine 7.1 virtuelle"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Sous-titres"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Mode répétition"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Mode répétition désactivé"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Vert"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Couleur de la police"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cyan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Personnalisé"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Vidéo act. (1 fois)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Infos connexion"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Modifier le lecteur"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Capturer"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Sélectionner périph."
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Appareils disponibles"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "HP"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Blanc"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rouge"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s secondes"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Vitesse de lecture"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d s"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Désactivé"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Sans titre"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Mon appareil"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Police par défaut"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Bleu"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Noir"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activation"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Fermer l'application?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Annuler"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Arrêter après tout"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Répéter élém. actuel"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Tout répéter"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Résolution"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Les effets sonores %s ne sont pas pris en charge par le hautparleur."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Retournez le téléphone pour couper la sonnerie des appels entrants, des alertes de message et des alarmes."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Carte SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Seules les données audios sont prises en charge par ce fichier. Audio en cours de lecture."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Seules les données vidéos sont prises en charge par ce fichier. Vidéo en cours de lecture."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Stockage privé"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Écouteurs"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "HP"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pause"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Télécharger"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Sélectionner sous-titres"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Aperçu des sous-titres"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Échec de connexion réseau."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Mode répéter"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Type de fichier non pris en charge."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Standard"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voix"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Films"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Piste audio"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Tampon..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Format de fichier"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Langue"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Aucune vidéo"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Taille"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Actualiser"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Date"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Chargement..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Sous-titres (codés)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Ajouter à l'écran d'accueil"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nom"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Impossible de lire la vidéo."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Aucun sous-titre disponible"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Lire"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Fermer"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL non valide."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Erreur"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Espace sur l'appareil"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Lecteur vidéo"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Partager via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Une erreur réseau s'est produite. Réessayez."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Seules les données audios sont prises en charge par ce format de fichier. Audio en cours de lecture."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Seules les données vidéos sont prises en charge par ce format de fichier. Vidéo en cours de lecture."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centré"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Activé"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Réglages"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Vidéos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Partag."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Détails"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Mise en mémoire tampon - %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Aucune"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Sélectionner un appareil audio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Annuler"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Une erreur inconnue est survenue ou le fichier est peut-être corrompu."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Ce type de fichier n'est pas pris en charge."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "OK"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Pl. écr."
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Conserver"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULER"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Emplacement de stockage"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Sous-titres (codés)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Stockage personnel"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Aspect des sous-titres"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Fichier inexistant"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Désact. Lec. aud. uniq."
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Act. Lec. aud. uniq."
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Touchez la touche Accueil ou la touche Marche pendant la lecture pour lire les données audio uniquement."
+
diff --git a/vp-main/res/po/ga.po b/vp-main/res/po/ga.po
new file mode 100755 (executable)
index 0000000..3556da2
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Gile"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Ceol"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Guthanna"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Suíomh"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Anaithnid"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Mionathrú is déanaí"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Comhroinn"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Ní féidir físeán a sheinm"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Tharla earráid leis na fotheidil."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Tá an comhad truaillithe nó baineadh an cárta SD as."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Sonraí"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Teideal"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Scriosfar an físeán seo"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Socruithe"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Ní féidir físeán a sheinm"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Ailíniú"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Méid cló"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Socrú athsheanma"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Fotheidil (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Lárnach"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Mór"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Clé"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Meánach"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Deas"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Beag"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Ar aghaidh"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Roimhe"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Ní féidir comhaid DRM a chomhroinnt."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formáid"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Ní féidir físeán a sheinm le linn glao."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Teachtai"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Aistriú comhad"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "R-phost"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Domhanfad"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Leithead"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Cumas. gluaisne"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Sciúradh ar %sx luas."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Stóras seachtrach"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Airde"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Formáid físeáin gan tacú."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Cineál comhaid gan tacú."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Formáid fuaime gan tacú."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Ní féidir mearchasadh agus cúlchasadh a úsáid nuair atá gléasanna in aice láimhe cumasaithe."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Ní féidir é a ghabháil."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rothlaigh"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Brúigh an eochair siar arís le filleadh ar an scáileán roimhe"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Easpa cuimhne. Scrios roinnt míreanna."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Liosta leabharmharcanna lán. Scrios roinnt leabharmharcanna."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Buí"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Cainéal fíorúil 7.1"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Fotheidil (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Mód athsheinnte"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Ná hathdhéan"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Maigeanta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Glas"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Dath cló"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cian"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Saincheaptha"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Físeán seo (1 uair)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Fais. faoi nascadh"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Athraigh seinnteoir"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Gabh"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Roghnaigh gléas"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Gléasanna atá ar fáil"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Callaire"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Bán"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Dearg"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s soicind"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Luas seanma"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d soic"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "As"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Níl teideal ann"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Mo ghléas"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Cló réamhshocraithe"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Snagcheol breá"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Gorm"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Dubh"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Gníomhachtú"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Dún ríomhchlár?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Cealú"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop tar eis gach"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Athdhean cuid reatha"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Athdhéan gach"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Taifeach"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Níl tacú sa challaire do mhaisíochtaí fuaime %s."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Cas an fón bunoscionn le glaonna isteach, foláirimh maidir le teachtaireachtaí agus aláraim a bhalbhú"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Cárta SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Níl tacú sa chomhad seo ach do shonraí fuaime. Fuaim á seinm anois."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Níl tacú sa chomhad seo ach do shonraí físe. Físeán á sheinm anois."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Stóras príobháideach"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Cluasáin"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Callaire"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Cuir ar sos"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Íoslódáil"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Roghnaigh fotheidil (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Réamhamharc ar fhotheidil (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Theip ar nascadh."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Modh athdhéanta"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Cineál comhaid gan tacú."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normálta"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Guth"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Scannáin"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Fuaimrian"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Ag maolánú..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Formáid an chomhaid"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Teanga"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Níl físeáin ann"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Méid"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Déanta"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Athnuaigh"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dáta"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Ag lódáil..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Fotheidil (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Scrios"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Cuir leis an scáileán baile"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ainm"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Ní féidir físeán a sheinm."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Níl aon fhotheidil ar fáil"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Seinn"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Dún"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL neamhbhailí."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Earráid"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Stóras gléis"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Seinnteoir Físeán"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Comhroinn le"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Tharla earráid líonra. Triail arís."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Níl tacú ann san fhormáid chomhaid seo ach do shonraí fuaime. Fuaim á seinm anois."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Níl tacú sa formáid comhaid seo ach do shonraí físeáin. Físeán á sheinm anois."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Ionad"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Air"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Socruithe"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Físeáin"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "C.roinn"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Sonraí"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Scrios"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Maolánú - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Dada"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d soic"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Roghnaigh gléas fuaime"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Scrios"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cealaigh"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Tharla earráid neamhaithnid nó is féidir go bhfuil an comhad truaillithe."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Níl tacú ann don chineál comhaid seo."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "DÉANTA"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Lán"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Coinn. cóimheas"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CUIR AR CEAL"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Suíomh stórais"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Fotheidil (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Stóras pearsanta"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Beidh an chuma seo ar fhoscríbhinní"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Níl an comhad seo ann"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Díchum. Seinn fuaim amháin"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Cum. Seinn fuaim amháin"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Brúigh an eochair Baile nó an Chumhachteochair le linn athsheinm le fuaim amháin a sheinm."
+
diff --git a/vp-main/res/po/gl.po b/vp-main/res/po/gl.po
new file mode 100755 (executable)
index 0000000..b1ff9ee
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Brillo"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Música"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voces"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Localización"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Descoñecido"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Aceptar"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Modificado por última vez"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Compartir"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Non se pode reproducir vídeo"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Produciuse un erro cos subtítulos."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "O arquivo está danado ou retirouse a tarxeta SD."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalles"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Título"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Eliminarase este vídeo"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Axustes"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Imposible reproducir vídeo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Aliñamento"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tamaño da fonte"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Axustes de repetición"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítulos"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centro"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Esquerda"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Media"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Dereita"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pequeno"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Seguinte"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Anterior"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Non se poden compartir arquivos DRM."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formatar"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Non se pode reproducir vídeo durante a chamada"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mensaxe"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Transferenc. arquivo"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Correo e."
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Lonxitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Act. movemen."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Avanzando a velocidade %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Almacenamento externo"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volume"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Non se admite este formato de vídeo"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo de arquivo non admitido"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Non admite o formato de audio"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Non se pode usar o avance e rebobinado rápido cando hai dispositivos próximos activados"
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Non se pode capturar"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Xirar"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Pulsa a tecla de retroceso de novo para volver á pantalla anterior"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Non hai suficiente memoria. Elimine algúns elementos."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Lista de favoritos chea. Elimine algúns favoritos."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Amarelo"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtual de 7.1 canles"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtítulos"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Modo repetición"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Sen repetición"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Maxenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Verde"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Cor da fonte"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Azul escuro"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Personalizado"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Vídeo actual (1 vez)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Información conexión"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Cambiar reprodutor"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Captura"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Seleccionar dispositivo"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dispositivos dispoñ."
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Altofal."
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Branco"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Vermello"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s segundos"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Velocidade de reprodución"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d segundos"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Desactivado"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Sen título"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "O meu dispositivo"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Fonte predeterminada"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Azul"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Negro"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activación"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Pechar aplicación?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Deter despo. de todo"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir todos"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolución"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "O altofalante non admite efectos de son %s"
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Dá a volta ao teléfono para silenciar as chamadas entrantes, as alertas das mensaxes e as alarmas"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Tarx. SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Este arquivo só admite datos de audio. Reprodución de audio en curso."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Este arquivo só admite datos de vídeo. Reprodución de vídeo en curso."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Almacenamento privado"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Auriculares"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Altofal."
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pausa"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Descargar"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Selec. subtítulos (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Previsualizar subtítulos (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Erro na conexión"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Modo de repetición"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo de arquivo non admitido"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voz"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Películas"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Pista de son"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Alm. búfer..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Formato de arquivo"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Idioma"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Non hai vídeos"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Tamaño"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Feito"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Actualizar"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Cargando..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtítulos (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Engadir á pant. de inicio"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nome"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Non se pode reproducir o vídeo"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Ningún subtítulo dispoñible"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Reproducir"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Pechar"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL non válida"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Erro"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Almacenamento do dispositivo"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Reprodutor de Vídeo"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Compartir mediante"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Produciuse un erro de rede. Téntao de novo."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Este formato de arquivo só admite datos de audio. Reprodución de audio en curso."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Este formato de arquivo só admite datos de vídeo. Reprodución de vídeo en curso."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centro"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Activado"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Axustes"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Vídeos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Compart"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detalles"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Almacenando en búfer - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Ningún"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d seg."
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Seleccionar dispositivo de audio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Produciuse un erro descoñecido ou pode que o arquivo estea danado."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Este tipo de arquivo non é compatible."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "FEITO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Cheo"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Mant.rela."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Localización almacenam."
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtítulos"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Almacenamento persoal"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "As lendas aparecerán así"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "O arquivo non existe"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Desact. Repr. son soam."
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Activ. Repr. son soam."
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Pulsa o botón Inicio ou botón Acendido durante a reprodución para reproducir só audio."
+
diff --git a/vp-main/res/po/hi.po b/vp-main/res/po/hi.po
new file mode 100755 (executable)
index 0000000..8d8ade0
--- /dev/null
@@ -0,0 +1,506 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "चमक"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "संगीत"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "वॉइस"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "स्थान"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "अज्ञात"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "ओके"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "अंतिम बार संशोधित"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "साझा करें"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "वीडियो नहीं चला सकता"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "उपशीर्षक में कोई त्रुटि उत्पन्न हुई।"
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "फ़ाइल दूषित है या SD कार्ड निकाल दिया गया है।"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "विवरण"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "शीर्षक"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "यह वीडियो हटाया जाएगा"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "सेटिंग्स"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "वीडियो चलाने में असमर्थ"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "संरेखण"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "फॉन्ट आकार"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "दोहराव सेटिंग"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "उपशीर्षक (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "केंद्र"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "बड़ा"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "बाएँ"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "मध्यम"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "दाएँ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "छोटा"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "अगला"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "पिछला"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM फ़ाइलें साझा नहीं की जा सकतीं।"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "फॉर्मेट"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "कॉल के दौरान वीडियो चलाने में असमर्थ।"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "सन्देश"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "फ़ाइल स्थानांतरण"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "ईमेल"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "देशांतर"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "अक्षांश"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "गति सक्षम करे"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "%sx गति पर स्क्रबिंग।"
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "बाह्य स्टोरेज"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "वॉल्यूम"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "असमर्थित वीडियो फ़ॉर्मेट।"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "असमर्थित फाइल प्रकार।"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "असमर्थित ऑडियो फ़ॉर्मेट।"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "निकटवर्ती डिवाइसेस सक्षम होने पर आगे करने और पीछे करने का उपयोग करने में असमर्थ।"
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "कैप्चर करने में असमर्थ।"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "घुमाएँ"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "पिछली स्क्रीन पर लौटने के लिए फिर से पीछे कुंजी दबाएँ।"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "पर्याप्त मेमोरी नहीं। कुछ मदें हटाएँ।"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "बुकमार्क सूची पूर्ण। कुछ बुकमार्क हटाएँ।"
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "पीला"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "वर्चुअल 7.1 ch"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "उपशीर्षक (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "दोहराव मोड"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "कोई दोहराव नहीं"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "मैजंटा"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "हरा"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "फॉन्ट रंग"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "सियान"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "कस्टम"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "वर्तमान वीडियो (एक बार)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "कनेक्शन जानकारी"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "प्लेयर बदलें"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "कैप्चर करें"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "ऑलशेयर"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "डिवाइस चुनें"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "उपलब्‍ध डिवाइसेस"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "स्पीकर"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "सफेद"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "रोजमेरी"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "लाल"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s सेकंड"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "पॉप"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "चलाने की गति"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d सेकंड"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "बंद"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "कोई शीर्षक नहीं"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "मेरा डिवाइस"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "डिफॉल्ट फॉन्ट"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "कूल जैज"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "चोको कुकी"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "नीला"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "काला"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "सक्रियण"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "एप्लीकेशन बंद करें?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "रद्द"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "सब के बाद रोकें"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "वर्तमान को दोहराएँ"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "सभी दोहराएँ"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "रिजॉल्यूशन"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s ध्‍वनि प्रभाव स्पीकर द्वारा समर्थित नहीं है"
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "आने वाली कॉल्‍स, संदेश सतर्क, और अलार्म्स मूक करने के लिए फ़ोन घुमाएँ"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD कार्ड"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "इस फाइल के द्वारा केवल ऑडियो डाटा समर्थित है। अब ऑडियो चलाया जा रहा है।"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "इस फ़ाइल के द्वारा केवल वीडियो डाटा समर्थित है। अब वीडियो चलाया जा रहा है।"
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "निजी स्टोरेज"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "हेडफोन्‍स"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "स्पीकर"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "विराम"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "डाउनलोड करें"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "उपशीर्षक (CC) चुनें"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "पूर्वावलोकन उपशीर्षक (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "कनेक्शन विफल।"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "दोहराव मोड"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "असमर्थित फाइल प्रकार।"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "सामान्य"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "आवाज"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "मूवीज"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "ऑडियो ट्रैक"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "बफरिंग..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "फ़ाइल फॉर्मेट"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "भाषा"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "कोई वीडियो नहीं"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "आकार"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "पूर्ण"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "रीफ्रेश"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "तिथि"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "लोड हो रहा है..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "उपशीर्षक (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "हटाएँ"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "होम स्क्रीन पर जोड़े"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "फेसबुक"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "नाम"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "यूट्यूब"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "वीडियो चलाने में अक्षम।"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "कोई उपशीर्षक उपलब्ध नहीं"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "चलाएँ"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "बंद"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "अमान्य वेब पता।"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "त्रुटि"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "डिवाइस स्टोरेज"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "वीडियो प्‍लेयर"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "इसके द्वारा साझा करें"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "नेटवर्क त्रुटि उत्पन्न हुई है। फिर से प्रयास करें।"
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "इस फाइल फॉर्मेट द्वारा केवल ऑडियो डाटा समर्थित है। अब ऑडियो चला रहा है।"
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "इस फ़ाइल स्वरूप द्वारा केवल वीडियो डाटा समर्थित है। वीडियो अभी चलाया जा रहा है।"
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "केन्द्र"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "चालू"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "सेटिंग्स"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "वीडियोज़"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "साझा"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "विवरण"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "हटाएँ"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "बफ़र हो रहा है - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "कोई नहीं"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d सेकंड"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "ऑडियो डिवाइस चुनें"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "हटाएँ"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "रद्द"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "एक अज्ञात त्रुटि उत्पन्न हुई है या फाइल दूषित हो सकती है।"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "यह फाइल प्रकार समर्थित नहीं है।"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "पूर्ण"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "पूरा"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "अनुपात रखे"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "रद्द करें"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "संग्रहण स्‍थान"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "उपशीर्षक (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "व्यक्तिगत स्टोरेज"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "शीर्षक इस तरह दिखाई देंगे।"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "यह फाइल मौजूद नहीं है।"
\ No newline at end of file
diff --git a/vp-main/res/po/hr.po b/vp-main/res/po/hr.po
new file mode 100755 (executable)
index 0000000..728809a
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Svjetlina"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Glazba"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Glasovi"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "U redu"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Zadnja promjena"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Dijeli"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Nemoguće reproduc. videozapis"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Došlo je do greške s titlovima."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Datoteka je oštećena ili je SD-kartica uklonjena."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalji"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Naslov"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Video će biti obrisan."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Postavke"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nemoguće reproduc. videozapis"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Poravnanje"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Veličina slova"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Postavka ponavljanja"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titlovi (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centralno"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Velika"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Lijevo"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Srednja"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Desno"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mala"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Dalje"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Nazad"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM datoteke se ne mogu dijeliti."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Tijekom razgovora nemoguća video reprodukcija."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Poruka"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Prijenos datoteka"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Geo. duljina"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Geo. širina"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Uklj. pokret"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Pretraživanje na %sx brzine."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Vanjska memorija"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Glasnoća"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Nepodržan videoformat."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepodržana datoteka."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Nepodržan format zvuka."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Nemoguće koristiti premotavanje unaprijed i unatrag kada su uključeni uređaji u blizini."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Greška snimanja."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rotiraj"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Pritisnite tipku Natrag za ponovno vraćanje na prethodni zaslon."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Nedovoljno memorije. Obrišite neke datoteke"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Favoriti puni. Obrišite neke."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Žuta"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtualni 7.1 kanal"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titlovi (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Ponavljanje"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Bez ponavljanja"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Zelena"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Boja slova"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Zelenoplava"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Prilagođeno"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Tren. video (jednom)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Informacije o vezi"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Promijeni player"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Snimi"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Odaberite uređaj"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dostupni uređaji"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Zvučnik"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Bijela"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Crvena"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s sekundi"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Brzina reprodukcije"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sek"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Isključeno"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Nema naslova"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Moj uređaj"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Zadana slova"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Plava"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Crna"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Uključivanje"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Zatvoriti program?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Prekid"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stati nakon svega"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Ponovi trenutno"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Ponovi sve"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rezolucija"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Zvučnik ne podržava zvučne efekte %s."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Preokrenite telefon za utišavanje dolaznih poziva, obavijesti i alarma."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD kartica"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Datoteka podržava samo audio podatke. Sada reproducira zvuk."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Datoteka podržava samo video podatke. Sada reproducira video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privatna memorija"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Slušalice"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Zvučnik"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pauza"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Skidanje"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Odabir titlova (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Pregled titlova (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Spajanje neuspješno."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Ponavljanje"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepodržana datoteka."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normalna"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Glas"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmovi"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Zvučni zapis"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Učitava se..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Format datoteke"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Jezik"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Nema videa"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Veličina"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Aktualiziraj"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Učitavanje..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Titlovi (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Dodaj na početni zaslon"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ime"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Nemoguće reproducirati video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Nema dostupnih podnaslova"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Pokreni"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Zatvori"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Neispravna adresa."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Greška"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Memorija uređaja"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video Player"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Dijeli preko"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Došlo je do mrežne pogreške. Pokušajte ponovno."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Ovaj format datoteke podržava samo audiopodatke. Sada reproducira zvuk."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Format datoteke podržava samo video podatke. Sada reproducira videozapis."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centar"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Uključeno"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Postavke"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Video"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Dijeli"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detalji"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Učitava se - %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Nema"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Odabir audiouređaja"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Prekid"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Došlo je do nepoznate pogreške ili je datoteka možda oštećena."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Ova vrsta datoteke nije podržana."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "GOTOVO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Pun"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Zad. omjer"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ODUSTANI"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Mjesto spremanja"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Titlovi (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Osobna memorija"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Naslov će ovako izgledati."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Datoteka ne postoji."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Isklj. Repr. samo zvuk"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Uklj. Repr. samo zvuk"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Pritisnite početnu tipku ili tipku za uključivanje tijekom reprodukcije da biste reproducirali samo zvuk."
+
diff --git a/vp-main/res/po/hu.po b/vp-main/res/po/hu.po
new file mode 100755 (executable)
index 0000000..3e3130a
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Fényerő"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Zene"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Beszéd"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Hely"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Ismeretlen"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Legutóbbi módosítás"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Megosztás"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Nem játszható le a videó"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Hiba történt a feliratokkal."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "A fájl sérült, vagy eltávolították az SD-kártyát."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Részletek"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Cím"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Törölni fogja ezt a videót."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Beállítások"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nem lehet lejátszani a videót"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Igazítás"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Betűméret"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Ismétlési beállítás"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Feliratok (hangfelirat)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Középső"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Nagy"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Balra"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Közepes"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Jobbra"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Kicsi"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Tovább"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Előző"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM-fájlt nem lehet megosztani."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formátum"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Hívás közben nem lehet videót lejátszani."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Üzenet"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Fájlátvitel"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Hosszúság"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Szélesség"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Mozgás eng."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Tisztítás %sx sebességgel."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Külső tároló"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Hangerő"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Nem támogatott videoformátum."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "A fájltípus\nnem támogatott."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Nem támogatott hangformátum."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Ha engedélyezve van a Közeli eszközök funkció, nem használható a gyors előretekerés és a visszatekerés."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Nem sikerült felvételt készíteni."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Elforgatás"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "A Vissza gomb újbóli megnyomásával visszatérhet az előző képernyőre."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Kevés a memória. Töröljön néhány tételt"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "A könyvjelzők listája megtelt. Töröljön néhányat."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Sárga"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtuális 7.1 csatorna"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Feliratok (hangfelirat)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Ismétlés módja"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Nincs ismétlés"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Zöld"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Betűszín"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Ciánkék"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Egyedi"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Jelenlegi videó (1x)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Kapcsolatadatok"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Lejátszóváltás"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Rögzítés"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Eszköz kiválasztása"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Elérhető eszközök"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Hangszóró"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Fehér"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Piros"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s másodperc"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Lejátszás sebessége"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d mp"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Ki"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Nincs cím"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Saját eszköz"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Alapértelmezett betűtípus"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Kék"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Fekete"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivál"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Bezárja az alkalmazást?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Mégse"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Mégis leállítja"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Aktuális ismétlése"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Összes ismétlése"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Felbontás"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "A hangszóró nem támogatja a(z) %s hangeffektusokat."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "A bejövő hívások, üzenetek és egyebek jelzésének elnémításához fordítsa meg a telefont."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-kártya"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "A fájl csak hangadatokat támogat. Jelenleg hanglejátszás zajlik."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "A fájl csak videóadatokat támogat. Jelenleg videólejátszás zajlik."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privát tárhely"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Fejhallgató"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Hangszóró"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Szünet"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Letöltés"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Feliratok kiválasztása"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Feliratok megj. (hangfelirat)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Kapcsolódás sikertelen."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Ismétlési mód"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "A fájltípus\nnem támogatott."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normál"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voice"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmek"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Hangsáv"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Pufferelés..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Fájlformátum"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Nyelv"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Nincs videó"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Méret"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Kész"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Frissítés"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dátum"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Betöltés..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Feliratok (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Törlés"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Kezdőképernyőhöz adás"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Név"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Nem játszható le a videó."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Nem áll rendelkezésre felirat"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Lejátszás"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Bezár"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Érvénytelen URL"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Hiba"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Eszköz tárhelye"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video-lejátszó"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Megosztás"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Hálózati hiba történt. Próbálja újra."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "A fájlformátum csak hangadatokat támogat. Jelenleg hanglejátszás zajlik."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Ez a fájlformátum csak videóadatokat támogat. Jelenleg videólejátszás zajlik."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Középre zárt"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Be"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Beállítások"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videók"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Megoszt"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Részletek"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Töröl"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Pufferelés – %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Nincs"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d mp"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Hangeszköz kiválasztása"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Törlés"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Mégse"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Ismeretlen eredetű hiba történt, vagy sérült a fájl."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Ez a fájltípus nincs támogatva."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "KÉSZ"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Teljes"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Arány marad"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "MÉGSE"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Mentési hely"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Feliratok (hangfelirat)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Személyes tárhely"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Ilyenek lesznek a feliratok"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "A fájl nem létezik."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Csak hang lejátszása KI"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Csak hang lejátszása BE"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Ha csak a hangot szeretné lejátszani, nyomja meg a Kezdőlap vagy a Bekapcsolás gombot a lejátszás közben."
+
diff --git a/vp-main/res/po/hy.po b/vp-main/res/po/hy.po
new file mode 100755 (executable)
index 0000000..2940b0f
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Պայծառություն"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Երաժշտություն"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Ձայներ"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "Բ"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "ԳԲ"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "ԿԲ"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Գտնվելու վայր"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "ՄԲ"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Անհայտ"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Վերջին փոփոխումը"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Համօգտագործել"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Անհնար է նվագարկել տեսանյութը"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Ենթագրերի հետ կապված սխալ առաջացավ:"
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Ֆայլը վնասված է, կամ SD քարտը հեռացվել է:"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Մանրամասներ"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Վերնագիր"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Այս տեսանյութը կվերացվի:"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Պարամետրեր"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Անհնար է նվագարկել տեսանյութը"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Հավասարեցում"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Տառաչափ"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Կրկնման դրվածք"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Ենթավերնագրեր (ԹԵ)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Կենտրոն"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Մեծ"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Ձախ"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Միջին"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Աջ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Փոքր"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Հաջորդ"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Նախորդ"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM նիշքերն անհնար է համօգտագործել:"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Ձևաչափ"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Հնարավոր չէ վիդեո նվագարկել կանչի ընթացքում:"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Հղգրթյն"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Ֆայլի փոխանցում"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Էլփոստ"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Երկայնք"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Լայնք"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Ընձռլ շարժում"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Մաքրում %sx արագությամբ:"
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Արտաքին պահոց"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Բարձրություն"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Տեսանյութի չապահովված ձևաչափ:"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Ֆայլի չսատարվող տեսակ:"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Ձայնի չապահովված ձևաչափ:"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Անհնար է օգտագործել արագ առաջ փաթաթումը և հետ փաթաթումը, երբ մոտակա սարքերն ընձեռված են:"
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Անհնար է սևեռել:"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Պտտեցնել"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Նորից սեղմեք վերադարձի ստեղնը՝ նախորդ էկրանին վերադառնալու համար:"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Հիշողությունը չի բավարարում: Ջնջեք որոշ տարրեր"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Էջանիշերի ցանկը լիքն է: Ջնջեք մի քանիսը:"
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Դեղին"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Վիրտուալ 7.1 կապուղի"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Ենթավերնագրեր (ԹԵ)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Կրկնության ռեժիմ"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Ոչ մի կրկնում"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Մանուշակագույն"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Կանախ"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Տառատեսակի գույն"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Փիրուզ"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Ընտրովի"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Ընթ. տսնթ (մեկ անգ.)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Միացման տվյալներ"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Փոխել նվագարկիչը"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Սևեռել"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Ընտրել սարք"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Մատչելի սարքեր"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Բարձրախոս"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Սպիտակ"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Կարմիր"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s վայրկյան"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Նվագարկման արագություն"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d վրկ"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Անջատված է"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Վերնագիր չկա"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Իմ սարքը"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Կանխադրված տառատեսակ"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Կապույտ"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Սև"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Ակտիվացում"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Փակե՞լ ծրագիրը"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Չեղկլ"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Կանգ բոլորից հետո"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Կրկնել ընթացիկը"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Կրկնել բոլորը"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Լուծաչափ"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s հնչյունային էֆեկտները չեն ապահովվում բարձրախոսի կողմից:"
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Շրջեք հեռախոսը՝ մտից կանչերը, հաղորդագրության զգուշացումները և տագնապները խլացնելու համար:"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD քարտ"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Այս ֆայլը միայն ձայնատվյալներ է ապահովում: Այժմ ձայնանյութ է նվագարկվում:"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Այս ֆայլը միայն տեսատվյալներ է ապահովում: Այժմ տեսանյութ է նվագարկվում:"
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Անձնական պահոց"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Գլխ. հեռախոսներ"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Բարձրախոս"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Դադար"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Ներլցնել"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Ընտրել ենթագրեր (ԹԵ)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Նախադիտել ենթագրեր (ԹԵ)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Միացումը ձախողվեց:"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Կրկնման ռեժիմ"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Ֆայլի չսատարվող տեսակ:"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Սովորական"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Ձայն"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Ֆիլմեր"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Ձայնային շավիղ"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Բուֆերացում"
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Նիշքի ձեւաչափը"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Լեզու"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Տեսանյութ չկա"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Չափս"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Արված է"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Նորացնել"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Ամսաթիվ"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Բեռնվում է..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Ենթագրեր (Թքն)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Վերացնել"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Ավելացնել հիմնական էկրանին"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Անուն"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Անհնար է վերարտադրել վիդեոն:"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Ենթագրեր չկան"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Նվագել"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Փակել"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Անվավեր URL:"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Սխալ"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Սարքի պահոց"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Տեսանվագարկիչ"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Համօգտ. հետևյալով՝"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ցանցի սխալ է տեղի ունեցել: Նորից փորձեք:"
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Ֆայլի այս ձևաչափը միայն ձայնատվյալներ է ապահովում: Այժմ ձայնանյութ է նվագարկվում:"
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Այս նիշքի ձևաչափն աջակցում է միայն վիդեո տվյալներ: Այժմ տեսանյութ է նվագարկվում:"
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Կենտրոն"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Միացված է"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Պարամետրեր"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Տեսանյութեր"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Համօգտ."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Մանրամասներ"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Ջնջել"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Բուֆերացում - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Ոչ մեկը"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d վրկ"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Ընտրել ձայնասարք"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Վերացնել"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Չեղարկել"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Անհայտ սխալ է տեղի ունեցել, կամ հնարավոր է՝ ֆայլը վնասված է:"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Այս ֆայլի տիպն ապահովված չէ:"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ԱՐՎԱԾ"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Լրիվ"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Պահել հրբ."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ԴԱԴԱՐԵՑՆԵԼ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Պահման տեղը"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Ենթագրեր (թաքնված ենթագրեր)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Անհատական պահոց"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Մակագրերն այսպիսի տեսք կունենան"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Այս ֆայլը գոյություն չունի:"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Կասեցնել Նվ. միայն ձայն"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Ընձեռել Նվ. միայն ձայն"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Վերարտադրման ընթացքում սեղմեք Սկզբի ստեղնը կամ Սնուցման ստեղնը՝ միայն ձայնանյութ նվագարկելու համար:"
+
diff --git a/vp-main/res/po/is.po b/vp-main/res/po/is.po
new file mode 100755 (executable)
index 0000000..3b1a47d
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Birtustig"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Tónlist"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Raddir"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Staðsetning"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Óþekkt"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Í lagi"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Síðast breytt"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Deila"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Ekki hægt að spila myndskeið"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Villa kom upp í skjátextum."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Skráin er skemmd eða SD-kortið hefur verið fjarlægt."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Upplýsingar"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titill"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Myndskeiðinu verður eytt."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Stillingar"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Ekki hægt að spila myndskeið"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Jöfnun"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Leturstærð"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Endurtekningarstilling"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Skjátextar"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Miðja"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Stórt"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Vinstri"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Miðlungs"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Hægri"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Lítið"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Næsta"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Fyrri"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Ekki er hægt að deila DRM-höfundarréttarvörðum skrám."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Snið"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Ekki er hægt að spila vídeó á meðan símtal stendur yfir."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Skilaboð"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Skráarflutningur"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Netfang"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Lengdargráða"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Breiddargráða"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Hreyfing á"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Flett á hraðanum %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Ytri geymsla"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Hljóðstyrkur"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Óstutt myndsnið."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Óstutt skrársnið."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Óstutt hljóðsnið."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Ekki er hægt að spóla áfram eða til baka þegar kveikt er á nálægum tækjum."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Mistókst að taka mynd."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Snúa"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Ýttu aftur á endatakkann til að snúa aftur að síðasta skjá."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Ekki er nægt minni. Eyðið nokkrum atriðum."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Bókamerkjalisti er fullur.Eyða þarf nokkrum bókamerkjum."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Gulur"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Sýndar 7.1 ch"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Skjátextar"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Endurtekning"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Ekki endurtekið"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Blárauður"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Grænn"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Leturlitur"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Sægrænn"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Sérsniðið"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Þetta myndskeið (1)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Uppl. um tengingu"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Skipta um spilara"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Taka mynd"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Velja tæki"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Tiltæk tæki"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Hátalari"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Hvítt"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rósmarín"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rauður"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s sekúndur"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Spilunarhraði"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sek."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Slökkt"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Titil vantar"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Tækið mitt"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Sjálfgefin leturgerð"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Djassað"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Sætabrauð"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blátt"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Svart"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Virkjun"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Viltu loka forritinu?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Hætta við"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stöðva eftir allt"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Endurtaka þetta"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Endurtaka öll"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Upplausn"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Hátalarinn styður ekki hljóðbrellur %s."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Snúðu símanum við til að slökkva á hringingum, skilaboðatónum og áminningum."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-kort"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Þessi skrá styður aðeins hljóðgögn. Hljóð er nú í spilun."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Þessi skrá styður aðeins myndgögn. Myndskeið er nú í spilun."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Einkageymsla"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Höfuðtól"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Hátalari"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Hlé"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Sækja"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Velja skjátexta"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Forskoðun skjátexta"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Tenging brást."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Endurtekning"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Óstutt skrársnið."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Venjulegt"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Talhólf"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Kvikmyndir"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Hljóðrás"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Hleð inn..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Skráarsnið"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Tungumál"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Engin myndskeið"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Stærð"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Lokið"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Uppfæra"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dagsetning"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Hleð..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Skjátextar"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Eyða"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Setja á heimaskjá"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Heiti"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Mistókst að spila myndskeið."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Engir skjátextar í boði"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Spila"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Loka"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Ógild slóð."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Villa"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Geymsla tækis"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Myndspilari"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Deila um"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Netvilla kom upp. Reyndu aftur."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Þetta skráarsnið styður aðeins hljóðgögn. Hljóð er nú í spilun."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Þetta skráarsnið styður aðeins myndgögn. Myndskeið er nú í spilun."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Miðja"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Kveikt"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Stillingar"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Myndskeið"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Samnýta"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Upplýsingar"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Eyða"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Hleð í biðminni – %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Engin"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sek."
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Velja hljóðtæki"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Eyða"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Hætta v."
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Óþekkt villa kom upp eða skráin kann að vera skemmd."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Þessi skráargerð er ekki studd."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "LOKIÐ"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Fylla"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Sama hlf."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "HÆTTA VIÐ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Geymslustaður"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Skjátextar"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Einkageymsla"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Skjátextar munu líta svona út"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Skráin er ekki til."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "„Spila aðeins hljóð“ af"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "„Spila aðeins hljóð“ á"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Ýttu á heimatakkann eða aflrofann við spilun til að spila aðeins hljóð."
+
diff --git a/vp-main/res/po/it_IT.po b/vp-main/res/po/it_IT.po
new file mode 100755 (executable)
index 0000000..f39e86d
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Luminosità"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musica"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voci"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Posizione"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Sconosciuto"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Ultima modifica"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Condividi"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Impossibile riprodurre video"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Si è verificato un errore con i sottotitoli."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Il file è danneggiato o la scheda SD è stata rimossa."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Dettagli"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titolo"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Il video sarà eliminato."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Impostaz."
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Impossibile riprodurre video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Allineamento"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Dimensione carattere"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Ripeti impostazione"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Sottotitoli (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centrale"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Sinistra"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medio"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Destra"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Piccolo"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Avanti"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Precedente"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Impossibile condividere i file DRM."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formato"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Impossibile riprodurre durante chiamata."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mess."
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Trasferimento file"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitudine"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitudine"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Attiva movim."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Velocità di avanzamento %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Memoria esterna"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volume"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Formato video non supportato."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo file non supportato."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Formato audio non supportato."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Impossibile utilizzare le funzioni di avanzamento rapido e riavvolgimento se i dispositivi vicini sono attivati."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Impossibile acquisire."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Ruota"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Premete nuovamente il tasto Indietro per tornare alla schermata precedente."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Memoria insufficiente. Eliminare alcuni elementi."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Elenco preferiti pieno. Eliminare alcuni preferiti."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Giallo"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Canale virtuale 7.1"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Sottotitoli (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Modalità ripetizione"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Nessuna ripetizione"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Verde"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Colore carattere"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Ciano"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Personalizzato"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Video corr. (1 vol.)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Info connessione"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Cambia lettore"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Cattura"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Seleziona dispositivo"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dispositivi disponibili"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Altoparl."
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Bianco"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rosso"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s secondi"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Velocità di riproduzione"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sec"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Non attivo"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Nessun titolo"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Dispositivo personale"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Carattere predefinito"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blu"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Nero"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Attivazione"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Chiudere applicazione?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Ann."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Interrom. dopo tutto"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Ripeti corrente"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Ripeti tutto"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Risoluzione"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Effetti audio %s non supportati dall'altoparlante."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Capovolgi il dispositivo per disattivare il suono durante una chiamata in arrivo, gli avvisi messaggi e le sveglie."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Scheda SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Questo file è in grado di supportare soltanto i dati audio. Audio attualmente in riproduzione."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Questo file è in grado di supportare soltanto i dati video. Video attualmente in riproduzione."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Archivio privato"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Cuffie"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Altoparlante"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pausa"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Scarica"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Selez. sottotitoli (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Sottotitoli anteprima (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Errore connessione."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Modo ripetizione"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo file non supportato."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normale"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voce"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Film"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Brano audio"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Buffer..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Formato file"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Lingua"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Nessun video"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Dimensioni"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Fatto"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Aggiorna"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Caricamento..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Sottotitoli (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Elimina"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Aggiungi a schermata Home"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nome"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Impossibile riprodurre video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Nessun sottotitolo disponibile"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Riproduci"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Chiudi"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL non valida."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Errore"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Memoria dispositivo"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Lettore video"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Condividi con"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Si è verificato un errore di rete. Riprovate."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Questo formato file è in grado di supportare soltanto i dati audio. Audio attualmente in riproduzione."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Il formato file supporta solo i dati video. Video in riproduzione."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centro"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Attivo"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Impostaz."
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Video"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Condividi"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Dettagli"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Elimina"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Buffering: %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Nessuno"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sec"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Selezionate un dispositivo audio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Elimina"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Annulla"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Si è verificato un errore sconosciuto o il file è danneggiato."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Questo tipo di file non è supportato."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "FATTO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Intero"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Mant. form."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULLA"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Posizione di memoria"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Sottotitoli (codificati)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Memoria personale"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Aspetto dei sottotitoli"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "File inesistente."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Disatt. Ripr. solo audio"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Attiva Ripr. solo audio"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Premete il tasto Home o il tasto di accensione durante la riproduzione per riprodurre soltanto l'audio."
+
diff --git a/vp-main/res/po/ja_JP.po b/vp-main/res/po/ja_JP.po
new file mode 100755 (executable)
index 0000000..9141601
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "明るさ"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "音楽"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "音声"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "場所"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "不明"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "最終更新日"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "共有"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "動画の再生不可"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "字幕にエラーが発生しました。"
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "ファイルが破損しているか、外部SDカードが取り外されています。"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "詳細"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "タイトル"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "この動画を削除します。"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "動画再生不可"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "配置"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "文字サイズ"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "リピート設定"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕(CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "中央"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "大"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "左"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "中"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "右"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "小"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "次へ"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "前へ"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRMファイルは共有できません。"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "ファイル形式"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "通話中はビデオ再生できません"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "メッセージ"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "ファイル転送"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Eメール"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "経度"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "緯度"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "モーションを使用"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "%sxの速度でスクラブ再生中です。"
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "外部ストレージ"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "音量"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "未対応ビデオ形式"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "未対応のファイルです。"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "サポートされていないオーディオ形式"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "周辺のデバイスが有効な場合、早送りや早戻しは使用できません。"
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "キャプチャできません。"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "回転"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "前画面に戻るには、戻るキーをもう一度押してください。"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "メモリが不足しています。不要なアイテムを削除してください。"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "ブックマークリストがいっぱいです。いくつか削除してください。"
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "黄"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "バーチャル7.1ch"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕(CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "再生パターン"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "1回再生"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "マゼンダ"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "緑"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "文字色"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "シアン"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "カスタム"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "現在の動画(1回)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "接続情報"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "プレーヤーを変更"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "キャプチャ"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "デバイス選択"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "接続可能デバイス"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "スピーカー"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "白"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UD丸ゴシック"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UD明朝"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "ローズマリー"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "レッド"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s秒"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "ポップ"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "再生スピード"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d秒"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "OFF"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "件名なし"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "マイデバイス"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "標準フォント"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "クールジャズ"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "チョコクッキー"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "青"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "黒"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "アクティベーション"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "アプリケーションを終了しますか?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "キャンセル"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "終了後に停止"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "現在の動画をリピート"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "全てリピート"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "解像度"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%sサウンドエフェクトは、スピーカーに対応していません。"
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "端末を伏せると、着信音やメッセージの通知音、アラーム音を消音します。"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "外部SDカード"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "このファイルはオーディオデータのみ再生することができます。音声のみ再生します。"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "このファイルは動画データのみ再生することができます。動画のみ再生します。"
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "プライベートストレージ"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "ヘッドホン"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "スピーカー"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "一時停止"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "ダウンロード"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "字幕(CC)を選択"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "字幕(CC)をプレビュー"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "接続に失敗しました。"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "リピートモード"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "未対応のファイルです。"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "標準"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "音声"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "動画"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "オーディオトラック"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "バッファ中..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "ファイル形式"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "言語"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "動画がありません。"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "サイズ"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "完了"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "更新"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "日付"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "ロード中..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "字幕(CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "削除"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "ホーム画面に追加"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "名前"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "動画を再生できません。"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "利用可能な字幕がありません。"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "再生"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "閉じる"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "無効なURLです。"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "エラー"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "システムメモリ(本体)"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "動画"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "共有"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "ネットワークエラーが発生しました。再度お試しください。"
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "このファイル形式はオーディオデータのみ再生することができます。音声のみ再生します。"
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "このファイルフォーマットは、動画データのみ対応してします。現在、動画を再生しています。"
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "中央"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "ON"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "動画"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "共有"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "詳細"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "削除"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "バッファ中...- %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "点灯状態を保つ"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d秒"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "オーディオデバイスを選択"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "削除"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "キャンセル"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "不明なエラーが発生しているか、ファイルが破損しています。"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "このファイルタイプには対応していません。"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "完了"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "全画面"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "縦横比維持"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "キャンセル"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "保存場所"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "字幕(CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "パーソナルストレージ"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "字幕はこのように表示されます。"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "このファイルは存在しません。"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "オーディオのみの再生を解除"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "オーディオのみで再生を継続"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "再生中にホームキーまたは電源キーを押して、オーディオのみを再生します。"
+
diff --git a/vp-main/res/po/ka.po b/vp-main/res/po/ka.po
new file mode 100755 (executable)
index 0000000..854a86e
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "სიკაშკაშე"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "მუსიკა"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "ხმები"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "ადგილმდებ."
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "უცნობი"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "კი"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "ბოლოს შესწორდა"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "გაზიარება"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "ვიდეოს ვერ გაუშვებთ"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "მოხდა სუბტიტრების შეცდომა."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "ფაილი დაზიანებულია, ან SD ბარათი ამოღებულია."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "დეტალები"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "სათაური"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "ეს ვიდეო წაიშლება."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "პარამეტრები"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "ვიდეოს დაკვრა შეუძლებელია"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "განაწილება"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "შრიფტის ზომა"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "გამეორების პარამეტრი"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "ტიტრები (სუბტიტრები)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "ცენტრი"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "დიდი"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "მარცხნივ"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "საშუალო"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "მარჯვნივ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "მცირე"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "შემდეგი"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "წინა"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM ფაილებს ვერ გააზიარებთ."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "დაფორმატება"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "ვიდეოს ვერ გაუშვებთ ზარის დროს."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "წერილი"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "ფაილის გადაგზავნა"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "ელ.ფოსტა"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "გრძედი"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "განედი"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "მოძრაობის ჩრ."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "გასმა ხდება %sx სიჩქარით."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "გარე მეხსიერება"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "ხმის სიმაღლე"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "ვიდეო ფორმატი არაა გათვალისწინებული."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "ფაილის ტიპი გაუთვალისწინებელია."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "აუდიო ფორმატი არაა გათვალისწინებული."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "წინ და უკან გადახვევის ფუნქციების გამოყენება შეუძლებელია, როდესაც აქტიურია ახლომდებარე მოწყობილობები."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "გადაღება შეუძლებელია."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "ბრუნვა"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "წინა ეკრანზე დასაბრუნებლად, ისევ დააჭირეთ უკანსვლის ღილაკს."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "მეხსიერება საკმარისი არაა. წაშალეთ ზოგიერთი ელემენტი"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "სანიშნეები გაივსო. წაშალეთ ზოგიერთი სანიშნე."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "ყვითელი"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "ვირტუალური 7.1 არხი"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "ტიტრები (სუბტიტრები)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "გამეორების რეჟიმი"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "გამეორების გარეშე"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "მეწამული"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "მწვანე"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "შრიფტის ფერი"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "ცისფერი"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "პერსონალური"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "ეს ვიდეო (ერთხელ)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "კავშირის ინფორმაცია"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "პლეერის შეცვლა"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "გადაღება"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "აირჩიეთ მოწყობილობა"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "ხელმისაწვდომები"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "დინამიკი"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "თეთრი"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "წითელი"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s წამი"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "დაკვრის სიჩქარე"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d წამი"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "გამორთ."
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "თემა არ არის"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "ჩემი მოწყობილობა"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "საწყისი ფონტი"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "ცისფერი"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "შავი"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "გააქტიურება"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "დახურავთ პროგრამას?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "გაუქმ."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "გაჩერდეს ბოლოში"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "მიმდინარეს გამეორება"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "გაიმეორე ყველა"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "გარჩევადობა"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s ხმოვანი ეფექტი არ მუშაობს მიკროფონით."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "გადააბრუნეთ ტელეფონი, რომ გამოირთოს შემომავალი ზარების, წერილის შეტყობინებებისა და სიგნალების ხმა."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SDბარათი"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "ამ ფაილს აქვს მხოლოდ აუდიო მონაცემთა მხარდაჭერა. ახლა ჩართულია აუდიო."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "ამ ფაილს აქვს მხოლოდ ვიდეო მონაცემთა მხარდაჭერა. ახლა ჩართულია ვიდეო."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "პირადი საცავი"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "გარნიტურები"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "დინამიკი"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "პაუზა"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "ჩამოტვირთვა"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "აირჩიეთ სუბტიტრები"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "იხილეთ ტიტრები (სუბტიტრები)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "ვერ დაუკავშირდა."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "გამეორების რეჟიმი"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "ფაილის ტიპი გაუთვალისწინებელია."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "ნორმალური"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "ხმა"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "კინოები"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "აუდიო ბილიკი"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "ბუფერირება..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "ფაილის ფორმატი"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "ენა"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "ვიდეო არ არის"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "ზომა"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "შესრულდა"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "განახლება"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "თარიღი"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "იტვირთება…"
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "ტიტრები(სუბტიტრები)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "წაშლა"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "საწყის ეკრანზე დამატება"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "სახელი"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "ვიდეოს დაკვრა შეუძლებელია."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "სუბტიტრები არ არის"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "დაკვრა"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "დახურვა"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL არასწორია."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "შეცდომა"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "აპარატის მეხსიერება"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "ვიდეო პლეერი"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "გაზიარება მეთოდით"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "მოხდა ქსელის შეცდომა. ისევ სცადეთ."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "ფაილის ამ ფორმატს აქვს მხოლოდ აუდიო მონაცემთა მხარდაჭერა. ახლა ჩართულია აუდიო."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "ფაილის ამ ფორმატს აქვს მხოლოდ ვიდეო მონაცემთა მხარდაჭერა. ახლა ჩართულია ვიდეო."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "ცენტრი"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "ჩართვა"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "პარამეტრები"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "ვიდეოები"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "გაზიარ."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "დეტალები"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "წაშლა"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "ბუფერირება - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "არცერთი"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d წმ"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "აირჩიეთ აუდიო მოწყობილობა"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "წაშლა"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "გაუქმება"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "მოხდა უცნობი შეცდომა, ან, შესაძლოა, დაზიანდა ფაილი."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "ფაილის ამ ტიპს არა აქვს მხარდაჭერა."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "მზადაა"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "შევსება"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "იგივე ზომა"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "გაუქმება"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "შენახვის ადგილი"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "ტიტრები (სუბტიტრები)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "პერსონალური მეხსიერება"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "წარწერები გამოჩნდება ასე"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "ფაილი არ არსებობს."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "მხ. აუდიოს დაკვრის გმრ."
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "მხ.აუდიოს დაკვრის ჩრთ."
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "მხოლოდ აუდიოს დასაკრავად, დაკვრის დროს შეეხეთ „საწყის გვერდზე გადასვლის ღილაკს“ ან „ჩართვა-გამორთვის ღილაკს“."
+
diff --git a/vp-main/res/po/kk.po b/vp-main/res/po/kk.po
new file mode 100755 (executable)
index 0000000..b7da8aa
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Ашықтығы"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Музыка"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Дауыстар"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "Б"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Гбайт"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KБ"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Орналасу орны"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "МБ"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Белгісіз"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Соңғы өзгертілген"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Бөлісу"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Бейнені ойнату мүмкін емес"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Субтитрлерде қате пайда болды."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Файл бүлінген немесе SD картасы алып тасталған."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Өзгешеліктері"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Тақырыбы"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Бұл бейне жойылады."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Қондырғылар"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Бейнені ойнату мүмкін емес"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Туралау"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Қаріп өлшемі"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Қайталау параметрі"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитрлер (ЖТ)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Орталық"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Үлкен"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Сол жақ"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Орташа"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Оң жақ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Кіші"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Сосын"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Алдыңғы"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM файлдарын бөлісу мүмкін емес."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Пішімдеу"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Қоңырау кезінде бейне ойнатылмайды."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Хабар"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Файл жіберу"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Элек. пошта"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Ұзақтық"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Кеңділік"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Қозғалыс қосу"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "%sx жылдамдығында тазалау."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Сыртқы жад"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Дауыстың күші"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Қолданылмайтын бейне пішім."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Қолдаусыз файл түрі."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Қолданылмайтын аудио пішім."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Жақын құрылғылар қосулы болғанда жылдам және кері айналдыруды пайдалану мүмкін емес."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Түсіру мүмкін емес."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Бұру"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Алдыңғы экранға оралу үшін “Артқа” түймесін басыңыз."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Жад жетыспейт.Көп арналы жою."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Кітапша тізімі толған / кейбір қосымшаларды жойыңыз."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Сары"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Виртуалды 7.1 арна"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитрлер (ЖТ)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Қайталау режимі"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Қайталамау"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Магента"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Жасыл"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Шрифт түсі"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Көгілдір"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Таңдамалы"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Ағым. бейне (1 рет)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Қосылым ақпараты"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Ойнатқышты өзгерту"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Түсіру"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Құрылғыны таңдау"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Қол жетімді құр-лар"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Динамик"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Ақ"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Қызыл"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s секунд"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Ойнату жылдамдығы"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d сек"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Өшірілген"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Тақырып жоқ"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Құрылғым"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Әдепкі қаріп"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Көк"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Қара"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Активтеу"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Бағдарламаны жабу керек пе?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Тоқт"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Тоқтату"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Ағымдағыны қайталау"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Барлығын қайталау"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Шешім"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s дыбыстық әсерлері динамик арқылы қолданылмайды."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Келген қоңыраулардың, хабар сигналдарының және дабылдардың дыбысын өшіру үшін телефонды аударыңыз."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD карта"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Бұл файл арқылы тек аудио деректер берілген. Қазір ойнатылып жатқап аудио."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Бұл файл арқылы тек бейне деректер берілген. Қазір ойнатылып жатқап бейне."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Жеке сақтау орны"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Құлаққаптар"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Дауыс зорайтқыш"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Үзіліс"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Жүктеу"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Субтитрлерді таңдау (ЖТ)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Алд.ала қарап шығу субт-і (ЖТ)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Қосылу үзіліп кетті"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Қайталау режимі"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Қолдаусыз файл түрі."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Қалыпты"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Дауыс"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Фильм"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Аудио трек"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Буферлеуде..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Файл пішімі"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Тіл"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Бейнелер жоқ"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Өлшемі"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Дайын"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Жаңарту"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Күні"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Жүктелуде..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Субтитрлер (ЖТ)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Жою"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Бастапқы экранға қосу"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Аты"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Бейне көруге болмайды."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Субтитрлер қолжетімді емес"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Ойнату"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Жабу"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Жарамсыз URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Қате"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Құрылғы қоймасы"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Бейне ойнатқыш"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Бөлісу құралы"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Желі қатесі пайда болды. Әрекетті қайталаңыз."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Осы файл пішімі арқылы тек аудио деректерге қолдау көрсетіледі. Қазір ойнатылып жатқан аудио."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Осы файл пішімі арқылы тек бейне деректеріне қолдау көрсетіледі. Қазір ойнатылып жатқап бейне."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Орталық"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Қосылған"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Қондырғылар"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Бейнежазбалар"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Бөлісу"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Өзгешеліктері"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Жою"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "%d% буферлеу"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Жоқ"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d сек"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Аудио құрылғыны таңдаңыз"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Жою"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Тоқтату"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Белгісіз қате пайда болды немесе файл бүлінген болуы мүмкін."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Файл түріне қолдау көрсетілмейді."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ДАЙЫН"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Толық"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Арақ. ұс-у"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "БАС ТАРТУ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Сақтау орны"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Субтитрлер (ЖТ)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Жеке қойма"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Тақырыптар осы сияқты көрінеді"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Файл жоқ."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Тек аудио ойнат. өшіру"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Тек аудио ойнат. қосу"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Тек аудионы ғана ойнату үшін, ойнату кезінде “Бастапқы” пернесін немесе “Қуат” пернесін басыңыз."
+
diff --git a/vp-main/res/po/ko_KR.po b/vp-main/res/po/ko_KR.po
new file mode 100755 (executable)
index 0000000..6963323
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "밝기"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "음악"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "목소리"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "위치"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "알 수 없음"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "확인"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "마지막 수정"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "공유"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "동영상을 재생할 수 없음"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "자막에 오류가 발생하였습니다."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "파일이 손상되었거나 SD 카드를 제거하였습니다."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "상세정보"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "제목"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "이 동영상을 삭제합니다."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "설정"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "동영상을 재생할 수 없음"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "정렬"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "글자 크기"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "반복 설정"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "자막(CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "가운데"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "크게"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "왼쪽"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "중간"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "오른쪽"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "작게"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "다음"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "이전"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM 파일은 공유할 수 없습니다."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "형식"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "통화 중에는 동영상을 재생할 수 없습니다."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "메시지"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "파일 전송"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "이메일"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "경도"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "위도"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "모션 실행"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "%sx 속도로 탐색 중입니다."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "외장 저장공간"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "음량"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "지원되지 않는 동영상 포맷입니다."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "지원되지 않는 파일 형식입니다."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "지원되지 않는 오디오 포맷입니다."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "주변 디바이스를 실행하는 중에는 빨리감기 및 되감기 기능을 사용할 수 없습니다."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "캡처할 수 없습니다."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "회전"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "이전 화면으로 돌아가려면 뒤로가기 버튼을 다시 누르세요."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "저장공간이 부족합니다. 일부 항목을 삭제하세요."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "북마크 목록이 가득 찼습니다. 북마크 일부를 삭제하세요."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "노란색"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "가상 7.1채널"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "자막(CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "반복 모드"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "반복 안 함"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "자홍색"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "녹색"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "글자 색상"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "청록색"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "직접 설정"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "현재 동영상(한 번)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "연결정보"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "플레이어 변경"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "캡처"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "디바이스 선택"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "사용 가능한 디바이스"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "스피커"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "흰색"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UD마루고딕"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UD명조"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "로즈마리"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "빨간색"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s초"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "팝"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "재생\n속도"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d초"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "해제"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "제목이 없습니다"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "내 디바이스"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "기본 서체"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "쿨재즈"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "초코쿠키"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "파란색"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "검은색"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "실행"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "애플리케이션을 종료할까요?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "취소"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "모두 재생 후 중지"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "현재 동영상 반복"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "모두 반복"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "해상도"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "스피커에서 %s 음향 효과가 지원되지 않습니다."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "디바이스를 뒤집어 벨소리, 메시지 알림음, 알람을 끕니다."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD 카드"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "이 파일은 오디오 데이터만 지원합니다. 오디오를 재생합니다."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "이 파일은 동영상 데이터만 지원합니다. 동영상을 재생합니다."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "개인 저장공간"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "헤드폰"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "스피커"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "일시정지"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "다운로드"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "자막(CC) 선택"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "자막(CC) 미리보기"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "연결하지 못하였습니다."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "반복 모드"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "지원되지 않는 파일 형식입니다."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "일반"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "음성"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "영화"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "오디오 트랙"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "버퍼링 중..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "파일 형식"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "언어"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "동영상 없음"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "크기"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "완료"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "새로고침"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "날짜"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "불러오는 중..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "자막(CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "삭제"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "홈 화면에 추가"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "이름"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "동영상을 재생할 수 없습니다."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "표시 가능한 자막이 없습니다"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "재생"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "닫기"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL이 바르지 않습니다."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "오류"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "디바이스 저장공간"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "비디오 플레이어"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "공유"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "네트워크 오류가 발생하였습니다. 다시 시도하세요."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "이 파일은 오디오 데이터만 지원합니다. 오디오를 재생합니다."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "이 파일은 동영상 데이터만 지원합니다. 동영상을 재생합니다."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "가운데"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "사용"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "설정"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "비디오"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "공유"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "상세정보"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "삭제"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "버퍼링- %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "설정 안 함"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d초"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "오디오 디바이스 선택"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "삭제"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "취소"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "알 수 없는 오류가 발생하였거나 손상된 파일입니다."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "지원되지 않는 파일 형식입니다."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "완료"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "전체"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "비율 유지"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "취소"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "저장 위치"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "자막(CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "퍼스널 저장공간"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "자막은 지금 보이는 것처럼 표시됩니다."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "파일이 존재하지 않습니다."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "[오디오만 재생] 해제"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "[오디오만 재생] 실행"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "동영상 재생 중에 홈 버튼 또는 전원 버튼을 눌러 오디오만 재생됩니다."
+
diff --git a/vp-main/res/po/lt.po b/vp-main/res/po/lt.po
new file mode 100755 (executable)
index 0000000..2af8252
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Ryškumas"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Muzika"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Balsai"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Vieta"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Nežinomas"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Gerai"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Paskutinį kartą keista"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Dalytis"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Neįmanoma leisti vaizdo įrašo"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Įvyko subtitrų klaida."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Sugadintas failas arba išimta SD kortelė."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Išsami informacija"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Pavadinimas"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Šis vaizdo įrašas bus ištrintas."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Nustatymai"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Negalima paleisti vaizdo įrašo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Lygiavimas"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Šrifto dydis"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Kartoti nustatymą"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitrai (pasirenkami)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centruoti"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Didelis"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Kairė"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Vidutinis"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Dešinė"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mažas"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Kitas"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Ankst."
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM failų negalima bendrinti."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formatas"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Pokalbio metu negalima paleisti vaizdo įrašo."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Žinutė"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Failų perkėlimas"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "El. paštas"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Ilguma"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Platuma"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Įjungt judes."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Prasukti %sx greičiu."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Išorinė laikmena"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Garsumas"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Nepalaikomas vaizdo įrašo formatas."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepalaikomas failo tipas."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Nepalaikomas garso formatas."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Neįmanoma naudoti greito persukimo pirmyn ir atsukimo atgal funkcijos, kai išjungti netoliese esantys įrenginiai."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Neįmanoma užfiksuoti."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Sukti"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Norėdami grįžti į ankstesnį ekraną, spauskite mygtuką „Atgal“."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Nepakanka atminties. Ištrinkite kai kuriuos elementus"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Pilnas žymeklių sąrašas.\nIštrinti žymeklius."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Geltona"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtualus 7.1 kan."
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitrai (pasirenkami)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "„SoundAlive“"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Kartojimo režimas"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Jokio pakartojimo"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Rausva"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Žalia"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Šrifto spalva"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Žydra"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Pasirinktinis"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Esam.vaiz.įr.(kartą)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Ryšio informacija"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Keisti leistuvą"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Užfiksuoti"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "„AllShare“"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Pasirinkite įrenginį"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Galimi įrenginiai"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Garsiak."
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Balta"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Raudona"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s sek."
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Leidimo greitis"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sek."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Išjungta"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Nėra pavadinimo"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Mano įrenginys"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Numatytasis šriftas"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Mėlyna"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Juoda"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktyvinimas"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Uždaryti programą?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Atš."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stabdyti po visų"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Kartoti dabartinį"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Kartoti viską"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Raiška"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Garsiakalbis nepalaiko %s garso efektų."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Nutildykite gaunamus skambučius, naujos žinutės signalą ir žadintuvą apversdami telefoną."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD kortelė"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Šis failas palaiko tik garso duomenis. Dabar atkuriamas garsas."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Šis failas palaiko tik vaizdo duomenis. Dabar atkuriamas vaizdas."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privati saugykla"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Ausinės"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Garsiakalbis"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pauzė"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Atsisiųsti"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Rinktis subt. (užd.antr.)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Žr. subtitrus (užd. antraštė)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Prisijungti nepavyko."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Kartojimo režimas"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepalaikomas failo tipas."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Įprastas"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Balsas"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmai"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Garso takelis"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Derinama..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Failo formatas"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Kalba"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Nėra vaizdo įrašų"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Dydis"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Atlikta"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Atnaujinti"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Įkeliama..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtit. (užd.antr.)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Trinti"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Pridėt prie pradžios ekrano"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Vardas"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "„YouTube“"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Paleisti vaizd. įr. nepavyko."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Subtitrų nėra"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Paleisti"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Uždaryti"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Netinkamas URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Klaida"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Įrenginio atmintis"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Vaizdo leistuvas"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Bendrinti per"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Įvyko tinklo klaida. Bandykite dar kartą."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Šis failo formatas palaiko tik garso įrašo duomenis. Dabar atkuriamas garsas."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Šis failo formatas palaiko tik vaizdo duomenis. Dabar atkuriamas vaizdas."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centre"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Įjungta"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Nustatymai"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Vaizdo įrašas"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Bendr."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Išsami informacija"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Trinti"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Derinama – %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Nėra"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sek."
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Rinktis garso įrenginį"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Trinti"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Atšaukti"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Įvyko nežinoma klaida arba failas gali būti sugadintas."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Šis failo tipas nepalaikomas."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ATLIKTA"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Visas"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Išl.formt."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ATŠAUKTI"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Saugojimo vieta"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtitrai (uždaryta antraštė)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Asmeninė saugykla"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Antraštės atrodys taip"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Tokio failo nėra."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Išj. Leisti tik garsą"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Įj. Leisti tik garsą"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Atkūrimo metu paspauskite pradžios arba maitinimo mygtuką, kad paleistumėte tik garsą."
+
diff --git a/vp-main/res/po/lv.po b/vp-main/res/po/lv.po
new file mode 100755 (executable)
index 0000000..3f82b81
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Spilgtums"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Mūzika"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Balsis"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Atrašanās vieta"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Nezināms"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Labi"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Pēdējo reizi mainīts"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Kopīgot"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Nevar demonstrēt videoklipu"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Radās subtitru kļūda."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Fails ir bojāts vai arī ir izņemta SD karte."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Dati"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Nosaukums"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Šis videoklips tiks izdzēsts."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Iestatījumi"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nevar demonstrēt video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Līdzinājums"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Fonta lielums"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Atkārtošanas iestatījums"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitri (slēptie titri)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centrā"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Liels"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Pa kreisi"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Vidējs"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Pa labi"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mazs"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Nāk."
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Iepriekš."
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM failus nevar kopīgot."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formāts"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Sarunas laikā nevar demonstrēt video."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Ziņa"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Failu pārsūtīšana"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-pasts"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Garums"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Platums"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Akt. kustību"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Pārtīšanas ātrums: %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Ārējā krātuve"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Skaļums"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Neatbalstīts videoklipa formāts."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Neatbalstīts faila veids."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Neatbalstīts audio formāts."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Nevar izmantot tīšanu uz priekšu un atpakaļ, ja ir aktivizētas tuvumā esošās ierīces."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Nevar uzņemt."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Pagriezt"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Nospiediet vēlreiz taustiņu Atpakaļ, lai atgrieztos iepriekšējā ekrānā."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Nepietiek atmiņas. Izdzēsiet dažus vienumus"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Grāmatzīmju saraksts ir pilns.\nIzdzēsiet daļu grāmatzīmju."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Dzeltens"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtuālais 7.1 kan."
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitri (slēptie titri)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Atkārtošanas režīms"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Neatkārtot"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Fuksīna krāsā"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Zaļš"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Fonta krāsa"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Zilganzaļš"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Pielāgota"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Pašr. video (vienr.)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Savienojuma dati"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Mainīt spēlētāju"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Tvert"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Izvēlieties ierīci"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Pieejamās ierīces"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Skaļrunis"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Balts"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Sarkani"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s sekundes"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Demonstrēšanas ātrums"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sek."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Izslēgts"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Nav nosaukuma"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Mana ierīce"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Noklusējuma fonts"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Zils"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Melni"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivizēšana"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Vai aizvērt programmu?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Atcelt"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Pārtraukt"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Atkārtot pašreizējo"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Atkārtot visu"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Izšķirtspēja"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Skaļrunis nenodrošina %s skaņas efektus."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Apvērsiet tālruni, lai izslēgtu ienākošos zvanus, ziņu signālu un modinātāja skaņu."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD karte"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Šis fails atbalsta tikai audio datus. Tagad atskaņo audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Šis fails atbalsta tikai video datus. Tagad demonstrē video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privātā krātuve"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Austiņas"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Skaļrunis"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pauze"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Lejupielādēt"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Izvēlēties subtitrus (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Priekšskatīt subtitrus (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Savienojums neizdevās."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Atkārtošanas režīms"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Neatbalstīts faila veids."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Parasta"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Balss"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmas"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Audio ieraksts"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Buferizācija"
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Faila formāts"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Valoda"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Nav videoklipu"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Lielums"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Gatavs"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Atsvaidzināt"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datums"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Ielādē..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtitri (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Dzēst"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Pievienot sākuma ekrānam"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Vārds"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Nevar demonstrēt video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Subtitri nav pieejami"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Atskaņot"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Aizvērt"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Nederīgs URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Kļūda"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Ierīces krātuve"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video Atskaņotājs"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Kopīgot, izmantojot"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Radās tīkla kļūda. Mēģiniet vēlreiz."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Šis faila formāts atbalsta tikai audio datus. Tagad atskaņo audio."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Šis faila formāts atbalsta tikai video datus. Šobrīd tiek demonstrēts videoklips."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centrā"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Ieslēgts"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Iestatījumi"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videoklipi"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Kopl."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Dati"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Dzēst"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Buferizācija - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Nav"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sek."
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Izvēlēties audio ierīci"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Dzēst"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Atcelt"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Radās nezināma kļūda vai fails, iespējams, ir bojāts."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Šis faila veids netiek atbalstīts."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "GATAVS"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Pilns"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Pašr.att."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ATCELT"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Krātuves atrašanās vieta"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtitri (pēc pieprasījuma)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Personiskā krātuve"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Titri izskatīsies šādi"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Šāda faila nav."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Deakt.Atsk. tikai audio"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Akt. Atsk. tikai audio"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Atskaņošanas laikā nospiediet sākuma vai ieslēgšanas/izslēgšanas taustiņu, lai atskaņotu tikai audio."
+
diff --git a/vp-main/res/po/mk.po b/vp-main/res/po/mk.po
new file mode 100755 (executable)
index 0000000..2095234
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Светлина"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Музика"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Гласови"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Локација"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Непознато"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Последно менување"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Сподели"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Не може да се пушти видеото"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Дојде до грешка со титлите."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Фајлот е неисправен или SD-картичката е извадена."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Детали"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Наслов"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Видеото ќе се избрише."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Опции"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Не може да се емитува видеото"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Порамнување"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Големина на букви"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Поставка за повторување"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Титли (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Центар"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Големи"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Лево"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Средни"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Десно"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Мали"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Следно"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Претход."
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Фајловите со DRM не можат да се делат."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Формат"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Не може да се пушти видео за време на разговор."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Порака"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Пренесување фајлови"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Е-пошта"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Географска должина"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Географска широчина"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Вкл. движење"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Гребење со брзина од %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Надворешен мем. уред"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Јачина на тон"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Неподдржан видео формат."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Неподдржан тип на фајл."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Неподдржан аудио формат."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Не може да се користи брзо напред и брзо назад кога се вклучени уреди во близина."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Не може да се долови."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Заврти"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Притиснете го копчето за назад повторно за да се вратите на претходниот екран."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Нема доволно меморија. Избришете некој запис"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Листата омилени страници е полна. Избришете некоја омилена страница."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Жолта"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Виртуелен 7.1 канал"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Титли (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Начин на повторување"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Нема повторување"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Магента"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Зелена"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Боја на знаци"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Модро зелена"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Прилагодено"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Момент.видео (еднаш)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Информ. за врската"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Смени плеер"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Снимање"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Избери уред"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Достапни уреди"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Звучник"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Бела"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Црвена"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s секунди"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Брзина на емитување"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d секунди"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Исклучено"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Нема наслов"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Мој уред"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Основен фонт"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Сино"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Црна"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Активирање"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Затвори апликација?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Откажи"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Сопри после сѐ"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Повт. моментална"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Повторувај сè"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Резолуција"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Звучните ефекти %s не се поддржани од звучникот."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Превртете го телефонот за да го исклучите звукот за дојдовните повици, известувањата за пораки и алармите."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-карт."
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Овој фајл поддржува само аудио податоци. Се емитува звук."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Овој фајл поддржува само видео податоци. Се емитува видео."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Приватна меморија"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Слушалки"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Звучник"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Пауза"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Преземи"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Избери титли (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Прегледај титли (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Неуспешно поврзување."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Режим на повторување"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Неподдржан тип на фајл."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Нормално"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Гласовна снимка"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Филмови"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Аудио запис"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Се полни..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Формат на фајлот"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Јазик"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Нема видеа"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Големина"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Готово"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Обнови"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Датум"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Се вчитува..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Титли (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Бриши"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Додај на почетниот екран"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Име"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Видео-записот не може да се емитува."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Не се достапни титли"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Емитувај"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Затвори"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Неправилен URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Грешка"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Меморија на уредот"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Видео-плеер"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Сподели преку"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Дојде до мрежна грешка. Обидете се повторно."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Овој формат на фајл поддржува само аудио податоци. Се емитува звук."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Овој формат на фајлови поддржува само видео податоци. Се емитува видео."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "На средина"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Вклучено"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Опции"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Видеа"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Сподели"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Детали"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Избриши"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Се полни - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Ништо"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d сек."
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Изберете аудио уред"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Избриши"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Откажи"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Дојде до непозната грешка или фајлот е неисправен."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Овој вид фајл не е поддржан."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ГОТОВО"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Полно"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Соч.размер"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ОТКАЖИ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Место за меморирање"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Титли (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Лична меморија"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Натписите ќе изгледаат вака"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Фајлот не постои."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Искл.Емитувај само звук"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Вкл.Емитувај само звук"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Притиснете го копчето Дома или Копчето за вклучување при емитувањето за да емитувате само звук."
+
diff --git a/vp-main/res/po/nb.po b/vp-main/res/po/nb.po
new file mode 100755 (executable)
index 0000000..3e3a51c
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Lysstyrke"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musikk"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Stemmer"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Posisjon"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Ukjent"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Sist endret"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Del"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Kan ikke spille av video"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Det oppstod en feil med undertekstene."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Filen er ødelagt eller SD-kortet er fjernet."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detaljer"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Tittel"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Denne videoen vil bli slettet."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Innstillinger"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Kan ikke spille av video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Justering"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Skriftstørrelse"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Gjentakelsesinnstilling"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Undertekster (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Midtstill"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Stor"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Venstre"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Middels"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Høyre"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Liten"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Neste"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Forrige"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM-filer kan ikke deles."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Kan ikke spille av video under samtale."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Melding"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Filoverføring"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-post"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Lengdegrad"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Breddegrad"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Aktiv. beveg."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Skrubber med %sx hastighet."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Ekstern lagring"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volum"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Videoformatet støttes ikke."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Filtypen støttes ikke."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Ikke støttet lydformat."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Kan ikke bruke spoling fremover og bakover når Enheter i nærheten er aktivert."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Kan ikke ta bilde."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Roter"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Trykk på Tilbake-tasten på nytt for å gå tilbake til det forrige skjermbildet."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Ikke nok minne. Slett noen elementer."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Bokmerkeliste full. Slett noen bokmerker."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Gul"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtuell 7.1 kanal"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Undertekster (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Gjentakelsesmodus"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Ingen gjentakelse"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Grønn"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Skriftfarge"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cyan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Tilpasset"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Gj. video (én gang)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Tilkoblingsinfo."
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Endre avspiller"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Ta opp"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Velg enhet"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Tilgjeng. enheter"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Høyttaler"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Hvit"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosmarin"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rød"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s sekunder"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Avspillingshastighet"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sek"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Av"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Ingen tittel"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Min enhet"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Standardskrift"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blå"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Svart"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivering"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Lukke app?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Avbryt"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stopp etter alle"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Gjenta gjeldende"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Gjenta alle"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Oppløsning"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s lydeffekter støttes ikke av høyttaler."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Vend telefonen for å dempe innkommende samtaler, meldingsvarsler og alarmer."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-kort"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Bare lyddata støttes av denne filen. Spiller nå av lyd."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Bare videodata støttes av denne filen. Spiller nå av video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privat lagring"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Hodetelefoner"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Høyttaler"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pause"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Last ned"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Velg undertekster (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Forhåndsvis undertekster (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Kunne ikke koble til."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Gjentakelsesmodus"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Filtypen støttes ikke."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Tale"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmer"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Lydspor"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Bufrer..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Filformat"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Språk"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Ingen videoer"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Størrelse"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Oppdater"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dato"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Laster ..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Undertekster (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Slett"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Legg til på startskjerm"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Navn"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Kan ikke spille av video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Ingen undertekster er tilgjengelig"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Spill"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Lukk"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Ugyldig URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Feil"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Enhetsminne"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Videospiller"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Del via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Det har oppstått en nettverksfeil. Prøv på nytt."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Bare lyddata støttes av dette filformatet. Spiller nå av lyd."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Bare videodata støttes av dette filformatet. Spiller nå av video."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Midten"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "På"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Innstillinger"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videoer"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Del"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detaljer"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Slett"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Bufrer – %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Ingen"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sek"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Velg lydenhet"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Slett"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Avbryt"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Det har oppstått en ukjent feil, eller filen kan være ødelagt."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Denne filtypen støttes ikke."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "FULLFØRT"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Full"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Hold forh."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "AVBRYT"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Lagringssted"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Undertekster (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Personlig lagring"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Teksten vil se slik ut."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Filen eksisterer ikke."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Deak. Spill bare av lyd"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Akt. Spill bare av lyd"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Trykk på Hjem-tasten eller strømtasten under avspilling for å spille av bare lyd."
+
diff --git a/vp-main/res/po/nl.po b/vp-main/res/po/nl.po
new file mode 100755 (executable)
index 0000000..7f41593
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Helderheid"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Muziek"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Stemmen"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Locatie"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Onbekend"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Laatst gewijzigd op"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Delen"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Kan video niet afspelen"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Er is een fout opgetreden met de ondertiteling."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Het bestand is beschadigd of de SD-kaart is verwijderd."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Gegevens"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titel"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Deze video wordt verwijderd."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Instellingen"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Kan deze video niet afspelen"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Uitlijning"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tekstgrootte"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Instelling herhalen"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Ondertiteling"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Midden"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Groot"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Links"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Gemiddeld"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Rechts"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Klein"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Volgende"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Vorige"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM-bestanden kunnen niet worden gedeeld."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Indeling"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Kan video niet afspelen tijdens gesprek."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Bericht"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Bestandsoverdracht"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Lengtegraad"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Breedtegraad"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Beweging aan"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Scrubbing op snelheid %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Externe opslag"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volume"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Niet-ondersteunde video-indeling."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Niet-ondersteund bestandstype."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Niet-ondersteunde audio-indeling."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Kan niet snel vooruit of terug spoelen wanneer apparaten in de buurt zijn ingeschakeld."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Kan niet vastleggen."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Draaien"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Druk nogmaals op de toets Terug om terug te gaan naar het vorige scherm."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Onvoldoende geheugen. Wis een aantal items."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Favorieten vol. Verwijder een aantal favorieten."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Geel"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtueel 7.1-kanaals"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Ondertiteling"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Herhaalstand"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Geen herhaling"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Groen"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Letterkleur"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cyaanblauw"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Aangepast"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Deze video (eenmaal)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Verbindingsgegevens"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Wijzig speler"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Opname"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Apparaat selecteren"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Beschikb. apparaten"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Speaker"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Wit"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rood"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s seconden"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Afspeelsnelheid"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sec"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Uit"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Geen titel"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Mijn apparaat"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Standaardlettertype"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blauw"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Zwart"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Inschakelen"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Applicatie sluiten?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Annul."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stop na alles"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Huidige herhalen"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Alles herhalen"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolutie"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s geluidseffecten worden niet ondersteund door luidspreker."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Keer telefoon om voor dempen van inkomende oproepen, berichtwaarschuwingen en alarmen."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-kaart"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Alleen audiogegevens ondersteund door dit bestand. Speelt nu audio af."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Alleen videogegevens ondersteund door dit bestand. Speelt nu video af."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privé-opslag"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Koptelefoons"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Luidspreker"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pauze"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Downloaden"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Ondertiteling selecteren"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Ondertiteling weergeven"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Verbinding mislukt."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Herhaalstand"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Niet-ondersteund bestandstype."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normaal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Spraak"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Films"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Audiotrack"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "In buffer..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Bestandsindeling"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Taal"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Geen video's"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Grootte"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Gereed"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Vernieuwen"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Laden..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Ondertiteling"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Wissen"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Toevoegen aan startscherm"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Naam"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Kan video niet afspelen."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Geen ondertiteling beschikbaar"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Afspelen"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Sluiten"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Adres is onjuist."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Fout"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Apparaatopslag"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Videospeler"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Delen via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Er is een netwerkfout opgetreden. Probeer het opnieuw."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Deze bestandsindeling ondersteunt alleen audiogegevens. Speelt nu audio af."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Alleen videogegevens die worden ondersteund door deze bestandsindeling. Speelt nu video af."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centreren"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Aan"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Instellingen"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Video's"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Delen"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Gegevens"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Verwijderen"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "In buffer opslaan - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Geen"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sec"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Audioapparaat selecteren"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Wissen"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Annuleer"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Er is een onbekende fout opgetreden of het bestand is mogelijk beschadigd."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Dit bestandstype wordt niet ondersteund."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "GEREED"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Vol"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Houd verh."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULEREN"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Opslaglocatie"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Ondertiteling"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Persoonlijke opslag"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Ondertiteling ziet er zo uit."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Dit bestand bestaat niet."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Alleen geluid afsp. uit"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Alleen geluid afsp. aan"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Druk op de Starttoets of de Aan/uit-toets tijdens afspelen om alleen audio af te spelen."
+
diff --git a/vp-main/res/po/pl.po b/vp-main/res/po/pl.po
new file mode 100755 (executable)
index 0000000..77dd6f4
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Jasność"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Muzyka"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Głosowy"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Lokalizacja"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Nieznane"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Ostatnia modyfikacja"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Udostępniaj"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Nie można odtworzyć filmu"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Wystąpił błąd związany z napisami."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Plik jest uszkodzony lub wyjęto kartę pamięci."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Szczegóły"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Tytuł"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Ten film wideo zostanie usunięty."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ustawienia"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nie można odtworzyć filmu"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Wyrównanie"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Rozmiar tekstu"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Ustawienie powtarzania"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Napisy (kodowane)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Pośrodku"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Duży"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Do lewej"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Średnia"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Do prawej"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mały"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Dalej"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Wstecz"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Nie można udostępnić plików DRM."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Nie można odtwarzać wideo podczas połączenia."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Wiadom."
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Przesyłanie plików"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Długość geogr."
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Szerokość geogr."
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Wł. f. ruchu"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Przewijanie z szybkością %s."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Pamięć zewnętrzna"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Głośność"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Nieobsługiwany format wideo."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nieobsługiwany typ pliku."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Nieobsługiwany format dźwięku."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Nie można używać przewijania do przodu ani do tyłu, gdy włączone są urządzenia w pobliżu."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Nie można przechwycić."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Obróć"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Naciśnij ponownie klawisz wstecz, aby wrócić do poprzedniego ekranu."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Brak pamięci. Usuń niektóre elementy"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Lista zakładek pełna. Usuń niektóre zakładki."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Żółty"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Wirtualne 7.1"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Napisy (kodowane)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Tryb powtarzania"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Bez powtarzania"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Amarantowy"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Zielony"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Kolor czcionki"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cyjan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Niestandardowa"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Bieżący film (raz)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Inform. o połączeniu"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Zmień odtwarzacz"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Przechwyć"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Wybierz urządzenie"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dostępne urządzenia"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Głośnik"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Biały"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Czerwony"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s s"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Szybkość odtwarzania"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sek."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Wyłącz"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Brak tytułu"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Moje urządzenie"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Czcionka domyślna"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Niebieski"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Czarny"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktywacja"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Zamknąć aplikację?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Anul."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Zatrzymaj po wszyst."
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Powtórz bieżący"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Powtórz wszystkie"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rozdzielczość"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Efekty dźwiękowe %s nie są obsługiwane przez głośnik."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Odwróć telefon, aby wyciszyć połączenia przychodzące, dźwięki wiad. i alarmy."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Karta pamięci"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Ten plik obsługuje tylko dane audio. Trwa odtwarzanie dźwięku."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Ten plik obsługuje tylko dane wideo. Trwa odtwarzanie wideo."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Pamięć prywatna"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Słuchawki"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Głośnik"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pauza"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Pobierz"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Wybierz napisy (kodowane)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Podgląd napisów (kodowane)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Błąd łączenia"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Tryb powtarzania"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nieobsługiwany typ pliku."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normalna"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Głosowy"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmy"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Ścieżka dźwiękowa"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Buforowan..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Format pliku"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Język"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Brak filmów wideo"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Rozmiar"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Gotowe"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Odśwież"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Ładowanie..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Napisy (kodowane)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Usuń"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Dodaj do ekranu startowego"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nazwa"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Nie można odtworzyć filmu."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Brak dostępnych napisów"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Odtwórz"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Zamknij"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Nieprawidłowy adres URL"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Błąd"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Pamięć urządzenia"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Odtwarzacz wideo"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Udostępnij przez"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Wystąpił błąd sieci. Spróbuj później."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Ten format plików obsługuje tylko dane audio. Trwa odtwarzanie dźwięku."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Ten format pliku obsługuje tylko dane wideo. Trwa odtwarzanie wideo."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centrum"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Włącz"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Ustawienia"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Filmy"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Udost."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Szczegóły"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Usuń"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Buforowanie — %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Brak"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Wybór urządzenia audio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Usuń"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Anuluj"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Wystąpił nieznany błąd lub plik może być uszkodzony."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Ten typ plików nie jest obsługiwany."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "GOTOWE"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Pełny"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Zach.prop."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANULUJ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Położenie pamięci"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Napisy (kodowane)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Pamięć osobista"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Tak będą wyglądać napisy"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Plik nie istnieje."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Wyłącz Odtw. tylko dźw."
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Odtwarzaj tylko dźwięk"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Podczas odtwarzania naciśnij klawisz ekranu startowego lub klawisz zasilania, aby odtworzyć tylko dźwięk."
+
diff --git a/vp-main/res/po/pt_BR.po b/vp-main/res/po/pt_BR.po
new file mode 100755 (executable)
index 0000000..955ec3c
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Brilho"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Música"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voz"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Local"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Desconhecido"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Última modificação"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Compartilhar"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Impossível reproduzir o vídeo"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Houve um erro com as legendas."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "O arquivo está corrompido ou o cartão SD foi removido."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalhes"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Título"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Este vídeo será excluído."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Configurações"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Não é possível reprod. vídeo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alinhamento"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tamanho da fonte"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repetir configuração"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Legendas"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centralizar"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Esquerdo"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Média"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Direito"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pequena"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Próximo"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Anterior"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Não é possível compartilhar os arquivos DRM."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formato"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Impossível reproduzir vídeo durante chamada."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mensagem"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Transferir arquivo"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Ativar mov."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Depurar a %sx veloc."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Armazenamento externo"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volume"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Formato de vídeo não suportado."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo de arquivo não suportado."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Formato de áudio não suportado."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Impossível usar o avanço rápido ou retrocesso quando dispositivos próximos estão ativados."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Impossível capturar."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Girar"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Pressione a tecla voltar novamente para retornar à tela anterior."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Memória insuficiente. Apague alguns itens"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Favoritos cheio. Apague alguns favoritos."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Amarelo"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "7.1 ch Virtual"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Legendas"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Modo de repetição"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Sem repetição"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Púrpura"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Verde"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Cor da fonte"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Ciano"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Personalizar"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Vídeo atual (1 vez)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Informações conexão"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Alterar player"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Capturar"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Selecionar dispositivo"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dispositivos dispon."
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Viva-voz"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Branco"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Vermelho"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s segundos"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Velocidade de reprodução"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d s"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Desativado"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Sem título"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Meu dispositivo"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Fonte padrão"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Azul"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Preto"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Ativação"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Fechar aplicação?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Parar após todos"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir atual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir todos"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolução"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Efeitos sonoros %s não suportados pelo alto-falante."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Vire o telefone ao contrário para silenciar chamadas recebidas, alertas de mensagens e alarmes."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Cartão SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Somente dados de áudio são suportados por este arquivo. Agora reproduzindo áudio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Somente dados de vídeo são suportados por este arquivo. Agora reproduzindo vídeo."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Armazenamento privado"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Fones de ouvido"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Viva-voz"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pausar"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Baixar"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Selecionar legendas (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Visualização de legendas (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Falha de conexão."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Modo de repetição"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo de arquivo não suportado."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voz"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmes"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Faixa de áudio"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Mov. p/buffer"
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Formato de arquivo"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Idioma"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Nenhum vídeo"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Tamanho"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Atualizar"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Carregando..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Legendas (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Excluir"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Adicionar à tela inicial"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nome"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Você não pode reproduzir vídeo."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Nenhuma legenda disponível"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Reproduzir"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Fechar"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL inválida."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Erro"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Armazenamento do dispositivo"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video player"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Compartilhar via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ocorreu um erro de rede. Tente novamente."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Somente dados de áudio são suportados por este formato de arquivo. Reproduzindo áudio agora."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Somente dados de vídeo são suportados por este formato de arquivo. Agora reproduzindo vídeo."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centro"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Ativado"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Configurações"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Vídeos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Compart."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detalhes"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Excluir"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Armazenando temporariamente - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Nenhum"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d seg"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Selecionar dispositivo de áudio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Excluir"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Ocorreu um erro desconhecido ou o arquivo pode estar corrompido."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Este tipo de arquivo não é suportado."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "CONCLUÍDO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Cheia"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Mant. prop"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Local de armazenamento"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Legendas (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Armazenamento pessoal"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "As legendas aparecerão desta forma"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Este arquivo não existe."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Desat. reprod. só áudio"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Ativar reprod. só áudio"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Pressione a Tecla Início ou a Tecla Ligar/Desligar durante a reprodução para reproduzir apenas áudio."
+
diff --git a/vp-main/res/po/pt_PT.po b/vp-main/res/po/pt_PT.po
new file mode 100755 (executable)
index 0000000..54296aa
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Brilho"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Música"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Vozes"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Localização"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Desconhecido"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Última modificação"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Enviar"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Impossível reproduzir vídeo"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Ocorreu um erro com as legendas."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "O ficheiro está corrompido ou o cartão SD foi retirado."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalhes"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Título"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Este vídeo será eliminado."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Definições"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Impossível reproduzir vídeo"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Alinhamento"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Tamanho de fonte"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Repetir definição"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Legendas (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centro"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Grande"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Esquerda"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Média"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Direita"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Pequeno"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Seguinte"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Anterior"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Impossível partilhar ficheiros DRM."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formato"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Impossível reproduzir vídeo durante chamada."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mensagem"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Transfer. ficheiro"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitude"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitude"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Activar mov."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Leitura a %sx da velocidade."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Armazenamento externo"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volume"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Formato de vídeo não suportado."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo de ficheiro não suportado."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Formato de áudio não suportado."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Impossível utilizar o avanço rápido e o retrocesso quando existem dispositivos próximos activados."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Impossível capturar."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rodar"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Prima novamente a tecla voltar para regressar ao ecrã anterior."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Memória insuficiente. Apague alguns itens."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Lista de marcadores cheia. Apague alguns marcadores."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Yellow"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Canal virtual 7.1"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Legendas (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Modo de repetição"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Não repetir"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Verde"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Cor do tipo de letra"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cião"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Personalizar"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Vídeo actual (1 vez)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Info de ligação"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Mudar leitor"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Capturar"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Seleccionar dispositivo"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Disposit disponíveis"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Altifal."
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Branco"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Vermelho"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s segundos"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Velocidade de reprodução"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d s"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Desligado"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Sem título"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "O meu dispositivo"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Fonte padrão"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Azul"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Preto"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activação"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Fechar aplicação?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Parar depois de tudo"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetir actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetir tudo"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Resolução"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s efeitos de som não são suportados pelo altifalante."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Mude o telefone para silenciar chamadas recebidas, alertas de mensagem e alarmes."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Cartão SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Só são suportados por este ficheiro dados de áudio. A reproduzir áudio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Só são suportados por este ficheiro dados de vídeo. A reproduzir vídeo."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Armazenamento privado"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Auscultadores"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Alta-voz"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pausa"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Transferir"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Seleccionar legendas (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Pré-visualizar legendas (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Falha na ligação."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Modo de repetição"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tipo de ficheiro não suportado."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voz"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmes"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Faixa de áudio"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Mem. tempor."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Formato de ficheiro"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Idioma"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Nenhuns vídeos"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Tamanho"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Concluir"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Actualizar"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Data"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "A carregar..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Legendas (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Adicionar ao ecrã principal"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nome"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Impossível reproduzir vídeo."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Não estão disponíveis legendas"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Reproduzir"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Fechar"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL inválido."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Erro"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Armazenamento do dispositivo"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Leitor de Vídeo"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Partilhar via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ocorreu um erro de rede. Tente novamente."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Este formato de ficheiro suporta apenas dados de áudio. A reproduzir áudio agora."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Só são suportados dados de vídeo por este formato de ficheiro. A reproduzir vídeo."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centro"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Ligado"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Definições"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Vídeos"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Enviar"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detalhes"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Colocar na memória temporária - %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Nenhum"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Seleccionar dispositivo de áudio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Ocorreu um erro desconhecido ou o ficheiro pode estar corrupto."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Este tipo de ficheiro não é suportado."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "CONCLUÍDO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Cheio"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Original"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Localização armazenamento"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Legendas (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Armazenamento pessoal"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "As legendas terão este aspecto"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Ficheiro inexistente."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Desactivar Só áudio"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Activar Só áudio"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Prima a Tecla principal ou a Tecla de alimentação durante a reprodução, para reproduzir apenas áudio."
+
diff --git a/vp-main/res/po/ro.po b/vp-main/res/po/ro.po
new file mode 100755 (executable)
index 0000000..4d6fe5d
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Luminozitate"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Muzică"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Voci"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KO"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Locaţie"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MO"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Necunoscut"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Ultima modificare"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Partajaţi"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Videoclipul nu poate fi redat"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "A apărut o eroare legată de subtitrări."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Fişierul este deteriorat sau cardul SD a fost îndepărtat."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalii"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Titlu"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Acest videoclip va fi şters."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Setări"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videoclipul nu poate fi redat"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Aliniere"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Dimensiune font"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Setare repetare"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitrări (complexe)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centru"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Mare"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Stânga"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Mediu"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Dreapta"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mic"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Următor"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Anterior"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Fişierele DRM nu pot fi partajate."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formatare"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Imposibil de redat videoclipul în timpul apelului"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mesaj"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Transfer fişier"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitudine"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitudine"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Activ. mişc."
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Se derulează la o viteză de %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Stocare externă"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volum"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Format video neacceptat"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tip fişier neacceptat"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Format audio neacceptat"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Nu se poate utiliza derularea rapidă înainte sau derularea înapoi când dispozitivele din apropiere sunt activate."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Imposibil de capturat"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rotire"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Apăsaţi din nou pe tasta Înapoi pentru a reveni la ecranul anterior."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Memorie insuficientă. Ştergeţi câteva elemente"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Listă marcaje plină. Ştergeţi din marcaje."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Galben"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "7.1 canale virtuale"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitrări (complexe)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Mod repetare"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Nicio repetiţie"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Verde"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Culoare font"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Azuriu"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Personalizat"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Video act. (o dată)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Info. conexiune"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Schimbare player"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Captură"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Selectare dispozitiv"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dispozitive dispon."
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Difuzor"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Alb"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rozmarin"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Roşu"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s secunde"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Viteză de redare"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sec."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Oprit"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Nici un titlu"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Dispozitivul meu"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Font prestabilit"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Jazz liniştit"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Biscuite de ciocolată"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Albastru"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Negru"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Activare"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Închideţi aplicaţia?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Anul."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Oprire după toate"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Repetare actual"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Repetare globală"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rezoluţie"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Efectele sonore %s nu sunt acceptate de difuzor."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Întoarceţi telefonul pentru a opri sunetul pentru apeluri primite, alerte de mesaje şi alarme."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Cartelă SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Doar datele audio sunt acceptate de acest fişier. Se redă conţinut audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Doar datele video sunt acceptate de acest fişier. Se redă conţinut video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Spaţiu de stocare privat"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Căşti"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Difuzor"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pauză"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Descărcare"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Sel. subtitr. (complexe)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Examin. subtitrări (complexe)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Conexiune nereuşită"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Mod repetare"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Tip fişier neacceptat"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Voce"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filme"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Piesă audio"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Se încarcă..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Format fişier"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Limbă"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Niciun videoclip"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Dimensiune"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Efectuat"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Reîmprosp."
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dată"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Se încarcă..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtitr. (complexe)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Ştergere"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Adăug. la ecran. de pornire"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Nume"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Imposibil de redat videoclipul"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Nu sunt disponibile subtitrări"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Redare"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Închidere"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL invalid"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Eroare"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Spaţiu stocare dispozitiv"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Player video"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Partajare prin"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "A apărut o eroare de reţea. Încercaţi din nou."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Doar datele audio sunt acceptate de acest format de fişier. Se redă conţinut audio."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Acest format de fişier acceptă doar datele video. Se redă conţinut video."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centru"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Pornit"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Setări"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videoclip."
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Partaj."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detalii"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Ştergere"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Încărcare în zona tampon - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Fără"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sec."
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Selectare dispozitiv audio"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Ştergere"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Anulare"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "A apărut o eroare necunoscută sau este posibil ca fişierul să fie deteriorat."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Acest tip de fişier nu este acceptat."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "EFECTUAT"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Complet"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Menț. rap."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANULARE"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Locaţie stocare"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtitrări (complexe)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Spaţiu de stocare personal"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Subtitrările vor arăta astfel"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Acest fişier nu există."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Dez. Red. numai audio"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Activ. Red. doar audio"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Apăsați tasta Acasă sau Pornire în timpul redării pentru a reda numai conținutul audio."
+
diff --git a/vp-main/res/po/ru_RU.po b/vp-main/res/po/ru_RU.po
new file mode 100755 (executable)
index 0000000..1754c34
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Яркость"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Музыка"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Голоса"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "б"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Гб"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "КБ"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Местоположение"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "МБ"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Неизвестно"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "ОК"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Последнее изменение"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Отправить"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Невозможно воспроизвести видео"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Возникла ошибка с субтитрами."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Файл поврежден или карта памяти SD извлечена."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Свойства"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Название"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Это видео будет удалено."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Невозможно воспроизвести видео"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Выравнивание"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Размер шрифта"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Параметры повторения"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитры"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "По центру"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Крупный"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Слева"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Средний"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Справа"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Мелкий"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Далее"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Назад"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Невозможно поделиться DRM-файлами."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Формат"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Воспроизведение видео во время вызова невозможно."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Сообщение"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Передача файлов"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Эл. почта"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Долгота"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Широта"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Вкл. движение"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Перемотка на скорости %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Внешний носитель"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Громкость"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Неподдерживаемый формат видео"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Неподдерживаемый тип файла"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Неподдерживаемый формат аудио"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Если включена функция устройств поблизости, использовать перемотку вперед и назад невозможно."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Не удалось сохранить."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Повернуть"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Чтобы вернуться на предыдущий экран, нажмите клавишу возврата еще раз."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Недостаточно памяти. Удалите некоторые элементы"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Список закладок заполнен.\nУдалите некоторые закладки."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Желтый"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Эмуляция 7.1"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитры"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Режим повтора"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Повтор выключен"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Пурпурный"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Зеленый"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Цвет шрифта"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Голубой"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Пользовательский"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Данное видео (1 раз)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Сведения о подключ."
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Изменить проигрыватель"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Съемка"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Выбрать устройство"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Доступные устройства"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Динамик"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Белый"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Красный"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s сек."
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Скорость воспроизведения"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d сек"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Выключено"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Нет названия"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Мое устройство"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Шрифт по умолчанию"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Синий"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Черный"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Активация"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Закрыть приложение?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Отмена"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Останов. после всех"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Повторить текущее"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Повторять все"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Разрешение"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Звуковые эффекты %s не поддерживаются динамиком."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Чтобы отключить сигнал входящего вызова, сообщения или будильника, переверните телефон."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Карта памяти"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Только звук, поддерживаемый этим файлом. Текущий воспроизводимый аудиофайл."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Только видео, поддерживаемое этим файлом. Текущий воспроизводимый видеофайл."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Приватное хранилище"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Наушники"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Громкая связь"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Пауза"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Загрузить"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Выбор субтитров"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Просмотреть субтитры"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Сбой при подключении."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Режим повтора"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Неподдерживаемый тип файла"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Обычный"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Голос"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Фильмы"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Звуковая дорожка"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Буферизация"
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Формат файла"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Язык"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Нет видео"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Размер"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Готово"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Обновить"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Дата"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Загрузка..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Субтитры"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Удалить"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Добавить на главный экран"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Имя"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Невозможно воспроизвести видео."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Нет доступных субтитров"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Воспроизвести"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Закрыть"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Неправильный URL"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Ошибка"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Память устройства"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Видео"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Отправить через"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Произошла ошибка сети. Повторите попытку."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Этот формат файла поддерживает только звуковые данные. Воспроизводится звук."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Этот формат файла поддерживает только видеоданные. Будет выполнено воспроизведение видео."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "По центру"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Включено"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Видео"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Отправ."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Свойства"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Удалить"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Буферизация: %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Нет"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d сек."
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Выберите аудиоустройство"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Удалить"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Отмена"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Произошла неизвестная ошибка, или файл поврежден."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Этот тип файла не поддерживается."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ГОТОВО"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Разверн."
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Сох.соотн."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ОТМЕНА"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Место хранения"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Субтитры (копия)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Личное хранилище"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Подписи будут выглядеть так."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Файл не существует."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Откл. только восп.аудио"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Вкл. только восп.аудио"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Чтобы воспроизводилось только аудио, нажмите клавишу “Домой” или клавишу питания во время воспроизведения."
+
diff --git a/vp-main/res/po/sk.po b/vp-main/res/po/sk.po
new file mode 100755 (executable)
index 0000000..aa21c81
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Jas"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Hudba"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Hlasy"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "GPS"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Neznáme"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Naposledy upravené"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Zdieľať"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Video sa nedá prehrať"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Vyskytla sa chyba titulkov."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Súbor je poškodený alebo karta SD bola odstránená."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Podrobnosti"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Názov"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Toto video sa odstráni."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Nastavenia"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nedá sa prehrať video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Zarovnanie"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Veľkosť písma"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Nastavenie opakovania"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titulky (skryté)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Stred"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Veľké"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Vľavo"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Stredné"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Vpravo"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Malé"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Ďalej"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Predch."
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Súbory DRM nemožno zdieľať."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Formát"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Počas hovoru sa nedá prehrávať video."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Správa"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Prenos súborov"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-mail"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Zemepisná dĺžka"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Zemepisná šírka"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Povoliť pohyb"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Posúvanie rýchlosťou %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Exter. úložný priestor"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Hlasitosť"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Nepodporovaný formát videa."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepodporovaný typ súboru."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Nepodporovaný formát zvuku."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Keď sú povolené blízke zariadenia, nemožno použiť prevíjanie dopredu a dozadu."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Nedá sa snímať."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Otočiť"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Opätovným stlačením tlačidla návratu sa vrátite na predchádzajúcu obrazovku."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Nedostatok pamäte. Vymažte niektoré položky"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Zoznam záložiek je plný. Vymažte niektoré záložky."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Žltá"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtuálny 7.1-kanálový zvuk"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titulky (skryté)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Režim opakovania"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Bez opakovania"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Purpurová"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Zelená"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Farba písma"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Azúrová"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Vlastné"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Aktuálne video (raz)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Inform. o pripojení"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Zmeniť prehrávač"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Nasnímať"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Vybrať zariadenie"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dostupné zariadenia"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Reproduk."
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Biela"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rozmarín"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Červená"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s s"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Rýchlosť prehrávania"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d s"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Vyp."
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Žiadny názov"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Moje zariadenie"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Predvolené písmo"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Modrá"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Čierna"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivácia"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Zavrieť aplikáciu?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Zruš."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Zastaviť po všetkých"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Opakovať aktuálne"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Opakovať všetko"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rozlíšenie"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Reproduktor nepodporuje zvukové efekty %s."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Prevrátením telefónu stlmíte prichádzajúce hovory, upozornenia na správy a budíky."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Karta SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Tento súbor podporuje iba zvukové údaje. Teraz sa prehráva zvuk."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Tento súbor podporuje iba obrazové údaje. Teraz sa prehráva video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Súkromné úložisko"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Slúchadlá"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Reproduktor"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pauza"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Stiahnuť"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Vybrať titulky (skryté)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Ukážka titulkov (skryté tit.)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Pripojenie sa nepodarilo."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Režim opakovania"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepodporovaný typ súboru."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normálny"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Hlas"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmy"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Zvuková stopa"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Do medzip..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Formát súboru"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Jazyk"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Žiadne videá"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Veľkosť"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Hotovo"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Obnoviť"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Dátum"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Načítava sa..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Titulky (skryté)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Odstrániť"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Pridať na úvodnú obrazovku"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Meno"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Nedá sa prehrať video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Žiadne dostupné titulky"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Prehrať"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Zavrieť"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Neplatná adresa URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Chyba"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Úložisko zariadenia"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Prehrávač videí"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Zdieľať cez"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Vyskytla sa chyba siete. Skúste to znova."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Tento formát súboru podporuje iba zvukové údaje. Teraz sa prehráva zvuk."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Tento formát súboru podporuje iba obrazové údaje. Teraz sa prehráva video."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Stred"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Zap."
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Nastavenia"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videá"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Zdieľať"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Podrobnosti"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Odstrániť"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Ukladá sa do medzipamäte – %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Žiadne"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Vybrať zvukové zariadenie"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Odstrániť"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Zrušiť"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Vyskytla sa neznáma chyba alebo súbor je možno poškodený."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Tento typ súboru nie je podporovaný."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "HOTOVO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Na celý"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Pôvodný"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ZRUŠIŤ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Umiest. úlož. priestoru"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Titulky (skryté)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Osobný úložný priestor"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Titulky budú vyzerať takto"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Súbor neexistuje."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Vypnúť Prehrať iba zvuk"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Zap. Prehrať iba zvuk"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Stlačením tlačidla Domov alebo tlačidla Napájanie počas prehrávania môžete prehrať samotný zvuk."
+
diff --git a/vp-main/res/po/sl.po b/vp-main/res/po/sl.po
new file mode 100755 (executable)
index 0000000..27d4459
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Svetlost"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Glasba"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Glasovi"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Neznano"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "V redu"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Zadnjič spremenjeno"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Skupna raba"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Videa ni mogoče predvajati"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Prišlo je do napake s podnapisi."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Datoteka je poškodovana ali pa je kartica SD odstranjena."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Podrobnosti"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Naslov"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Ta videoposnetek bo izbrisan."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Nastavitve"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videa ni mogoče predvajati"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Poravnava"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Velikost pisave"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Nastavitev ponavljanja"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Podnapisi (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Sredina"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Velika"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Levo"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Srednja"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Desno"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Majhna"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Naprej"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Nazaj"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Datotek DRM ni mogoče deliti z drugimi."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Ni mogoče predvajati videa med klicem."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Sporoč."
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Prenos datotek"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-pošta"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Zemljepisna dolžina"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Zemljepisna širina"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Omog. gibanje"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Čiščenje pri hitrosti %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Zunanji pomnilnik"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Glasnost"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Nepodprt video zapis."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepodprta vrsta datoteke."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Nepodprt zvočni zapis."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Funkcij za hitro previjanje naprej in nazaj ni mogoče uporabljati, ko so omogočene naprave v bližini."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Ni mogoče zajeti."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Obrni"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Znova pritisnite tipko za vrnitev, da se vrnete na prejšnji zaslon."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Ni dovolj pomnilnika. Izbrišite nekaj predmetov"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Seznam zaznamkov je poln. Izbrišite nekaj zaznamkov."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Rumena"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Zvočna kartica Virtual 7.1 ch"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Podnapisi (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Način ponavljanja"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Brez ponavljanja"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Zelena"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Barva pisave"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cijan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Po meri"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Tren. video (enkrat)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Podatki o povezavi"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Spremeni predvajalnik"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Zajemi"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Izberite napravo"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Razpoložlj. naprave"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Zvočnik"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Bela"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Rdeča"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s s"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Hitrost predvajanja"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d s"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Izključeno"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Ni naslova"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Moja naprava"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Privzeta pisava"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Modro"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Črna"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Vklop"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Zaprem aplikacijo?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Prekliči"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Ustavi po vseh"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Ponovi trenutno"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Ponovi vse"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Ločljivost"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Zvočnik ne podpira zvočnih učinkov %s."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Obrnite telefon, da utišate dohodne klice, opozorila o sporočilih in alarme."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "Kartica SD"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Ta datoteka podpira samo zvočne podatke. Zvok se predvaja."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Ta datoteka podpira samo video podatke. Video se predvaja."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Zasebna shramba"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Slušalke"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Zvočnik"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Premor"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Prenos"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Izberite podnapise (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Predogled podnapisov (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Povezava ni uspela."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Način ponavljanja"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepodprta vrsta datoteke."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normalna"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Glasovno"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmi"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Zvočni posnetek"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Medpomnjenje"
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Zapis datoteke"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Jezik"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Ni videoposnetkov"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Velikost"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Končano"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Osveži"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Nalaganje ..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Podnapisi (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Dodaj na domači zaslon"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ime"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Video posnetka ni mogoče predvajati."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Nobeni podnapisi niso na voljo"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Predvajaj"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Zapri"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Nepravilen URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Napaka"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Shramba naprave"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video predvajal."
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Deli z drugimi prek"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Prišlo je do napake omrežja. Poskusite znova."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Ta oblika zapisa datoteke podpira samo zvočne podatke. Zvok se predvaja."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Ta oblika zapisa datoteke podpira samo video podatke. Video se predvaja."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Na sredino"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Vključeno"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Nastavitve"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videi"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Soupor."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Podrobnosti"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Medpomnjenje – %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Brez"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d s"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Izberite zvočno napravo"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Prekliči"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Prišlo je do neznane napake ali pa je datoteka poškodovana."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Ta vrsta datoteke ni podprta."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "KONČANO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Cel zas."
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Ohr. razm."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "PREKLIČI"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Mesto shranjevanja"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Podnapisi (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Osebna shramba"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Napisi bodo videti tako"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Ta datoteka ne obstaja."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Onem. Predv. samo zvok"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Omog. Predv. samo zvok"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Če želite predvajati samo zvok, med predvajanjem pritisnite tipko za domov ali za vklop."
+
diff --git a/vp-main/res/po/sr.po b/vp-main/res/po/sr.po
new file mode 100755 (executable)
index 0000000..63adebe
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Osvetljenje"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Muzika"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Glasovi"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Poslednja izmena"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Podeli"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Nemoguće reprodukovati video"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Došlo je do greške sa titlovima."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Fajl je oštećen ili je uklonjena SD kartica."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detalji"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Naslov"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Ovaj video će biti izbrisan."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Podešavanja"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Nemoguća reprodukcija videa"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Poravnanje"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Veličina slova"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Podešavanje ponavljanja"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titlovi"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Središnje"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Velika"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Levo"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Srednji"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Desno"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Mala"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Naredna"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Prethodna"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM fajlovi ne mogu da se dele."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Nemoguće reprodukovati video tokom poziva."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Poruka"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Prenos fajlova"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-pošta"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Geografska dužina"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Geografska širina"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Omog. pokret"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Pročešljavanje na %s x brzina."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Spoljna memorija"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Glasnoća"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Nepodržan video format."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepodržani tip fajla."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Nepodržan audio format."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Nije moguće koristiti funkciju premotavanja unapred i unazad kada su omogućeni uređaji u blizini."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Nije moguće snimiti."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rotiraj"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Ponovo pritisni taster Nazad za povratak na prethodni ekran."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Nedovoljno memorije. Obriši neke od stavki"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Lista obeleživača je puna. Obrišite neke."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Žuta"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtuelni 7.1 kanal"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Titlovi"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Režim ponavljanja"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Bez ponavljanja"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Zelena"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Boja fonta"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cijan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Prilagođeno"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Tren. video (jednom)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Informacije o vezi"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Promeni plejer"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Snimanje"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Izaberi uređaj"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Dostupni uređaji"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Zvučnik"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Bela"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Ruzmarin"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Crvena"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s sekundi"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Brzina reprodukcije"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d s"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Isključeno"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Nema naslova"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Moj uređaj"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Podrazumevani font"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Plava"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Crna"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivacija"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Zatvori aplikaciju?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Otkaži"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Zaustavi nakon svega"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Ponovi aktuelno"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Ponovi sve"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rezolucija"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Zvučnik ne podržava %s zvučne efekte."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Okreni telefon naopako da bi utišao dolazne pozive, upozorenja o porukama i alarme."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD kartica"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Ovaj fajl podržava samo zvučne podatke. Sada se reprodukuje zvuk."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Ovaj fajl podržava samo video podatke. Sada se reprodukuje video zapis."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privatna memorija"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Slušalice"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Zvučnik"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Pauza"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Preuzmi"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Odredi titlove"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Pregled titlova"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Neuspešno povezivanje."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Režim ponavljanja"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Nepodržani tip fajla."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normalna"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Glas"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmovi"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Audio numera"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Baferisanje..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Format fajla"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Jezik"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Nema video zapisa"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Veličina"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Gotovo"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Osveži"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Učitavanje..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Titlovi (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Dodaj na početni ekran"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ime"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Nemoguće reprodukovati video zapis."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Titlovi nisu dostupni"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Reprodukcija"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Zatvori"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Neispravan URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Greška"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Skladišna lokacija uređaja"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video plejer"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Podeli putem"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Došlo je do greške na mreži. Pokušaj ponovo."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Ovaj format fajla podržava samo zvučne podatke. Sada se reprodukuje zvuk."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Ovaj format fajlova podržava samo video podatke. Sada se reprodukuje video zapis."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Srednje"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Uključeno"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Podešavanja"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Video zapisi"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Podeli"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detalji"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Baferisanje – %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Nema"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sekundi"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Izaberi audio uređaj"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Otkaži"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Došlo je do nepoznate greške ili je fajl je možda oštećen."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Ovaj tip fajla nije podržan."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "GOTOVO"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Puno"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Isti odnos"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "OTKAŽI"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Skladišna lokacija"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Titlovi"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Lična memorija"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Titlovi će izgledati ovako"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Fajl ne postoji."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Onem. Pusti samo zvuk"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Omog. Pusti samo zvuk"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Pritisnite taster Početak ili Taster za uključivanje tokom reprodukcije da biste reprodukovali samo zvuk."
+
diff --git a/vp-main/res/po/sv.po b/vp-main/res/po/sv.po
new file mode 100755 (executable)
index 0000000..079c803
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Ljusstyrka"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musik"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Röster"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "kB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Plats"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Okänd"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Senast ändrad"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Dela"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Kan inte spela upp video"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Ett fel inträffade i undertexterna."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Filen är skadad eller så har SD-kortet tagits bort."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Detaljer"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Rubrik"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Det här videoklippet kommer att raderas."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Inställningar"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Kan inte spela upp video"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Justering"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Teckenstorlek"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Upprepa inställning"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Textning (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Centrerat"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Stor"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Vänster"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Medium"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Höger"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Liten"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Nästa"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Åter"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM-filer går inte att dela."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Kan inte spela upp videoklipp medan samtal pågår."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Medd."
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Filöverföring"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-post"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Longitud"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Latitud"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Akt. rörelse"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Skrubbar med %sx hastighet."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Externt minne"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Volym"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Videoformatet stöds inte."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Filtypen stöds inte."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Ljudformatet stöds inte."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Det går inte att använda snabbspolning framåt och bakåt när enheter i närheten är aktiverade."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Det går inte att registrera."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Rotera"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Tryck på tillbakaknappen igen om du vill återgå till föregående skärmbild."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Minnet räcker inte. Radera några objekt."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Bokmärken fullt. Radera några bokmärken."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Gul"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtuellt 7.1-kanalljud"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Textning (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Upprepning"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Ingen upprepning"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Magenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Grön"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Teckenfärg"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cyan"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Egen"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Akt. video (1 gång)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Anslutningsinfo"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Byt spelare"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Ta bild"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Välj enhet"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Tillängliga enheter"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Högtalare"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Vit"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Röd"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s sekunder"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Uppspelningshastighet"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d s"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Av"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Ingen rubrik"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Min enhet"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Standardteckensnitt"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Blå"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Svart"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Aktivera"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Stäng programmet?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Avbryt"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Stoppa efter alla"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Upprepa nuvarande"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Upprepa alla"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Upplösning"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s ljudeffekter stöds inte av högtalare."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Vänd på telefonen för att tysta inkommande samtal, meddelandesignaler och larm."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-kort"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Endast ljuddata stöds av den här filen. Spelar nu upp ljudet."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Endast videodata stöds av den här filen. Spelar nu upp videon."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Privat lagring"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Hörlurar"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Högtalare"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Paus"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Hämta"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Välj textning (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Förhandsgranska textning (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Anslutningsfel."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Upprepning"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Filtypen stöds inte."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Röst"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmer"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Ljudspår"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Buffrar..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Filformat"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Språk"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Ingen video"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Storlek"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Klar"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Uppdatera"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Datum"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Laddar..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Textning (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Ta bort"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Lägg till på hemskärmen"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Namn"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Det går inte att spela upp video."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Ingen undertext tillgänglig"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Starta"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Stäng"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Ogiltig URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Fel"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Enhetslagring"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Videospelare"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Dela via"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Ett nätverksfel har inträffat. Försök igen."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Endast ljuddata stöds i det här filformatet. Spelar nu upp ljudet."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Endast videodata stöds av detta filformat. Spelar nu upp videon."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Centrerad"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "På"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Inställningar"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Video"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Dela"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Detaljer"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Ta bort"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Buffrar – %d %"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Ingen"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sek"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Välj ljudenhet"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Ta bort"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Avbryt"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Ett okänt fel har inträffat eller så kan filen vara skadad."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Den här filtypen stöds inte."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "KLAR"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Helskärm"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Beh. förh."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "AVBRYT"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Lagringsplats"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Textning (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Privat lagringsutrymme"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Undertexter kommer att se ut så här."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Filen finns inte."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Inaktiv. Spela en. ljud"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Aktiv. Spela en. ljud"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Tryck på hemknappen eller strömknappen under uppspelningen om du bara vill spela upp ljud."
+
diff --git a/vp-main/res/po/tr_TR.po b/vp-main/res/po/tr_TR.po
new file mode 100755 (executable)
index 0000000..76a8a12
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Parlaklık"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Müzik"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Sesler"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Konum"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Bilinmeyen"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "Tamam"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Son değiştirilme"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Paylaş"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Video oynatılamıyor"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Altyazılarla ilgili bir hata oluştu."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Dosya bozuk veya SD kartı çıkarılmış."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Ayrıntılar"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Başlık"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Bu video silinecek."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Ayarlar"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Video oynatılamıyor"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Hizalama"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Yazı boyutu"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Ayarı tekrarla"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Altyazılar (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Merkez"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Büyük"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Sol"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Orta"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Sağ"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Küçük"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "İleri"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Önceki"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM dosyaları paylaşılamaz"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Biçim"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Görüşme sırasında video oynatılamıyor."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Mesaj"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Dosya transferi"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-posta"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Boylam"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Enlem"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Hareket etkinleştir"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "%sx hızda sarma."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Harici bellek"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Ses seviyesi"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Video biçimi desteklenmiyor."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Dosya türü desteklenmiyor."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Ses biçimi desteklenmiyor."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Civardaki cihazlar etkinken ileri veya geri sarma kullanılamaz."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Yakalanamıyor."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Döndür"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Önceki ekrana tekrar dönmek için geri tuşuna basın."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Yeterli hafıza yok. Bazı öğeleri silin."
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Yer işaretleri listesi dolu.  Bazılarını silin."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Sarı"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtual 7.1 ch"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Altyazılar (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Tekrarlama modu"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Tekrarlama yok"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Macenta"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Yeşil"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Yazı tipi rengi"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Cam göbeği"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Özel"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Gçrl video (bir kez)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Bağlantı bilgisi"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Oynatıcı değiştir"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Yakala"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Cihaz seçin"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Kllanılablr cihazlar"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Hoparlör"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Beyaz"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Kırmızı"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s saniye"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Oynatma hızı"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d sn"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Kapalı"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Başlık yok"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Cihazım"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Varsayılan yazı tipi"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Çikolatalı kurabiye"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Mavi"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Siyah"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Etkinleştirme"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Uygulama kapatılsın mı ?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "İptal"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Tümünden sonra drdr"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Geçerli ortm tkrarla"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Tümünü tekrarla"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Çözünürlük"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Hoparlor %s ses efektlerini desteklemiyor."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Telefonunuzu döndürerek gelen aramaları, mesaj uyarılarını ve alarmları susturun."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD kart"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Bu dosya sadece ses verilerini destekliyor. Şu anda ses oynatılıyor."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Bu dosya sadece video verilerini destekliyor. Şu anda video oynatılıyor."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Özel depolama"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Kulaklıklar"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Hoparlör"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Duraklat"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "İndir"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Altyazı (CC) seçme"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Altyazıları (CC) önizleme"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Bağlantı başarısız."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Tekrar modu"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Dosya türü desteklenmiyor."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Ses"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmler"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Ses parçası"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Arabellğe al."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Dosya biçimi"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Dil"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Video yok"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Boyut"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Tamam"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Yenile"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Tarih"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Yükleniyor..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Altyazılar (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Sil"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Ana ekrana ekle"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "İsim"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Video oynatılamıyor."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Altyazı mevcut değil"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Çal"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Kapat"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL geçersiz."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Hata"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Cihaz hafızası"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video Oynatıcı"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Paylaşma şekli"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Bir ağ hatası oluştu. Tekrar deneyin."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Bu dosya biçimi yalnızca ses verilerini destekler. Şimdi ses oynatılıyor."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Bu dosya formatı yalnızca video verilerini destekler. Şu anda video oynatılıyor."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Orta"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Açık"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Ayarlar"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videolar"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Paylaş"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Ayrıntılar"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Sil"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Ara belleğe alınıyor - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Hiçbiri"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d sn"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Ses cihazı seç"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Sil"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "İptal"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Bilinmeyen bir hata oluştu veya dosya bozuk olabilir."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Bu dosya türü desteklenmiyor."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "BİTTİ"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Tam"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Oranı koru"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "İPTAL"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Saklama yeri"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Altyazılar (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Kişisel bellek"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Altyazılar bu şekilde görünecek."
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Dosya yok."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Yalnzca ses oynat’ı kpt"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Yalnzca ses oynat’ı aç"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Sadece ses oynatmak için oynatma sırasında Ana ekran tuşuna veya Güç tuşuna basın."
+
diff --git a/vp-main/res/po/uk.po b/vp-main/res/po/uk.po
new file mode 100755 (executable)
index 0000000..73d0941
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Яскравість"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Музика"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Голоси"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "Б"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "ГБ"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "КБ"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Розташування"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "МБ"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Невідомо"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Дата останнього змінення"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Поділитися"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Неможливо відтворити відео"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Сталася помилка з субтитрами."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Файл пошкоджено або карту пам’яті видалено."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Деталі"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Назва"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Це відео буде видалено."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Налаштування"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Неможливо відтворити відео"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Вирівнювання"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Розмір шрифту"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Установка повторення"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитри (приховані)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Центр"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Великий"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Вліво"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "Середній"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "Вправо"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Маленький"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Далі"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Назад"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "Неможливо надати спільний доступ до файлів DRM."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Формат"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Неможливо відтворити відео під час виклику."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Повідом."
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Передача файла"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "Email"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Довгота"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Широта"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Увімк. рухи"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "Швидкість стирання: %sx."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Зовн. місце збереження"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Гучність"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Непідтримуваний відеоформат."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Формат не підтримується."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Непідтримуваний аудіоформат."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Неможливо використовувати перемотування та швидке перемотування у разі ввімкнення наявних поблизу пристроїв."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Неможливо зробити знімок."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Обернути"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Натисніть клавішу «Назад» знову, щоб повернутися до попереднього екрана."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Недостатньо пам’яті. Видаліть деякі об’єкти"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Список закладок заповнено. Видаліть деякі закладки."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Жовтий"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Віртуальний 7.1"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Субтитри (приховані)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Режим повтору"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Без повторювання"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Пурпурний"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Зелений"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Колір шрифту"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Синьо-зелений"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Персоналізований"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Поточ. відео (1 раз)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Відомості про підкл."
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Змінити плеєр"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Зйомка"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "Спільний вміст"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Вибрати пристрій"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Доступні пристрої"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Динамік"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Білий"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Червоний"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s секунд"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Швидкість відтворення"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d сек."
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "Вимкнено"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Немає назви"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Мій пристрій"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Стандартний шрифт"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Синій"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Чорний"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Активація"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Закрити програму?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Скасувати"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Зупинити після усіх"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Повт. поточний запис"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Повторити всі"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Роздільна здатність"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "Деякі звукові ефекти (%s) не підтримуються для динаміка."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Переверніть телефон для вимкнення звуку під час вхідних викликів, сигналів повідомлень і будильників."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-карта"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Цей файл підтримує лише аудіодані. Наразі відтворюється аудіо."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Цей файл підтримує лише відеодані. Наразі відтворюється відео."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Місце збереження особистих даних"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Навушники"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Динамік"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "Пауза"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Завантаження"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Вибрати субтитри (копія)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Поп. перегл. субтитрів (копія)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Збій з'єднання."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Режим повторювання"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Формат не підтримується."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Стандартний"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Голос"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Фільми"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Аудіозапис"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Буфериз..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Формат файла"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Мова"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Немає відео"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "Розмір"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "Готово"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Оновити"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Дата"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Завантаження..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Субтитри (копія)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "Видалити"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Додати на головний екран"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Iм'я"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Неможливо відтворити відео."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Субтитри відсутні"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "Відтворити"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Закрити"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Невірний URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Помилка"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Місце збереження на пристрої"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Відеоплеєр"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Надіслати через"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Сталася помилка мережі. Спробуйте ще раз."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Лише аудіодані підтримуються цим форматом файла. Наразі відтворюється аудіо."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Лише відеодані підтримуються цим форматом файла. Наразі відтворюється відео."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "По центру"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Увімкнено"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Налаштування"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Відео"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Надісл."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Деталі"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "Видалити"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Буферизація: %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Немає"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d сек."
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Вибір аудіопристрою"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Видалити"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Скасувати"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Сталася невідома помилка або файл може бути пошкоджено."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Цей тип файла не підтримується."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "ГОТОВО"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "Розгорн."
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Збер.спів."
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "СКАСУВАТИ"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Місце збереження"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Субтитри (копія)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Особисте місце збереження"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Субтитри матимуть такий вигляд"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Файл не існує."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Вимк. Відтв. лише звук"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Увімк. Відт. лише звук"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Під час відтворення натисніть клавішу «Домашній» або клавішу живлення, щоб відтворювати лише звук."
+
diff --git a/vp-main/res/po/uz.po b/vp-main/res/po/uz.po
new file mode 100755 (executable)
index 0000000..17edc9e
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "Yorqinlik"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "Musiqa"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "Ovozlar"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "Gb"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "Joylashuv"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "Mb"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "Noma’lum"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "Oxirgi o‘zgartirilgan"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "Ulashish"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "Videoni o‘ynatib bo‘lmaydi"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "Subtitrlar bilan bog‘liq xato yuz berdi."
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "Fayl shikastlangan yoki SD-karta olib tashlangan."
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "Tafsilotlar"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "Sarlavha"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "Ushbu video o'chiriladi."
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "Parametrlar"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "Videoni o‘ynatib bo‘lmaydi"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "Tenglashtirish"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "Shrift o‘lchami"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "Takrorlash parametri"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitrlar (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "Markaz"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "Katta"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "Chap"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "O‘rta"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "O‘ng"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "Kichik"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "Keyingi"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "Avvalgi"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM fayllarini ulashib bo‘lmaydi."
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "Format"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "Qo‘ng‘iroq mobaynida video o‘ynatib bo‘lmaydi."
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "Xabar"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "Faylni uzatish"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "E-pochta"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "Uzunlik"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "Kenglik"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "Harakatni yoq"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "%sx tezlikda tozalash."
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "Tashqi xotira"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "Ovoz Balandliigi"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "Qo‘llab-quvvatlanmaydigan video format."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Qo‘llab-quvvatlanmaydigan fayl turi."
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "Qo‘llab-quvvatlanmaydigan audio format."
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "Yaqin-atrofdagi qurilmalar yoqilgan vaqtda tez oldinga o‘tkazish yoki orqaga qaytarishdan foydalanib bo‘lmaydi."
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "Suratga olib bo‘lmaydi."
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "Aylantirish"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "Avvalgi ekranga qaytish uchun “orqaga” tugmasini bosing."
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Xotira yetarli emas. Ba’zi elementlarni o'chiring"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "Saqlangan veb-hujjat ro‘yxati to‘la. Ba’zi veb-hujjatlarni o'chirib tashlash."
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "Sariq"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "Virtual 7.1 k"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "Subtitrlar (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "Takrorlash rejimi"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "Takrorlanish yo‘q"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "Qirmizi"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "Yashil"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "Shrift rangi"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "Moviy"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "Sozlanadigan"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "Video (bir marta)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "Ulanish ma’lumoti"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "Pleyerni o‘zgartirish"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "Rasmga olish"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "Qurilma tanlash"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "Mavjud qurilmalar"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "Dinamik"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "Oq"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "Qizil"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s soniya"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "Ijro tezligi"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d soniya"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "O‘ch."
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "Sarlavha yo‘q"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "Qurilma"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "Birlamchi o'rnatilgan shrift"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "Ko‘k"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "Qora"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "Faollashtirish"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "Ilova yopilsinmi?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "Bek/q."
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "Baridan keyin to‘xta"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "Joriyni takrorlash"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "Barini takrorlash"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "Rezolyutsiya"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "%s ovoz effektlari dinamik tomonidan qo‘llab-quvvatlanmaydi."
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "Kiruvchi qo‘ng‘iroqlar, xabar signallari va budilniklar ovozini o‘chirish uchun telefonni teskari o‘giring."
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD-karta"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "Faqat audio ma’lumot ushbu fayl tomonidan qo‘llab-quvvatlanadi. Hozirda o‘ynayotgan audio."
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "Faqat video ma’lumot ushbu fayl tomonidan qo‘llab-quvvatlanadi. Hozirda o‘ynayotgan video."
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "Maxfiy xotira"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "Quloqliklar"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "Dinamik"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "To‘xtatib turish"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "Yuklab olish"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "Subtitrni tanlash (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "Subtitr dast/ko‘rish (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "Ulanib bo‘lmadi."
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "Takrorlash rejimi"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Qo‘llab-quvvatlanmaydigan fayl turi."
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "Normal"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "Ovoz"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "Filmlar"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "Audio trek"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "Buferlash..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "Fayl formati"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "Til"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "Videolar yo‘q"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "O‘lcham"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "OK"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "Yangilash"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "Sana"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "Yuklanmoqda..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "Subtitrlar (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "O'chirish"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "Asosiy ekranga qo‘shish"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "Ism"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "Videoni o‘ynatib bo‘lmaydi."
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "Subtitrlar yo‘q"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "O‘ynatish"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "Yopish"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "Noto‘g‘ri URL."
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "Xato"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "Qurilma xotirasi"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "Video pleyer"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "Quyidagi orqali ulashish"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "Tarmoq xatosi yuz berdi. Qayta urinib ko‘ring."
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "Faqat audio ma’lumot ushbu fayl formati tomonidan qo‘llab-quvvatlanadi. Hozirda o‘ynayotgan audio."
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "Faqat video ma’lumot ushbu fayl formati tomonidan qo‘llab-quvvatlanadi. Hozirda o‘ynayotgan video."
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "Markaz"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "Yoq."
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "Parametrlar"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "Videolar"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "Ulash."
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "Tafsilotlar"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "O'chirish"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "Buferlash - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "Yo‘q"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d soniya"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "Audio qurilmani tanlash"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Yo‘q qilish"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "Bekor qilish"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "Noma’lum xato yuz berdi yoki zararlangan bo‘lishi mumkin."
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "Bu fayl turi qo‘llab-quvvatlanmaydi."
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "BAJARILDI"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "To‘la"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "Nsbt saqla"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "BEKOR QILISH"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "Xotira joylashuvi"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "Subtitrlar (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "Shaxsiy ombor"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "Sarlavhalar quyidagi ko‘rinishda bo‘ladi"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "Ushbu fayl mavjud emas."
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Faqat audio ijrosini o‘ch"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "Faqat audio o‘y-ni yoq"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "Faqat audio ijro etilishi uchun ijro vaqtida Asosiy tugmani yoki Quvvat tugmasini bosing."
+
diff --git a/vp-main/res/po/zh_CN.po b/vp-main/res/po/zh_CN.po
new file mode 100755 (executable)
index 0000000..772443e
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "亮度"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "音乐"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "语音"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "确定"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "上次修改"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "共享"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "无法播放视频"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "字幕发生错误。"
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "文件已损坏或 SD 卡已移除。"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "详情"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "标题"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "将删除此视频。"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "设定"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "无法播放视频"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "校准"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "字体大小"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "重复设定"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕(CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "居中"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "大"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "左"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "中等"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "右"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "小"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "下一步"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "上一步"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM 文件无法共享。"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "格式"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "通话中无法播放视频。"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "信息"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "文件传输"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "电子邮件"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "经度"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "纬度"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "启用动作"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "以 %sx 倍速度变动。"
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "外部存储器"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "音量"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "不支持的视频格式。"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "不支持的文件类型。"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "不支持的音频格式。"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "当附近设备已启用时无法使用快进和后退。"
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "无法拍摄。"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "旋转"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "再次按下返回键以返回到前一个画面"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "存储空间不足。请删除部分项目。"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "书签列表满。删除部分书签。"
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "黄"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "虚拟 7.1 声道"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕(CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "重复模式"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "不重复"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "洋红"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "绿"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "字体颜色"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "青绿"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "自定义"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "当前视频(一次)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "连接信息"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "更改播放器"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "截图"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "娱乐共享"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "选择设备"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "可用设备"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "扬声器"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "白色"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary 字体"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "红色"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s秒"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "播放速度"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d 秒"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "关"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "无标题"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "我的设备"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "默认字体"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "爵士酷"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky 字体"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "蓝色"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "黑色"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "激活"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "关闭应用程序?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "播放全部后停止"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "重复当前"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "重复全部"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "分辨率"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "扬声器不支持的 %s 音效。"
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "将手机正面朝下以将来电铃声、信息提示音和闹钟铃声静音。"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD 卡"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "该文件仅支持音频数据。正在播放音频。"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "该文件仅支持视频数据。正在播放视频。"
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "私人存储空间"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "耳机"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "扬声器"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "暂停"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "下载"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "选择字幕 (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "预览字幕 (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "连接失败"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "重复模式"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "不支持的文件类型。"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "正常"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "语音"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "电影"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "音轨"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "正在缓冲..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "文件格式"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "语言"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "无视频"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "大小"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "完成"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "刷新"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "日期"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "载入中…"
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "字幕 (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "删除"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "添加到主屏幕"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "名称"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "无法播放录像。"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "无字幕可用"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "播放"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "关闭"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "网址无效"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "错误"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "设备存储"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "视频播放器"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "共享通过"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "网络出错。请重试。"
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "该文件格式仅支持音频数据。正在播放音频。"
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "该文件格式仅支持视频数据。正在播放视频。"
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "中"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "开"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "设定"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "视频"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "共享"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "详情"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "删除"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "正在缓存 - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "无"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d 秒"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "选择音频设备"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "删除"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "取消"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "发生未知错误或文件可能损坏。"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "不支持该文件类型。"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "完成"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "全屏"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "保持比例"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "存储位置"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "字幕 (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "个人存储空间"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "字幕效果"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "此文件不存在"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "禁用仅播放音频"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "启用仅播放音频"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "在播放期间按下主屏幕键或电源键可仅播放音频"
+
diff --git a/vp-main/res/po/zh_HK.po b/vp-main/res/po/zh_HK.po
new file mode 100755 (executable)
index 0000000..a800d22
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "亮度"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "音樂"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "語音"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "確定"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "上次修改"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "分享"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "無法播放影片"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "字幕發生錯誤。"
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "檔案已損壞或 SD 卡已移除。"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "詳細資料"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "標題"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "此影片將被刪除。"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "無法播放影片"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "校準"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "字體大小"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "重複設定"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕 (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "置中"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "大"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "靠左"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "中"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "靠右"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "小"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "下一步"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "上一步"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM 檔案無法共享。"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "格式"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "通話期間無法播放影片。"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "訊息"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "檔案傳輸"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "電子郵件"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "經度"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "緯度"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "啟用動作"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "以 %sx 倍速度刮擦。"
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "外置儲存裝置"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "音量"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "不支援的影片格式。"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "不支援的檔案類型。"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "不支援的音效格式。"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "當附近裝置啟用時無法使用快進或快退。"
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "無法擷取。"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "旋轉"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "再次按下返回鍵以返回先前的螢幕。"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "記憶體不足。請刪除一些項目。"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "書籤清單已滿。請刪除一些書籤。"
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "黃色"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "虛擬數位 7.1 聲道"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕 (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "重複模式"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "不重複播放"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "洋紅色"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "綠色"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "字體顏色"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "青綠色"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "自訂"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "目前影片(一次)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "連接資訊"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "更改播放器"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "截圖"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "AllShare"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "選擇裝置"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "可用裝置"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "揚聲器"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "白色"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary 字體"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "紅色"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s 秒"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "播放速度"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d 秒"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "關"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "無標題"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "我的裝置"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "預設字體"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz 字體"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky 字體"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "藍色"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "黑色"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "啟動"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "要關閉應用程式嗎?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "全部播放後停止"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "重複目前的"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "重複全部"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "解像度"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "揚聲器不支援 %s 音效。"
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "反轉手機以將來電、訊息提示及鬧鈴設為靜音。"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "SD 卡"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "此檔案僅支援音訊數據。現正播放音訊。"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "此檔案僅支援影片數據。現正播放影片。"
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "私人儲存空間"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "耳機"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "揚聲器"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "暫停"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "下載"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "選擇字幕 (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "預覽字幕 (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "連接失敗"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "重複模式"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "不支援的檔案類型。"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "標準"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "語音"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "電影"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "音軌"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "緩衝中..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "檔案格式"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "語言"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "無影片"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "大小"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "完成"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "重新整理"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "日期"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "正在載入..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "字幕 (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "刪除"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "加入至主螢幕"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "名稱"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "無法播放影片。"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "無字幕可用"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "播放"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "關閉"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "網址無效"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "錯誤"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "裝置記憶體"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "影片播放器"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "分享透過"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "發生網絡錯誤。請重試。"
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "此檔案格式僅支援音訊數據。正在播放音訊。"
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "此檔案格式僅支援影片數據。現正播放影片。"
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "中"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "開"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "影片"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "共享"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "詳細資料"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "刪除"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "緩衝中 - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "無"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d 秒"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "選擇音訊裝置"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "刪除"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "取消"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "發生了未知錯誤或檔案可能損壞。"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "不支援此檔案類型。"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "完成"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "全螢幕"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "保持比例"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "儲存裝置位置"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "字幕 (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "個人儲存空間"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "字幕將依此顯示。"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "此檔案不存在。"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "停用僅限播放音訊"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "啟用僅限播放音訊"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "在播放期間按下首頁鍵或電源鍵以僅播放音訊。"
+
diff --git a/vp-main/res/po/zh_TW.po b/vp-main/res/po/zh_TW.po
new file mode 100755 (executable)
index 0000000..38fffbf
--- /dev/null
@@ -0,0 +1,516 @@
+msgid "IDS_VIDEO_OPT_BRIGHTNESS"
+msgstr "亮度"
+
+msgid "IDS_VIDEO_OPT_MUSIC_M_SOUNDALIVE"
+msgstr "音樂"
+
+msgid "IDS_VIDEO_OPT_VOICES_M_PERSON"
+msgstr "語音"
+
+msgid "IDS_VIDEO_BODY_B"
+msgstr "B"
+
+msgid "IDS_VIDEO_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_VIDEO_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_VIDEO_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_VIDEO_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_VIDEO_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_VIDEO_BUTTON_OK"
+msgstr "確認"
+
+msgid "IDS_VIDEO_HEADER_LAST_MODIFIED_M_DATE"
+msgstr "最後一次修改"
+
+msgid "IDS_VIDEO_OPT_SHARE"
+msgstr "分享"
+
+msgid "IDS_VIDEO_HEADER_CANNOT_PLAY_VIDEO_ABB"
+msgstr "無法播放影片"
+
+msgid "IDS_VIDEO_POP_AN_ERROR_OCCURRED_WITH_THE_SUBTITLES"
+msgstr "發生字幕錯誤。"
+
+msgid "IDS_VIDEO_POP_THE_FILE_IS_CORRUPTED_OR_THE_SD_CARD_HAS_BEEN_REMOVED"
+msgstr "檔案已損毀或者 SD 卡已移除。"
+
+msgid "IDS_VIDEO_OPT_DETAILS"
+msgstr "詳細資料"
+
+msgid "IDS_VIDEO_OPT_TITLE"
+msgstr "標題"
+
+msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED"
+msgstr "此影片將被刪除。"
+
+msgid "IDS_VIDEO_HEADER_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_VIDEO_HEADER_UNABLE_TO_PLAY_VIDEO_ABB"
+msgstr "無法播放影片"
+
+msgid "IDS_VIDEO_MBODY_ALIGNMENT"
+msgstr "校準"
+
+msgid "IDS_VIDEO_MBODY_FONT_SIZE"
+msgstr "字型大小"
+
+msgid "IDS_VIDEO_OPT_REPEAT_SETTING_ABB"
+msgstr "重複設定"
+
+msgid "IDS_VIDEO_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕 (CC)"
+
+msgid "IDS_VIDEO_SBODY_CENTRE_M_STATUS"
+msgstr "置中"
+
+msgid "IDS_VIDEO_SBODY_LARGE_M_STATUS"
+msgstr "大"
+
+msgid "IDS_VIDEO_SBODY_LEFT_M_STATUS"
+msgstr "靠左對齊"
+
+msgid "IDS_VIDEO_SBODY_MEDIUM_M_STATUS"
+msgstr "中等"
+
+msgid "IDS_VIDEO_SBODY_RIGHT_M_STATUS"
+msgstr "靠右對齊"
+
+msgid "IDS_VIDEO_SBODY_SMALL_M_STATUS"
+msgstr "小"
+
+msgid "IDS_BR_SK_NEXT"
+msgstr "下一步"
+
+msgid "IDS_BR_SK_PREVIOUS"
+msgstr "上一步"
+
+msgid "IDS_VPL_POP_DRM_FILES_CANNOT_BE_SHARED"
+msgstr "DRM 檔案無法共享。"
+
+msgid "IDS_VPL_OPT_FORMAT"
+msgstr "格式"
+
+msgid "IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL"
+msgstr "無法在通話期間播放影片。"
+
+msgid "IDS_VIDEO_OPT_MESSAGE_ABB"
+msgstr "訊息"
+
+msgid "IDS_VIDEO_OPT_FILE_TRANSFER_ABB"
+msgstr "檔案傳輸"
+
+msgid "IDS_VIDEO_OPT_EMAIL_ABB"
+msgstr "電子郵件"
+
+msgid "IDS_VIDEO_BODY_LONGITUDE"
+msgstr "經度"
+
+msgid "IDS_VIDEO_BODY_LATITUDE"
+msgstr "緯度"
+
+msgid "IDS_MUSIC_BUTTON_ENABLE_MOTION"
+msgstr "啟用動作"
+
+msgid "IDS_VPL_TPOP_SCRUBBING_AT_PSX_SPEED"
+msgstr "以 %sx 速率刮擦。"
+
+msgid "IDS_VPL_TAB_EXTERNAL_STORAGE"
+msgstr "外部儲存裝置"
+
+msgid "IDS_VPL_POP_VOLUME_M_SOUND"
+msgstr "音量"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT"
+msgstr "不支援的視訊格式。"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "不支援的檔案類型。"
+
+msgid "IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT"
+msgstr "不支援的音訊格式。"
+
+msgid "IDS_VPL_POP_UNABLE_TO_USE_FAST_FORWARD_AND_REWIND_WHEN_NEARBY_DEVICES_ARE_ENABLED"
+msgstr "在附近裝置啟用時無法使用快轉或倒帶。"
+
+msgid "IDS_VPL_POP_UNABLE_TO_CAPTURE"
+msgstr "無法擷取。"
+
+msgid "IDS_VPL_POP_ROTATE"
+msgstr "旋轉"
+
+msgid "IDS_VPL_POP_PRESS_THE_BACK_KEY_AGAIN_TO_RETURN_TO_PREVIOUS_SCREEN"
+msgstr "再次按下返回鍵以返回上一個畫面。"
+
+msgid "IDS_VPL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "記憶體不足。請刪除部分項目。"
+
+msgid "IDS_VPL_POP_BOOKMARK_LIST_FULL_DELETE_SOME_BOOKMARKS"
+msgstr "書籤清單已滿。請刪除部分書籤。"
+
+msgid "IDS_VPL_OPT_YELLOW_M_COLOUR"
+msgstr "黃"
+
+msgid "IDS_VPL_OPT_VIRTUAL_71_CH"
+msgstr "虛擬數位 7.1 聲道"
+
+msgid "IDS_VPL_OPT_SUBTITLES_HCC_ABB"
+msgstr "字幕 (CC)"
+
+msgid "IDS_VPL_OPT_SOUNDALIVE"
+msgstr "SoundAlive"
+
+msgid "IDS_VPL_OPT_REPEAT_MODE"
+msgstr "重複模式"
+
+msgid "IDS_VPL_OPT_NO_REPEAT"
+msgstr "不重覆播放"
+
+msgid "IDS_VPL_OPT_MAGENTA_M_COLOUR"
+msgstr "洋紅"
+
+msgid "IDS_VPL_OPT_GREEN"
+msgstr "綠"
+
+msgid "IDS_VPL_OPT_FONT_COLOUR"
+msgstr "字型顏色"
+
+msgid "IDS_VPL_OPT_CYAN_M_COLOUR"
+msgstr "青綠"
+
+msgid "IDS_VPL_OPT_CUSTOM"
+msgstr "自訂"
+
+msgid "IDS_VPL_OPT_CURRENT_VIDEO_HONCE_ABB"
+msgstr "目前影片(一次)"
+
+msgid "IDS_VPL_OPT_CONNECTION_INFO_ABB"
+msgstr "連接資訊"
+
+msgid "IDS_VPL_OPT_CHANGE_PLAYER"
+msgstr "變更播放器"
+
+msgid "IDS_VPL_OPT_CAPTURE"
+msgstr "截圖"
+
+msgid "IDS_VPL_OPT_ALLSHARE"
+msgstr "數位連結中心"
+
+msgid "IDS_VPL_HEADER_SELECT_DEVICE_ABB"
+msgstr "選擇裝置"
+
+msgid "IDS_VPL_HEADER_AVAILABLE_DEVICES_ABB"
+msgstr "可用裝置"
+
+msgid "IDS_VPL_BUTTON_SPEAKER_ABB"
+msgstr "揚聲器"
+
+msgid "IDS_VPL_BODY_WHITE"
+msgstr "白色"
+
+msgid "IDS_VPL_BODY_UDRGOTHICM_M_FONT"
+msgstr "UDRGothicM"
+
+msgid "IDS_VPL_BODY_UDMINCHO_M_FONT"
+msgstr "UDMincho"
+
+msgid "IDS_VPL_BODY_ROSEMARY_M_FONT"
+msgstr "Rosemary 字體"
+
+msgid "IDS_VPL_BODY_RED_ABB"
+msgstr "紅"
+
+msgid "IDS_VPL_BODY_PS_SECONDS"
+msgstr "%s 秒"
+
+msgid "IDS_VPL_BODY_POP_M_FONT"
+msgstr "POP"
+
+msgid "IDS_VPL_BODY_PLAY_SPEED"
+msgstr "播放速度"
+
+msgid "IDS_VPL_BODY_PD_SECS"
+msgstr "%d 秒"
+
+msgid "IDS_VPL_BODY_OFF"
+msgstr "關"
+
+msgid "IDS_VPL_BODY_NO_TITLE"
+msgstr "無標題"
+
+msgid "IDS_VPL_BODY_MY_DEVICE"
+msgstr "我的裝置"
+
+msgid "IDS_VPL_BODY_DEFAULT_FONT"
+msgstr "預設字體"
+
+msgid "IDS_VPL_BODY_COOL_JAZZ_M_FONT"
+msgstr "Cool jazz 字體"
+
+msgid "IDS_VPL_BODY_CHOCO_COOKY_M_FONT"
+msgstr "Choco cooky 字體"
+
+msgid "IDS_VPL_BODY_BLUE"
+msgstr "藍色"
+
+msgid "IDS_VPL_BODY_BLACK"
+msgstr "黑色"
+
+msgid "IDS_VPL_BODY_ACTIVATION"
+msgstr "啟動"
+
+msgid "IDS_SMEMO_POP_CLOSE_APPLICATION_Q"
+msgstr "要關閉應用程式嗎?"
+
+msgid "IDS_VIDEO_SK_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_VIDEO_OPT_STOP_AFTER_ALL_ABB"
+msgstr "全部播放後停止"
+
+msgid "IDS_VIDEO_OPT_REPEAT_CURRENT_ABB"
+msgstr "重複目前影片"
+
+msgid "IDS_VIDEO_OPT_REPEAT_ALL_ABB"
+msgstr "重複全部"
+
+msgid "IDS_VIDEO_BODY_RESOLUTION"
+msgstr "解析度"
+
+msgid "IDS_VIDEO_BODY_PS_SOUND_EFFECTS_NOT_SUPPORTED_BY_SPEAKER"
+msgstr "揚聲器不支援 %s 音效。"
+
+msgid "IDS_MUSIC_BODY_TURN_PHONE_OVER_TO_MUTE_INCOMING_CALLS_MESSAGE_ALERTS_AND_ALARMS"
+msgstr "翻轉手機以將來電、訊息提醒及鬧鈴設為靜音。"
+
+msgid "IDS_ST_BODY_SD_CARD"
+msgstr "記憶卡"
+
+msgid "IDS_VPL_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_AUDIO"
+msgstr "此檔案僅支援音訊資料。現正播放音訊。"
+
+msgid "IDS_VPL_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_NOW_PLAYING_VIDEO"
+msgstr "此檔案僅支援影片資料。現正播放影片。"
+
+msgid "IDS_ST_BODY_PRIVATE_STORAGE"
+msgstr "私密儲存空間"
+
+msgid "IDS_MUSIC_OPT_HEADPHONES_ABB"
+msgstr "耳機"
+
+msgid "IDS_MUSIC_OPT_SPEAKER"
+msgstr "揚聲器"
+
+msgid "IDS_MUSIC_OPT_PAUSE"
+msgstr "暫停"
+
+msgid "IDS_VIDEO_BUTTON_DOWNLOAD"
+msgstr "下載"
+
+msgid "IDS_VIDEO_MBODY_SELECT_SUBTITLES_HCC"
+msgstr "選擇字幕 (CC)"
+
+msgid "IDS_VIDEO_NPBODY_PREVIEW_SUBTITLES_HCC_ABB"
+msgstr "預覽字幕 (CC)"
+
+msgid "IDS_COM_POP_CONNECTION_FAILED"
+msgstr "連線失敗"
+
+msgid "IDS_VIDEO_OPT_REPEAT_MODE_ABB"
+msgstr "重複模式"
+
+msgid "IDS_VIDEO_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "不支援的檔案類型。"
+
+msgid "IDS_VIDEO_OPT_NORMAL_M_SOUND_ABB"
+msgstr "標準"
+
+msgid "IDS_VIDEO_BODY_VOICE"
+msgstr "語音"
+
+msgid "IDS_VIDEO_BODY_MOVIES"
+msgstr "電影"
+
+msgid "IDS_VIDEO_OPT_AUDIO_TRACK_ABB"
+msgstr "音軌"
+
+msgid "IDS_VIDEO_BODY_BUFFERING_ING_ABB"
+msgstr "緩衝中..."
+
+msgid "IDS_VIDEO_BODY_FILE_FORMAT"
+msgstr "檔案格式"
+
+msgid "IDS_VIDEO_BODY_LANGUAGE"
+msgstr "語言"
+
+msgid "IDS_VIDEO_BODY_NO_VIDEOS"
+msgstr "無影片"
+
+msgid "IDS_VIDEO_BODY_SIZE"
+msgstr "大小"
+
+msgid "IDS_VIDEO_BUTTON_DONE"
+msgstr "完成"
+
+msgid "IDS_VIDEO_BUTTON_REFRESH"
+msgstr "重新整理"
+
+msgid "IDS_VIDEO_HEADER_DATE"
+msgstr "日期"
+
+msgid "IDS_VIDEO_HEADER_LOADING_ING_ABB"
+msgstr "正在載入..."
+
+msgid "IDS_VIDEO_HEADER_SUBTITLES_HCC_ABB2"
+msgstr "字幕 (CC)"
+
+msgid "IDS_VIDEO_IOPT3_DELETE"
+msgstr "刪除"
+
+msgid "IDS_VIDEO_OPT_ADD_TO_HOME_SCREEN_ABB"
+msgstr "新增至主畫面"
+
+msgid "IDS_VIDEO_OPT_FACEBOOK_ABB"
+msgstr "Facebook"
+
+msgid "IDS_VIDEO_OPT_HDMI"
+msgstr "HDMI"
+
+msgid "IDS_VIDEO_OPT_NAME"
+msgstr "名稱"
+
+msgid "IDS_VIDEO_OPT_SOUNDALIVE_ABB2"
+msgstr "SoundAlive"
+
+msgid "IDS_VIDEO_OPT_YOUTUBE_ABB"
+msgstr "YouTube"
+
+msgid "IDS_VIDEO_POP_UNABLE_TO_PLAY_VIDEO"
+msgstr "無法播放影片。"
+
+msgid "IDS_VIDEO_SBODY_NO_SUBTITLES_AVAILABLE_M_STATUS"
+msgstr "無可用字幕"
+
+msgid "IDS_VIDEO_SK3_PLAY"
+msgstr "播放"
+
+msgid "IDS_VIDEO_SK_CLOSE"
+msgstr "關閉"
+
+msgid "IDS_VPL_POP_INVALID_URL"
+msgstr "URL 無效"
+
+msgid "IDS_CHATON_HEADER_ERROR_ABB"
+msgstr "錯誤"
+
+msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE"
+msgstr "裝置儲存空間"
+
+msgid "IDS_COM_BODY_VIDEO_PLAYER_T_MAINMENU"
+msgstr "影片播放器"
+
+msgid "IDS_VIDEO_OPT_SHARE_VIA"
+msgstr "分享方式"
+
+msgid "IDS_VIDEO_POP_A_NETWORK_ERROR_HAS_OCCURRED_TRY_AGAIN"
+msgstr "發生網路錯誤。請重試。"
+
+msgid "IDS_VIDEO_TPOP_ONLY_AUDIO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_AUDIO"
+msgstr "此檔案格式僅支援音訊資料。現正播放音訊。"
+
+msgid "IDS_VIDEO_TPOP_ONLY_VIDEO_DATA_SUPPORTED_BY_THIS_FILE_FORMAT_NOW_PLAYING_VIDEO"
+msgstr "此檔案格式僅支援影片資料。現正播放影片。"
+
+msgid "IDS_VPL_BODY_CENTRE"
+msgstr "中心"
+
+msgid "IDS_VPL_BODY_ON"
+msgstr "開"
+
+msgid "IDS_VPL_BODY_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_VPL_BODY_VIDEOS_T_MAINMENU"
+msgstr "影片播放器"
+
+msgid "IDS_VPL_BUTTON_SHARE"
+msgstr "分享"
+
+msgid "IDS_VPL_HEADER_DETAILS"
+msgstr "詳細資料"
+
+msgid "IDS_VPL_OPT_DELETE"
+msgstr "刪除"
+
+msgid "IDS_VPL_POP_BUFFERING_PDP"
+msgstr "緩衝中 - %d%"
+
+msgid "IDS_VIDEO_OPT_NONE"
+msgstr "無"
+
+msgid "IDS_VIDEO_BODY_PD_SECS_ABB3"
+msgstr "%d 秒"
+
+msgid "IDS_MUSIC_HEADER_SOUNDALIVE_ABB3"
+msgstr "SoundAlive"
+
+msgid "IDS_MP_HEADER_SELECT_AUDIO_DEVICE"
+msgstr "選擇音訊裝置"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "刪除"
+
+msgid "IDS_CLOCK_BUTTON_CANCEL"
+msgstr "取消"
+
+msgid "IDS_VIDEO_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED_OR_THE_FILE_MAY_BE_CORRUPT"
+msgstr "發生未知的錯誤或者檔案已損毀。"
+
+msgid "IDS_VIDEO_POP_THIS_FILE_TYPE_IS_NOT_SUPPORTED"
+msgstr "不支援該檔案類別。"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB"
+msgstr "完成"
+
+msgid "IDS_VPL_BUTTON_FULL_M_SCREEN_ABB"
+msgstr "全螢幕"
+
+msgid "IDS_VPL_BUTTON_KEEP_RATIO_ABB"
+msgstr "保持長寬比"
+
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_TPLATFORM_MBODY_STORAGE_LOCATION"
+msgstr "儲存裝置位置"
+
+msgid "IDS_GP_BODY_SUBTITLES_HCC"
+msgstr "字幕 (CC)"
+
+msgid "IDS_GALLERY_BODY_PERSONAL_STORAGE"
+msgstr "個人儲存空間"
+
+msgid "IDS_ACCS_BODY_CAPTIONS_WILL_LOOK_LIKE_THIS"
+msgstr "字幕將依此顯示"
+
+msgid "IDS_COM_POP_FILE_NOT_EXIST"
+msgstr "此檔案不存在。"
+
+msgid "IDS_VPL_OPT_DISABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "停用僅播放音訊"
+
+msgid "IDS_VPL_OPT_ENABLE_PLAY_AUDIO_ONLY_ABB"
+msgstr "啟用僅播放音訊"
+
+msgid "IDS_VPL_SBODY_PRESS_THE_HOME_KEY_OR_THE_POWER_KEY_DURING_PLAYBACK_TO_PLAY_AUDIO_ONLY"
+msgstr "播放期間按下首頁鍵或電源鍵即可僅播放音訊。"
+
diff --git a/vp-main/shared/res/org.tizen.video-player.png b/vp-main/shared/res/org.tizen.video-player.png
new file mode 100755 (executable)
index 0000000..7b568a6
Binary files /dev/null and b/vp-main/shared/res/org.tizen.video-player.png differ
diff --git a/vp-main/src/serviceParser/vp-service-parser.c b/vp-main/src/serviceParser/vp-service-parser.c
new file mode 100755 (executable)
index 0000000..579c356
--- /dev/null
@@ -0,0 +1,1308 @@
+/*
+ * Copyright (c) 2020 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 <string.h>
+#include <app_preference.h>
+#include <Ecore_File.h>
+
+#include "vp-media-content-util.h"
+
+#include "vp-service-parser.h"
+#include "vp-play-log.h"
+#include "vp-file-util.h"
+
+
+#define VP_VIDEO_MULTI_WIN_TYPE_KEY            "http://tizen.org/appcontrol/data/miniapp"
+#define VP_VIDEO_MULTI_WIN_ON_VALUE            "on"
+#define VP_VIDEO_EDIT_MODE_KEY                 "edit_mode"
+#define VP_VIDEO_LAUNCHED_BY_APP_KEY           "launching_application"
+#define VP_VIDEO_SORT_TYPE_KEY                 "order_type"
+#define VP_VIDEO_LIST_TYPE_KEY                 "video_list_type"
+#define VP_VIDEO_DEVICE_ID_KEY                 "Device id"
+#define VP_VIDEO_DMR_ID_KEY                            "DMR_ID"
+
+#define VP_VIDEO_COOKIE_KEY                    "cookie"
+#define VP_VIDEO_PROXY_KEY                     "proxy"
+
+#define VP_VIDEO_URI_PATH_KEY                  "path"
+#define VP_VIDEO_EXIT_ON_BACK                  "ExitOnBack"
+
+#define VP_VIDEO_STORE_DOWNLOAD                        "StoreDownload"
+#define VP_VIDEO_STORE_DOWNLOAD_ON_VALUE       "on"
+#define VP_VIDEO_STORE_DOWNLOAD_PLAYED_TIME    "StoreItemLastPlayPosition"
+#define VP_VIDEO_STORE_DOWNLOAD_FILE_SIZE      "StoreDL_filesize"
+
+#define VP_VIDEO_APP_CONTROL_REPEAT_MODE               "repeat_mode"
+#define VP_VIDEO_APP_CONTROL_REPEAT_VALUE_STOP_AFTER_ALL       "stop_after_all"
+
+#define VP_VIDEO_STORE_ORDER_ID                                "store_order_id"
+#define VP_VIDEO_STORE_APP_ID                          "store_app_id"
+#define VP_VIDEO_STORE_MV_ID                           "store_mv_id"
+#define VP_VIDEO_STORE_SERVER_ID                       "store_server_id"
+
+
+#define VP_VIDEO_TITLE_KEY                     "title"
+
+#define VP_VIDEO_DATA_SUBTITLE                 "slink/subtitle"
+#define VP_VIDEO_DATA_POSITION                 "slink/position"
+#define VP_VIDEO_DATA_TITLE                    "slink/title"
+#define VP_VIDEO_DATA_DURATION                 "slink/duration"
+
+#define VP_DEFAULT_VIDEO_ITEM_URL_STR                  "/opt/usr/media/Videos/Color.mp4"
+
+#define VP_VIDEO_FILE_PREFIX           "file://"
+
+#define PREF_VP_PREVIEW_URL_VIDEOS "preference/org.tizen.videos/preview_url_videos"
+#define PREF_VP_PREVIEW_URL_RECORDS "preferencepreference/org.tizen.videos/preview_url_records"
+
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+static char *__VpServiceParserGetMediaUri(app_control_h pAppSvcHandle);
+
+static bool __VpServiceParserGetMultiAppControl(app_control_h
+                                                                                               pAppSvcHandle,
+                                                                                               const char *key,
+                                                                                               char ***szArrayVal,
+                                                                                               int *nLength);
+
+static VpLaunchType __VpServiceParserGetLaunchType(app_control_h
+                                                                                                  pAppSvcHandle);
+static Eina_Bool __VpServiceParserGetLaunchMultiWindow(app_control_h
+                                                                                                          pAppSvcHandle);
+static Eina_Bool __VpServiceParserGetStoreDownloadMode(app_control_h
+                                                                                                          pAppSvcHandle);
+static double __VpServiceParserGetStoreDownloadFileSize(app_control_h
+                                                                                                               pAppSvcHandle);
+static int __VpServiceParserGetStoreDownloadPlayedTime(app_control_h
+                                                                                                          pAppSvcHandle);
+static Eina_Bool __VpServiceParserGetRepeatMode(app_control_h
+                                                                                               pAppSvcHandle);
+static void __VpServiceParserGetStoreOrderInfo(app_control_h pAppSvcHandle,
+                                                                                          VpServiceData *
+                                                                                          pReceiveData);
+
+static Eina_Bool __VpServiceParserGetStreamingLaunch(char *pUri);
+static char *__VpServiceParserGetDeviceID(app_control_h pAppSvcHandle);
+static char *__VpServiceParserGetAutoPlaySetting(app_control_h
+                                                                                                pAppSvcHandle);
+static char *__VpServiceParserGetDMRID(app_control_h pAppSvcHandle);
+
+static char *__VpServiceParserGetCookie(app_control_h pAppSvcHandle);
+static char *__VpServiceParserGetProxy(app_control_h pAppSvcHandle);
+static char *__VpServiceParserGetMediaTitle(app_control_h pAppSvcHandle);
+static Eina_Bool __VpServiceParserGetAUL(app_control_h pAppSvcHandle,
+                                                                                char **dpUri);
+static Eina_Bool __VpServiceParserGetAppControl(app_control_h
+                                                                                               pAppSvcHandle,
+                                                                                               char **dpUri);
+static Eina_Bool __VpServiceParserGetWindowID(app_control_h pAppSvcHandle,
+                                                                                         unsigned int *nXID);
+static VpVideoSortType __VpServiceParserGetSortType(app_control_h
+                                                                                                       pAppSvcHandle);
+static VpVideoPlayListType __VpServiceParserGetListType(app_control_h
+                                                                                                               pAppSvcHandle);
+static Eina_Bool __VpServiceParserCheckURL(char *szURL);
+static Eina_Bool __VpServiceParserCheckFileIsExist(char *szFilePath);
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @param pReceiveData
+ * @return
+ */
+Eina_Bool VpServiceParserGetServiceData(app_control_h pAppSvcHandle,
+                                                                               VpServiceData * pReceiveData)
+{
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("pAppSvcHandle == NULL!!!");
+               return EINA_FALSE;
+       }
+
+       if (pReceiveData == NULL) {
+               VideoLogError("pReceiveData == NULL!!!");
+               return EINA_FALSE;
+       }
+
+       pReceiveData->pMediaUri = __VpServiceParserGetMediaUri(pAppSvcHandle);
+       pReceiveData->szMediaTitle =
+               __VpServiceParserGetMediaTitle(pAppSvcHandle);
+       pReceiveData->eLaunchType =
+               __VpServiceParserGetLaunchType(pAppSvcHandle);
+       pReceiveData->bStoreDownload =
+               __VpServiceParserGetStoreDownloadMode(pAppSvcHandle);
+       pReceiveData->dStoreDL_FileSize =
+               __VpServiceParserGetStoreDownloadFileSize(pAppSvcHandle);
+       pReceiveData->nStorePlayedTime = 0;
+       pReceiveData->bStopAfterRepeat =
+               __VpServiceParserGetRepeatMode(pAppSvcHandle);
+
+       if (pReceiveData->bStoreDownload) {
+               pReceiveData->nStorePlayedTime =
+                       __VpServiceParserGetStoreDownloadPlayedTime(pAppSvcHandle);
+               __VpServiceParserGetStoreOrderInfo(pAppSvcHandle, pReceiveData);
+       }
+
+       if (__VpServiceParserCheckURL(pReceiveData->pMediaUri) == EINA_FALSE) {
+               if (__VpServiceParserGetMultiAppControl
+                       (pAppSvcHandle, APP_CONTROL_DATA_PATH,
+                        &pReceiveData->szMultiPath, &(pReceiveData->nMultiPath))) {
+                       pReceiveData->eLaunchType = VP_LAUNCH_TYPE_MULTI_PATH;
+                       __VpServiceParserGetMultiAppControl(pAppSvcHandle,
+                                                                                               VP_VIDEO_DATA_TITLE,
+                                                                                               &pReceiveData->
+                                                                                               szMultiTitle,
+                                                                                               &(pReceiveData->
+                                                                                                 nMultiTitle));
+                       __VpServiceParserGetMultiAppControl(pAppSvcHandle,
+                                                                                               VP_VIDEO_DATA_SUBTITLE,
+                                                                                               &pReceiveData->
+                                                                                               szMultiSubTitle,
+                                                                                               &(pReceiveData->
+                                                                                                 nMultiSubTitle));
+                       __VpServiceParserGetMultiAppControl(pAppSvcHandle,
+                                                                                               VP_VIDEO_DATA_POSITION,
+                                                                                               &pReceiveData->
+                                                                                               szMultiPosition,
+                                                                                               &(pReceiveData->
+                                                                                                 nMultiPosition));
+                       __VpServiceParserGetMultiAppControl(pAppSvcHandle,
+                                                                                               VP_VIDEO_DATA_DURATION,
+                                                                                               &pReceiveData->
+                                                                                               szMultiDuration,
+                                                                                               &(pReceiveData->
+                                                                                                 nMultiDuration));
+               } else {
+                       preference_get_string(PREF_VP_PREVIEW_URL_VIDEOS,
+                                                                 &(pReceiveData->pMediaUri));
+                       if (__VpServiceParserCheckFileIsExist(pReceiveData->pMediaUri)
+                               == EINA_FALSE) {
+                               preference_set_string(PREF_VP_PREVIEW_URL_VIDEOS, "");
+                               VideoSecureLogError(" == %s ==", pReceiveData->pMediaUri);
+                               if (pReceiveData->pMediaUri) {
+                                       free(pReceiveData->pMediaUri);
+                                       pReceiveData->pMediaUri = NULL;
+                               }
+                               preference_get_string(PREF_VP_PREVIEW_URL_RECORDS,
+                                                                         &(pReceiveData->pMediaUri));
+                               if (__VpServiceParserCheckFileIsExist
+                                       (pReceiveData->pMediaUri) == EINA_FALSE) {
+                                       preference_set_string(PREF_VP_PREVIEW_URL_RECORDS, "");
+                                       VideoSecureLogError(" == %s ==",
+                                                                               pReceiveData->pMediaUri);
+                                       if (pReceiveData->pMediaUri) {
+                                               free(pReceiveData->pMediaUri);
+                                               pReceiveData->pMediaUri = NULL;
+                                       }
+                                       vp_media_content_util_get_first_video(&pReceiveData->
+                                                                                                                 pMediaUri);
+                                       VideoSecureLogError(" == %s ==",
+                                                                               pReceiveData->pMediaUri);
+                                       if (__VpServiceParserCheckFileIsExist
+                                               (pReceiveData->pMediaUri) == EINA_FALSE) {
+                                               pReceiveData->pMediaUri =
+                                                       strdup(VP_DEFAULT_VIDEO_ITEM_URL_STR);
+                                               VideoSecureLogError(" == %s ==",
+                                                                                       pReceiveData->pMediaUri);
+                                       }
+                               }
+                       }
+               }
+       }
+       pReceiveData->nParentXID = 0;
+
+       __VpServiceParserGetWindowID(pAppSvcHandle,
+                                                                &(pReceiveData->nParentXID));
+
+       pReceiveData->bLaunchMultiWindow =
+               __VpServiceParserGetLaunchMultiWindow(pAppSvcHandle);
+
+       if (pReceiveData->pMediaUri != NULL) {
+               pReceiveData->bStreaming =
+                       __VpServiceParserGetStreamingLaunch(pReceiveData->pMediaUri);
+       }
+
+       if (pReceiveData->bStreaming) {
+               pReceiveData->szDeviceID =
+                       __VpServiceParserGetDeviceID(pAppSvcHandle);
+               pReceiveData->szCookie = __VpServiceParserGetCookie(pAppSvcHandle);
+               pReceiveData->szProxy = __VpServiceParserGetProxy(pAppSvcHandle);
+       }
+
+       pReceiveData->szDMRID = __VpServiceParserGetDMRID(pAppSvcHandle);
+
+       if (pReceiveData->eLaunchType >= VP_LAUNCH_TYPE_GALLERY) {
+               pReceiveData->eSortType =
+                       __VpServiceParserGetSortType(pAppSvcHandle);
+               pReceiveData->eListType =
+                       __VpServiceParserGetListType(pAppSvcHandle);
+       } else if (pReceiveData->eLaunchType == VP_LAUNCH_TYPE_LIST) {
+               pReceiveData->eListType =
+                       __VpServiceParserGetListType(pAppSvcHandle);
+       } else {
+               pReceiveData->eSortType = VP_VIDEO_SORT_TYPE_BY_NONE;
+               pReceiveData->eListType = VP_VIDEO_PLAY_LIST_TYPE_NONE;
+       }
+       pReceiveData->szAutoPlay =
+               __VpServiceParserGetAutoPlaySetting(pAppSvcHandle);
+       return EINA_TRUE;
+}
+
+/**
+ *
+ * @param pServiceData
+ */
+void VpServiceParserDestroyServiceData(VpServiceData * pServiceData)
+{
+       if (pServiceData == NULL) {
+               VideoLogError("pServiceData == NULL!!!");
+               return;
+       }
+
+       if (pServiceData->pMediaUri != NULL) {
+               free(pServiceData->pMediaUri);
+               pServiceData->pMediaUri = NULL;
+       }
+
+       if (pServiceData->szMediaTitle != NULL) {
+               free(pServiceData->szMediaTitle);
+               pServiceData->szMediaTitle = NULL;
+       }
+
+       if (pServiceData->szDeviceID != NULL) {
+               free(pServiceData->szDeviceID);
+               pServiceData->szDeviceID = NULL;
+       }
+
+       if (pServiceData->szDMRID != NULL) {
+               free(pServiceData->szDMRID);
+               pServiceData->szDMRID = NULL;
+       }
+
+       if (pServiceData->pStoreOrderId != NULL) {
+               free(pServiceData->pStoreOrderId);
+               pServiceData->pStoreOrderId = NULL;
+       }
+
+       if (pServiceData->pStoreServerId != NULL) {
+               free(pServiceData->pStoreServerId);
+               pServiceData->pStoreServerId = NULL;
+       }
+
+       if (pServiceData->pStoreAppId != NULL) {
+               free(pServiceData->pStoreAppId);
+               pServiceData->pStoreAppId = NULL;
+       }
+
+       if (pServiceData->pStoreMvId != NULL) {
+               free(pServiceData->pStoreMvId);
+               pServiceData->pStoreMvId = NULL;
+       }
+
+       int idx = 0;
+       if (pServiceData->szMultiPath) {
+               for (idx = 0; idx < pServiceData->nMultiPath; idx++) {
+                       if (pServiceData->szMultiPath[idx]) {
+                               free(pServiceData->szMultiPath[idx]);
+                               pServiceData->szMultiPath[idx] = NULL;
+                       }
+               }
+               free(pServiceData->szMultiPath);
+               pServiceData->szMultiPath = NULL;
+       }
+
+       if (pServiceData->szIsSameAP) {
+               for (idx = 0; idx < pServiceData->nSameAP; idx++) {
+                       if (pServiceData->szIsSameAP[idx]) {
+                               free(pServiceData->szIsSameAP[idx]);
+                               pServiceData->szIsSameAP[idx] = NULL;
+                       }
+               }
+               free(pServiceData->szIsSameAP);
+               pServiceData->szIsSameAP = NULL;
+       }
+
+       if (pServiceData->szMultiSubTitle) {
+               for (idx = 0; idx < pServiceData->nMultiSubTitle; idx++) {
+                       if (pServiceData->szMultiSubTitle[idx]) {
+                               free(pServiceData->szMultiSubTitle[idx]);
+                               pServiceData->szMultiSubTitle[idx] = NULL;
+                       }
+               }
+               free(pServiceData->szMultiSubTitle);
+               pServiceData->szMultiSubTitle = NULL;
+       }
+
+
+       if (pServiceData->szMultiTitle) {
+               for (idx = 0; idx < pServiceData->nMultiTitle; idx++) {
+                       if (pServiceData->szMultiTitle[idx]) {
+                               free(pServiceData->szMultiTitle[idx]);
+                               pServiceData->szMultiTitle[idx] = NULL;
+                       }
+               }
+               free(pServiceData->szMultiTitle);
+               pServiceData->szMultiTitle = NULL;
+       }
+
+       if (pServiceData->szMultiPosition) {
+               for (idx = 0; idx < pServiceData->nMultiPosition; idx++) {
+                       if (pServiceData->szMultiPosition[idx]) {
+                               free(pServiceData->szMultiPosition[idx]);
+                               pServiceData->szMultiPosition[idx] = NULL;
+                       }
+               }
+               free(pServiceData->szMultiPosition);
+               pServiceData->szMultiPosition = NULL;
+       }
+
+       if (pServiceData->szMultiDuration) {
+               for (idx = 0; idx < pServiceData->nMultiDuration; idx++) {
+                       if (pServiceData->szMultiDuration[idx]) {
+                               free(pServiceData->szMultiDuration[idx]);
+                               pServiceData->szMultiDuration[idx] = NULL;
+                       }
+               }
+               free(pServiceData->szMultiDuration);
+               pServiceData->szMultiDuration = NULL;
+       }
+
+       free(pServiceData);
+       pServiceData = NULL;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static char *__VpServiceParserGetMediaUri(app_control_h pAppSvcHandle)
+{
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("pAppSvcHandle == NULL!!!");
+               return NULL;
+       }
+
+       char *pUri = NULL;
+
+       if (__VpServiceParserGetAUL(pAppSvcHandle, &pUri) == EINA_FALSE) {
+               if (__VpServiceParserGetAppControl(pAppSvcHandle, &pUri) ==
+                       EINA_FALSE) {
+                       VideoLogInfo("No exist URI path.");
+                       return NULL;
+               }
+       }
+
+       VideoSecureLogInfo("pUri : %s", pUri);
+
+       if (pUri == NULL) {
+               VideoLogError("pUri == NULL!!!");
+               return NULL;
+       }
+
+       if (strstr(pUri, VP_VIDEO_FILE_PREFIX)) {
+               char *szURL =
+                       calloc(1, strlen(pUri) - strlen(VP_VIDEO_FILE_PREFIX) + 1);
+               if (szURL == NULL) {
+                       VideoLogError("szURL == NULL!!!");
+                       return NULL;
+               }
+
+               snprintf(szURL, strlen(pUri) - strlen(VP_VIDEO_FILE_PREFIX) + 1,
+                                "%s", pUri + strlen(VP_VIDEO_FILE_PREFIX));
+               if (pUri) {
+                       free(pUri);
+                       pUri = NULL;
+               }
+               return szURL;
+       } else {
+               return pUri;
+       }
+
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @param key
+ * @param szArrayVal
+ * @param nLength
+ * @return
+ */
+static bool __VpServiceParserGetMultiAppControl(app_control_h
+                                                                                               pAppSvcHandle,
+                                                                                               const char *key,
+                                                                                               char ***szArrayVal,
+                                                                                               int *nLength)
+{
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("pAppSvcHandle == NULL!!!");
+               return FALSE;
+       }
+       int nRet = APP_CONTROL_ERROR_NONE;
+       int nLen = 0;
+
+       nRet =
+               app_control_get_extra_data_array(pAppSvcHandle, key, szArrayVal,
+                                                                                &nLen);
+       if (nRet != APP_CONTROL_ERROR_NONE) {
+               VideoLogError("app_control_get_extra_data_array is fail [0x%x]",
+                                         nRet);
+               return FALSE;
+       }
+
+       if (nLen < 1) {
+               if (*szArrayVal == NULL) {
+                       // No sub items,
+                       free(*szArrayVal);
+                       *szArrayVal = NULL;
+               }
+
+               return FALSE;
+       }
+
+       *nLength = nLen;
+       VideoLogInfo("Length %d", nLen);
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static VpLaunchType __VpServiceParserGetLaunchType(app_control_h
+                                                                                                  pAppSvcHandle)
+{
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("pAppSvcHandle == NULL!!!");
+               return VP_LAUNCH_TYPE_NONE;
+       }
+
+       char *pLaunchingByOtherApp = NULL;
+       char *pLaunchMode = NULL;
+       VpLaunchType eLaunchType = VP_LAUNCH_TYPE_NONE;
+
+       if (app_control_get_extra_data
+               (pAppSvcHandle, "View Mode",
+                &pLaunchMode) == APP_CONTROL_ERROR_NONE) {
+               if (pLaunchMode != NULL) {
+                       if (strncmp(pLaunchMode, "EMAIL", strlen(pLaunchMode)) == 0) {
+                               eLaunchType = VP_LAUNCH_TYPE_EMAIL;
+                               goto RESULT_RETURN;
+                       }
+               }
+       }
+
+       if (app_control_get_extra_data
+               (pAppSvcHandle, VP_VIDEO_LAUNCHED_BY_APP_KEY,
+                &pLaunchingByOtherApp) != APP_CONTROL_ERROR_NONE) {
+               VideoLogWarning
+                       ("No exist Service handle key of MP_VIDEO_LAUNCHED_BY_APP_KEY");
+               eLaunchType = VP_LAUNCH_TYPE_NONE;
+               goto RESULT_RETURN;
+       }
+
+       if (pLaunchingByOtherApp == NULL) {
+               VideoLogWarning("pLaunchingByOtherApp is NULL");
+               goto RESULT_RETURN;
+       }
+
+       if (strcmp(pLaunchingByOtherApp, "gallery") == 0) {
+               eLaunchType = VP_LAUNCH_TYPE_GALLERY;
+       } else if (strcmp(pLaunchingByOtherApp, "myfile") == 0) {
+               eLaunchType = VP_LAUNCH_TYPE_MYFILE;
+       } else if (strcmp(pLaunchingByOtherApp, "store") == 0) {
+               eLaunchType = VP_LAUNCH_TYPE_STORE;
+       } else if (strcmp(pLaunchingByOtherApp, "list") == 0) {
+               eLaunchType = VP_LAUNCH_TYPE_LIST;
+       } else if (strcmp(pLaunchingByOtherApp, "image_viewer") == 0) {
+               char *pEditMode = NULL;
+
+               if (app_control_get_extra_data
+                       (pAppSvcHandle, VP_VIDEO_EDIT_MODE_KEY,
+                        &pEditMode) != APP_CONTROL_ERROR_NONE) {
+                       eLaunchType = VP_LAUNCH_TYPE_IMAGE_VIEWER;
+
+                       if (pEditMode != NULL) {
+                               free(pEditMode);
+                               pEditMode = NULL;
+                       }
+               } else {
+                       if (pEditMode != NULL) {
+                               if (strcmp(pEditMode, "trim") == 0) {
+                                       eLaunchType = VP_LAUNCH_TYPE_IMAGE_VIEWER_TRIM;
+                               } else {
+                                       eLaunchType = VP_LAUNCH_TYPE_IMAGE_VIEWER;
+                               }
+
+                               free(pEditMode);
+                               pEditMode = NULL;
+                       } else {
+                               eLaunchType = VP_LAUNCH_TYPE_IMAGE_VIEWER;
+                       }
+               }
+       } else if (strcmp(pLaunchingByOtherApp, "email") == 0) {
+               eLaunchType = VP_LAUNCH_TYPE_EMAIL;
+       } else if (strcmp(pLaunchingByOtherApp, "message") == 0) {
+               eLaunchType = VP_LAUNCH_TYPE_MMS;
+       } else if (strcmp(pLaunchingByOtherApp, "light_play_view") == 0) {
+               eLaunchType = VP_LAUNCH_TYPE_SIMPLE;
+       } else {
+               eLaunchType = VP_LAUNCH_TYPE_NONE;
+       }
+
+
+  RESULT_RETURN:
+       if (pLaunchingByOtherApp != NULL) {
+               free(pLaunchingByOtherApp);
+               pLaunchingByOtherApp = NULL;
+       }
+       VideoLogError("LaunchType = %d", eLaunchType);
+
+       return eLaunchType;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static Eina_Bool __VpServiceParserGetLaunchMultiWindow(app_control_h
+                                                                                                          pAppSvcHandle)
+{
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("pAppSvcHandle == NULL!!!");
+               return EINA_FALSE;
+       }
+
+       Eina_Bool bMultiWindow = EINA_FALSE;
+       char *pMultiWindowType = NULL;
+
+       if (app_control_get_extra_data
+               (pAppSvcHandle, VP_VIDEO_MULTI_WIN_TYPE_KEY,
+                &pMultiWindowType) != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("No exist multi window type token.");
+               bMultiWindow = EINA_FALSE;
+       }
+
+       if (pMultiWindowType != NULL) {
+               if (strcmp(pMultiWindowType, VP_VIDEO_MULTI_WIN_ON_VALUE) == 0) {
+                       bMultiWindow = EINA_TRUE;
+               }
+
+               free(pMultiWindowType);
+               pMultiWindowType = NULL;
+       }
+
+       return bMultiWindow;
+}
+
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static Eina_Bool __VpServiceParserGetStoreDownloadMode(app_control_h
+                                                                                                          pAppSvcHandle)
+{
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("pAppSvcHandle == NULL!!!");
+               return EINA_FALSE;
+       }
+
+       Eina_Bool bStoreDownload = EINA_FALSE;
+       char *pStoreDownloadValue = NULL;
+
+       if (app_control_get_extra_data
+               (pAppSvcHandle, VP_VIDEO_STORE_DOWNLOAD,
+                &pStoreDownloadValue) != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("No exist store download type");
+               bStoreDownload = EINA_FALSE;
+       }
+
+       if (pStoreDownloadValue != NULL) {
+               if (strcmp(pStoreDownloadValue, VP_VIDEO_STORE_DOWNLOAD_ON_VALUE)
+                       == 0) {
+                       bStoreDownload = EINA_TRUE;
+               }
+
+               free(pStoreDownloadValue);
+               pStoreDownloadValue = NULL;
+       }
+
+       return bStoreDownload;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static double __VpServiceParserGetStoreDownloadFileSize(app_control_h
+                                                                                                               pAppSvcHandle)
+{
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("pAppSvcHandle == NULL!!!");
+               return EINA_FALSE;
+       }
+
+       char *pStoreDownloadFileSize = NULL;
+       double dFileSize = 0;
+
+       if (app_control_get_extra_data
+               (pAppSvcHandle, VP_VIDEO_STORE_DOWNLOAD_FILE_SIZE,
+                &pStoreDownloadFileSize) != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("No exist store download file size");
+       }
+
+       if (pStoreDownloadFileSize != NULL) {
+               dFileSize = atof(pStoreDownloadFileSize);
+               VideoLogInfo("dFileSize : %f", dFileSize);
+               free(pStoreDownloadFileSize);
+               pStoreDownloadFileSize = NULL;
+       }
+
+       return dFileSize;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static int __VpServiceParserGetStoreDownloadPlayedTime(app_control_h
+                                                                                                          pAppSvcHandle)
+{
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("pAppSvcHandle == NULL!!!");
+               return 0;
+       }
+
+       int nPlayedTime = 0;
+       char *pPlayedTime = NULL;
+
+       if (app_control_get_extra_data
+               (pAppSvcHandle, VP_VIDEO_STORE_DOWNLOAD_PLAYED_TIME,
+                &pPlayedTime) != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("No exist multi window type token.");
+       }
+
+       if (pPlayedTime != NULL) {
+               nPlayedTime = atoi(pPlayedTime);
+               free(pPlayedTime);
+               pPlayedTime = NULL;
+       }
+
+       return nPlayedTime;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static Eina_Bool __VpServiceParserGetRepeatMode(app_control_h
+                                                                                               pAppSvcHandle)
+{
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("pAppSvcHandle == NULL!!!");
+               return EINA_FALSE;
+       }
+
+       Eina_Bool bRepeatMode = EINA_FALSE;
+       char *pRepeatModeValue = NULL;
+
+       if (app_control_get_extra_data
+               (pAppSvcHandle, VP_VIDEO_APP_CONTROL_REPEAT_MODE,
+                &pRepeatModeValue) != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("No exist repeat mode value");
+               bRepeatMode = EINA_FALSE;
+       }
+
+       if (pRepeatModeValue != NULL) {
+               if (strcmp
+                       (pRepeatModeValue,
+                        VP_VIDEO_APP_CONTROL_REPEAT_VALUE_STOP_AFTER_ALL) == 0) {
+                       bRepeatMode = EINA_TRUE;
+               }
+
+               free(pRepeatModeValue);
+               pRepeatModeValue = NULL;
+       }
+
+       return bRepeatMode;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @param pReceiveData
+ */
+static void __VpServiceParserGetStoreOrderInfo(app_control_h pAppSvcHandle,
+                                                                                          VpServiceData *
+                                                                                          pReceiveData)
+{
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("pAppSvcHandle == NULL!!!");
+               return;
+       }
+
+       if (pReceiveData == NULL) {
+               VideoLogError("pReceiveData == NULL!!!");
+               return;
+       }
+
+       if (app_control_get_extra_data
+               (pAppSvcHandle, VP_VIDEO_STORE_ORDER_ID,
+                &pReceiveData->pStoreOrderId) != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("No exist VP_VIDEO_STORE_ORDER_ID.");
+               goto NOT_EXISTED_INFO;
+       }
+
+       if (app_control_get_extra_data
+               (pAppSvcHandle, VP_VIDEO_STORE_APP_ID,
+                &pReceiveData->pStoreAppId) != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("No exist VP_VIDEO_STORE_APP_ID.");
+               goto NOT_EXISTED_INFO;
+       }
+
+       if (app_control_get_extra_data
+               (pAppSvcHandle, VP_VIDEO_STORE_MV_ID,
+                &pReceiveData->pStoreMvId) != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("No exist store_mv_id.");
+               goto NOT_EXISTED_INFO;
+       }
+
+       if (app_control_get_extra_data
+               (pAppSvcHandle, VP_VIDEO_STORE_SERVER_ID,
+                &pReceiveData->pStoreServerId) != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("No exist VP_VIDEO_STORE_SERVER_ID.");
+               goto NOT_EXISTED_INFO;
+       }
+
+       return;
+
+  NOT_EXISTED_INFO:
+       if (pReceiveData->pStoreOrderId != NULL) {
+               free(pReceiveData->pStoreOrderId);
+               pReceiveData->pStoreOrderId = NULL;
+       }
+
+       if (pReceiveData->pStoreAppId != NULL) {
+               free(pReceiveData->pStoreAppId);
+               pReceiveData->pStoreAppId = NULL;
+       }
+
+       if (pReceiveData->pStoreMvId != NULL) {
+               free(pReceiveData->pStoreMvId);
+               pReceiveData->pStoreMvId = NULL;
+       }
+
+       if (pReceiveData->pStoreServerId != NULL) {
+               free(pReceiveData->pStoreServerId);
+               pReceiveData->pStoreServerId = NULL;
+       }
+
+       return;
+}
+
+/**
+ *
+ * @param pUri
+ * @return
+ */
+static Eina_Bool __VpServiceParserGetStreamingLaunch(char *pUri)
+{
+       if (pUri == NULL) {
+               VideoLogInfo("ERR:  pUri == NULL!!!");
+               return EINA_FALSE;
+       }
+
+       VideoSecureLogInfo("pUri : %s", pUri);
+
+       if (strstr(pUri, "rtp") != NULL) {
+               return EINA_TRUE;
+       } else if (strstr(pUri, "rtsp") != NULL) {
+               return EINA_TRUE;
+       } else if (strstr(pUri, "http") != NULL) {
+               return EINA_TRUE;
+       } else if (strstr(pUri, "https") != NULL) {
+               return EINA_TRUE;
+       }
+
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static char *__VpServiceParserGetDeviceID(app_control_h pAppSvcHandle)
+{
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("pAppSvcHandle == NULL!!!");
+               return NULL;
+       }
+
+       char *szDeviceID = NULL;
+
+       if (app_control_get_extra_data
+               (pAppSvcHandle, VP_VIDEO_DEVICE_ID_KEY,
+                &szDeviceID) != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("No exist buntle type.");
+
+               if (szDeviceID != NULL) {
+                       free(szDeviceID);
+                       szDeviceID = NULL;
+               }
+               return NULL;
+       }
+
+       return szDeviceID;
+
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static char *__VpServiceParserGetAutoPlaySetting(app_control_h
+                                                                                                pAppSvcHandle)
+{
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("pAppSvcHandle == NULL!!!");
+               return NULL;
+       }
+
+       char *AutoSetting = NULL;
+
+       if (app_control_get_extra_data
+               (pAppSvcHandle, "auto_play_setting",
+                &AutoSetting) != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("No exist buntle type.");
+
+               if (!AutoSetting) {
+                       free(AutoSetting);
+                       AutoSetting = NULL;
+               }
+               return NULL;
+       }
+
+       return AutoSetting;
+
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static char *__VpServiceParserGetDMRID(app_control_h pAppSvcHandle)
+{
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("pAppSvcHandle == NULL!!!");
+               return NULL;
+       }
+
+       char *szDMRID = NULL;
+
+       if (app_control_get_extra_data
+               (pAppSvcHandle, VP_VIDEO_DMR_ID_KEY,
+                &szDMRID) != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("No exist buntle type.");
+
+               if (szDMRID != NULL) {
+                       free(szDMRID);
+                       szDMRID = NULL;
+               }
+               return NULL;
+       }
+       VideoLogError("#### %s ####", szDMRID);
+
+       return szDMRID;
+
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static char *__VpServiceParserGetCookie(app_control_h pAppSvcHandle)
+{
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("pAppSvcHandle == NULL!!!");
+               return NULL;
+       }
+
+       char *szCookie = NULL;
+
+       if (app_control_get_extra_data
+               (pAppSvcHandle, VP_VIDEO_COOKIE_KEY,
+                &szCookie) != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("No exist buntle type.");
+
+               if (szCookie != NULL) {
+                       free(szCookie);
+                       szCookie = NULL;
+               }
+               return NULL;
+       }
+       VideoLogError("== [Cookie : %s] ==", szCookie);
+
+       return szCookie;
+
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static char *__VpServiceParserGetProxy(app_control_h pAppSvcHandle)
+{
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("pAppSvcHandle == NULL!!!");
+               return NULL;
+       }
+
+       char *szProxy = NULL;
+
+       if (app_control_get_extra_data
+               (pAppSvcHandle, VP_VIDEO_PROXY_KEY,
+                &szProxy) != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("No exist buntle type.");
+
+               if (szProxy != NULL) {
+                       free(szProxy);
+                       szProxy = NULL;
+               }
+               return NULL;
+       }
+       VideoLogError("== [Proxy : %s] ==", szProxy);
+
+       return szProxy;
+
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static char *__VpServiceParserGetMediaTitle(app_control_h pAppSvcHandle)
+{
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("pAppSvcHandle == NULL!!!");
+               return NULL;
+       }
+
+       char *szMediaTitle = NULL;
+
+       if (app_control_get_extra_data
+               (pAppSvcHandle, VP_VIDEO_TITLE_KEY,
+                &szMediaTitle) != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("No exist app_control_h type.");
+
+               if (szMediaTitle != NULL) {
+                       free(szMediaTitle);
+                       szMediaTitle = NULL;
+               }
+               return NULL;
+       }
+       return szMediaTitle;
+
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @param dpUri
+ * @return
+ */
+static Eina_Bool __VpServiceParserGetAUL(app_control_h pAppSvcHandle,
+                                                                                char **dpUri)
+{
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("pAppSvcHandle == NULL!!!");
+               return EINA_FALSE;
+       }
+
+       if (dpUri == NULL) {
+               VideoLogError("dpUri == NULL!!!");
+               return EINA_FALSE;
+       }
+
+       if (app_control_get_uri(pAppSvcHandle, dpUri) !=
+               APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("No exist uri");
+
+               if (*dpUri != NULL) {
+                       free(*dpUri);
+                       *dpUri = NULL;
+               }
+
+               return EINA_FALSE;
+       }
+
+       if (*dpUri != NULL) {
+               return EINA_TRUE;
+       }
+
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @param dpUri
+ * @return
+ */
+static Eina_Bool __VpServiceParserGetAppControl(app_control_h
+                                                                                               pAppSvcHandle,
+                                                                                               char **dpUri)
+{
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("pAppSvcHandle == NULL!!!");
+               return EINA_FALSE;
+       }
+
+       if (dpUri == NULL) {
+               VideoLogError("dpUri == NULL!!!");
+               return EINA_FALSE;
+       }
+
+       if (app_control_get_extra_data
+               (pAppSvcHandle, VP_VIDEO_URI_PATH_KEY,
+                dpUri) != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("No exist buntle type.");
+
+               if (*dpUri != NULL) {
+                       free(*dpUri);
+                       *dpUri = NULL;
+               }
+
+               return EINA_FALSE;
+       }
+
+       if (*dpUri != NULL) {
+               return EINA_TRUE;
+       }
+
+       return EINA_FALSE;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @param nXID
+ * @return
+ */
+static Eina_Bool __VpServiceParserGetWindowID(app_control_h pAppSvcHandle,
+                                                                                         unsigned int *nXID)
+{
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("pAppSvcHandle == NULL!!!");
+               return EINA_FALSE;
+       }
+#if 0
+       char *szValue = NULL;
+       if (app_control_get_extra_data
+               (pAppSvcHandle, VP_VIDEO_EXIT_ON_BACK,
+                &szValue) != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("No exist buntle type.");
+
+               if (szValue != NULL) {
+                       free(szValue);
+                       szValue = NULL;
+               }
+
+               return EINA_FALSE;
+       }
+
+       if (!strcmp(szValue, "true")) {
+               int nRet = APP_CONTROL_ERROR_NONE;
+
+               nRet = app_control_get_window(pAppSvcHandle, nXID);
+               if (nRet != APP_CONTROL_ERROR_NONE) {
+                       VideoLogWarning("app_control_get_window fail: %d", nRet);
+                       *nXID = 0;
+                       return FALSE;
+               }
+
+       }
+#endif
+       return EINA_TRUE;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static VpVideoSortType __VpServiceParserGetSortType(app_control_h
+                                                                                                       pAppSvcHandle)
+{
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("pAppSvcHandle == NULL!!!");
+               return VP_VIDEO_SORT_TYPE_BY_NONE;
+       }
+
+       VpVideoSortType eSortType = VP_VIDEO_SORT_TYPE_BY_NONE;
+       char *pSortType = NULL;
+
+
+       if (app_control_get_extra_data
+               (pAppSvcHandle, VP_VIDEO_SORT_TYPE_KEY,
+                &pSortType) != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("No exist gallery list sort order type!!!");
+               eSortType = VP_VIDEO_SORT_TYPE_BY_NONE;
+               goto RESULT_RETURN;
+       }
+
+       if (pSortType == NULL) {
+               VideoLogInfo("pSortType == NULL!!!");
+               eSortType = VP_VIDEO_SORT_TYPE_BY_NONE;
+               goto RESULT_RETURN;
+       }
+
+       if (!strcmp(pSortType, "name_asc")) {
+               eSortType = VP_VIDEO_SORT_TYPE_BY_NAME_ASC;
+       } else if (!strcmp(pSortType, "name_desc")) {
+               eSortType = VP_VIDEO_SORT_TYPE_BY_NAME_DESC;
+       } else if (!strcmp(pSortType, "date_asc")) {
+               eSortType = VP_VIDEO_SORT_TYPE_BY_DATE_ASC;
+       } else if (!strcmp(pSortType, "date_desc")) {
+               eSortType = VP_VIDEO_SORT_TYPE_BY_DATE_DESC;
+       } else if (!strcmp(pSortType, "none")) {
+               eSortType = VP_VIDEO_SORT_TYPE_BY_NONE;
+       } else {
+               eSortType = VP_VIDEO_SORT_TYPE_BY_NAME_DESC;
+       }
+
+
+  RESULT_RETURN:
+       if (pSortType != NULL) {
+               free(pSortType);
+               pSortType = NULL;
+       }
+
+       return eSortType;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @return
+ */
+static VpVideoPlayListType __VpServiceParserGetListType(app_control_h
+                                                                                                               pAppSvcHandle)
+{
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("pAppSvcHandle == NULL!!!");
+               return VP_VIDEO_PLAY_LIST_TYPE_NONE;
+       }
+
+       VpVideoPlayListType ePlayType = VP_VIDEO_PLAY_LIST_TYPE_NONE;
+       char *pPlayType = NULL;
+
+       if (app_control_get_extra_data
+               (pAppSvcHandle, VP_VIDEO_LIST_TYPE_KEY,
+                &pPlayType) != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("No exist gallery play list type!!!");
+               ePlayType = VP_VIDEO_PLAY_LIST_TYPE_NONE;
+               goto RESULT_RETURN;
+       }
+
+       if (pPlayType == NULL) {
+               VideoLogInfo("pPlayType == NULL!!!");
+               pPlayType = VP_VIDEO_PLAY_LIST_TYPE_NONE;
+               goto RESULT_RETURN;
+       }
+
+
+       if (!strcmp(pPlayType, "folder")) {
+               ePlayType = VP_VIDEO_PLAY_LIST_TYPE_FOLDER;
+       } else if (!strcmp(pPlayType, "all_folder_video")) {
+               ePlayType = VP_VIDEO_PLAY_LIST_TYPE_ALL_FOLDER_GALLERY;
+       } else if (!strcmp(pPlayType, "tag_video")) {
+               ePlayType = VP_VIDEO_PLAY_LIST_TYPE_TAG_GALLERY;
+       } else if (!strcmp(pPlayType, "favorite")) {
+               ePlayType = VP_VIDEO_PLAY_LIST_TYPE_FAVORITE;
+       } else {
+               ePlayType = VP_VIDEO_PLAY_LIST_TYPE_NONE;
+       }
+
+
+  RESULT_RETURN:
+       if (pPlayType != NULL) {
+               free(pPlayType);
+               pPlayType = NULL;
+       }
+
+       return ePlayType;
+}
+
+/**
+ *
+ * @param szURL
+ * @return
+ */
+static Eina_Bool __VpServiceParserCheckURL(char *szURL)
+{
+       if (szURL == NULL) {
+               return EINA_FALSE;
+       }
+
+       if (strlen(szURL) <= 0) {
+               return EINA_FALSE;
+       }
+
+       return EINA_TRUE;
+}
+
+
+/**
+ *
+ * @param szFilePath
+ * @return
+ */
+static Eina_Bool __VpServiceParserCheckFileIsExist(char *szFilePath)
+{
+       if (szFilePath == NULL) {
+               VideoLogError("szFilePath == NULL!!!");
+               return EINA_FALSE;
+       }
+       Eina_Bool bIsExist = EINA_FALSE;
+
+       if (vp_file_exists(szFilePath)) {
+               bIsExist = EINA_TRUE;
+       }
+
+       return bIsExist;
+}
diff --git a/vp-main/src/vp-main.c b/vp-main/src/vp-main.c
new file mode 100755 (executable)
index 0000000..dbd65f3
--- /dev/null
@@ -0,0 +1,752 @@
+/*
+ * Copyright (c) 2020 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 <app.h>
+#include <system_settings.h>
+#include "vp-main.h"
+#include "vp-service-parser.h"
+#include "vp-play-log.h"
+#include "vp-play-view.h"
+
+static void __appResume(void *pUserData);
+
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_main_realize_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __vp_main_destroy_cb(void *pUserData)
+{
+       if (!pUserData) {
+               VideoLogError("pUserData is NULL");
+               return;
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ * @return
+ */
+static bool __appCreate(void *pUserData)
+{
+       VideoLogWarning("== APP CREATE ==");
+
+       if (pUserData == NULL) {
+               VideoLogError("[ERR] No exist pUserData.");
+               return FALSE;
+       }
+
+       char locale_path[1024] = { 0 };
+       char *path = app_get_resource_path();
+       if (path == NULL) {
+               return FALSE;
+       }
+       snprintf(locale_path, 1024, "%s%s", path, "locale");
+       VideoLogDebug("Locale Path is: %s", locale_path);
+       bindtextdomain("video-player", locale_path);
+       free(path);
+
+       VpAppData *pAppData = (VpAppData *) pUserData;
+
+       pAppData->bPause = FALSE;
+       pAppData->bIsRelaunch = FALSE;
+
+       return TRUE;
+}
+
+/**
+ *
+ * @param data
+ * @return
+ */
+static Eina_Bool __appControl_idler_cb(void *data)
+{
+       VpAppData *pAppData = (VpAppData *) data;
+
+
+       VideoLogPerfS
+               ("============================== RESET =============================");
+
+       video_play_launching_type_t nLaunchingType = VIDEO_PLAY_TYPE_OTHER;
+       video_play_mode_t nMode = VIDEO_PLAY_MODE_NORMAL_VIEW;
+       bool bRelaunchCaller = FALSE;
+       VideoLogError("LaunchType = %d", pAppData->pServiceData->eLaunchType);
+
+       switch (pAppData->pServiceData->eLaunchType) {
+       case VP_LAUNCH_TYPE_STORE:
+               nLaunchingType = VIDEO_PLAY_TYPE_STORE;
+               bRelaunchCaller = TRUE;
+               VideoLogWarning("== VIDEO_PLAY_TYPE_STORE ==");
+               break;
+       case VP_LAUNCH_TYPE_LIST:
+               nLaunchingType = VIDEO_PLAY_TYPE_LIST;
+               VideoLogWarning("== VIDEO_PLAY_TYPE_LIST ==");
+               break;
+       case VP_LAUNCH_TYPE_NONE:
+       case VP_LAUNCH_TYPE_MAX:
+               nLaunchingType = VIDEO_PLAY_TYPE_OTHER;
+               VideoLogWarning("== VIDEO_PLAY_TYPE_OTHER ==");
+               break;
+       case VP_LAUNCH_TYPE_EMAIL:
+               nLaunchingType = VIDEO_PLAY_TYPE_EMAIL;
+               VideoLogWarning("== VIDEO_PLAY_TYPE_EMAIL ==");
+               break;
+       case VP_LAUNCH_TYPE_MMS:
+               nLaunchingType = VIDEO_PLAY_TYPE_MESSAGE;
+               VideoLogWarning("== VIDEO_PLAY_TYPE_MESSAGE ==");
+               break;
+       case VP_LAUNCH_TYPE_MYFILE:
+               nLaunchingType = VIDEO_PLAY_TYPE_MYFILE;
+               VideoLogWarning("== VP_LAUNCH_TYPE_MYFILE ==");
+               break;
+       case VP_LAUNCH_TYPE_GALLERY:
+               nLaunchingType = VIDEO_PLAY_TYPE_GALLERY;
+               VideoLogWarning("== VIDEO_PLAY_TYPE_GALLERY ==");
+               break;
+       case VP_LAUNCH_TYPE_IMAGE_VIEWER:
+               nLaunchingType = VIDEO_PLAY_TYPE_GALLERY;
+               VideoLogWarning("== VIDEO_PLAY_TYPE_GALLERY ==");
+               break;
+       case VP_LAUNCH_TYPE_IMAGE_VIEWER_TRIM:
+               nLaunchingType = VIDEO_PLAY_TYPE_GALLERY;
+               VideoLogWarning("== VP_LAUNCH_TYPE_IMAGE_VIEWER_TRIM ==");
+               break;
+       case VP_LAUNCH_TYPE_MULTI_PATH:
+               nLaunchingType = VIDEO_PLAY_TYPE_MULTI_PATH;
+               break;
+       case VP_LAUNCH_TYPE_SIMPLE:
+               nLaunchingType = VIDEO_PLAY_TYPE_PREVIEW;
+               VideoLogWarning("== VIDEO_PLAY_TYPE_PREVIEW ==");
+               break;
+       }
+
+       if (pAppData->pServiceData->bStreaming) {
+               nLaunchingType = VIDEO_PLAY_TYPE_WEB;
+       }
+
+       bool bPopupMode = FALSE;
+       vp_play_view_get_popup_mode(pAppData->pPlayView, &bPopupMode);
+
+       bool bIsRealize = FALSE;
+
+       if (vp_play_view_is_realize(pAppData->pPlayView, &bIsRealize)) {
+               if (bPopupMode == FALSE && bIsRealize == FALSE
+                       && pAppData->bPause == FALSE) {
+                       VideoLogError("[ERR] Not Yet reailze");
+                       return ECORE_CALLBACK_DONE;
+               }
+       }
+
+       if ((bPopupMode == TRUE && pAppData->pServiceData->szDMRID == NULL)
+               || (g_strcmp0(pAppData->pValStartup, "2") == 0 && bIsRealize)) {        // pAppData->values[0] == 2 for multi window; change video url only, don't destroy the player window.
+               char *szCurURL = NULL;
+               bool bVisible = FALSE;
+
+               if (!vp_play_view_get_url(pAppData->pPlayView, &szCurURL)) {
+                       VideoLogError("vp_play_view_set_url is fail");
+               }
+               if (!vp_play_view_get_visible_status
+                       (pAppData->pPlayView, &bVisible)) {
+                       VideoLogError("vp_play_view_get_visible_status is fail");
+               }
+
+               if (szCurURL && bVisible) {
+                       char *req_uri = NULL;
+                       if (pAppData->pServiceData->pMediaUri) {
+                               req_uri = strdup(pAppData->pServiceData->pMediaUri);
+                       } else if (nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH) {
+                               if (pAppData->pServiceData->szMultiPath[0] != NULL) {
+                                       char *multi_path =
+                                               strstr(pAppData->pServiceData->szMultiPath[0],
+                                                          "file://");
+
+                                       if (multi_path != NULL) {
+                                               req_uri = strdup(multi_path);
+                                       }
+                               }
+                       }
+                       if (req_uri) {
+                               if (g_strcmp0(req_uri, szCurURL) == 0) {
+                                       VideoLogError("skip for same file");
+
+                                       free(szCurURL);
+                                       szCurURL = NULL;
+                                       free(req_uri);
+                                       req_uri = NULL;
+
+                                       Evas_Object *pWin =
+                                               vp_play_view_get_main_window(pAppData->pPlayView);
+                                       if (pWin) {
+                                               if (nLaunchingType == VIDEO_PLAY_TYPE_MESSAGE
+                                                       || nLaunchingType == VIDEO_PLAY_TYPE_EMAIL) {
+                                                       //if current mini mode, change it to full mode
+                                                       VideoLogWarning
+                                                               ("from Message type and Email type. change mini mode to full mode");
+                                                       vp_play_view_change_style_minimode_to_fullmode
+                                                               (pAppData->pPlayView, nLaunchingType);
+                                               }
+                                               elm_win_activate(pWin);
+                                       }
+
+                                       return ECORE_CALLBACK_DONE;
+                               }
+                               free(req_uri);
+                               req_uri = NULL;
+                       } else {
+                               VideoLogError("skip for invalid input");
+
+                               free(szCurURL);
+                               szCurURL = NULL;
+
+                               return ECORE_CALLBACK_DONE;
+                       }
+                       if (szCurURL) {
+                               free(szCurURL);
+                       }
+                       szCurURL = NULL;
+               }
+
+               if (!vp_play_view_unrealize(pAppData->pPlayView)) {
+                       VideoLogError("vp_play_view_unrealize is fail");
+               }
+
+               if (!vp_play_view_set_url
+                       (pAppData->pPlayView, pAppData->pServiceData->pMediaUri)) {
+                       VideoLogError("vp_play_view_set_url is fail");
+               }
+
+               vp_play_view_set_launching_mode(pAppData->pPlayView,
+                                                                               nLaunchingType);
+               if (szCurURL) {
+                       free(szCurURL);
+                       szCurURL = NULL;
+               }
+       } else {
+               if (pAppData->pPlayView) {
+#ifdef _PERF_TEST_
+                       vp_play_view_reset(pAppData->pPlayView, nMode);
+#else
+                       vp_play_view_reset_audio_only(pAppData->pPlayView);
+                       vp_play_view_destroy(pAppData->pPlayView);
+#endif
+                       pAppData->pPlayView = NULL;
+               }
+
+               if (pAppData->pPlayView == NULL) {
+                       pAppData->pPlayView =
+                               vp_play_view_create(NULL,
+                                                                       pAppData->pServiceData->nParentXID,
+                                                                       nMode, nLaunchingType);
+                       if (pAppData->pPlayView == NULL) {
+                               VideoLogError("vp_play_view_create is fail");
+                               elm_exit();
+                               return ECORE_CALLBACK_DONE;
+                       }
+               }
+
+
+               Evas_Object *pWin = NULL;
+               pWin = vp_play_view_get_main_window(pAppData->pPlayView);
+
+               evas_object_show(pWin);
+               elm_win_activate(pWin);
+
+
+               if (!vp_play_view_set_callback
+                       (pAppData->pPlayView, VIDEO_PLAY_CB_TYPE_REALIZE,
+                        __vp_main_realize_cb)) {
+                       VideoLogError("vp_play_view_set_callback is fail");
+                       return ECORE_CALLBACK_DONE;
+               }
+
+               if (!vp_play_view_set_callback
+                       (pAppData->pPlayView, VIDEO_PLAY_CB_TYPE_DESTORY,
+                        __vp_main_destroy_cb)) {
+                       VideoLogError("vp_play_view_set_callback is fail");
+                       return ECORE_CALLBACK_DONE;
+               }
+
+               if (!vp_play_view_set_user_data
+                       (pAppData->pPlayView, (void *) pAppData)) {
+                       VideoLogError("vp_play_view_set_user_data is fail");
+                       return ECORE_CALLBACK_DONE;
+               }
+       }
+
+
+       if (nLaunchingType == VIDEO_PLAY_TYPE_WEB) {
+               if (!vp_play_view_set_cookie
+                       (pAppData->pPlayView, pAppData->pServiceData->szCookie)) {
+                       VideoLogError("vp_play_view_set_cookie is fail");
+               }
+
+               if (!vp_play_view_set_proxy
+                       (pAppData->pPlayView, pAppData->pServiceData->szProxy)) {
+                       VideoLogError("vp_play_view_set_proxy is fail");
+               }
+       }
+
+       if (pAppData->pServiceData->szDMRID) {
+               VideoLogWarning("DMR ID : %s", pAppData->pServiceData->szDMRID);
+               if (!vp_play_view_set_dmr_id
+                       (pAppData->pPlayView, pAppData->pServiceData->szDMRID)) {
+                       VideoLogError("vp_play_view_set_dmr_id is fail");
+               }
+       }
+
+       if (nLaunchingType == VIDEO_PLAY_TYPE_MULTI_PATH
+               && pAppData->pServiceData->szMultiPath) {
+               int idx = 0;
+
+               if (!vp_play_view_set_stop_after_repeat_mode
+                       (pAppData->pPlayView,
+                        pAppData->pServiceData->bStopAfterRepeat)) {
+                       VideoLogError
+                               ("vp_play_view_set_stop_after_repeat_mode is fail");
+               }
+
+               for (idx = 0; idx < pAppData->pServiceData->nMultiPath; idx++) {
+                       if (pAppData->pServiceData->szMultiPath[idx] == NULL) {
+                               continue;
+                       }
+
+                       if (pAppData->pServiceData->szMultiPath[idx]) {
+                               char *szSubtitle = NULL;
+                               char *szTitle = NULL;
+                               int nPosition = 0;
+                               int nDuration = 0;
+
+                               if (idx == 0) {
+                                       if (!vp_play_view_set_url
+                                               (pAppData->pPlayView,
+                                                pAppData->pServiceData->szMultiPath[idx])) {
+                                               VideoLogError("vp_play_view_set_url is fail");
+                                       }
+                               }
+                               if (pAppData->pServiceData->szMultiTitle) {
+                                       if (pAppData->pServiceData->szMultiTitle[idx]) {
+                                               szTitle =
+                                                       pAppData->pServiceData->szMultiTitle[idx];
+                                       }
+                               }
+                               if (pAppData->pServiceData->szMultiSubTitle) {
+                                       if (pAppData->pServiceData->szMultiSubTitle[idx]) {
+                                               szSubtitle =
+                                                       pAppData->pServiceData->szMultiSubTitle[idx];
+                                       }
+                               }
+                               if (pAppData->pServiceData->szMultiPosition) {
+                                       if (pAppData->pServiceData->szMultiPosition[idx]) {
+                                               nPosition =
+                                                       atoi(pAppData->pServiceData->
+                                                                szMultiPosition[idx]);
+                                       }
+                               }
+                               if (pAppData->pServiceData->szMultiDuration) {
+                                       if (pAppData->pServiceData->szMultiDuration[idx]) {
+                                               nDuration =
+                                                       atoi(pAppData->pServiceData->
+                                                                szMultiDuration[idx]);
+                                       }
+                               }
+                               vp_play_view_add_multi_path(pAppData->pPlayView,
+                                                                                       pAppData->pServiceData->
+                                                                                       szMultiPath[idx], szTitle,
+                                                                                       szSubtitle, nPosition,
+                                                                                       nDuration, FALSE);
+                       }
+               }
+       } else {
+               int nPosition = 0;
+               if (pAppData->pServiceData->bStoreDownload) {
+                       nPosition = pAppData->pServiceData->nStorePlayedTime;
+               }
+               if (!vp_play_view_set_start_position
+                       (pAppData->pPlayView, nPosition)) {
+                       VideoLogError("vp_play_view_set_start_position is fail");
+               }
+
+               if (!vp_play_view_set_url
+                       (pAppData->pPlayView, pAppData->pServiceData->pMediaUri)) {
+                       VideoLogError("vp_play_view_set_url is fail");
+               }
+
+               if (!vp_play_view_set_store_download_mode
+                       (pAppData->pPlayView,
+                        pAppData->pServiceData->bStoreDownload)) {
+                       VideoLogError("vp_play_view_set_store_download_mode is fail");
+               }
+
+               if (!vp_play_view_set_store_download_filesize
+                       (pAppData->pPlayView,
+                        pAppData->pServiceData->dStoreDL_FileSize)) {
+                       VideoLogError
+                               ("vp_play_view_set_store_download_filesize is fail");
+               }
+
+               if (pAppData->pServiceData->bStoreDownload == EINA_TRUE
+                       && pAppData->pServiceData->pStoreOrderId != NULL) {
+                       if (!vp_play_view_set_store_order_info
+                               (pAppData->pPlayView,
+                                pAppData->pServiceData->pStoreOrderId,
+                                pAppData->pServiceData->pStoreServerId,
+                                pAppData->pServiceData->pStoreAppId,
+                                pAppData->pServiceData->pStoreMvId)) {
+                               VideoLogError("vp_play_view_set_store_order_info is fail");
+                       }
+               }
+       }
+
+       if (pAppData->pServiceData->eListType ==
+               VP_VIDEO_PLAY_LIST_TYPE_FOLDER) {
+               vp_play_view_set_list_mode(pAppData->pPlayView,
+                                                                  VIDEO_PLAY_LIST_TYPE_FOLDER);
+       } else {
+               vp_play_view_set_list_mode(pAppData->pPlayView,
+                                                                  VIDEO_PLAY_LIST_TYPE_ALL);
+       }
+
+       if (pAppData->pServiceData->szDeviceID) {
+               VideoLogWarning("Device ID : %s",
+                                               pAppData->pServiceData->szDeviceID);
+               if (!vp_play_view_set_device_id
+                       (pAppData->pPlayView, pAppData->pServiceData->szDeviceID)) {
+                       VideoLogError("vp_play_view_set_device_id is fail");
+               }
+       }
+       if (!vp_play_view_set_auto_play_setting
+               (pAppData->pPlayView, pAppData->pServiceData->szAutoPlay)) {
+               VideoLogError("vp_play_view_set_auto_play_setting is fail");
+       }
+       if (pAppData->pServiceData->szMediaTitle) {
+               VideoLogWarning("szMediaTitle : %s",
+                                               pAppData->pServiceData->szMediaTitle);
+               if (!vp_play_view_set_media_title
+                       (pAppData->pPlayView, pAppData->pServiceData->szMediaTitle)) {
+                       VideoLogError("vp_play_view_set_media_title is fail");
+               }
+       }
+
+       if (!vp_play_view_set_relaunch_caller
+               (pAppData->pPlayView, bRelaunchCaller)) {
+               VideoLogError("vp_play_view_set_user_data is fail");
+               return ECORE_CALLBACK_DONE;
+       }
+
+       VideoLogPerfE
+               ("============================== RESET =============================");
+
+       if (pAppData->pAppSvcIdler) {
+               ecore_idler_del(pAppData->pAppSvcIdler);
+               pAppData->pAppSvcIdler = NULL;
+       }
+
+       return ECORE_CALLBACK_DONE;
+}
+
+/**
+ *
+ * @param pAppSvcHandle
+ * @param pUserData
+ */
+static void __appControl(app_control_h pAppSvcHandle, void *pUserData)
+{
+       VideoLogWarning("== APP SERVICE ==");
+
+       if (pAppSvcHandle == NULL) {
+               VideoLogError("[ERR] No exist pAppSvcHandle.");
+               return;
+       }
+
+       if (pUserData == NULL) {
+               VideoLogError("[ERR] No exist pUserData.");
+               return;
+       }
+
+       VpAppData *pAppData = (VpAppData *) pUserData;
+
+       char *resume_check = NULL;
+       if (app_control_get_extra_data
+               (pAppSvcHandle, "startup_type",
+                &resume_check) != APP_CONTROL_ERROR_NONE) {
+               VideoLogInfo("No exist startup_type");
+       } else {
+               VideoLogInfo("temp_resume_check : %s", resume_check);
+               if (resume_check) {
+                       if (strcmp(resume_check, "1") == 0) {
+                               VideoLogInfo("do resume");
+                               free(resume_check);
+
+                               VpAppData *pAppData = (VpAppData *) pUserData;
+                               Evas_Object *pWin = NULL;
+                               pWin = vp_play_view_get_main_window(pAppData->pPlayView);
+                               if (pWin) {
+                                       __appResume(pUserData);
+                                       return;
+                               } else {
+                                       VideoLogError("No exist pWin");
+                               }
+                       }
+               }
+       }
+
+       if (pAppData->pServiceData != NULL) {
+               VpServiceParserDestroyServiceData(pAppData->pServiceData);
+               pAppData->pServiceData = NULL;
+       }
+
+       pAppData->pServiceData = calloc(1, sizeof(VpServiceData));
+
+       if (VpServiceParserGetServiceData
+               (pAppSvcHandle, pAppData->pServiceData) == EINA_FALSE) {
+               VideoLogError("[ERR] VpServiceParserGetServiceData fail!!!");
+               if (pAppData->pServiceData != NULL) {
+                       VpServiceParserDestroyServiceData(pAppData->pServiceData);
+                       pAppData->pServiceData = NULL;
+               }
+
+               return;
+       }
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+// for sidesync
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+       if (pAppData->pServiceData && pAppData->pServiceData->pMediaUri != NULL) {
+                       VideoSecureLogInfo("ss-play: %s",
+                                                          pAppData->pServiceData->pMediaUri);
+       }
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+// for split window
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+
+
+#ifdef _PERF_TEST_
+       pAppData->pAppSvcIdler =
+               ecore_idler_add(__appControl_idler_cb, (void *) pAppData);
+#else
+       __appControl_idler_cb((void *) pAppData);
+#endif
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __appExit(void *pUserData)
+{
+       if (pUserData == NULL) {
+               VideoLogError("[ERR] No exist pUserData.");
+               return;
+       }
+
+       VideoLogWarning("== APP EXIT ==");
+
+       VpAppData *pAppData = (VpAppData *) pUserData;
+
+       if (pAppData->pServiceData != NULL) {
+               VpServiceParserDestroyServiceData(pAppData->pServiceData);
+               pAppData->pServiceData = NULL;
+       }
+
+       if (pAppData->pPlayView) {
+               vp_play_view_destroy(pAppData->pPlayView);
+               pAppData->pPlayView = NULL;
+       }
+
+       if (pAppData->pValStartup != NULL) {
+               free(pAppData->pValStartup);
+               pAppData->pValStartup = NULL;
+       }
+
+       if (pAppData->pValLayout != NULL) {
+               free(pAppData->pValLayout);
+               pAppData->pValLayout = NULL;
+       }
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __appPause(void *pUserData)
+{
+       VideoLogWarning("== APP PAUSE ==");
+
+       if (pUserData == NULL) {
+               VideoLogError("[ERR] No exist pUserData.");
+               return;
+       }
+
+       VpAppData *pAppData = (VpAppData *) pUserData;
+       pAppData->bPause = TRUE;
+#if 1
+       if (!vp_play_view_unrealize(pAppData->pPlayView)) {
+               VideoLogWarning("vp_play_view_unrealize is fail");
+       }
+#else
+       if (!vp_play_view_get_popup_mode(pAppData->pPlayView, &bPopupMode)) {
+               VideoLogWarning("vp_play_view_get_popup_mode is fail");
+       }
+
+       if (bPopupMode == FALSE) {
+               if (!vp_play_view_unrealize(pAppData->pPlayView)) {
+                       VideoLogWarning("vp_play_view_unrealize is fail");
+               }
+       }
+#endif
+}
+
+/**
+ *
+ * @param pUserData
+ */
+static void __appResume(void *pUserData)
+{
+       VideoLogWarning("== APP RESUME ==");
+
+       if (pUserData == NULL) {
+               VideoLogError("[ERR] No exist pUserData.");
+               return;
+       }
+
+       VpAppData *pAppData = (VpAppData *) pUserData;
+       pAppData->bPause = FALSE;
+
+
+       if (!vp_play_view_realize(pAppData->pPlayView)) {
+               VideoLogError("vp_play_view_realize is fail");
+       }
+       vp_play_view_live_stream_realize(pAppData->pPlayView);
+}
+
+/**
+ *
+ * @param event_info
+ * @param data
+ */
+void vp_low_battery(app_event_info_h event_info, void *data)
+{
+       VpAppData *ad = (VpAppData *) data;
+       app_event_low_battery_status_e status = -1;
+       int ret = app_event_get_low_battery_status(event_info, &status);
+       if (ret == APP_ERROR_NONE) {
+               if (status <= APP_EVENT_LOW_BATTERY_POWER_OFF) {
+                       __appExit(ad);
+               }
+       } else {
+               VideoLogInfo("Failed to get battery status. ret %d", ret);
+       }
+       return;
+}
+
+/**
+ *
+ * @param pEventInfo
+ * @param pUserData
+ */
+static void __appUpdateLanguage(app_event_info_h pEventInfo,
+                                                               void *pUserData)
+{
+       char *locale = NULL;
+       VpAppData *pAd = (VpAppData*) pUserData;
+       int retcode =
+               system_settings_get_value_string
+               (SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
+
+       if (retcode != SYSTEM_SETTINGS_ERROR_NONE) {
+               VideoLogInfo
+                       ("[ERR] failed to get updated language!!! [retcode = retcode]",
+                        retcode);
+       } else {
+               if (locale) {
+                       elm_language_set(locale);
+                       free(locale);
+               }
+       }
+
+       if (pAd) {
+               vp_play_view_handle_language_change(pAd->pPlayView);
+       }
+}
+
+
+/**
+ *
+ * @param argc
+ * @param argv
+ * @return
+ */
+EXPORT_API int main(int argc, char *argv[])
+{
+       VpAppData sAppData = { 0, };
+       int nRet = -1;
+       ui_app_lifecycle_callback_s st_appEventService;
+       app_event_handler_h hLanguageChangedHandle;
+       app_event_handler_h hLowBatteryHandle;
+       nRet =
+               ui_app_add_event_handler(&hLanguageChangedHandle,
+                                                                APP_EVENT_LANGUAGE_CHANGED,
+                                                                __appUpdateLanguage, (void *) &sAppData);
+       if (nRet != APP_ERROR_NONE) {
+               VideoLogError
+                       ("APP_EVENT_LANGUAGE_CHANGED  ui_app_add_event_handler failed : [%d]!!!",
+                        nRet);
+               return -1;
+
+       }
+       nRet =
+               ui_app_add_event_handler(&hLowBatteryHandle, APP_EVENT_LOW_BATTERY,
+                                                                vp_low_battery, (void *) &sAppData);
+       if (nRet != APP_ERROR_NONE) {
+               VideoLogError
+                       ("APP_EVENT_LOW_BATTERY  ui_app_add_event_handler failed : [%d]!!!",
+                        nRet);
+               return -1;
+       }
+
+
+       st_appEventService.create = __appCreate;
+       st_appEventService.terminate = __appExit;
+       st_appEventService.pause = __appPause;
+       st_appEventService.resume = __appResume;
+       st_appEventService.app_control = __appControl;
+
+       if (ui_app_main(argc, argv, &st_appEventService, &sAppData) !=
+               APP_ERROR_NONE) {
+               return -1;
+       }
+
+       return 0;
+}
diff --git a/vp-main/tizen-manifest.xml b/vp-main/tizen-manifest.xml
new file mode 100755 (executable)
index 0000000..5948842
--- /dev/null
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="4.0" package="org.tizen.video-player" version="1.0.0">
+    <profile name="mobile"/>
+    <ui-application appid="org.tizen.video-player" exec="video-player" launch_mode="caller" hw-acceleration="on" multiple="false" nodisplay="true" taskmanage="true" type="capp">
+        <label>video-player</label>
+        <icon>org.tizen.video-player.png</icon>
+        <app-control>
+               <operation name="http://tizen.org/appcontrol/operation/view" />
+               <mime name="video/mp4" />
+               <mime name="video/3gp" />
+               <mime name="video/divx" />
+               <mime name="video/x-msvideo" />
+               <mime name="video/x-ms-wmv" />
+               <mime name="application/vnd.ms-asf" />
+               <mime name="video/x-ms-asf" />
+               <mime name="video/video/x-flv" />
+               <mime name="video/3gpp" />
+               <mime name="video/x-matroska" />
+               <mime name="video/vnd.ms-playready.media.pyv" />
+               <mime name="application/vnd.apple.mpegurl" />
+               <mime name="application/x-mpegurl" />
+               <mime name="audio/x-mpegurl" />
+               <mime name="video/x-mpegurl" />
+               <mime name="video/x-flv" />
+               <mime name="video/ogg" />
+               <mime name="video/quicktime" />
+               <mime name="video/mp2t" />
+               <mime name="audio/isma" />
+               <mime name="application/sdp" />
+               <uri name="http" />
+               <uri name="https" />
+               <uri name="rtsp" />
+               <uri name="rtp" />
+       </app-control>
+       <app-control>
+               <operation name="http://tizen.org/appcontrol/operation/view" />
+               <mime name="video/mp4" />
+               <mime name="video/3gp" />
+               <mime name="video/divx" />
+               <mime name="video/x-msvideo" />
+               <mime name="video/x-ms-wmv" />
+               <mime name="video/x-ms-asf" />
+               <mime name="application/vnd.ms-asf" />
+               <mime name="video/video/x-flv" />
+               <mime name="video/3gpp" />
+               <mime name="video/x-matroska" />
+               <mime name="video/vnd.ms-playready.media.pyv" />
+               <mime name="application/vnd.apple.mpegurl" />
+               <mime name="application/x-mpegurl" />
+               <mime name="video/x-mpegurl" />
+               <mime name="video/x-flv" />
+               <mime name="video/ogg" />
+               <mime name="video/quicktime" />
+               <mime name="video/mp2t" />
+               <mime name="video/3gpp2" />
+               <mime name="application/sdp" />
+       </app-control>
+    </ui-application>
+    <privileges>
+        <privilege>http://tizen.org/privilege/network.get</privilege>
+        <privilege>http://tizen.org/privilege/mapservice</privilege>
+        <privilege>http://tizen.org/privilege/wifidirect</privilege>
+        <privilege>http://tizen.org/privilege/content.write</privilege>
+        <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+        <privilege>http://tizen.org/privilege/externalstorage</privilege>
+        <privilege>http://tizen.org/privilege/mediastorage</privilege>
+        <privilege>http://tizen.org/privilege/externalstorage.appdata</privilege>
+        <privilege>http://tizen.org/privilege/telephony</privilege>
+        <privilege>http://tizen.org/privilege/volume.set</privilege>
+        <privilege>http://tizen.org/privilege/internet</privilege>
+       <privilege>http://tizen.org/privilege/display</privilege>
+    </privileges>
+</manifest>